target-alpha: Fix FMOV.
Properly handle move from the zero register. Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
parent
50eb6e5c04
commit
a06d48d91f
|
@ -1834,12 +1834,16 @@ static inline int translate_one(DisasContext *ctx, uint32_t insn)
|
||||||
break;
|
break;
|
||||||
case 0x020:
|
case 0x020:
|
||||||
if (likely(rc != 31)) {
|
if (likely(rc != 31)) {
|
||||||
if (ra == rb)
|
if (ra == rb) {
|
||||||
/* FMOV */
|
/* FMOV */
|
||||||
tcg_gen_mov_i64(cpu_fir[rc], cpu_fir[ra]);
|
if (ra == 31)
|
||||||
else
|
tcg_gen_movi_i64(cpu_fir[rc], 0);
|
||||||
|
else
|
||||||
|
tcg_gen_mov_i64(cpu_fir[rc], cpu_fir[ra]);
|
||||||
|
} else {
|
||||||
/* CPYS */
|
/* CPYS */
|
||||||
gen_fcpys(ra, rb, rc);
|
gen_fcpys(ra, rb, rc);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 0x021:
|
case 0x021:
|
||||||
|
|
Loading…
Reference in a new issue