Index: src/IceTargetLoweringX8632.cpp |
diff --git a/src/IceTargetLoweringX8632.cpp b/src/IceTargetLoweringX8632.cpp |
index 7a7fb120ab089505c8bc45391c808695212905fa..96cc57bf82767335af2ddece0dea58a910698042 100644 |
--- a/src/IceTargetLoweringX8632.cpp |
+++ b/src/IceTargetLoweringX8632.cpp |
@@ -1581,10 +1581,12 @@ void TargetX8632::lowerArithmetic(const InstArithmetic *Inst) { |
// |
// The 8-bit version of imul only allows the form "imul r/m8" |
// where T must be in eax. |
- if (isByteSizedArithType(Dest->getType())) |
+ if (isByteSizedArithType(Dest->getType())) { |
_mov(T, Src0, RegX8632::Reg_eax); |
- else |
+ Src1 = legalize(Src1, Legal_Reg | Legal_Mem); |
Jim Stichnoth
2014/09/30 05:17:07
cool, thanks!
|
+ } else { |
_mov(T, Src0); |
+ } |
_imul(T, Src1); |
_mov(Dest, T); |
break; |