diff --git a/lib/arm-mes/arm.M1 b/lib/arm-mes/arm.M1 index 3cbe43e9..cc60dbe0 100644 --- a/lib/arm-mes/arm.M1 +++ b/lib/arm-mes/arm.M1 @@ -24,12 +24,29 @@ # reduced instruction set: r0, r1 (some r2 for shift, r3 for mul, div) # FIXME: count instructions +DEFINE R0 0 +DEFINE R1 1 +DEFINE R2 2 +DEFINE R3 3 +DEFINE R7 7 +DEFINE R14 E +DEFINE PC F + +DEFINE IMMEDIATE32BOX 000000ea + +# The E means "always". #DEFINE add____$i32,(%r0) xx #DEFINE add____$i32,(%r1) xx #DEFINE add____$i32,0x32(%r0) xx -DEFINE add____$i8,%r0 0090e2 # adds r0, r0, #xx -DEFINE add____$i8,%r1 1091e2 # adds r1, r1, #xx -DEFINE add____$i8,%r13 d09de2 # adds r13, r13, #xx +# 020090e0 # adds r0, r0, r2; ADDS = '0' op3 op1 '09' op2 'e0' +# 030091e0 # adds r0, r1, r3 +# 031091e0 # adds r1, r1, r3 +# 030090e0 # adds r0, r0, r3 +DEFINE add____$i8,%r0 0090e2 # adds r0, r0, #xx; ADDSI = immediate op1 '09' op2 'e2' +# 0091e2 # adds r0, r1, #xx; ADDSI = immediate op1 '09' op2 'e2' +# 1090e2 # adds r1, r0, #xx; ADDSI = immediate op1 '09' op2 'e2' +DEFINE add____$i8,%r1 1091e2 # adds r1, r1, #xx +DEFINE add____$i8,%r13 d09de2 # adds r13, r13, #xx #DEFINE add____$i8,(%r0) xx #DEFINE add____$i8,(%r1) xx #DEFINE add____$i8,0x32 xx @@ -224,7 +241,7 @@ DEFINE ldr____%r0,(%sp,#$i8) 009de5 # ldr r0, [r13+xx] DEFINE ldr____%r1,(%sp,#$i8) 109de5 # ldr r1, [r13+xx] DEFINE add____%r2,%r0,%r1,lsl#4 012280e0 DEFINE add____%r2,$i8 2082e2 -DEFINE bl ba +DEFINE bl eb DEFINE b ea DEFINE sxtb__%r0,%r0 7000afe6 DEFINE sxtb__%r1,%r1 7110afe6