mirror of https://github.com/xemu-project/xemu.git
target/nios2: Replace DISAS_TB_JUMP with DISAS_NORETURN
The only semantic of DISAS_TB_JUMP is that we've done goto_tb, which is the same as DISAS_NORETURN -- we've exited the tb. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
13d5f87cc3
commit
1cf134f1e8
|
@ -37,7 +37,6 @@
|
||||||
/* is_jmp field values */
|
/* is_jmp field values */
|
||||||
#define DISAS_JUMP DISAS_TARGET_0 /* only pc was modified dynamically */
|
#define DISAS_JUMP DISAS_TARGET_0 /* only pc was modified dynamically */
|
||||||
#define DISAS_UPDATE DISAS_TARGET_1 /* cpu state was modified dynamically */
|
#define DISAS_UPDATE DISAS_TARGET_1 /* cpu state was modified dynamically */
|
||||||
#define DISAS_TB_JUMP DISAS_TARGET_2 /* only pc was modified statically */
|
|
||||||
|
|
||||||
#define INSTRUCTION_FLG(func, flags) { (func), (flags) }
|
#define INSTRUCTION_FLG(func, flags) { (func), (flags) }
|
||||||
#define INSTRUCTION(func) \
|
#define INSTRUCTION(func) \
|
||||||
|
@ -209,7 +208,7 @@ static void jmpi(DisasContext *dc, uint32_t code, uint32_t flags)
|
||||||
{
|
{
|
||||||
J_TYPE(instr, code);
|
J_TYPE(instr, code);
|
||||||
gen_goto_tb(dc, 0, (dc->pc & 0xF0000000) | (instr.imm26 << 2));
|
gen_goto_tb(dc, 0, (dc->pc & 0xF0000000) | (instr.imm26 << 2));
|
||||||
dc->is_jmp = DISAS_TB_JUMP;
|
dc->is_jmp = DISAS_NORETURN;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void call(DisasContext *dc, uint32_t code, uint32_t flags)
|
static void call(DisasContext *dc, uint32_t code, uint32_t flags)
|
||||||
|
@ -269,7 +268,7 @@ static void br(DisasContext *dc, uint32_t code, uint32_t flags)
|
||||||
I_TYPE(instr, code);
|
I_TYPE(instr, code);
|
||||||
|
|
||||||
gen_goto_tb(dc, 0, dc->pc + 4 + (instr.imm16.s & -4));
|
gen_goto_tb(dc, 0, dc->pc + 4 + (instr.imm16.s & -4));
|
||||||
dc->is_jmp = DISAS_TB_JUMP;
|
dc->is_jmp = DISAS_NORETURN;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gen_bxx(DisasContext *dc, uint32_t code, uint32_t flags)
|
static void gen_bxx(DisasContext *dc, uint32_t code, uint32_t flags)
|
||||||
|
@ -281,7 +280,7 @@ static void gen_bxx(DisasContext *dc, uint32_t code, uint32_t flags)
|
||||||
gen_goto_tb(dc, 0, dc->pc + 4);
|
gen_goto_tb(dc, 0, dc->pc + 4);
|
||||||
gen_set_label(l1);
|
gen_set_label(l1);
|
||||||
gen_goto_tb(dc, 1, dc->pc + 4 + (instr.imm16.s & -4));
|
gen_goto_tb(dc, 1, dc->pc + 4 + (instr.imm16.s & -4));
|
||||||
dc->is_jmp = DISAS_TB_JUMP;
|
dc->is_jmp = DISAS_NORETURN;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Comparison instructions */
|
/* Comparison instructions */
|
||||||
|
@ -883,7 +882,6 @@ void gen_intermediate_code(CPUState *cs, TranslationBlock *tb, int max_insns)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DISAS_NORETURN:
|
case DISAS_NORETURN:
|
||||||
case DISAS_TB_JUMP:
|
|
||||||
/* nothing more to generate */
|
/* nothing more to generate */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue