SMC Secure monitor call This instruction causes an exception to EL3. SMC is available only for software executing at EL1 or higher. It is UNDEFINED in EL0. If the values of HCR_EL2.TSC and SCR_EL3.SMD are both 0, execution of an SMC instruction at EL1 or higher generates a Secure Monitor Call exception, recording it in ESR_ELx, using the EC value 0x17, that is taken to EL3. If the value of HCR_EL2.TSC is 1 and EL2 is enabled in the current Security state, execution of an SMC instruction at EL1 generates an exception that is taken to EL2, regardless of the value of SCR_EL3.SMD. If the value of HCR_EL2.TSC is 0 and the value of SCR_EL3.SMD is 1, the SMC instruction is UNDEFINED. 1 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 SMC #<imm> constant bits(16) imm = imm16; <imm> Is a 16-bit unsigned immediate, in the range 0 to 65535, encoded in the "imm16" field. AArch64.CheckForSMCUndefOrTrap(imm); AArch64.CallSecureMonitor(imm);