| @ Test file for ARM/GAS -- basic instructions |
| |
| .text |
| .align |
| mov r0, #0 |
| mov r1, r2 |
| mov r3, r4, lsl #3 |
| mov r5, r6, lsr r7 |
| mov r8, r9, asr r10 |
| mov r11, r12, asl r13 |
| mov r14, r15, rrx |
| moval r1, r2 |
| moveq r2, r3 |
| movne r4, r5 |
| movlt r6, r7 |
| movge r8, r9 |
| movle r10, r11 |
| movgt r12, r13 |
| movcc r1, r2 |
| movcs r1, r3 |
| movmi r3, r6 |
| movpl r7, r9 |
| movvs r1, r8 |
| movvc r9, r1, lsr #31 |
| movhi r8, r15 |
| movls r15, r14 |
| movhs r9, r8 |
| movul r1, r3 |
| movs r0, r8 |
| movuls r0, r7 |
| |
| add r0, r1, #10 |
| add r2, r3, r4 |
| add r5, r6, r7, asl #5 |
| add r1, r2, r3, lsl r1 |
| |
| and r0, r1, #10 |
| and r2, r3, r4 |
| and r5, r6, r7, asl #5 |
| and r1, r2, r3, lsl r1 |
| |
| eor r0, r1, #10 |
| eor r2, r3, r4 |
| eor r5, r6, r7, asl #5 |
| eor r1, r2, r3, lsl r1 |
| |
| sub r0, r1, #10 |
| sub r2, r3, r4 |
| sub r5, r6, r7, asl #5 |
| sub r1, r2, r3, lsl r1 |
| |
| adc r0, r1, #10 |
| adc r2, r3, r4 |
| adc r5, r6, r7, asl #5 |
| adc r1, r2, r3, lsl r1 |
| |
| sbc r0, r1, #10 |
| sbc r2, r3, r4 |
| sbc r5, r6, r7, asl #5 |
| sbc r1, r2, r3, lsl r1 |
| |
| rsb r0, r1, #10 |
| rsb r2, r3, r4 |
| rsb r5, r6, r7, asl #5 |
| rsb r1, r2, r3, lsl r1 |
| |
| rsc r0, r1, #10 |
| rsc r2, r3, r4 |
| rsc r5, r6, r7, asl #5 |
| rsc r1, r2, r3, lsl r1 |
| |
| orr r0, r1, #10 |
| orr r2, r3, r4 |
| orr r5, r6, r7, asl #5 |
| orr r1, r2, r3, lsl r1 |
| |
| bic r0, r1, #10 |
| bic r2, r3, r4 |
| bic r5, r6, r7, asl #5 |
| bic r1, r2, r3, lsl r1 |
| |
| mvn r0, #10 |
| mvn r2, r4 |
| mvn r5, r7, asl #5 |
| mvn r1, r3, lsl r1 |
| |
| tst r0, #10 |
| tst r2, r4 |
| tst r5, r7, asl #5 |
| tst r1, r3, lsl r1 |
| |
| teq r0, #10 |
| teq r2, r4 |
| teq r5, r7, asl #5 |
| teq r1, r3, lsl r1 |
| |
| cmp r0, #10 |
| cmp r2, r4 |
| cmp r5, r7, asl #5 |
| cmp r1, r3, lsl r1 |
| |
| cmn r0, #10 |
| cmn r2, r4 |
| cmn r5, r7, asl #5 |
| cmn r1, r3, lsl r1 |
| |
| teqp r0, #10 |
| teqp r2, r4 |
| teqp r5, r7, asl #5 |
| teqp r1, r3, lsl r1 |
| |
| cmnp r0, #10 |
| cmnp r2, r4 |
| cmnp r5, r7, asl #5 |
| cmnp r1, r3, lsl r1 |
| |
| cmpp r0, #10 |
| cmpp r2, r4 |
| cmpp r5, r7, asl #5 |
| cmpp r1, r3, lsl r1 |
| |
| tstp r0, #10 |
| tstp r2, r4 |
| tstp r5, r7, asl #5 |
| tstp r1, r3, lsl r1 |
| |
| mul r0, r1, r2 |
| muls r1, r2, r3 |
| mulne r0, r1, r0 |
| mullss r9, r8, r7 |
| |
| mla r1, r9, r10, r11 |
| mlas r3, r4, r9, r12 |
| mlalt r9, r8, r7, r13 |
| mlages r4, r1, r3, r14 |
| |
| ldr r0, [r1] |
| ldr r1, [r1, r2] |
| ldr r2, [r3, r4]! |
| ldr r2, [r2, #32] |
| ldr r2, [r3, r4, lsr #8] |
| ldreq r4, [r5, r4, asl #9]! |
| ldrne r4, [r5], #6 |
| ldrt r1, [r2], r3 |
| ldr r2, [r4], r5, lsr #8 |
| foo: |
| ldr r0, foo |
| ldrb r3, [r4] |
| ldrnebt r5, [r8] |
| |
| str r0, [r1] |
| str r1, [r1, r2] |
| str r3, [r4, r3]! |
| str r2, [r2, #32] |
| str r2, [r3, r4, lsr #8] |
| streq r4, [r5, r4, asl #9]! |
| strne r4, [r5], #6 |
| str r1, [r2], r3 |
| strt r2, [r4], r5, lsr #8 |
| str r1, bar |
| bar: |
| stralb r1, [r7] |
| strbt r2, [r0] |
| |
| ldmia r0, {r1} |
| ldmeqib r2, {r3, r4, r5} |
| ldmalda r3, {r0-r15}^ |
| ldmdb r11!, {r0-r8, r10} |
| ldmed r1, {r0, r1, r2}|0xf0 |
| ldmfd r2, {r3, r4}+{r5, r6, r7, r8} |
| ldmea r3, 3 |
| ldmfa r4!, {r8, r9}^ |
| |
| stmia r0, {r1} |
| stmeqib r2, {r3, r4, r5} |
| stmalda r3, {r0-r15}^ |
| stmdb r10!, {r0-r8, r10} |
| stmed r1, {r0, r1, r2} |
| stmfd r2, {r3, r4} |
| stmea r3, 3 |
| stmfa r4!, {r8, r9}^ |
| |
| swi 0x123456 |
| swihs 0x33 |
| |
| bl _wombat |
| blpl bar |
| b _wibble |
| ble testerfunc |