Fixing mullw.
This commit is contained in:
parent
431088d35e
commit
321e2663ef
|
@ -392,9 +392,9 @@ int InstrEmit_mullwx(PPCHIRBuilder& f, const InstrData& i) {
|
||||||
XEINSTRNOTIMPLEMENTED();
|
XEINSTRNOTIMPLEMENTED();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
Value* v = f.SignExtend(f.Mul(f.Truncate(f.LoadGPR(i.XO.RA), INT32_TYPE),
|
Value* v = f.Mul(
|
||||||
f.Truncate(f.LoadGPR(i.XO.RB), INT32_TYPE)),
|
f.SignExtend(f.Truncate(f.LoadGPR(i.XO.RA), INT32_TYPE), INT64_TYPE),
|
||||||
INT64_TYPE);
|
f.SignExtend(f.Truncate(f.LoadGPR(i.XO.RB), INT32_TYPE), INT64_TYPE));
|
||||||
f.StoreGPR(i.XO.RT, v);
|
f.StoreGPR(i.XO.RT, v);
|
||||||
if (i.XO.Rc) {
|
if (i.XO.Rc) {
|
||||||
f.UpdateCR(0, v);
|
f.UpdateCR(0, v);
|
||||||
|
|
|
@ -198,3 +198,12 @@ test_mullw_11_constant:
|
||||||
#_ REGISTER_OUT r3 0x000000007FFFFFFF
|
#_ REGISTER_OUT r3 0x000000007FFFFFFF
|
||||||
#_ REGISTER_OUT r4 1
|
#_ REGISTER_OUT r4 1
|
||||||
#_ REGISTER_OUT r5 0x000000007FFFFFFF
|
#_ REGISTER_OUT r5 0x000000007FFFFFFF
|
||||||
|
|
||||||
|
test_mullw_12:
|
||||||
|
#_ REGISTER_IN r0 0x1
|
||||||
|
#_ REGISTER_IN r8 0x0123456789ABCDEF
|
||||||
|
mullw r0, r8, r8
|
||||||
|
blr
|
||||||
|
#_ REGISTER_OUT r0 0x36B1B9D890F2A521
|
||||||
|
#_ REGISTER_OUT r8 0x0123456789ABCDEF
|
||||||
|
blr
|
||||||
|
|
Loading…
Reference in New Issue