| @ ARM instructions defined for source compatibility with Thumb. |
| .macro shift op opls ops oplss |
| \oplss r9,r0 |
| \opls r0,r0,r9 |
| \ops r0,#17 |
| \op r0,r9,#17 |
| .endm |
| .text |
| .global l |
| l: |
| cpyls r0,r0 |
| cpy r9,r0 |
| cpy r0,r9 |
| cpy ip,lr |
| |
| shift lsl lslls lsls lsllss |
| shift lsr lsrls lsrs lsrlss |
| shift asr asrls asrs asrlss |
| shift ror rorls rors rorlss |
| |
| neg r0,r9 |
| negs r9,r0 |
| negls r0,r0 |
| neglss r9,r9 |
| |
| push {r1,r2,r3} |
| pushls {r2,r4,r6,r8,pc} |
| pop {r1,r2,r3} |
| popls {r2,r4,r6,r8,pc} |
| |
| @ Two-argument forms of ARM arithmetic instructions. |
| and r0,r1 |
| eor r0,r1 |
| sub r0,r1 |
| rsb r0,r1 |
| |
| add r0,r1 |
| adc r0,r1 |
| sbc r0,r1 |
| rsc r0,r1 |
| |
| orr r0,r1 |
| bic r0,r1 |
| mul r0,r1 |
| nop |