1#objdump: -dr --prefix-addresses --show-raw-insn 2#name: ARM basic instructions 3#as: -mcpu=arm7m -EL 4# WinCE has its own version of this test. 5#skip: *-wince-* 6 7# Test the standard ARM instructions: 8 9.*: +file format .*arm.* 10 11Disassembly of section .text: 120+000 <[^>]*> e3a00000 ? mov r0, #0 ; 0x0 130+004 <[^>]*> e1a01002 ? mov r1, r2 140+008 <[^>]*> e1a03184 ? mov r3, r4, lsl #3 150+00c <[^>]*> e1a05736 ? mov r5, r6, lsr r7 160+010 <[^>]*> e1a08a59 ? mov r8, r9, asr sl 170+014 <[^>]*> e1a0bd1c ? mov fp, ip, lsl sp 180+018 <[^>]*> e1a0e06f ? mov lr, pc, rrx 190+01c <[^>]*> e1a01002 ? mov r1, r2 200+020 <[^>]*> 01a02003 ? moveq r2, r3 210+024 <[^>]*> 11a04005 ? movne r4, r5 220+028 <[^>]*> b1a06007 ? movlt r6, r7 230+02c <[^>]*> a1a08009 ? movge r8, r9 240+030 <[^>]*> d1a0a00b ? movle sl, fp 250+034 <[^>]*> c1a0c00d ? movgt ip, sp 260+038 <[^>]*> 31a01002 ? movcc r1, r2 270+03c <[^>]*> 21a01003 ? movcs r1, r3 280+040 <[^>]*> 41a03006 ? movmi r3, r6 290+044 <[^>]*> 51a07009 ? movpl r7, r9 300+048 <[^>]*> 61a01008 ? movvs r1, r8 310+04c <[^>]*> 71a09fa1 ? movvc r9, r1, lsr #31 320+050 <[^>]*> 81a0800f ? movhi r8, pc 330+054 <[^>]*> 91a0f00e ? movls pc, lr 340+058 <[^>]*> 21a09008 ? movcs r9, r8 350+05c <[^>]*> 31a01003 ? movcc r1, r3 360+060 <[^>]*> e1b00008 ? movs r0, r8 370+064 <[^>]*> 31b00007 ? movccs r0, r7 380+068 <[^>]*> e281000a ? add r0, r1, #10 ; 0xa 390+06c <[^>]*> e0832004 ? add r2, r3, r4 400+070 <[^>]*> e0865287 ? add r5, r6, r7, lsl #5 410+074 <[^>]*> e0821113 ? add r1, r2, r3, lsl r1 420+078 <[^>]*> e201000a ? and r0, r1, #10 ; 0xa 430+07c <[^>]*> e0032004 ? and r2, r3, r4 440+080 <[^>]*> e0065287 ? and r5, r6, r7, lsl #5 450+084 <[^>]*> e0021113 ? and r1, r2, r3, lsl r1 460+088 <[^>]*> e221000a ? eor r0, r1, #10 ; 0xa 470+08c <[^>]*> e0232004 ? eor r2, r3, r4 480+090 <[^>]*> e0265287 ? eor r5, r6, r7, lsl #5 490+094 <[^>]*> e0221113 ? eor r1, r2, r3, lsl r1 500+098 <[^>]*> e241000a ? sub r0, r1, #10 ; 0xa 510+09c <[^>]*> e0432004 ? sub r2, r3, r4 520+0a0 <[^>]*> e0465287 ? sub r5, r6, r7, lsl #5 530+0a4 <[^>]*> e0421113 ? sub r1, r2, r3, lsl r1 540+0a8 <[^>]*> e2a1000a ? adc r0, r1, #10 ; 0xa 550+0ac <[^>]*> e0a32004 ? adc r2, r3, r4 560+0b0 <[^>]*> e0a65287 ? adc r5, r6, r7, lsl #5 570+0b4 <[^>]*> e0a21113 ? adc r1, r2, r3, lsl r1 580+0b8 <[^>]*> e2c1000a ? sbc r0, r1, #10 ; 0xa 590+0bc <[^>]*> e0c32004 ? sbc r2, r3, r4 600+0c0 <[^>]*> e0c65287 ? sbc r5, r6, r7, lsl #5 610+0c4 <[^>]*> e0c21113 ? sbc r1, r2, r3, lsl r1 620+0c8 <[^>]*> e261000a ? rsb r0, r1, #10 ; 0xa 630+0cc <[^>]*> e0632004 ? rsb r2, r3, r4 640+0d0 <[^>]*> e0665287 ? rsb r5, r6, r7, lsl #5 650+0d4 <[^>]*> e0621113 ? rsb r1, r2, r3, lsl r1 660+0d8 <[^>]*> e2e1000a ? rsc r0, r1, #10 ; 0xa 670+0dc <[^>]*> e0e32004 ? rsc r2, r3, r4 680+0e0 <[^>]*> e0e65287 ? rsc r5, r6, r7, lsl #5 690+0e4 <[^>]*> e0e21113 ? rsc r1, r2, r3, lsl r1 700+0e8 <[^>]*> e381000a ? orr r0, r1, #10 ; 0xa 710+0ec <[^>]*> e1832004 ? orr r2, r3, r4 720+0f0 <[^>]*> e1865287 ? orr r5, r6, r7, lsl #5 730+0f4 <[^>]*> e1821113 ? orr r1, r2, r3, lsl r1 740+0f8 <[^>]*> e3c1000a ? bic r0, r1, #10 ; 0xa 750+0fc <[^>]*> e1c32004 ? bic r2, r3, r4 760+100 <[^>]*> e1c65287 ? bic r5, r6, r7, lsl #5 770+104 <[^>]*> e1c21113 ? bic r1, r2, r3, lsl r1 780+108 <[^>]*> e3e0000a ? mvn r0, #10 ; 0xa 790+10c <[^>]*> e1e02004 ? mvn r2, r4 800+110 <[^>]*> e1e05287 ? mvn r5, r7, lsl #5 810+114 <[^>]*> e1e01113 ? mvn r1, r3, lsl r1 820+118 <[^>]*> e310000a ? tst r0, #10 ; 0xa 830+11c <[^>]*> e1120004 ? tst r2, r4 840+120 <[^>]*> e1150287 ? tst r5, r7, lsl #5 850+124 <[^>]*> e1110113 ? tst r1, r3, lsl r1 860+128 <[^>]*> e330000a ? teq r0, #10 ; 0xa 870+12c <[^>]*> e1320004 ? teq r2, r4 880+130 <[^>]*> e1350287 ? teq r5, r7, lsl #5 890+134 <[^>]*> e1310113 ? teq r1, r3, lsl r1 900+138 <[^>]*> e350000a ? cmp r0, #10 ; 0xa 910+13c <[^>]*> e1520004 ? cmp r2, r4 920+140 <[^>]*> e1550287 ? cmp r5, r7, lsl #5 930+144 <[^>]*> e1510113 ? cmp r1, r3, lsl r1 940+148 <[^>]*> e370000a ? cmn r0, #10 ; 0xa 950+14c <[^>]*> e1720004 ? cmn r2, r4 960+150 <[^>]*> e1750287 ? cmn r5, r7, lsl #5 970+154 <[^>]*> e1710113 ? cmn r1, r3, lsl r1 980+158 <[^>]*> e330f00a ? teqp r0, #10 ; 0xa 990+15c <[^>]*> e132f004 ? teqp r2, r4 1000+160 <[^>]*> e135f287 ? teqp r5, r7, lsl #5 1010+164 <[^>]*> e131f113 ? teqp r1, r3, lsl r1 1020+168 <[^>]*> e370f00a ? cmnp r0, #10 ; 0xa 1030+16c <[^>]*> e172f004 ? cmnp r2, r4 1040+170 <[^>]*> e175f287 ? cmnp r5, r7, lsl #5 1050+174 <[^>]*> e171f113 ? cmnp r1, r3, lsl r1 1060+178 <[^>]*> e350f00a ? cmpp r0, #10 ; 0xa 1070+17c <[^>]*> e152f004 ? cmpp r2, r4 1080+180 <[^>]*> e155f287 ? cmpp r5, r7, lsl #5 1090+184 <[^>]*> e151f113 ? cmpp r1, r3, lsl r1 1100+188 <[^>]*> e310f00a ? tstp r0, #10 ; 0xa 1110+18c <[^>]*> e112f004 ? tstp r2, r4 1120+190 <[^>]*> e115f287 ? tstp r5, r7, lsl #5 1130+194 <[^>]*> e111f113 ? tstp r1, r3, lsl r1 1140+198 <[^>]*> e0000291 ? mul r0, r1, r2 1150+19c <[^>]*> e0110392 ? muls r1, r2, r3 1160+1a0 <[^>]*> 10000091 ? mulne r0, r1, r0 1170+1a4 <[^>]*> 90190798 ? mullss r9, r8, r7 1180+1a8 <[^>]*> e021ba99 ? mla r1, r9, sl, fp 1190+1ac <[^>]*> e033c994 ? mlas r3, r4, r9, ip 1200+1b0 <[^>]*> b029d798 ? mlalt r9, r8, r7, sp 1210+1b4 <[^>]*> a034e391 ? mlages r4, r1, r3, lr 1220+1b8 <[^>]*> e5910000 ? ldr r0, \[r1\] 1230+1bc <[^>]*> e7911002 ? ldr r1, \[r1, r2\] 1240+1c0 <[^>]*> e7b32004 ? ldr r2, \[r3, r4\]! 1250+1c4 <[^>]*> e5922020 ? ldr r2, \[r2, #32\] 1260+1c8 <[^>]*> e7932424 ? ldr r2, \[r3, r4, lsr #8\] 1270+1cc <[^>]*> 07b54484 ? ldreq r4, \[r5, r4, lsl #9\]! 1280+1d0 <[^>]*> 14954006 ? ldrne r4, \[r5\], #6 1290+1d4 <[^>]*> e6b21003 ? ldrt r1, \[r2\], r3 1300+1d8 <[^>]*> e6942425 ? ldr r2, \[r4\], r5, lsr #8 1310+1dc <[^>]*> e51f0008 ? ldr r0, \[pc, #-8\] ; 0+1dc <[^>]*> 1320+1e0 <[^>]*> e5d43000 ? ldrb r3, \[r4\] 1330+1e4 <[^>]*> 14f85000 ? ldrnebt r5, \[r8\] 1340+1e8 <[^>]*> e5810000 ? str r0, \[r1\] 1350+1ec <[^>]*> e7811002 ? str r1, \[r1, r2\] 1360+1f0 <[^>]*> e7a43003 ? str r3, \[r4, r3\]! 1370+1f4 <[^>]*> e5822020 ? str r2, \[r2, #32\] 1380+1f8 <[^>]*> e7832424 ? str r2, \[r3, r4, lsr #8\] 1390+1fc <[^>]*> 07a54484 ? streq r4, \[r5, r4, lsl #9\]! 1400+200 <[^>]*> 14854006 ? strne r4, \[r5\], #6 1410+204 <[^>]*> e6821003 ? str r1, \[r2\], r3 1420+208 <[^>]*> e6a42425 ? strt r2, \[r4\], r5, lsr #8 1430+20c <[^>]*> e50f1004 ? str r1, \[pc, #-4\] ; 0+210 <[^>]*> 1440+210 <[^>]*> e5c71000 ? strb r1, \[r7\] 1450+214 <[^>]*> e4e02000 ? strbt r2, \[r0\] 1460+218 <[^>]*> e8900002 ? ldmia r0, {r1} 1470+21c <[^>]*> 09920038 ? ldmeqib r2, {r3, r4, r5} 1480+220 <[^>]*> e853ffff ? ldmda r3, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, sp, lr, pc}\^ 1490+224 <[^>]*> e93b05ff ? ldmdb fp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, sl} 1500+228 <[^>]*> e99100f7 ? ldmib r1, {r0, r1, r2, r4, r5, r6, r7} 1510+22c <[^>]*> e89201f8 ? ldmia r2, {r3, r4, r5, r6, r7, r8} 1520+230 <[^>]*> e9130003 ? ldmdb r3, {r0, r1} 1530+234 <[^>]*> e8540300 ? ldmda r4, {r8, r9}\^ 1540+238 <[^>]*> e8800002 ? stmia r0, {r1} 1550+23c <[^>]*> 09820038 ? stmeqib r2, {r3, r4, r5} 1560+240 <[^>]*> e843ffff ? stmda r3, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, sp, lr, pc}\^ 1570+244 <[^>]*> e92b05ff ? stmdb fp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, sl} 1580+248 <[^>]*> e8010007 ? stmda r1, {r0, r1, r2} 1590+24c <[^>]*> e9020018 ? stmdb r2, {r3, r4} 1600+250 <[^>]*> e8830003 ? stmia r3, {r0, r1} 1610+254 <[^>]*> e9c40300 ? stmib r4, {r8, r9}\^ 1620+258 <[^>]*> ef123456 ? (swi|svc) 0x00123456 1630+25c <[^>]*> 2f000033 ? (swi|svc)cs 0x00000033 1640+260 <[^>]*> eb...... ? bl 0[0123456789abcdef]+ <[^>]*> 165[ ]*260:.*_wombat.* 1660+264 <[^>]*> 5b...... ? blpl 0[0123456789abcdef]+ <[^>]*> 167[ ]*264:.*ARM.*hohum.* 1680+268 <[^>]*> ea...... ? b 0[0123456789abcdef]+ <[^>]*> 169[ ]*268:.*_wibble.* 1700+26c <[^>]*> da...... ? ble 0[0123456789abcdef]+ <[^>]*> 171[ ]*26c:.*testerfunc.* 1720+270 <[^>]*> e1a01102 ? mov r1, r2, lsl #2 1730+274 <[^>]*> e1a01002 ? mov r1, r2 1740+278 <[^>]*> e1a01f82 ? mov r1, r2, lsl #31 1750+27c <[^>]*> e1a01312 ? mov r1, r2, lsl r3 1760+280 <[^>]*> e1a01122 ? mov r1, r2, lsr #2 1770+284 <[^>]*> e1a01fa2 ? mov r1, r2, lsr #31 1780+288 <[^>]*> e1a01022 ? mov r1, r2, lsr #32 1790+28c <[^>]*> e1a01332 ? mov r1, r2, lsr r3 1800+290 <[^>]*> e1a01142 ? mov r1, r2, asr #2 1810+294 <[^>]*> e1a01fc2 ? mov r1, r2, asr #31 1820+298 <[^>]*> e1a01042 ? mov r1, r2, asr #32 1830+29c <[^>]*> e1a01352 ? mov r1, r2, asr r3 1840+2a0 <[^>]*> e1a01162 ? mov r1, r2, ror #2 1850+2a4 <[^>]*> e1a01fe2 ? mov r1, r2, ror #31 1860+2a8 <[^>]*> e1a01372 ? mov r1, r2, ror r3 1870+2ac <[^>]*> e1a01062 ? mov r1, r2, rrx 1880+2b0 <[^>]*> e1a01102 ? mov r1, r2, lsl #2 1890+2b4 <[^>]*> e1a01002 ? mov r1, r2 1900+2b8 <[^>]*> e1a01f82 ? mov r1, r2, lsl #31 1910+2bc <[^>]*> e1a01312 ? mov r1, r2, lsl r3 1920+2c0 <[^>]*> e1a01122 ? mov r1, r2, lsr #2 1930+2c4 <[^>]*> e1a01fa2 ? mov r1, r2, lsr #31 1940+2c8 <[^>]*> e1a01022 ? mov r1, r2, lsr #32 1950+2cc <[^>]*> e1a01332 ? mov r1, r2, lsr r3 1960+2d0 <[^>]*> e1a01142 ? mov r1, r2, asr #2 1970+2d4 <[^>]*> e1a01fc2 ? mov r1, r2, asr #31 1980+2d8 <[^>]*> e1a01042 ? mov r1, r2, asr #32 1990+2dc <[^>]*> e1a01352 ? mov r1, r2, asr r3 2000+2e0 <[^>]*> e1a01162 ? mov r1, r2, ror #2 2010+2e4 <[^>]*> e1a01fe2 ? mov r1, r2, ror #31 2020+2e8 <[^>]*> e1a01372 ? mov r1, r2, ror r3 2030+2ec <[^>]*> e1a01062 ? mov r1, r2, rrx 204