Commit | Line | Data |
---|---|---|
c19d1205 ZW |
1 | @ ARM instructions defined for source compatibility with Thumb. |
2 | .macro shift op opls ops oplss | |
3 | \oplss r9,r0 | |
4 | \opls r0,r0,r9 | |
5 | \ops r0,#17 | |
6 | \op r0,r9,#17 | |
7 | .endm | |
8 | .text | |
9 | .global l | |
10 | l: | |
11 | cpyls r0,r0 | |
12 | cpy r9,r0 | |
13 | cpy r0,r9 | |
14 | cpy ip,lr | |
15 | ||
16 | shift lsl lslls lsls lsllss | |
17 | shift lsr lsrls lsrs lsrlss | |
18 | shift asr asrls asrs asrlss | |
19 | shift ror rorls rors rorlss | |
20 | ||
21 | neg r0,r9 | |
22 | negs r9,r0 | |
23 | negls r0,r0 | |
24 | neglss r9,r9 | |
25 | ||
26 | push {r1,r2,r3} | |
27 | pushls {r2,r4,r6,r8,pc} | |
28 | pop {r1,r2,r3} | |
29 | popls {r2,r4,r6,r8,pc} | |
30 | ||
31 | @ Two-argument forms of ARM arithmetic instructions. | |
32 | and r0,r1 | |
33 | eor r0,r1 | |
34 | sub r0,r1 | |
35 | rsb r0,r1 | |
36 | ||
37 | add r0,r1 | |
38 | adc r0,r1 | |
39 | sbc r0,r1 | |
40 | rsc r0,r1 | |
41 | ||
42 | orr r0,r1 | |
43 | bic r0,r1 | |
44 | mul r0,r1 | |
45 | nop | |
1c444d06 JM |
46 | |
47 | rrx r0,r9 | |
48 | rrxs r9,r0 | |
49 | nop | |
50 | nop |