Commit | Line | Data |
---|---|---|
a471a06b HPN |
1 | ; Check the push and pop builtin "macros". |
2 | .text | |
0465aa2f | 3 | .syntax no_register_prefix |
a471a06b HPN |
4 | start: |
5 | push r1 | |
6 | push r0 | |
7 | push r4 | |
a471a06b HPN |
8 | ; Check that there is no recognition of invalid offsets. |
9 | move.b r5,[sp=sp-8] | |
10 | move.w r5,[sp=sp-8] | |
11 | move.d r5,[sp=sp-8] | |
12 | ||
13 | move.b r5,[sp=sp-5] | |
14 | move.w r5,[sp=sp-5] | |
15 | move.d r5,[sp=sp-5] | |
16 | ||
17 | move.w r5,[sp=sp-4] | |
18 | move.b r3,[sp=sp-4] | |
19 | ||
20 | move.d r5,[sp=sp-3] | |
21 | move.w r11,[sp=sp-3] | |
22 | move.b r5,[sp=sp-3] | |
23 | ||
24 | move.d r5,[sp=sp-2] | |
25 | move.b r5,[sp=sp-2] | |
26 | ||
27 | move.d r5,[sp=sp-1] | |
28 | move.w r5,[sp=sp-1] | |
29 | ||
30 | move.d r5,[sp=sp+0] | |
31 | move.b r5,[sp=sp+0] | |
32 | move.w r5,[sp=sp+0] | |
33 | ||
34 | move.d r5,[sp=sp+1] | |
35 | move.w r5,[sp=sp+1] | |
36 | move.b r5,[sp=sp+1] | |
37 | ||
38 | move.d r5,[sp=sp+2] | |
39 | move.w r5,[sp=sp+2] | |
40 | move.b r5,[sp=sp+2] | |
41 | ||
42 | move.d r5,[sp=sp+3] | |
43 | move.w r5,[sp=sp+3] | |
44 | move.b r5,[sp=sp+3] | |
45 | ||
46 | move.d r5,[sp=sp+4] | |
47 | move.w r5,[sp=sp+4] | |
48 | move.b r5,[sp=sp+4] | |
49 | ||
50 | move.d r5,[sp=sp+5] | |
51 | move.w r5,[sp=sp+5] | |
52 | move.b r5,[sp=sp+5] | |
53 | ||
54 | move.d r1,[sp=sp+8] | |
55 | move.w r9,[sp=sp+8] | |
56 | move.b r13,[sp=sp+8] | |
57 | ||
58 | ; | |
59 | ; All these will have postincrement on the "real" instruction | |
60 | ; (e.g. "move.d [sp+],r6") which is the actual insn recognized as | |
61 | ; pop; it is *not* e.g. "move.d [sp=sp+4],r6". | |
62 | ; Here we make sure that neither the combination nor the second | |
63 | ; is interpreted as a pop. | |
64 | ; | |
65 | move.b [sp=sp+8],r5 | |
66 | move.w [sp=sp+8],r5 | |
67 | move.d [sp=sp+8],r5 | |
68 | ||
69 | move.b [sp=sp+5],r5 | |
70 | move.w [sp=sp+5],r5 | |
71 | move.d [sp=sp+5],r5 | |
72 | ||
73 | move.d [sp=sp+4],r5 | |
74 | move.w [sp=sp+4],r5 | |
75 | move.b [sp=sp+4],r3 | |
76 | ||
77 | move.d [sp=sp+3],r5 | |
78 | move.w [sp=sp+3],r11 | |
79 | move.b [sp=sp+3],r5 | |
80 | ||
81 | move.d [sp=sp+2],r5 | |
82 | move.w [sp=sp+2],r5 | |
83 | move.b [sp=sp+2],r5 | |
84 | ||
85 | move.d [sp=sp+1],r5 | |
86 | move.w [sp=sp+1],r5 | |
87 | move.b [sp=sp+1],r5 | |
88 | ||
89 | move.d [sp=sp-0],r5 | |
90 | move.w [sp=sp-0],r5 | |
91 | move.b [sp=sp-0],r5 | |
92 | ||
93 | move.d [sp=sp-1],r5 | |
94 | move.w [sp=sp-1],r5 | |
95 | move.b [sp=sp-1],r5 | |
96 | ||
97 | move.d [sp=sp-2],r5 | |
98 | move.w [sp=sp-2],r5 | |
99 | move.b [sp=sp-2],r5 | |
100 | ||
101 | move.d [sp=sp-3],r5 | |
102 | move.w [sp=sp-3],r5 | |
103 | move.b [sp=sp-3],r5 | |
104 | ||
105 | move.d [sp=sp-4],r5 | |
106 | move.w [sp=sp-4],r5 | |
107 | move.b [sp=sp-4],r5 | |
108 | ||
109 | move.d [sp=sp-5],r5 | |
110 | move.w [sp=sp-5],r5 | |
111 | move.b [sp=sp-5],r5 | |
112 | ||
113 | move.d [sp=sp-8],r5 | |
114 | move.w [sp=sp-8],r5 | |
115 | move.b [sp=sp-8],r5 | |
116 | ||
117 | push r0 | |
118 | pop r2 | |
119 | pop r3 | |
120 | push r13 | |
121 | end: |