[JIT] Apply the same ZeroExtend/Truncate to rlwimix and rlwnmx
This commit is contained in:
parent
0cc2b0fc9f
commit
ec501a32c6
|
@ -960,7 +960,7 @@ int InstrEmit_rlwimix(PPCHIRBuilder& f, const InstrData& i) {
|
||||||
// RA <- r&m | (RA)&¬m
|
// RA <- r&m | (RA)&¬m
|
||||||
Value* v = f.LoadGPR(i.M.RT);
|
Value* v = f.LoadGPR(i.M.RT);
|
||||||
// (x||x)
|
// (x||x)
|
||||||
v = f.Or(f.Shl(v, 32), f.And(v, f.LoadConstantUint64(0xFFFFFFFF)));
|
v = f.Or(f.Shl(v, 32), f.ZeroExtend(f.Truncate(v, INT32_TYPE), INT64_TYPE));
|
||||||
if (i.M.SH) {
|
if (i.M.SH) {
|
||||||
v = f.RotateLeft(v, f.LoadConstantInt8(i.M.SH));
|
v = f.RotateLeft(v, f.LoadConstantInt8(i.M.SH));
|
||||||
}
|
}
|
||||||
|
@ -1018,7 +1018,7 @@ int InstrEmit_rlwnmx(PPCHIRBuilder& f, const InstrData& i) {
|
||||||
f.And(f.Truncate(f.LoadGPR(i.M.SH), INT8_TYPE), f.LoadConstantInt8(0x1F));
|
f.And(f.Truncate(f.LoadGPR(i.M.SH), INT8_TYPE), f.LoadConstantInt8(0x1F));
|
||||||
Value* v = f.LoadGPR(i.M.RT);
|
Value* v = f.LoadGPR(i.M.RT);
|
||||||
// (x||x)
|
// (x||x)
|
||||||
v = f.Or(f.Shl(v, 32), f.And(v, f.LoadConstantUint64(0xFFFFFFFF)));
|
v = f.Or(f.Shl(v, 32), f.ZeroExtend(f.Truncate(v, INT32_TYPE), INT64_TYPE));
|
||||||
v = f.RotateLeft(v, sh);
|
v = f.RotateLeft(v, sh);
|
||||||
v = f.And(v, f.LoadConstantUint64(XEMASK(i.M.MB + 32, i.M.ME + 32)));
|
v = f.And(v, f.LoadConstantUint64(XEMASK(i.M.MB + 32, i.M.ME + 32)));
|
||||||
f.StoreGPR(i.M.RA, v);
|
f.StoreGPR(i.M.RA, v);
|
||||||
|
|
Loading…
Reference in New Issue