Mask LL portion of B to 24 bits in tcg_out_b (Thanks to Thiemo Seufer)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4841 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
551bd27f22
commit
8c5e95d807
|
@ -415,7 +415,7 @@ static void tcg_out_b (TCGContext *s, int mask, tcg_target_long target)
|
||||||
|
|
||||||
disp = target - (tcg_target_long) s->code_ptr;
|
disp = target - (tcg_target_long) s->code_ptr;
|
||||||
if ((disp << 6) >> 6 == disp)
|
if ((disp << 6) >> 6 == disp)
|
||||||
tcg_out32 (s, B | disp | mask);
|
tcg_out32 (s, B | (disp & 0x3fffffc) | mask);
|
||||||
else {
|
else {
|
||||||
tcg_out_movi (s, TCG_TYPE_I32, 0, (tcg_target_long) target);
|
tcg_out_movi (s, TCG_TYPE_I32, 0, (tcg_target_long) target);
|
||||||
tcg_out32 (s, MTSPR | RS (0) | CTR);
|
tcg_out32 (s, MTSPR | RS (0) | CTR);
|
||||||
|
|
Loading…
Reference in a new issue