mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-08 02:03:56 -06:00
tcg/ppc: Use tcg_out_mem_long to reset TCG_REG_TB
The maximum TB code gen size is UINT16_MAX, which the current code does not support. Use our utility function to optimally add an arbitrary constant. Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
e6dc7f818f
commit
2d6f38ebe5
1 changed files with 2 additions and 3 deletions
|
@ -2392,9 +2392,8 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, const TCGArg *args,
|
||||||
set_jmp_reset_offset(s, args[0]);
|
set_jmp_reset_offset(s, args[0]);
|
||||||
if (USE_REG_TB) {
|
if (USE_REG_TB) {
|
||||||
/* For the unlinked case, need to reset TCG_REG_TB. */
|
/* For the unlinked case, need to reset TCG_REG_TB. */
|
||||||
c = -tcg_current_code_size(s);
|
tcg_out_mem_long(s, ADDI, ADD, TCG_REG_TB, TCG_REG_TB,
|
||||||
assert(c == (int16_t)c);
|
-tcg_current_code_size(s));
|
||||||
tcg_out32(s, ADDI | TAI(TCG_REG_TB, TCG_REG_TB, c));
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case INDEX_op_goto_ptr:
|
case INDEX_op_goto_ptr:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue