basic-arm-instructions.s revision 7ed6d22e9637c52b3511ac6907830251d1124e60
13f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen@ RUN: llvm-mc -triple=armv7-apple-darwin -show-encoding < %s | FileCheck %s 23345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .syntax unified 33345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .globl _func 43345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 53345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ Check that the assembler can handle the documented syntax from the ARM ARM. 63345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ For complex constructs like shifter operands, check more thoroughly for them 73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ once then spot check that following instructions accept the form generally. 83345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ This gives us good coverage while keeping the overall size of the test 93345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ more reasonable. 103345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 113345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick_func: 123345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: _func 133345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 143345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@------------------------------------------------------------------------------ 153345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ ADC (immediate) 163345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@------------------------------------------------------------------------------ 173345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r1, r2, #0xf 183345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r1, r2, #0xf0 193345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r1, r2, #0xf00 203345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r1, r2, #0xf000 213345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r1, r2, #0xf0000 223345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r1, r2, #0xf00000 233345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r1, r2, #0xf000000 243345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r1, r2, #0xf0000000 253345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r1, r2, #0xf000000f 263345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adcs r1, r2, #0xf00 273345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adcseq r1, r2, #0xf00 283345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adceq r1, r2, #0xf00 293345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 303345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r1, r2, #15 @ encoding: [0x0f,0x10,0xa2,0xe2] 313345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r1, r2, #240 @ encoding: [0xf0,0x10,0xa2,0xe2] 323345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r1, r2, #3840 @ encoding: [0x0f,0x1c,0xa2,0xe2] 333345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r1, r2, #61440 @ encoding: [0x0f,0x1a,0xa2,0xe2] 343345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r1, r2, #983040 @ encoding: [0x0f,0x18,0xa2,0xe2] 353345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r1, r2, #15728640 @ encoding: [0x0f,0x16,0xa2,0xe2] 363345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r1, r2, #251658240 @ encoding: [0x0f,0x14,0xa2,0xe2] 373f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen@ CHECK: adc r1, r2, #4026531840 @ encoding: [0x0f,0x12,0xa2,0xe2] 3821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen@ CHECK: adc r1, r2, #4026531855 @ encoding: [0xff,0x12,0xa2,0xe2] 3972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 403345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adcs r1, r2, #3840 @ encoding: [0x0f,0x1c,0xb2,0xe2] 413345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adcseq r1, r2, #3840 @ encoding: [0x0f,0x1c,0xb2,0x02] 423345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adceq r1, r2, #3840 @ encoding: [0x0f,0x1c,0xa2,0x02] 433345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 443345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@------------------------------------------------------------------------------ 453345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ ADC (register) 4621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen@ ADC (shifted register) 473345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@------------------------------------------------------------------------------ 4821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen adc r4, r5, r6 493345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick @ Constant shifts 503345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r4, r5, r6, lsl #1 513345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r4, r5, r6, lsl #31 523345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r4, r5, r6, lsr #1 5321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen adc r4, r5, r6, lsr #31 543345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r4, r5, r6, lsr #32 553345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r4, r5, r6, asr #1 5621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen adc r4, r5, r6, asr #31 573345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r4, r5, r6, asr #32 583345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r4, r5, r6, ror #1 593345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r4, r5, r6, ror #31 6021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 613345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick @ Register shifts 623345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r6, r7, r8, lsl r9 633345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r6, r7, r8, lsr r9 643345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r6, r7, r8, asr r9 653345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r6, r7, r8, ror r9 663345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r4, r5, r6, rrx 673345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 683345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick @ Destination register is optional 693345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r5, r6 703345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r4, r5, lsl #1 713345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r4, r5, lsl #31 723345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r4, r5, lsr #1 733345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r4, r5, lsr #31 743345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r4, r5, lsr #32 753345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r4, r5, asr #1 763345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r4, r5, asr #31 773345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r4, r5, asr #32 783345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r4, r5, ror #1 793345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r4, r5, ror #31 803345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r4, r5, rrx 813345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r6, r7, lsl r9 823345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r6, r7, lsr r9 833345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r6, r7, asr r9 843345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r6, r7, ror r9 853345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick adc r4, r5, rrx 863345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 873345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r5, r6 @ encoding: [0x06,0x40,0xa5,0xe0] 883345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 893345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r5, r6, lsl #1 @ encoding: [0x86,0x40,0xa5,0xe0] 903345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r5, r6, lsl #31 @ encoding: [0x86,0x4f,0xa5,0xe0] 913345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r5, r6, lsr #1 @ encoding: [0xa6,0x40,0xa5,0xe0] 923345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r5, r6, lsr #31 @ encoding: [0xa6,0x4f,0xa5,0xe0] 933345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r5, r6, lsr #32 @ encoding: [0x26,0x40,0xa5,0xe0] 9421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen@ CHECK: adc r4, r5, r6, asr #1 @ encoding: [0xc6,0x40,0xa5,0xe0] 953345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r5, r6, asr #31 @ encoding: [0xc6,0x4f,0xa5,0xe0] 963345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r5, r6, asr #32 @ encoding: [0x46,0x40,0xa5,0xe0] 973345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r5, r6, ror #1 @ encoding: [0xe6,0x40,0xa5,0xe0] 983345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r5, r6, ror #31 @ encoding: [0xe6,0x4f,0xa5,0xe0] 993345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 1003345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r6, r7, r8, lsl r9 @ encoding: [0x18,0x69,0xa7,0xe0] 1013345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r6, r7, r8, lsr r9 @ encoding: [0x38,0x69,0xa7,0xe0] 1023345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r6, r7, r8, asr r9 @ encoding: [0x58,0x69,0xa7,0xe0] 1033345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r6, r7, r8, ror r9 @ encoding: [0x78,0x69,0xa7,0xe0] 1043345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r5, r6, rrx @ encoding: [0x66,0x40,0xa5,0xe0] 1053345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 1063345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r5, r5, r6 @ encoding: [0x06,0x50,0xa5,0xe0] 1073345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r4, r5, lsl #1 @ encoding: [0x85,0x40,0xa4,0xe0] 1083345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r4, r5, lsl #31 @ encoding: [0x85,0x4f,0xa4,0xe0] 1093345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r4, r5, lsr #1 @ encoding: [0xa5,0x40,0xa4,0xe0] 1103345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r4, r5, lsr #31 @ encoding: [0xa5,0x4f,0xa4,0xe0] 1113345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r4, r5, lsr #32 @ encoding: [0x25,0x40,0xa4,0xe0] 1123345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r4, r5, asr #1 @ encoding: [0xc5,0x40,0xa4,0xe0] 1133345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r4, r5, asr #31 @ encoding: [0xc5,0x4f,0xa4,0xe0] 1143345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r4, r5, asr #32 @ encoding: [0x45,0x40,0xa4,0xe0] 1153345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r4, r5, ror #1 @ encoding: [0xe5,0x40,0xa4,0xe0] 1163345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r4, r5, ror #31 @ encoding: [0xe5,0x4f,0xa4,0xe0] 1173345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r4, r5, rrx @ encoding: [0x65,0x40,0xa4,0xe0] 1183345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r6, r6, r7, lsl r9 @ encoding: [0x17,0x69,0xa6,0xe0] 1193345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r6, r6, r7, lsr r9 @ encoding: [0x37,0x69,0xa6,0xe0] 1203345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r6, r6, r7, asr r9 @ encoding: [0x57,0x69,0xa6,0xe0] 1213345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r6, r6, r7, ror r9 @ encoding: [0x77,0x69,0xa6,0xe0] 1223345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: adc r4, r4, r5, rrx @ encoding: [0x65,0x40,0xa4,0xe0] 1233345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 1243345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 1253345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@------------------------------------------------------------------------------ 1263345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ FIXME: ADR 1273345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@------------------------------------------------------------------------------ 1283345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 1293345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@------------------------------------------------------------------------------ 1303345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ ADD 1313345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@------------------------------------------------------------------------------ 13221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen add r4, r5, #0xf000 1333345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r4, r5, r6 1343345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r4, r5, r6, lsl #5 1353345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r4, r5, r6, lsr #5 1363345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r4, r5, r6, lsr #5 1373345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r4, r5, r6, asr #5 1383345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r4, r5, r6, ror #5 1393345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r6, r7, r8, lsl r9 1403345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r6, r7, r8, lsr r9 1413345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r6, r7, r8, asr r9 1423345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r6, r7, r8, ror r9 1433345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r4, r5, r6, rrx 1443345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 1453345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick @ destination register is optional 1463345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r5, #0xf000 1473345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r4, r5 1483345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r4, r5, lsl #5 1493345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r4, r5, lsr #5 1503345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r4, r5, lsr #5 1513345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r4, r5, asr #5 1523345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r4, r5, ror #5 1533345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r6, r7, lsl r9 1543345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r6, r7, lsr r9 1553345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r6, r7, asr r9 1563345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r6, r7, ror r9 1573345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick add r4, r5, rrx 1583345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 1593345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r4, r5, #61440 @ encoding: [0x0f,0x4a,0x85,0xe2] 1603345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r4, r5, r6 @ encoding: [0x06,0x40,0x85,0xe0] 1613345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r4, r5, r6, lsl #5 @ encoding: [0x86,0x42,0x85,0xe0] 1623345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0x85,0xe0] 1633345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0x85,0xe0] 1643345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r4, r5, r6, asr #5 @ encoding: [0xc6,0x42,0x85,0xe0] 1653345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r4, r5, r6, ror #5 @ encoding: [0xe6,0x42,0x85,0xe0] 1663345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r6, r7, r8, lsl r9 @ encoding: [0x18,0x69,0x87,0xe0] 1673345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r6, r7, r8, lsr r9 @ encoding: [0x38,0x69,0x87,0xe0] 1683345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r6, r7, r8, asr r9 @ encoding: [0x58,0x69,0x87,0xe0] 1693345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r6, r7, r8, ror r9 @ encoding: [0x78,0x69,0x87,0xe0] 1703345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r4, r5, r6, rrx @ encoding: [0x66,0x40,0x85,0xe0] 1713345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 1723345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 1733345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r5, r5, #61440 @ encoding: [0x0f,0x5a,0x85,0xe2] 1743345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r4, r4, r5 @ encoding: [0x05,0x40,0x84,0xe0] 1753345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r4, r4, r5, lsl #5 @ encoding: [0x85,0x42,0x84,0xe0] 1763345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0x84,0xe0] 1773345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0x84,0xe0] 1783345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r4, r4, r5, asr #5 @ encoding: [0xc5,0x42,0x84,0xe0] 1793345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r4, r4, r5, ror #5 @ encoding: [0xe5,0x42,0x84,0xe0] 1803345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r6, r6, r7, lsl r9 @ encoding: [0x17,0x69,0x86,0xe0] 1813345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r6, r6, r7, lsr r9 @ encoding: [0x37,0x69,0x86,0xe0] 1823345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r6, r6, r7, asr r9 @ encoding: [0x57,0x69,0x86,0xe0] 1833345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r6, r6, r7, ror r9 @ encoding: [0x77,0x69,0x86,0xe0] 1843345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@ CHECK: add r4, r4, r5, rrx @ encoding: [0x65,0x40,0x84,0xe0] 1853345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 1863345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 187@------------------------------------------------------------------------------ 188@ AND 189@------------------------------------------------------------------------------ 190 and r10, r1, #0xf 191 and r10, r1, r6 192 and r10, r1, r6, lsl #10 193 and r10, r1, r6, lsr #10 194 and r10, r1, r6, lsr #10 195 and r10, r1, r6, asr #10 196 and r10, r1, r6, ror #10 197 and r6, r7, r8, lsl r2 198 and r6, r7, r8, lsr r2 199 and r6, r7, r8, asr r2 200 and r6, r7, r8, ror r2 201 and r10, r1, r6, rrx 202 203 @ destination register is optional 204 and r1, #0xf 205 and r10, r1 206 and r10, r1, lsl #10 207 and r10, r1, lsr #10 208 and r10, r1, lsr #10 209 and r10, r1, asr #10 210 and r10, r1, ror #10 211 and r6, r7, lsl r2 212 and r6, r7, lsr r2 213 and r6, r7, asr r2 214 and r6, r7, ror r2 215 and r10, r1, rrx 216 217@ CHECK: and r10, r1, #15 @ encoding: [0x0f,0xa0,0x01,0xe2] 218@ CHECK: and r10, r1, r6 @ encoding: [0x06,0xa0,0x01,0xe0] 219@ CHECK: and r10, r1, r6, lsl #10 @ encoding: [0x06,0xa5,0x01,0xe0] 220@ CHECK: and r10, r1, r6, lsr #10 @ encoding: [0x26,0xa5,0x01,0xe0] 221@ CHECK: and r10, r1, r6, lsr #10 @ encoding: [0x26,0xa5,0x01,0xe0] 222@ CHECK: and r10, r1, r6, asr #10 @ encoding: [0x46,0xa5,0x01,0xe0] 223@ CHECK: and r10, r1, r6, ror #10 @ encoding: [0x66,0xa5,0x01,0xe0] 224@ CHECK: and r6, r7, r8, lsl r2 @ encoding: [0x18,0x62,0x07,0xe0] 225@ CHECK: and r6, r7, r8, lsr r2 @ encoding: [0x38,0x62,0x07,0xe0] 226@ CHECK: and r6, r7, r8, asr r2 @ encoding: [0x58,0x62,0x07,0xe0] 227@ CHECK: and r6, r7, r8, ror r2 @ encoding: [0x78,0x62,0x07,0xe0] 228@ CHECK: and r10, r1, r6, rrx @ encoding: [0x66,0xa0,0x01,0xe0] 229 230@ CHECK: and r1, r1, #15 @ encoding: [0x0f,0x10,0x01,0xe2] 231@ CHECK: and r10, r10, r1 @ encoding: [0x01,0xa0,0x0a,0xe0] 232@ CHECK: and r10, r10, r1, lsl #10 @ encoding: [0x01,0xa5,0x0a,0xe0] 233@ CHECK: and r10, r10, r1, lsr #10 @ encoding: [0x21,0xa5,0x0a,0xe0] 234@ CHECK: and r10, r10, r1, lsr #10 @ encoding: [0x21,0xa5,0x0a,0xe0] 235@ CHECK: and r10, r10, r1, asr #10 @ encoding: [0x41,0xa5,0x0a,0xe0] 236@ CHECK: and r10, r10, r1, ror #10 @ encoding: [0x61,0xa5,0x0a,0xe0] 237@ CHECK: and r6, r6, r7, lsl r2 @ encoding: [0x17,0x62,0x06,0xe0] 238@ CHECK: and r6, r6, r7, lsr r2 @ encoding: [0x37,0x62,0x06,0xe0] 239@ CHECK: and r6, r6, r7, asr r2 @ encoding: [0x57,0x62,0x06,0xe0] 240@ CHECK: and r6, r6, r7, ror r2 @ encoding: [0x77,0x62,0x06,0xe0] 241@ CHECK: and r10, r10, r1, rrx @ encoding: [0x61,0xa0,0x0a,0xe0] 242 243@------------------------------------------------------------------------------ 244@ FIXME: ASR 245@------------------------------------------------------------------------------ 246@------------------------------------------------------------------------------ 247@ FIXME: B 248@------------------------------------------------------------------------------ 249@------------------------------------------------------------------------------ 250@ FIXME: BFC 251@------------------------------------------------------------------------------ 252@------------------------------------------------------------------------------ 253@ FIXME: BFI 254@------------------------------------------------------------------------------ 255