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 3c3e03c18b16702a22f5248dcc10eb4e2c62e75f..ac7d04e1086a4ae6eb4c5773772175c938325c46 100644 |
--- a/src/crankshaft/s390/lithium-codegen-s390.cc |
+++ b/src/crankshaft/s390/lithium-codegen-s390.cc |
@@ -5210,14 +5210,11 @@ void LCodeGen::DoClampTToUint8(LClampTToUint8* instr) { |
void LCodeGen::DoDoubleBits(LDoubleBits* instr) { |
DoubleRegister value_reg = ToDoubleRegister(instr->value()); |
Register result_reg = ToRegister(instr->result()); |
- // TODO(joransiu): Use non-memory version. |
- __ stdy(value_reg, MemOperand(sp, -kDoubleSize)); |
+ __ lgdr(result_reg, value_reg); |
if (instr->hydrogen()->bits() == HDoubleBits::HIGH) { |
- __ LoadlW(result_reg, |
- MemOperand(sp, -kDoubleSize + Register::kExponentOffset)); |
+ __ srlg(result_reg, result_reg, Operand(32)); |
} else { |
- __ LoadlW(result_reg, |
- MemOperand(sp, -kDoubleSize + Register::kMantissaOffset)); |
+ __ llgfr(result_reg, result_reg); |
} |
} |
@@ -5225,7 +5222,6 @@ void LCodeGen::DoConstructDouble(LConstructDouble* instr) { |
Register hi_reg = ToRegister(instr->hi()); |
Register lo_reg = ToRegister(instr->lo()); |
DoubleRegister result_reg = ToDoubleRegister(instr->result()); |
- // TODO(joransiu): Construct with ldgr |
Register scratch = scratch0(); |
// Combine hi_reg:lo_reg into a single 64-bit register. |