Fixing mullw.

This commit is contained in:
Ben Vanik 2015-12-29 20:42:20 -08:00
parent 431088d35e
commit 321e2663ef
2 changed files with 12 additions and 3 deletions

View File

@ -392,9 +392,9 @@ int InstrEmit_mullwx(PPCHIRBuilder& f, const InstrData& i) {
XEINSTRNOTIMPLEMENTED();
return 1;
}
Value* v = f.SignExtend(f.Mul(f.Truncate(f.LoadGPR(i.XO.RA), INT32_TYPE),
f.Truncate(f.LoadGPR(i.XO.RB), INT32_TYPE)),
INT64_TYPE);
Value* v = f.Mul(
f.SignExtend(f.Truncate(f.LoadGPR(i.XO.RA), INT32_TYPE), INT64_TYPE),
f.SignExtend(f.Truncate(f.LoadGPR(i.XO.RB), INT32_TYPE), INT64_TYPE));
f.StoreGPR(i.XO.RT, v);
if (i.XO.Rc) {
f.UpdateCR(0, v);

View File

@ -198,3 +198,12 @@ test_mullw_11_constant:
#_ REGISTER_OUT r3 0x000000007FFFFFFF
#_ REGISTER_OUT r4 1
#_ 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