|
29 | 29 | (error n "expects symbol; given ~v" x)) |
30 | 30 | x)) |
31 | 31 |
|
| 32 | +(define check:cmov |
| 33 | + (λ (a1 a2 n) |
| 34 | + (unless (register? a1) |
| 35 | + (error n "expects register; given ~v" a1)) |
| 36 | + (unless (or (register? a2) (offset? a2)) |
| 37 | + (error n "expects register or offset; given ~v" a2)) |
| 38 | + (values a1 a2))) |
| 39 | + |
32 | 40 | (define check:arith |
33 | 41 | (λ (a1 a2 n) |
34 | 42 | (unless (register? a1) |
|
157 | 165 | (instruct Jle (x) check:target) |
158 | 166 | (instruct Jg (x) check:target) |
159 | 167 | (instruct Jge (x) check:target) |
| 168 | +(instruct Jo (x) check:target) |
| 169 | +(instruct Jno (x) check:target) |
| 170 | +(instruct Jc (x) check:target) |
| 171 | +(instruct Jnc (x) check:target) |
| 172 | +(instruct Cmove (dst src) check:cmov) |
| 173 | +(instruct Cmovne (dst src) check:cmov) |
| 174 | +(instruct Cmovl (dst src) check:cmov) |
| 175 | +(instruct Cmovle (dst src) check:cmov) |
| 176 | +(instruct Cmovg (dst src) check:cmov) |
| 177 | +(instruct Cmovge (dst src) check:cmov) |
| 178 | +(instruct Cmovo (dst src) check:cmov) |
| 179 | +(instruct Cmovno (dst src) check:cmov) |
| 180 | +(instruct Cmovc (dst src) check:cmov) |
| 181 | +(instruct Cmovnc (dst src) check:cmov) |
160 | 182 | (instruct And (dst src) check:src-dest) |
161 | 183 | (instruct Or (dst src) check:src-dest) |
162 | 184 | (instruct Xor (dst src) check:src-dest) |
|
165 | 187 | (instruct Push (a1) check:push) |
166 | 188 | (instruct Pop (a1) check:register) |
167 | 189 | (instruct Lea (dst x) check:lea) |
| 190 | +(instruct Not (x) check:register) |
168 | 191 | (instruct Div (den) check:register) |
169 | 192 |
|
170 | 193 | (instruct Offset (r i) check:offset) |
|
229 | 252 | (Jle? x) |
230 | 253 | (Jg? x) |
231 | 254 | (Jge? x) |
| 255 | + (Jo? x) |
| 256 | + (Jno? x) |
| 257 | + (Jc? x) |
| 258 | + (Jnc? x) |
| 259 | + (Cmove? x) |
| 260 | + (Cmovne? x) |
| 261 | + (Cmovl? x) |
| 262 | + (Cmovle? x) |
| 263 | + (Cmovg? x) |
| 264 | + (Cmovge? x) |
| 265 | + (Cmovo? x) |
| 266 | + (Cmovno? x) |
| 267 | + (Cmovc? x) |
| 268 | + (Cmovnc? x) |
232 | 269 | (And? x) |
233 | 270 | (Or? x) |
234 | 271 | (Xor? x) |
|
237 | 274 | (Push? x) |
238 | 275 | (Pop? x) |
239 | 276 | (Lea? x) |
| 277 | + (Not? x) |
240 | 278 | (Div? x) |
241 | 279 | (Comment? x) |
242 | 280 | (Equ? x) |
|
0 commit comments