Changeset
5ca6098b9560 accidentally broke the m5 utility. This
changeset adds the missing co-processor call used to trigger the
pseudo-op in ARM mode and fixes an alignment issue that caused some
pseudo-ops to leave thumb mode.
.text
.macro simple_op name, func, subfunc
+ .align 2
.globl \name
\name:
/* First, try to trap into m5 using the m5-kvm hypercall
* 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}
.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