Revision 06d92f40
b/target-m68k/op-hacks.h | ||
---|---|---|
103 | 103 |
gen_op_goto_tb1(TBPARAM(tb)); |
104 | 104 |
} |
105 | 105 |
} |
106 |
|
|
107 |
static inline void gen_op_jmp_z32(int val, int label) |
|
108 |
{ |
|
109 |
gen_op_set_T0_z32(val); |
|
110 |
gen_op_jmp_T0(label); |
|
111 |
} |
|
112 |
|
|
113 |
static inline void gen_op_jmp_nz32(int val, int label) |
|
114 |
{ |
|
115 |
gen_op_set_T0_nz32(val); |
|
116 |
gen_op_jmp_T0(label); |
|
117 |
} |
|
118 |
|
|
119 |
static inline void gen_op_jmp_s32(int val, int label) |
|
120 |
{ |
|
121 |
gen_op_set_T0_s32(val); |
|
122 |
gen_op_jmp_T0(label); |
|
123 |
} |
|
124 |
|
|
125 |
static inline void gen_op_jmp_ns32(int val, int label) |
|
126 |
{ |
|
127 |
gen_op_set_T0_ns32(val); |
|
128 |
gen_op_jmp_T0(label); |
|
129 |
} |
|
130 |
|
b/target-m68k/op.c | ||
---|---|---|
487 | 487 |
GOTO_LABEL_PARAM(1); |
488 | 488 |
} |
489 | 489 |
|
490 |
/* These ops involve a function call, which probably requires a stack frame |
|
491 |
and breaks things on some hosts. */ |
|
492 |
OP(jmp_z32) |
|
490 |
OP(set_T0_z32) |
|
493 | 491 |
{ |
494 | 492 |
uint32_t arg = get_op(PARAM1); |
495 |
if (arg == 0) |
|
496 |
GOTO_LABEL_PARAM(2); |
|
493 |
T0 = (arg == 0); |
|
497 | 494 |
FORCE_RET(); |
498 | 495 |
} |
499 | 496 |
|
500 |
OP(jmp_nz32)
|
|
497 |
OP(set_T0_nz32)
|
|
501 | 498 |
{ |
502 | 499 |
uint32_t arg = get_op(PARAM1); |
503 |
if (arg != 0) |
|
504 |
GOTO_LABEL_PARAM(2); |
|
500 |
T0 = (arg != 0); |
|
505 | 501 |
FORCE_RET(); |
506 | 502 |
} |
507 | 503 |
|
508 |
OP(jmp_s32)
|
|
504 |
OP(set_T0_s32)
|
|
509 | 505 |
{ |
510 | 506 |
int32_t arg = get_op(PARAM1); |
511 |
if (arg < 0) |
|
512 |
GOTO_LABEL_PARAM(2); |
|
507 |
T0 = (arg > 0); |
|
513 | 508 |
FORCE_RET(); |
514 | 509 |
} |
515 | 510 |
|
516 |
OP(jmp_ns32)
|
|
511 |
OP(set_T0_ns32)
|
|
517 | 512 |
{ |
518 | 513 |
int32_t arg = get_op(PARAM1); |
519 |
if (arg >= 0) |
|
520 |
GOTO_LABEL_PARAM(2); |
|
514 |
T0 = (arg >= 0); |
|
515 |
FORCE_RET(); |
|
516 |
} |
|
517 |
|
|
518 |
OP(jmp_T0) |
|
519 |
{ |
|
520 |
if (T0) |
|
521 |
GOTO_LABEL_PARAM(1); |
|
521 | 522 |
FORCE_RET(); |
522 | 523 |
} |
523 | 524 |
|
Also available in: Unified diff