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