This is an automated email from Gerrit.

Matthias Welwarsky ([email protected]) just uploaded a new patch set to 
Gerrit, which you can find at http://openocd.zylin.com/3812

-- gerrit

commit dd2fcdb50f29136437c0624adf37055f136a07de
Author: Matthias Welwarsky <[email protected]>
Date:   Thu Oct 6 16:11:19 2016 +0200

    aarch64: simplify armv8_set_cpsr()
    
    Translate from cpsr value to "enum arm_mode" by shifting up 4 bits and
    filling the lowest nibble with 0xF.
    
    Change-Id: Ic32186104b0c29578c4f6f99e04840ab88a0017b
    Signed-off-by: Matthias Welwarsky <[email protected]>

diff --git a/src/target/armv8.c b/src/target/armv8.c
index 71527ea..9b99f93 100644
--- a/src/target/armv8.c
+++ b/src/target/armv8.c
@@ -282,36 +282,10 @@ void armv8_set_cpsr(struct arm *arm, uint32_t cpsr)
                }
        }
        arm->core_state = state;
-       if (arm->core_state == ARM_STATE_AARCH64) {
-               switch (mode) {
-                       case SYSTEM_AAR64_MODE_EL0t:
-                               arm->core_mode = ARMV8_64_EL0T;
-                       break;
-                       case SYSTEM_AAR64_MODE_EL1t:
-                               arm->core_mode = ARMV8_64_EL0T;
-                       break;
-                       case SYSTEM_AAR64_MODE_EL1h:
-                               arm->core_mode = ARMV8_64_EL1H;
-                       break;
-                       case SYSTEM_AAR64_MODE_EL2t:
-                               arm->core_mode = ARMV8_64_EL2T;
-                       break;
-                       case SYSTEM_AAR64_MODE_EL2h:
-                               arm->core_mode = ARMV8_64_EL2H;
-                       break;
-                       case SYSTEM_AAR64_MODE_EL3t:
-                               arm->core_mode = ARMV8_64_EL3T;
-                       break;
-                       case SYSTEM_AAR64_MODE_EL3h:
-                               arm->core_mode = ARMV8_64_EL3H;
-                       break;
-                       default:
-                               LOG_DEBUG("unknow mode 0x%x", (unsigned) 
(mode));
-                       break;
-               }
-       } else {
+       if (arm->core_state == ARM_STATE_AARCH64)
+               arm->core_mode = (mode << 4) | 0xf;
+       else
                arm->core_mode = mode;
-       }
 
        num = armv8_mode_to_number(arm->core_mode);
        if (num < 0) {

-- 

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to