| Index: src/s390/macro-assembler-s390.h
|
| diff --git a/src/s390/macro-assembler-s390.h b/src/s390/macro-assembler-s390.h
|
| index cd3b9e1931708fb523077a4eb053c9de285e21ec..efb60d78889919fc7b3b6344481df66da36f6390 100644
|
| --- a/src/s390/macro-assembler-s390.h
|
| +++ b/src/s390/macro-assembler-s390.h
|
| @@ -208,12 +208,6 @@ class MacroAssembler : public Assembler {
|
|
|
| void Call(Label* target);
|
|
|
| - // Emit call to the code we are currently generating.
|
| - void CallSelf() {
|
| - Handle<Code> self(reinterpret_cast<Code**>(CodeObject().location()));
|
| - Call(self, RelocInfo::CODE_TARGET);
|
| - }
|
| -
|
| // Register move. May do nothing if the registers are identical.
|
| void Move(Register dst, Smi* smi) { LoadSmiLiteral(dst, smi); }
|
| void Move(Register dst, Handle<Object> value);
|
| @@ -598,10 +592,14 @@ class MacroAssembler : public Assembler {
|
| la(sp, MemOperand(sp, 5 * kPointerSize));
|
| }
|
|
|
| - // Push a fixed frame, consisting of lr, fp, context and
|
| - // JS function / marker id if marker_reg is a valid register.
|
| - void PushFixedFrame(Register marker_reg = no_reg);
|
| - void PopFixedFrame(Register marker_reg = no_reg);
|
| + // Push a fixed frame, consisting of lr, fp, constant pool.
|
| + void PushCommonFrame(Register marker_reg = no_reg);
|
| +
|
| + // Push a standard frame, consisting of lr, fp, constant pool,
|
| + // context and JS function
|
| + void PushStandardFrame(Register function_reg);
|
| +
|
| + void PopCommonFrame(Register marker_reg = no_reg);
|
|
|
| // Restore caller's frame pointer and return address prior to being
|
| // overwritten by tail call stack preparation.
|
| @@ -696,8 +694,25 @@ class MacroAssembler : public Assembler {
|
| FPRoundingMode rounding_mode = kRoundToZero);
|
| #endif
|
|
|
| +#if !V8_TARGET_ARCH_S390X
|
| + void ShiftLeftPair(Register dst_low, Register dst_high, Register src_low,
|
| + Register src_high, Register scratch, Register shift);
|
| + void ShiftLeftPair(Register dst_low, Register dst_high, Register src_low,
|
| + Register src_high, uint32_t shift);
|
| + void ShiftRightPair(Register dst_low, Register dst_high, Register src_low,
|
| + Register src_high, Register scratch, Register shift);
|
| + void ShiftRightPair(Register dst_low, Register dst_high, Register src_low,
|
| + Register src_high, uint32_t shift);
|
| + void ShiftRightArithPair(Register dst_low, Register dst_high,
|
| + Register src_low, Register src_high,
|
| + Register scratch, Register shift);
|
| + void ShiftRightArithPair(Register dst_low, Register dst_high,
|
| + Register src_low, Register src_high, uint32_t shift);
|
| +#endif
|
| +
|
| // Generates function and stub prologue code.
|
| - void StubPrologue(Register base = no_reg, int prologue_offset = 0);
|
| + void StubPrologue(StackFrame::Type type, Register base = no_reg,
|
| + int prologue_offset = 0);
|
| void Prologue(bool code_pre_aging, Register base, int prologue_offset = 0);
|
|
|
| // Enter exit frame.
|
| @@ -819,6 +834,15 @@ class MacroAssembler : public Assembler {
|
| // call sites.
|
| // void SetCallKind(Register dst, CallKind kind);
|
|
|
| + // Removes current frame and its arguments from the stack preserving
|
| + // the arguments and a return address pushed to the stack for the next call.
|
| + // Both |callee_args_count| and |caller_args_count_reg| do not include
|
| + // receiver. |callee_args_count| is not modified, |caller_args_count_reg|
|
| + // is trashed.
|
| + void PrepareForTailCall(const ParameterCount& callee_args_count,
|
| + Register caller_args_count_reg, Register scratch0,
|
| + Register scratch1);
|
| +
|
| // Invoke the JavaScript function code by either calling or jumping.
|
| void InvokeFunctionCode(Register function, Register new_target,
|
| const ParameterCount& expected,
|
|
|