]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPkg/Include/AsmMacroIoLibV8.h
ArmPkg/AsmMacroIoLibV8: remove undocumented assumption from ELx macros
[mirror_edk2.git] / ArmPkg / Include / AsmMacroIoLibV8.h
index a9f8491bc92270640f5e27e648032c19fc012b0d..37fa255f842eea05f1c946dd7ac0df84d1affc98 100644 (file)
 #define EL1_OR_EL2(SAFE_XREG)        \\r
         mrs    SAFE_XREG, CurrentEL ;\\r
         cmp    SAFE_XREG, #0x8      ;\\r
+        b.gt   .                    ;\\r
         b.eq   2f                   ;\\r
-        cmp    SAFE_XREG, #0x4      ;\\r
-        b.ne   .                    ;// We should never get here\r
-// EL1 code starts here\r
+        cbnz   SAFE_XREG, 1f        ;\\r
+        b      .                    ;// We should never get here\r
+\r
 \r
 // CurrentEL : 0xC = EL3; 8 = EL2; 4 = EL1\r
 // This only selects between EL1 and EL2 and EL3, else we die.\r
 // Provide the Macro with a safe temp xreg to use.\r
 #define EL1_OR_EL2_OR_EL3(SAFE_XREG) \\r
         mrs    SAFE_XREG, CurrentEL ;\\r
-        cmp    SAFE_XREG, #0xC      ;\\r
-        b.eq   3f                   ;\\r
         cmp    SAFE_XREG, #0x8      ;\\r
+        b.gt   3f                   ;\\r
         b.eq   2f                   ;\\r
-        cmp    SAFE_XREG, #0x4      ;\\r
-        b.ne   .                    ;// We should never get here\r
-// EL1 code starts here\r
+        cbnz   SAFE_XREG, 1f        ;\\r
+        b      .                    ;// We should never get here\r
+\r
 #if defined(__clang__)\r
 \r
 // load x0 with _Data\r