summaryrefslogtreecommitdiff
path: root/deps/v8/src/s390/macro-assembler-s390.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/s390/macro-assembler-s390.h')
-rw-r--r--deps/v8/src/s390/macro-assembler-s390.h23
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,