| Index: src/IceTargetLoweringMIPS32.cpp
|
| diff --git a/src/IceTargetLoweringMIPS32.cpp b/src/IceTargetLoweringMIPS32.cpp
|
| index 79f02fbaefac2a5b395a0f1f37f3cd834e881a2b..a2e82b266535a2149254aac634e52fbb1d6ef343 100644
|
| --- a/src/IceTargetLoweringMIPS32.cpp
|
| +++ b/src/IceTargetLoweringMIPS32.cpp
|
| @@ -692,9 +692,6 @@ void TargetMIPS32::lowerArithmetic(const InstArithmetic *Instr) {
|
| switch (Instr->getOp()) {
|
| default:
|
| break;
|
| - case InstArithmetic::Shl:
|
| - case InstArithmetic::Lshr:
|
| - case InstArithmetic::Ashr:
|
| case InstArithmetic::Udiv:
|
| case InstArithmetic::Sdiv:
|
| case InstArithmetic::Urem:
|
| @@ -742,12 +739,21 @@ void TargetMIPS32::lowerArithmetic(const InstArithmetic *Instr) {
|
| _mov(Dest, T);
|
| return;
|
| }
|
| - case InstArithmetic::Shl:
|
| - break;
|
| - case InstArithmetic::Lshr:
|
| - break;
|
| - case InstArithmetic::Ashr:
|
| - break;
|
| + case InstArithmetic::Shl: {
|
| + _sllv(T, Src0R, Src1R);
|
| + _mov(Dest, T);
|
| + return;
|
| + }
|
| + case InstArithmetic::Lshr: {
|
| + _srlv(T, Src0R, Src1R);
|
| + _mov(Dest, T);
|
| + return;
|
| + }
|
| + case InstArithmetic::Ashr: {
|
| + _srav(T, Src0R, Src1R);
|
| + _mov(Dest, T);
|
| + return;
|
| + }
|
| case InstArithmetic::Udiv:
|
| break;
|
| case InstArithmetic::Sdiv:
|
|
|