Index: src/crankshaft/ppc/lithium-codegen-ppc.cc |
diff --git a/src/crankshaft/ppc/lithium-codegen-ppc.cc b/src/crankshaft/ppc/lithium-codegen-ppc.cc |
index 37a121c1dad201508bac8ce89ece5e3a83d7a568..8ab30ff8bbdd69dc7393d6806b5b1e19623aaeea 100644 |
--- a/src/crankshaft/ppc/lithium-codegen-ppc.cc |
+++ b/src/crankshaft/ppc/lithium-codegen-ppc.cc |
@@ -1140,6 +1140,10 @@ void LCodeGen::DoDivI(LDivI* instr) { |
} |
} |
+#if V8_TARGET_ARCH_PPC64 |
+ __ extsw(result, result); |
+#endif |
+ |
if (!hdiv->CheckFlag(HInstruction::kAllUsesTruncatingToInt32)) { |
// Deoptimize if remainder is not 0. |
Register scratch = scratch0(); |
@@ -1333,6 +1337,9 @@ void LCodeGen::DoFlooringDivI(LFlooringDivI* instr) { |
// We performed a truncating division. Correct the result. |
__ subi(result, result, Operand(1)); |
__ bind(&done); |
+#if V8_TARGET_ARCH_PPC64 |
+ __ extsw(result, result); |
+#endif |
} |