mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-06-01 18:50:28 +00:00
tcg/s390: Remove retranslation code
There is no longer a need for preserving branch offset operands, as we no longer re-translate. Backports commit 3661612fc3e4b65be03482bf6bafd116101881e1 from qemu
This commit is contained in:
parent
85485dc20e
commit
a124110db4
|
@ -1334,13 +1334,11 @@ static void tgen_branch(TCGContext *s, int cc, TCGLabel *l)
|
||||||
static void tgen_compare_branch(TCGContext *s, S390Opcode opc, int cc,
|
static void tgen_compare_branch(TCGContext *s, S390Opcode opc, int cc,
|
||||||
TCGReg r1, TCGReg r2, TCGLabel *l)
|
TCGReg r1, TCGReg r2, TCGLabel *l)
|
||||||
{
|
{
|
||||||
intptr_t off;
|
intptr_t off = 0;
|
||||||
|
|
||||||
if (l->has_value) {
|
if (l->has_value) {
|
||||||
off = l->u.value_ptr - s->code_ptr;
|
off = l->u.value_ptr - s->code_ptr;
|
||||||
} else {
|
} else {
|
||||||
/* We need to keep the offset unchanged for retranslation. */
|
|
||||||
off = s->code_ptr[1];
|
|
||||||
tcg_out_reloc(s, s->code_ptr + 1, R_390_PC16DBL, l, 2);
|
tcg_out_reloc(s, s->code_ptr + 1, R_390_PC16DBL, l, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1352,13 +1350,11 @@ static void tgen_compare_branch(TCGContext *s, S390Opcode opc, int cc,
|
||||||
static void tgen_compare_imm_branch(TCGContext *s, S390Opcode opc, int cc,
|
static void tgen_compare_imm_branch(TCGContext *s, S390Opcode opc, int cc,
|
||||||
TCGReg r1, int i2, TCGLabel *l)
|
TCGReg r1, int i2, TCGLabel *l)
|
||||||
{
|
{
|
||||||
tcg_target_long off;
|
tcg_target_long off = 0;
|
||||||
|
|
||||||
if (l->has_value) {
|
if (l->has_value) {
|
||||||
off = l->u.value_ptr - s->code_ptr;
|
off = l->u.value_ptr - s->code_ptr;
|
||||||
} else {
|
} else {
|
||||||
/* We need to keep the offset unchanged for retranslation. */
|
|
||||||
off = s->code_ptr[1];
|
|
||||||
tcg_out_reloc(s, s->code_ptr + 1, R_390_PC16DBL, l, 2);
|
tcg_out_reloc(s, s->code_ptr + 1, R_390_PC16DBL, l, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1702,7 +1698,6 @@ static void tcg_out_qemu_ld(TCGContext* s, TCGReg data_reg, TCGReg addr_reg,
|
||||||
|
|
||||||
base_reg = tcg_out_tlb_read(s, addr_reg, opc, mem_index, 1);
|
base_reg = tcg_out_tlb_read(s, addr_reg, opc, mem_index, 1);
|
||||||
|
|
||||||
/* We need to keep the offset unchanged for retranslation. */
|
|
||||||
tcg_out16(s, RI_BRC | (S390_CC_NE << 4));
|
tcg_out16(s, RI_BRC | (S390_CC_NE << 4));
|
||||||
label_ptr = s->code_ptr;
|
label_ptr = s->code_ptr;
|
||||||
s->code_ptr += 1;
|
s->code_ptr += 1;
|
||||||
|
@ -1730,7 +1725,6 @@ static void tcg_out_qemu_st(TCGContext* s, TCGReg data_reg, TCGReg addr_reg,
|
||||||
|
|
||||||
base_reg = tcg_out_tlb_read(s, addr_reg, opc, mem_index, 0);
|
base_reg = tcg_out_tlb_read(s, addr_reg, opc, mem_index, 0);
|
||||||
|
|
||||||
/* We need to keep the offset unchanged for retranslation. */
|
|
||||||
tcg_out16(s, RI_BRC | (S390_CC_NE << 4));
|
tcg_out16(s, RI_BRC | (S390_CC_NE << 4));
|
||||||
label_ptr = s->code_ptr;
|
label_ptr = s->code_ptr;
|
||||||
s->code_ptr += 1;
|
s->code_ptr += 1;
|
||||||
|
|
Loading…
Reference in a new issue