Index: src/crankshaft/s390/lithium-codegen-s390.cc |
diff --git a/src/crankshaft/s390/lithium-codegen-s390.cc b/src/crankshaft/s390/lithium-codegen-s390.cc |
index 90f9e928dd097179610ca70e0d195e0eb988a4b2..ff8cec5e8f9d6f8a62e680f49962a9a6946e7e7e 100644 |
--- a/src/crankshaft/s390/lithium-codegen-s390.cc |
+++ b/src/crankshaft/s390/lithium-codegen-s390.cc |
@@ -3521,9 +3521,13 @@ void LCodeGen::DoMathFround(LMathFround* instr) { |
} |
void LCodeGen::DoMathSqrt(LMathSqrt* instr) { |
- DoubleRegister input = ToDoubleRegister(instr->value()); |
DoubleRegister result = ToDoubleRegister(instr->result()); |
- __ sqdbr(result, input); |
+ LOperand* input = instr->value(); |
+ if (input->IsDoubleRegister()) { |
+ __ Sqrt(result, ToDoubleRegister(instr->value())); |
+ } else { |
+ __ Sqrt(result, ToMemOperand(input)); |
+ } |
} |
void LCodeGen::DoMathPowHalf(LMathPowHalf* instr) { |