Commit | Line | Data |
---|---|---|
3c707909 PB |
1 | .syntax unified |
2 | .thumb | |
3 | ldmstm: | |
4 | ldmia sp!, {r0} | |
5 | ldmia sp!, {r8} | |
6 | ldmia r1, {r9} | |
7 | ldmia r2!, {ip} | |
8 | ldmdb sp!, {r2} | |
9 | ldmdb sp!, {r8} | |
10 | ldmdb r6, {r4} | |
11 | ldmdb r6, {r8} | |
12 | ldmdb r2!, {r4} | |
13 | ldmdb r2!, {ip} | |
14 | stmia sp!, {r3} | |
15 | stmia sp!, {r9} | |
16 | stmia r3, {ip} | |
17 | stmia r4!, {ip} | |
18 | stmdb sp!, {r3} | |
19 | stmdb sp!, {r9} | |
20 | stmdb r7, {r5} | |
21 | stmdb r6, {ip} | |
22 | stmdb r6!, {fp} | |
23 | stmdb r5!, {r8} | |
24 | ||
1e5b0379 NC |
25 | @ Valid Thumb-2 encodings of LDM/LDMIA/LDMFD as specified by section |
26 | @ A8.6.53 of the ARM ARM | |
27 | ldmia r0!, {r1-r3} @ Encoding T1 | |
28 | ldmia r0, {r0-r3} @ Encoding T1 | |
29 | ldmia r0!, {r1} @ Encoding T1 | |
30 | ldmia r0, {r8-r11} @ Encoding T2 | |
31 | ldmia.w r0!, {r1-r3} @ Encoding T2 | |
32 | ldmia r0!, {r8-r11} @ Encoding T2 | |
33 | ldmia r0!, {r12, r14} @ Encoding T2 | |
34 | ldmia r0!, {r12, pc} @ Encoding T2 | |
35 | it eq | |
36 | ldmiaeq r0!, {r12, pc} @ Encoding T2 | |
37 | ||
38 | @ Valid Thumb-2 encodings of STM/STMIA/STMEA as specified by section | |
39 | @ A8.6.189 of the ARMARM. | |
40 | stmia r0!, {r0-r3} @ Encoding T1, Allowed as r0 is lowest reg | |
41 | stmia r0!, {r4-r7} @ Encoding T1 | |
42 | stmia.w r0!, {r4-r7} @ Encoding T2 | |
43 | stmia r0!, {r8-r11} @ Encoding T2 | |
44 | stmia r0, {r0-r3} @ Encoding T2 | |
45 | stmia r0, {r8-r11} @ Encoding T2 | |
46 | ||
47 | @ The following are technically UNPREDICTABLE if we assemble them | |
48 | @ as written, but gas translates (stm|ldm) rn(!), {rd} into an | |
49 | @ equivalent, and well-defined, (ldr, str) rd, [rn], (#4). | |
50 | ldmia.w r0!, {r1} @ ldr.w r1, [r0], #4 | |
51 | ldmia.w r0, {r1} @ ldr.w r1, [r0] | |
52 | ldmia r8!, {r9} @ ldr.w r9, [r8], #4 | |
53 | ldmia r8, {r9} @ ldr.w r9, [r8] | |
54 | stmia.w r0!, {r1} @ str.w r1, [r0], #4 | |
eab4f823 MGD |
55 | stmia r0, {r1} @ T1 str r1, [r0] |
56 | ldmia r1, {r2} @ T1 ldr r2, [r1] | |
57 | ldmia r0, {r7} @ T1 ldr r7, [r0] | |
58 | stmia sp, {r7} @ T1 str r7, [sp] | |
59 | stmia sp, {r0} @ T1 str r0, [sp] | |
60 | ldmia sp, {r7} @ T1 ldr r7, [sp] | |
61 | ldmia sp, {r0} @ T1 ldr r0, [sp] | |
1e5b0379 NC |
62 | stmia r8!, {r9} @ str.w r9, [r8], #4 |
63 | stmia r8, {r9} @ str.w r9, [r8] |