Commit | Line | Data |
---|---|---|
3f3467ff MR |
1 | .set mips16 |
2 | ||
3 | .macro mem9pos op, ri, base | |
4 | \op \ri,0(\base) | |
5 | \op \ri,1(\base) | |
6 | \op \ri,2(\base) | |
7 | \op \ri,3(\base) | |
8 | \op \ri,4(\base) | |
9 | \op \ri,8(\base) | |
10 | \op \ri,16(\base) | |
11 | \op \ri,32(\base) | |
12 | \op \ri,64(\base) | |
13 | \op \ri,128(\base) | |
14 | \op \ri,255(\base) | |
15 | .endm | |
16 | ||
17 | .macro mem9neg op, ri, base | |
18 | \op \ri,-1(\base) | |
19 | \op \ri,-2(\base) | |
20 | \op \ri,-3(\base) | |
21 | \op \ri,-4(\base) | |
22 | \op \ri,-8(\base) | |
23 | \op \ri,-16(\base) | |
24 | \op \ri,-32(\base) | |
25 | \op \ri,-64(\base) | |
26 | \op \ri,-128(\base) | |
27 | \op \ri,-256(\base) | |
28 | .endm | |
29 | ||
30 | .macro mem9 op, ri, base | |
31 | mem9pos \op, \ri, \base | |
32 | mem9neg \op, \ri, \base | |
33 | .endm | |
34 | ||
35 | .macro mem op, ri, base | |
36 | mem9pos \op, \ri, \base | |
37 | \op \ri,256(\base) | |
38 | \op \ri,512(\base) | |
39 | \op \ri,1024(\base) | |
40 | \op \ri,2048(\base) | |
41 | \op \ri,4096(\base) | |
42 | \op \ri,8192(\base) | |
43 | \op \ri,16384(\base) | |
44 | \op \ri,32767(\base) | |
45 | mem9neg \op, \ri, \base | |
46 | \op \ri,-512(\base) | |
47 | \op \ri,-1024(\base) | |
48 | \op \ri,-2048(\base) | |
49 | \op \ri,-4096(\base) | |
50 | \op \ri,-8192(\base) | |
51 | \op \ri,-16384(\base) | |
52 | \op \ri,-32768(\base) | |
53 | .endm | |
54 | ||
55 | .macro alupos op, args:vararg | |
56 | \op \args, 0 | |
57 | \op \args, 1 | |
58 | \op \args, 2 | |
59 | \op \args, 4 | |
60 | \op \args, 8 | |
61 | \op \args, 16 | |
62 | \op \args, 32 | |
63 | \op \args, 64 | |
64 | \op \args, 128 | |
65 | \op \args, 256 | |
66 | \op \args, 512 | |
67 | \op \args, 1024 | |
68 | \op \args, 2048 | |
69 | \op \args, 4096 | |
70 | \op \args, 8192 | |
71 | \op \args, 16384 | |
72 | \op \args, 32767 | |
73 | .endm | |
74 | ||
75 | .macro aluneg op, args:vararg | |
76 | \op \args, -1 | |
77 | \op \args, -2 | |
78 | \op \args, -4 | |
79 | \op \args, -8 | |
80 | \op \args, -16 | |
81 | \op \args, -32 | |
82 | \op \args, -64 | |
83 | \op \args, -128 | |
84 | \op \args, -256 | |
85 | \op \args, -512 | |
86 | \op \args, -1024 | |
87 | \op \args, -2048 | |
88 | \op \args, -4096 | |
89 | \op \args, -8192 | |
90 | \op \args, -16384 | |
91 | \op \args, -32768 | |
92 | .endm | |
93 | ||
94 | .macro aluu op, args:vararg | |
95 | alupos \op, \args | |
96 | \op \args, 32768 | |
97 | \op \args, 65535 | |
98 | .endm | |
99 | ||
100 | .macro alu op, args:vararg | |
101 | alupos \op, \args | |
102 | aluneg \op, \args | |
103 | .endm | |
104 | ||
105 | .macro bit op, ry, rx | |
106 | \op \ry, \rx, 0, 32 | |
107 | \op \ry, \rx, 1, 25 | |
108 | \op \ry, \rx, 2, 17 | |
109 | \op \ry, \rx, 3, 13 | |
110 | \op \ry, \rx, 4, 9 | |
111 | \op \ry, \rx, 6, 7 | |
112 | \op \ry, \rx, 8, 5 | |
113 | \op \ry, \rx, 12, 4 | |
114 | \op \ry, \rx, 16, 3 | |
115 | \op \ry, \rx, 24, 2 | |
116 | \op \ry, \rx, 31, 1 | |
117 | .endm | |
118 | ||
119 | foo: | |
120 | mem lw, $2, $gp | |
121 | mem lh, $2, $gp | |
122 | mem lhu, $2, $gp | |
123 | mem lb, $2, $gp | |
124 | mem lbu, $2, $gp | |
125 | mem sw, $2, $gp | |
126 | mem sh, $2, $gp | |
127 | mem sb, $2, $gp | |
128 | ||
129 | mem9 ll, $2, $3 | |
130 | mem9 lwl, $2, $3 | |
131 | mem9 lwr, $2, $3 | |
132 | mem9 sc, $2, $3 | |
133 | mem9 swl, $2, $3 | |
134 | mem9 swr, $2, $3 | |
135 | mem9 cache, 2, $3 | |
136 | mem9 cache, 29, $3 | |
137 | mem9 pref, 8, $3 | |
138 | mem9 pref, 23, $3 | |
139 | ||
140 | alu addiu, $2, $gp | |
141 | alu addu, $2, $gp | |
142 | aluu lui, $2 | |
143 | aluu andi, $2 | |
144 | aluu ori, $2 | |
145 | aluu xori, $2 | |
146 | ||
147 | bit ext, $2, $3 | |
148 | bit ins, $2, $3 | |
149 | bit ins, $6, $0 | |
150 | ||
151 | movn $2, $3, $4 | |
152 | movn $4, $5, $2 | |
153 | movn $7, $6, $17 | |
154 | movn $2, $0, $4 | |
155 | movz $2, $3, $4 | |
156 | movz $4, $5, $2 | |
157 | movz $17, $6, $7 | |
158 | movz $2, $0, $4 | |
159 | ||
160 | movtn $2, $3 | |
161 | movtn $4, $5 | |
162 | movtn $7, $6 | |
163 | movtn $2, $0 | |
164 | movtz $2, $3 | |
165 | movtz $4, $5 | |
166 | movtz $17, $6 | |
167 | movtz $2, $0 | |
168 | ||
169 | ehb | |
170 | pause | |
171 | ||
172 | sync | |
173 | sync 1 | |
174 | sync 4 | |
175 | sync 13 | |
176 | sync 31 | |
177 | sync_wmb | |
178 | sync_mb | |
179 | sync_acquire | |
180 | sync_release | |
181 | sync_rmb | |
182 | ||
183 | rdhwr $2, $1 | |
184 | rdhwr $3, $5 | |
185 | rdhwr $4, $29 | |
186 | rdhwr $5, $31 | |
187 | ||
188 | di | |
189 | di $0 | |
190 | di $2 | |
191 | ei | |
192 | ei $0 | |
193 | ei $2 | |
194 | ||
195 | mfc0 $3, $5 | |
196 | mfc0 $5, $9, 0 | |
197 | mfc0 $7, $13, 3 | |
198 | mfc0 $17, $15, 1 | |
199 | mfc0 $2, $17, 7 | |
200 | mfc0 $6, $21 | |
201 | mtc0 $3, $5 | |
202 | mtc0 $5, $9, 0 | |
203 | mtc0 $7, $13, 3 | |
204 | mtc0 $17, $15, 1 | |
205 | mtc0 $2, $17, 7 | |
206 | mtc0 $6, $21 | |
207 | ||
208 | # Force some (non-delay-slot) zero bytes, to make 'objdump' print ... | |
209 | .space 16 | |
210 | .align 4, 0 |