tcg/sparc: Remove retranslation code

There is no longer a need for preserving branch offset operands,
as we no longer re-translate.

Backports commit 791645f0227c9d52ce5fe1ad6e1cda55a9bfe633 from qemu
This commit is contained in:
Richard Henderson 2018-12-18 05:21:49 -05:00 committed by Lioncash
parent a124110db4
commit ad9aec6f35
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7

View file

@ -613,13 +613,11 @@ static void tcg_out_bpcc0(TCGContext *s, int scond, int flags, int off19)
static void tcg_out_bpcc(TCGContext *s, int scond, int flags, TCGLabel *l) static void tcg_out_bpcc(TCGContext *s, int scond, int flags, TCGLabel *l)
{ {
int off19; int off19 = 0;
if (l->has_value) { if (l->has_value) {
off19 = INSN_OFF19(tcg_pcrel_diff(s, l->u.value_ptr)); off19 = INSN_OFF19(tcg_pcrel_diff(s, l->u.value_ptr));
} else { } else {
/* Make sure to preserve destinations during retranslation. */
off19 = *s->code_ptr & INSN_OFF19(-1);
tcg_out_reloc(s, s->code_ptr, R_SPARC_WDISP19, l, 0); tcg_out_reloc(s, s->code_ptr, R_SPARC_WDISP19, l, 0);
} }
tcg_out_bpcc0(s, scond, flags, off19); tcg_out_bpcc0(s, scond, flags, off19);
@ -659,13 +657,11 @@ static void tcg_out_brcond_i64(TCGContext *s, TCGCond cond, TCGReg arg1,
{ {
/* For 64-bit signed comparisons vs zero, we can avoid the compare. */ /* For 64-bit signed comparisons vs zero, we can avoid the compare. */
if (arg2 == 0 && !is_unsigned_cond(cond)) { if (arg2 == 0 && !is_unsigned_cond(cond)) {
int off16; int off16 = 0;
if (l->has_value) { if (l->has_value) {
off16 = INSN_OFF16(tcg_pcrel_diff(s, l->u.value_ptr)); off16 = INSN_OFF16(tcg_pcrel_diff(s, l->u.value_ptr));
} else { } else {
/* Make sure to preserve destinations during retranslation. */
off16 = *s->code_ptr & INSN_OFF16(-1);
tcg_out_reloc(s, s->code_ptr, R_SPARC_WDISP16, l, 0); tcg_out_reloc(s, s->code_ptr, R_SPARC_WDISP16, l, 0);
} }
tcg_out32(s, INSN_OP(0) | INSN_OP2(3) | BPR_PT | INSN_RS1(arg1) tcg_out32(s, INSN_OP(0) | INSN_OP2(3) | BPR_PT | INSN_RS1(arg1)