summaryrefslogtreecommitdiff
path: root/util/m5/m5op_arm.S
diff options
context:
space:
mode:
Diffstat (limited to 'util/m5/m5op_arm.S')
-rw-r--r--util/m5/m5op_arm.S10
1 files changed, 7 insertions, 3 deletions
diff --git a/util/m5/m5op_arm.S b/util/m5/m5op_arm.S
index 83bef6a84..115c7a017 100644
--- a/util/m5/m5op_arm.S
+++ b/util/m5/m5op_arm.S
@@ -52,6 +52,7 @@
.text
.macro simple_op name, func, subfunc
+ .align 2
.globl \name
\name:
/* First, try to trap into m5 using the m5-kvm hypercall
@@ -59,7 +60,11 @@
* if it is executed in the normal m5 environment.
*/
push {lr}
- ldr lr, =1f
+#ifdef __thumb__
+ adr lr, 1f+1
+#else
+ adr lr, 1f
+#endif
ldr ip, =((((\func) & 0xFF) << 8) | ((\subfunc) & 0xFF))
bxj lr
pop {pc}
@@ -70,8 +75,7 @@
.short 0xEE00 | \func
.short 0x0110 | (\subfunc << 12)
#else
-#define INST(op, ra, rb, func) \
- .long (0xEE000110 | (\func << 16) | (\subfunc << 12)
+ .long (0xEE000110 | (\func << 16) | (\subfunc << 12))
#endif
pop {pc}
.endm