Revision 7d551702 tcg/sparc/tcg-target.c
b/tcg/sparc/tcg-target.c | ||
---|---|---|
266 | 266 |
static inline void tcg_out_ld(TCGContext *s, TCGType type, int ret, |
267 | 267 |
int arg1, tcg_target_long arg2) |
268 | 268 |
{ |
269 |
fprintf(stderr, "unimplemented %s\n", __func__); |
|
269 |
if (type == TCG_TYPE_I32) |
|
270 |
tcg_out_ldst(s, ret, arg1, arg2, LDUW); |
|
271 |
else |
|
272 |
tcg_out_ldst(s, ret, arg1, arg2, LDX); |
|
270 | 273 |
} |
271 | 274 |
|
272 | 275 |
static inline void tcg_out_st(TCGContext *s, TCGType type, int arg, |
273 | 276 |
int arg1, tcg_target_long arg2) |
274 | 277 |
{ |
275 |
fprintf(stderr, "unimplemented %s\n", __func__); |
|
278 |
if (type == TCG_TYPE_I32) |
|
279 |
tcg_out_ldst(s, arg, arg1, arg2, STW); |
|
280 |
else |
|
281 |
tcg_out_ldst(s, arg, arg1, arg2, STX); |
|
276 | 282 |
} |
277 | 283 |
|
278 | 284 |
static inline void tcg_out_arith(TCGContext *s, int rd, int rs1, int rs2, |
... | ... | |
312 | 318 |
tcg_out32(s, SETHI | INSN_RD(TCG_REG_G0) | 0); |
313 | 319 |
} |
314 | 320 |
|
315 |
static inline void tcg_target_prologue(TCGContext *s) |
|
321 |
/* Generate global QEMU prologue and epilogue code */ |
|
322 |
void tcg_target_qemu_prologue(TCGContext *s) |
|
316 | 323 |
{ |
317 | 324 |
tcg_out32(s, SAVE | INSN_RD(TCG_REG_O6) | INSN_RS1(TCG_REG_O6) | |
318 | 325 |
INSN_IMM13(-TCG_TARGET_STACK_MINFRAME)); |
326 |
tcg_out32(s, JMPL | INSN_RD(TCG_REG_G0) | INSN_RS1(TCG_REG_O0) | |
|
327 |
INSN_RS2(TCG_REG_G0)); |
|
328 |
tcg_out_nop(s); |
|
319 | 329 |
} |
320 | 330 |
|
321 | 331 |
static inline void tcg_out_op(TCGContext *s, int opc, const TCGArg *args, |
Also available in: Unified diff