mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-02-25 18:36:48 +00:00
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:
parent
a124110db4
commit
ad9aec6f35
|
@ -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)
|
||||||
|
|
Loading…
Reference in a new issue