Revision c239529e
b/target-mips/translate.c | ||
---|---|---|
425 | 425 |
/* global register indices */ |
426 | 426 |
static TCGv cpu_env, current_tc_gprs, current_tc_hi, cpu_T[2]; |
427 | 427 |
|
428 |
static inline void tcg_gen_helper_0_1i(void *func, TCGv arg) |
|
429 |
{ |
|
430 |
TCGv t = tcg_const_i32(arg); |
|
431 |
|
|
432 |
tcg_gen_helper_0_1(func, t); |
|
433 |
tcg_temp_free(t); |
|
434 |
} |
|
435 |
|
|
436 |
static inline void tcg_gen_helper_0_2ii(void *func, TCGv arg1, TCGv arg2) |
|
437 |
{ |
|
438 |
TCGv t1 = tcg_const_i32(arg1); |
|
439 |
TCGv t2 = tcg_const_i32(arg2); |
|
440 |
|
|
441 |
tcg_gen_helper_0_2(func, t1, t2); |
|
442 |
tcg_temp_free(t1); |
|
443 |
tcg_temp_free(t2); |
|
444 |
} |
|
445 |
|
|
428 | 446 |
typedef struct DisasContext { |
429 | 447 |
struct TranslationBlock *tb; |
430 | 448 |
target_ulong pc, saved_pc; |
... | ... | |
797 | 815 |
generate_exception_err (DisasContext *ctx, int excp, int err) |
798 | 816 |
{ |
799 | 817 |
save_cpu_state(ctx, 1); |
800 |
tcg_gen_helper_0_2(do_raise_exception_err, tcg_const_i32(excp), tcg_const_i32(err));
|
|
818 |
tcg_gen_helper_0_2ii(do_raise_exception_err, excp, err);
|
|
801 | 819 |
tcg_gen_helper_0_0(do_interrupt_restart); |
802 | 820 |
tcg_gen_exit_tb(0); |
803 | 821 |
} |
... | ... | |
806 | 824 |
generate_exception (DisasContext *ctx, int excp) |
807 | 825 |
{ |
808 | 826 |
save_cpu_state(ctx, 1); |
809 |
tcg_gen_helper_0_1(do_raise_exception, tcg_const_i32(excp));
|
|
827 |
tcg_gen_helper_0_1i(do_raise_exception, excp);
|
|
810 | 828 |
tcg_gen_helper_0_0(do_interrupt_restart); |
811 | 829 |
tcg_gen_exit_tb(0); |
812 | 830 |
} |
Also available in: Unified diff