arm_instructions.s revision 9dec507ecb212a7c94659e9b5a9da66cb4b39ea3
1@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding %s | FileCheck %s 2 3@ CHECK: nop 4@ CHECK: encoding: [0x00,0xf0,0x20,0xe3] 5 nop 6 7@ CHECK: nopeq 8@ CHECK: encoding: [0x00,0xf0,0x20,0x03] 9 nopeq 10 11@ CHECK: trap 12@ CHECK: encoding: [0xfe,0xde,0xff,0xe7] 13 trap 14 15@ CHECK: bx lr 16@ CHECK: encoding: [0x1e,0xff,0x2f,0xe1] 17 bx lr 18 19@ CHECK: vqdmull.s32 q8, d17, d16 20@ CHECK: encoding: [0xa0,0x0d,0xe1,0xf2] 21 vqdmull.s32 q8, d17, d16 22 23@ CHECK: ldmia r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe8] 24@ CHECK: ldmia r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe8] 25@ CHECK: ldmib r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe9] 26@ CHECK: ldmda r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x12,0xe8] 27@ CHECK: ldmdb r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x12,0xe9] 28@ CHECK: ldmia r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe8] 29 ldm r2, {r1,r3-r6,sp} 30 ldmia r2, {r1,r3-r6,sp} 31 ldmib r2, {r1,r3-r6,sp} 32 ldmda r2, {r1,r3-r6,sp} 33 ldmdb r2, {r1,r3-r6,sp} 34 ldmfd r2, {r1,r3-r6,sp} 35 36@ CHECK: stmia r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x82,0xe8] 37@ CHECK: stmia r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x82,0xe8] 38@ CHECK: stmib r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x82,0xe9] 39@ CHECK: stmda r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x02,0xe8] 40@ CHECK: stmdb r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x02,0xe9] 41@ CHECK: stmdb r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x02,0xe9] 42 stm r2, {r1,r3-r6,sp} 43 stmia r2, {r1,r3-r6,sp} 44 stmib r2, {r1,r3-r6,sp} 45 stmda r2, {r1,r3-r6,sp} 46 stmdb r2, {r1,r3-r6,sp} 47 stmfd r2, {r1,r3-r6,sp} 48 49@ CHECK: ldmia r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xb2,0xe8] 50@ CHECK: ldmib r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xb2,0xe9] 51@ CHECK: ldmda r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x32,0xe8] 52@ CHECK: ldmdb r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x32,0xe9] 53 ldmia r2!, {r1,r3-r6,sp} 54 ldmib r2!, {r1,r3-r6,sp} 55 ldmda r2!, {r1,r3-r6,sp} 56 ldmdb r2!, {r1,r3-r6,sp} 57 58@ CHECK: stmia r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xa2,0xe8] 59@ CHECK: stmib r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xa2,0xe9] 60@ CHECK: stmda r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x22,0xe8] 61@ CHECK: stmdb r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x22,0xe9] 62 stmia r2!, {r1,r3-r6,sp} 63 stmib r2!, {r1,r3-r6,sp} 64 stmda r2!, {r1,r3-r6,sp} 65 stmdb r2!, {r1,r3-r6,sp} 66 67@ CHECK: and r1, r2, r3 @ encoding: [0x03,0x10,0x02,0xe0] 68 and r1,r2,r3 69 70@ FIXME: This is wrong, we are dropping the 's' for now. 71@ CHECK-FIXME: ands r1, r2, r3 @ encoding: [0x03,0x10,0x12,0xe0] 72 ands r1,r2,r3 73 74@ CHECK: eor r1, r2, r3 @ encoding: [0x03,0x10,0x22,0xe0] 75 eor r1,r2,r3 76 77@ FIXME: This is wrong, we are dropping the 's' for now. 78@ CHECK-FIXME: eors r1, r2, r3 @ encoding: [0x03,0x10,0x32,0xe0] 79 eors r1,r2,r3 80 81@ CHECK: sub r1, r2, r3 @ encoding: [0x03,0x10,0x42,0xe0] 82 sub r1,r2,r3 83 84@ FIXME: This is wrong, we are dropping the 's' for now. 85@ CHECK-FIXME: subs r1, r2, r3 @ encoding: [0x03,0x10,0x52,0xe0] 86 subs r1,r2,r3 87 88@ CHECK: add r1, r2, r3 @ encoding: [0x03,0x10,0x82,0xe0] 89 add r1,r2,r3 90 91@ FIXME: This is wrong, we are dropping the 's' for now. 92@ CHECK-FIXME: adds r1, r2, r3 @ encoding: [0x03,0x10,0x92,0xe0] 93 adds r1,r2,r3 94 95@ CHECK: adc r1, r2, r3 @ encoding: [0x03,0x10,0xa2,0xe0] 96 adc r1,r2,r3 97 98@ CHECK: sbc r1, r2, r3 @ encoding: [0x03,0x10,0xc2,0xe0] 99 sbc r1,r2,r3 100 101@ CHECK: orr r1, r2, r3 @ encoding: [0x03,0x10,0x82,0xe1] 102 orr r1,r2,r3 103 104@ FIXME: This is wrong, we are dropping the 's' for now. 105@ CHECK-FIXME: orrs r1, r2, r3 @ encoding: [0x03,0x10,0x92,0xe1] 106 orrs r1,r2,r3 107 108@ CHECK: bic r1, r2, r3 @ encoding: [0x03,0x10,0xc2,0xe1] 109 bic r1,r2,r3 110 111@ FIXME: This is wrong, we are dropping the 's' for now. 112@ CHECK-FIXME: bics r1, r2, r3 @ encoding: [0x03,0x10,0xd2,0xe1] 113 bics r1,r2,r3 114 115@ CHECK: mov r1, r2 @ encoding: [0x02,0x10,0xa0,0xe1] 116 mov r1,r2 117 118@ CHECK: mvn r1, r2 @ encoding: [0x02,0x10,0xe0,0xe1] 119 mvn r1,r2 120 121@ FIXME: This is wrong, we are dropping the 's' for now. 122@ CHECK-FIXME: mvns r1, r2 @ encoding: [0x02,0x10,0xf0,0xe1] 123 mvns r1,r2 124 125@ CHECK: rsb r1, r2, r3 @ encoding: [0x03,0x10,0x62,0xe0] 126 rsb r1,r2,r3 127 128@ CHECK: rsc r1, r2, r3 @ encoding: [0x03,0x10,0xe2,0xe0] 129 rsc r1,r2,r3 130 131@ FIXME: This is broken, CCOut operands don't work correctly when their presence 132@ may depend on flags. 133@ CHECK-FIXME:: mlas r1, r2, r3, r4 @ encoding: [0x92,0x43,0x31,0xe0] 134@ mlas r1,r2,r3,r4 135 136@ CHECK: bfi r0, r0, #5, #7 @ encoding: [0x90,0x02,0xcb,0xe7] 137 bfi r0, r0, #5, #7 138 139@ CHECK: bkpt #10 @ encoding: [0x7a,0x00,0x20,0xe1] 140 bkpt #10 141 142@ CHECK: isb sy @ encoding: [0x6f,0xf0,0x7f,0xf5] 143 isb 144@ CHECK: mrs r8, cpsr @ encoding: [0x00,0x80,0x0f,0xe1] 145 mrs r8, cpsr 146 147@ CHECK: mcr p7, #1, r5, c1, c1, #4 @ encoding: [0x91,0x57,0x21,0xee] 148 mcr p7, #1, r5, c1, c1, #4 149@ CHECK: mrc p14, #0, r1, c1, c2, #4 @ encoding: [0x92,0x1e,0x11,0xee] 150 mrc p14, #0, r1, c1, c2, #4 151@ CHECK: mcrr p7, #1, r5, r4, c1 @ encoding: [0x11,0x57,0x44,0xec] 152 mcrr p7, #1, r5, r4, c1 153@ CHECK: mrrc p7, #1, r5, r4, c1 @ encoding: [0x11,0x57,0x54,0xec] 154 mrrc p7, #1, r5, r4, c1 155 156@ CHECK: mcr2 p7, #1, r5, c1, c1, #4 @ encoding: [0x91,0x57,0x21,0xfe] 157 mcr2 p7, #1, r5, c1, c1, #4 158@ CHECK: mrc2 p14, #0, r1, c1, c2, #4 @ encoding: [0x92,0x1e,0x11,0xfe] 159 mrc2 p14, #0, r1, c1, c2, #4 160@ CHECK: mcrr2 p7, #1, r5, r4, c1 @ encoding: [0x11,0x57,0x44,0xfc] 161 mcrr2 p7, #1, r5, r4, c1 162@ CHECK: mrrc2 p7, #1, r5, r4, c1 @ encoding: [0x11,0x57,0x54,0xfc] 163 mrrc2 p7, #1, r5, r4, c1 164 165@ CHECK: cdp p7, #1, c1, c1, c1, #4 @ encoding: [0x81,0x17,0x11,0xee] 166 cdp p7, #1, c1, c1, c1, #4 167@ CHECK: cdp2 p7, #1, c1, c1, c1, #4 @ encoding: [0x81,0x17,0x11,0xfe] 168 cdp2 p7, #1, c1, c1, c1, #4 169 170@ CHECK: qadd r1, r2, r3 @ encoding: [0x52,0x10,0x03,0xe1] 171 qadd r1, r2, r3 172 173@ CHECK: qsub r1, r2, r3 @ encoding: [0x52,0x10,0x23,0xe1] 174 qsub r1, r2, r3 175 176@ CHECK: qdadd r1, r2, r3 @ encoding: [0x52,0x10,0x43,0xe1] 177 qdadd r1, r2, r3 178 179@ CHECK: qdsub r1, r2, r3 @ encoding: [0x52,0x10,0x63,0xe1] 180 qdsub r1, r2, r3 181 182@ CHECK: wfe @ encoding: [0x02,0xf0,0x20,0xe3] 183 wfe 184 185@ CHECK: wfi @ encoding: [0x03,0xf0,0x20,0xe3] 186 wfi 187 188@ CHECK: yield @ encoding: [0x01,0xf0,0x20,0xe3] 189 yield 190 191@ CHECK: nop @ encoding: [0x00,0xf0,0x20,0xe3] 192 nop 193 194@ CHECK: cpsie aif @ encoding: [0xc0,0x01,0x08,0xf1] 195 cpsie aif 196 197@ CHECK: cps #15 @ encoding: [0x0f,0x00,0x02,0xf1] 198 cps #15 199 200@ CHECK: cpsie if, #10 @ encoding: [0xca,0x00,0x0a,0xf1] 201 cpsie if, #10 202 203@ CHECK: msr cpsr_fc, r0 @ encoding: [0x00,0xf0,0x29,0xe1] 204 msr apsr, r0 205 206@ CHECK: msr cpsr_s, r0 @ encoding: [0x00,0xf0,0x24,0xe1] 207 msr apsr_g, r0 208 209@ CHECK: msr cpsr_f, r0 @ encoding: [0x00,0xf0,0x28,0xe1] 210 msr apsr_nzcvq, r0 211 212@ CHECK: msr cpsr_fs, r0 @ encoding: [0x00,0xf0,0x2c,0xe1] 213 msr apsr_nzcvqg, r0 214 215@ CHECK: msr cpsr_fc, r0 @ encoding: [0x00,0xf0,0x29,0xe1] 216 msr cpsr_fc, r0 217 218@ CHECK: msr cpsr_c, r0 @ encoding: [0x00,0xf0,0x21,0xe1] 219 msr cpsr_c, r0 220 221@ CHECK: msr cpsr_x, r0 @ encoding: [0x00,0xf0,0x22,0xe1] 222 msr cpsr_x, r0 223 224@ CHECK: msr cpsr_fc, r0 @ encoding: [0x00,0xf0,0x29,0xe1] 225 msr cpsr_fc, r0 226 227@ CHECK: msr cpsr_fc, r0 @ encoding: [0x00,0xf0,0x29,0xe1] 228 msr cpsr_all, r0 229 230@ CHECK: msr cpsr_fsx, r0 @ encoding: [0x00,0xf0,0x2e,0xe1] 231 msr cpsr_fsx, r0 232 233@ CHECK: msr spsr_fc, r0 @ encoding: [0x00,0xf0,0x69,0xe1] 234 msr spsr_fc, r0 235 236@ CHECK: msr spsr_fsxc, r0 @ encoding: [0x00,0xf0,0x6f,0xe1] 237 msr spsr_fsxc, r0 238 239@ CHECK: msr cpsr_fsxc, r0 @ encoding: [0x00,0xf0,0x2f,0xe1] 240 msr cpsr_fsxc, r0 241 242@ CHECK: add r1, r2, r3, lsl r4 @ encoding: [0x13,0x14,0x82,0xe0] 243 add r1, r2, r3, lsl r4 244 245@ CHECK: strexb r0, r1, [r2] @ encoding: [0x91,0x0f,0xc2,0xe1] 246 strexb r0, r1, [r2] 247 248@ CHECK: strexh r0, r1, [r2] @ encoding: [0x91,0x0f,0xe2,0xe1] 249 strexh r0, r1, [r2] 250 251@ CHECK: strex r0, r1, [r2] @ encoding: [0x91,0x0f,0x82,0xe1] 252 strex r0, r1, [r2] 253 254@ CHECK: strexd r0, r2, r3, [r1] @ encoding: [0x92,0x0f,0xa1,0xe1] 255 strexd r0, r2, r3, [r1] 256 257@ CHECK: ldrexb r0, [r0] @ encoding: [0x9f,0x0f,0xd0,0xe1] 258 ldrexb r0, [r0] 259 260@ CHECK: ldrexh r0, [r0] @ encoding: [0x9f,0x0f,0xf0,0xe1] 261 ldrexh r0, [r0] 262 263@ CHECK: ldrex r0, [r0] @ encoding: [0x9f,0x0f,0x90,0xe1] 264 ldrex r0, [r0] 265 266@ CHECK: ldrexd r0, r1, [r0] @ encoding: [0x9f,0x0f,0xb0,0xe1] 267 ldrexd r0, r1, [r0] 268 269@ CHECK: ssat16 r0, #7, r0 @ encoding: [0x30,0x0f,0xa6,0xe6] 270 ssat16 r0, #7, r0 271 272