Commit 3e9924f6 authored by jyan's avatar jyan Committed by Commit bot

S390X: [turbofan] Fix checked loads/stores.

This refines 6382a610 -- as we still
require clean up of the uint index register.

TEST=mjsunit/asm/float32array-negative-offset
R=joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
BUG=

Conflicts:
	src/compiler/s390/code-generator-s390.cc

Review-Url: https://codereview.chromium.org/1921073003
Cr-Commit-Position: refs/heads/master@{#35879}
parent 38e7d1fb
......@@ -466,6 +466,7 @@ Condition FlagsConditionToCondition(FlagsCondition condition, ArchOpcode op) {
} \
auto ool = new (zone()) OutOfLineLoadNAN##width(this, result); \
__ bge(ool->entry()); \
__ CleanUInt32(offset); \
__ asm_instr(result, operand); \
__ bind(ool->exit()); \
} while (0)
......@@ -484,6 +485,7 @@ Condition FlagsConditionToCondition(FlagsCondition condition, ArchOpcode op) {
} \
auto ool = new (zone()) OutOfLineLoadZero(this, result); \
__ bge(ool->entry()); \
__ CleanUInt32(offset); \
__ asm_instr(result, operand); \
__ bind(ool->exit()); \
} while (0)
......@@ -502,6 +504,7 @@ Condition FlagsConditionToCondition(FlagsCondition condition, ArchOpcode op) {
} \
__ bge(&done); \
DoubleRegister value = i.InputDoubleRegister(3); \
__ CleanUInt32(offset); \
__ StoreFloat32(value, operand); \
__ bind(&done); \
} while (0)
......@@ -521,6 +524,7 @@ Condition FlagsConditionToCondition(FlagsCondition condition, ArchOpcode op) {
} \
__ bge(&done); \
DoubleRegister value = i.InputDoubleRegister(3); \
__ CleanUInt32(offset); \
__ StoreDouble(value, operand); \
__ bind(&done); \
} while (0)
......@@ -539,6 +543,7 @@ Condition FlagsConditionToCondition(FlagsCondition condition, ArchOpcode op) {
} \
__ bge(&done); \
Register value = i.InputRegister(3); \
__ CleanUInt32(offset); \
__ asm_instr(value, operand); \
__ bind(&done); \
} while (0)
......
......@@ -412,6 +412,12 @@ class MacroAssembler : public Assembler {
void mov(Register dst, const Operand& src);
void CleanUInt32(Register x) {
#ifdef V8_TARGET_ARCH_S390X
llgfr(x, x);
#endif
}
// ---------------------------------------------------------------------------
// GC Support
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment