diff options
Diffstat (limited to 'deps/v8/src/s390/macro-assembler-s390.h')
-rw-r--r-- | deps/v8/src/s390/macro-assembler-s390.h | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/deps/v8/src/s390/macro-assembler-s390.h b/deps/v8/src/s390/macro-assembler-s390.h index 1c3ea3fc54..7c123b9c5b 100644 --- a/deps/v8/src/s390/macro-assembler-s390.h +++ b/deps/v8/src/s390/macro-assembler-s390.h @@ -989,10 +989,16 @@ class TurboAssembler : public Assembler { // High bits must be identical to fit into an 32-bit integer cgfr(value, value); } - void SmiUntag(Register reg) { SmiUntag(reg, reg); } + void SmiUntag(Register reg, int scale = 0) { SmiUntag(reg, reg, scale); } - void SmiUntag(Register dst, Register src) { - ShiftRightArithP(dst, src, Operand(kSmiShift)); + void SmiUntag(Register dst, Register src, int scale = 0) { + if (scale > kSmiShift) { + ShiftLeftP(dst, src, Operand(scale - kSmiShift)); + } else if (scale < kSmiShift) { + ShiftRightArithP(dst, src, Operand(kSmiShift - scale)); + } else { + // do nothing + } } // Activation support. @@ -1005,6 +1011,7 @@ class TurboAssembler : public Assembler { Label* condition_met); void ResetSpeculationPoisonRegister(); + void ComputeCodeStartAddress(Register dst); private: static const int kSmiShift = kSmiTagSize + kSmiShiftSize; @@ -1088,7 +1095,7 @@ class MacroAssembler : public TurboAssembler { bool builtin_exit_frame = false); // Generates a trampoline to jump to the off-heap instruction stream. - void JumpToInstructionStream(const InstructionStream* stream); + void JumpToInstructionStream(Address entry); // Compare the object in a register to a value and jump if they are equal. void JumpIfRoot(Register with, Heap::RootListIndex index, Label* if_equal) { @@ -1109,6 +1116,10 @@ class MacroAssembler : public TurboAssembler { Register scratch, DoubleRegister double_scratch); // --------------------------------------------------------------------------- + // In-place weak references. + void LoadWeakValue(Register out, Register in, Label* target_if_cleared); + + // --------------------------------------------------------------------------- // StatsCounter support void IncrementCounter(StatsCounter* counter, int value, Register scratch1, @@ -1228,6 +1239,10 @@ class MacroAssembler : public TurboAssembler { // Abort execution if argument is not a FixedArray, enabled via --debug-code. void AssertFixedArray(Register object); + // Abort execution if argument is not a Constructor, enabled via --debug-code. + void AssertConstructor(Register object, Register scratch); + + // Abort execution if argument is not a JSFunction, enabled via --debug-code. void AssertFunction(Register object); // Abort execution if argument is not a JSBoundFunction, |