| 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 8cfdc566ccac9982b0c86fd67f50fe561500832b..68fee136ed87fdad2d3104ad35ec371917a0357c 100644
|
| --- a/src/crankshaft/s390/lithium-codegen-s390.cc
|
| +++ b/src/crankshaft/s390/lithium-codegen-s390.cc
|
| @@ -66,8 +66,8 @@ void LCodeGen::SaveCallerDoubles() {
|
| BitVector* doubles = chunk()->allocated_double_registers();
|
| BitVector::Iterator save_iterator(doubles);
|
| while (!save_iterator.Done()) {
|
| - __ std(DoubleRegister::from_code(save_iterator.Current()),
|
| - MemOperand(sp, count * kDoubleSize));
|
| + __ StoreDouble(DoubleRegister::from_code(save_iterator.Current()),
|
| + MemOperand(sp, count * kDoubleSize));
|
| save_iterator.Advance();
|
| count++;
|
| }
|
| @@ -81,8 +81,8 @@ void LCodeGen::RestoreCallerDoubles() {
|
| BitVector::Iterator save_iterator(doubles);
|
| int count = 0;
|
| while (!save_iterator.Done()) {
|
| - __ ld(DoubleRegister::from_code(save_iterator.Current()),
|
| - MemOperand(sp, count * kDoubleSize));
|
| + __ LoadDouble(DoubleRegister::from_code(save_iterator.Current()),
|
| + MemOperand(sp, count * kDoubleSize));
|
| save_iterator.Advance();
|
| count++;
|
| }
|
| @@ -2089,7 +2089,8 @@ void LCodeGen::DoBranch(LBranch* instr) {
|
| EmitBranch(instr, al);
|
| } else if (type.IsHeapNumber()) {
|
| DCHECK(!info()->IsStub());
|
| - __ ld(dbl_scratch, FieldMemOperand(reg, HeapNumber::kValueOffset));
|
| + __ LoadDouble(dbl_scratch,
|
| + FieldMemOperand(reg, HeapNumber::kValueOffset));
|
| // Test the double value. Zero and NaN are false.
|
| __ lzdr(kDoubleRegZero);
|
| __ cdbr(dbl_scratch, kDoubleRegZero);
|
| @@ -2678,7 +2679,7 @@ void LCodeGen::DoLoadNamedField(LLoadNamedField* instr) {
|
| if (instr->hydrogen()->representation().IsDouble()) {
|
| DCHECK(access.IsInobject());
|
| DoubleRegister result = ToDoubleRegister(instr->result());
|
| - __ ld(result, FieldMemOperand(object, offset));
|
| + __ LoadDouble(result, FieldMemOperand(object, offset));
|
| return;
|
| }
|
|
|
| @@ -2816,9 +2817,10 @@ void LCodeGen::DoLoadKeyedExternalArray(LLoadKeyed* instr) {
|
| }
|
| } else { // i.e. elements_kind == EXTERNAL_DOUBLE_ELEMENTS
|
| if (!use_scratch) {
|
| - __ ld(result, MemOperand(external_pointer, base_offset));
|
| + __ LoadDouble(result, MemOperand(external_pointer, base_offset));
|
| } else {
|
| - __ ld(result, MemOperand(scratch0(), external_pointer, base_offset));
|
| + __ LoadDouble(result,
|
| + MemOperand(scratch0(), external_pointer, base_offset));
|
| }
|
| }
|
| } else {
|
| @@ -2913,9 +2915,9 @@ void LCodeGen::DoLoadKeyedFixedDoubleArray(LLoadKeyed* instr) {
|
| }
|
|
|
| if (!use_scratch) {
|
| - __ ld(result, MemOperand(elements, base_offset));
|
| + __ LoadDouble(result, MemOperand(elements, base_offset));
|
| } else {
|
| - __ ld(result, MemOperand(scratch, elements, base_offset));
|
| + __ LoadDouble(result, MemOperand(scratch, elements, base_offset));
|
| }
|
|
|
| if (instr->hydrogen()->RequiresHoleCheck()) {
|
| @@ -3836,7 +3838,7 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) {
|
| DCHECK(!hinstr->NeedsWriteBarrier());
|
| DoubleRegister value = ToDoubleRegister(instr->value());
|
| DCHECK(offset >= 0);
|
| - __ std(value, FieldMemOperand(object, offset));
|
| + __ StoreDouble(value, FieldMemOperand(object, offset));
|
| return;
|
| }
|
|
|
| @@ -3861,7 +3863,7 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) {
|
| if (FLAG_unbox_double_fields && representation.IsDouble()) {
|
| DCHECK(access.IsInobject());
|
| DoubleRegister value = ToDoubleRegister(instr->value());
|
| - __ std(value, FieldMemOperand(object, offset));
|
| + __ StoreDouble(value, FieldMemOperand(object, offset));
|
| if (hinstr->NeedsWriteBarrier()) {
|
| record_value = ToRegister(instr->value());
|
| }
|
| @@ -4090,14 +4092,15 @@ void LCodeGen::DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr) {
|
| __ CanonicalizeNaN(double_scratch, value);
|
| DCHECK(address_offset >= 0);
|
| if (use_scratch)
|
| - __ std(double_scratch, MemOperand(scratch, elements, address_offset));
|
| + __ StoreDouble(double_scratch,
|
| + MemOperand(scratch, elements, address_offset));
|
| else
|
| - __ std(double_scratch, MemOperand(elements, address_offset));
|
| + __ StoreDouble(double_scratch, MemOperand(elements, address_offset));
|
| } else {
|
| if (use_scratch)
|
| - __ std(value, MemOperand(scratch, elements, address_offset));
|
| + __ StoreDouble(value, MemOperand(scratch, elements, address_offset));
|
| else
|
| - __ std(value, MemOperand(elements, address_offset));
|
| + __ StoreDouble(value, MemOperand(elements, address_offset));
|
| }
|
| }
|
|
|
| @@ -4677,7 +4680,8 @@ void LCodeGen::EmitNumberUntagD(LNumberUntagD* instr, Register input_reg,
|
| DeoptimizeIf(ne, instr, DeoptimizeReason::kNotAHeapNumber);
|
| }
|
| // load heap number
|
| - __ ld(result_reg, FieldMemOperand(input_reg, HeapNumber::kValueOffset));
|
| + __ LoadDouble(result_reg,
|
| + FieldMemOperand(input_reg, HeapNumber::kValueOffset));
|
| if (deoptimize_on_minus_zero) {
|
| __ TestDoubleIsMinusZero(result_reg, scratch, ip);
|
| DeoptimizeIf(eq, instr, DeoptimizeReason::kMinusZero);
|
| @@ -4689,7 +4693,8 @@ void LCodeGen::EmitNumberUntagD(LNumberUntagD* instr, Register input_reg,
|
| __ CompareRoot(input_reg, Heap::kUndefinedValueRootIndex);
|
| DeoptimizeIf(ne, instr, DeoptimizeReason::kNotAHeapNumberUndefined);
|
| __ LoadRoot(scratch, Heap::kNanValueRootIndex);
|
| - __ ld(result_reg, FieldMemOperand(scratch, HeapNumber::kValueOffset));
|
| + __ LoadDouble(result_reg,
|
| + FieldMemOperand(scratch, HeapNumber::kValueOffset));
|
| __ b(&done, Label::kNear);
|
| }
|
| } else {
|
| @@ -4731,8 +4736,8 @@ void LCodeGen::DoDeferredTaggedToI(LTaggedToI* instr) {
|
| // Deoptimize if we don't have a heap number.
|
| DeoptimizeIf(ne, instr, DeoptimizeReason::kNotAHeapNumber);
|
|
|
| - __ ld(double_scratch2,
|
| - FieldMemOperand(input_reg, HeapNumber::kValueOffset));
|
| + __ LoadDouble(double_scratch2,
|
| + FieldMemOperand(input_reg, HeapNumber::kValueOffset));
|
| if (instr->hydrogen()->CheckFlag(HValue::kBailoutOnMinusZero)) {
|
| // preserve heap number pointer in scratch2 for minus zero check below
|
| __ LoadRR(scratch2, input_reg);
|
| @@ -5046,7 +5051,7 @@ void LCodeGen::DoClampTToUint8(LClampTToUint8* instr) {
|
|
|
| // Heap number
|
| __ bind(&heap_number);
|
| - __ ld(temp_reg, FieldMemOperand(input_reg, HeapNumber::kValueOffset));
|
| + __ LoadDouble(temp_reg, FieldMemOperand(input_reg, HeapNumber::kValueOffset));
|
| __ ClampDoubleToUint8(result_reg, temp_reg, double_scratch0());
|
| __ b(&done, Label::kNear);
|
|
|
|
|