5#ifndef V8_BASELINE_S390_BASELINE_COMPILER_S390_INL_H_
6#define V8_BASELINE_S390_BASELINE_COMPILER_S390_INL_H_
24 __ masm()->EnterFrame(StackFrame::BASELINE);
26 int max_frame_size =
bytecode_->max_frame_size();
37 interpreter::Register new_target_or_generator_register =
38 bytecode_->incoming_new_target_or_generator_register();
41 RootIndex::kUndefinedValue);
42 __ masm()->Assert(
eq, AbortReason::kUnexpectedValue);
44 int register_count =
bytecode_->register_count();
46 const int kLoopUnrollSize = 8;
47 const int new_target_index = new_target_or_generator_register.index();
48 const bool has_new_target = new_target_index !=
kMaxInt;
50 DCHECK_LE(new_target_index, register_count);
51 for (
int i = 0;
i < new_target_index;
i++) {
56 register_count -= new_target_index + 1;
58 if (register_count < 2 * kLoopUnrollSize) {
60 for (
int i = 0;
i < register_count; ++
i) {
66 int first_registers = register_count % kLoopUnrollSize;
67 for (
int i = 0;
i < first_registers; ++
i) {
70 BaselineAssembler::ScratchRegisterScope temps(&
basm_);
71 Register scratch = temps.AcquireScratch();
73 __ Move(scratch, register_count / kLoopUnrollSize);
76 DCHECK_GT(register_count / kLoopUnrollSize, 0);
79 for (
int i = 0;
i < kLoopUnrollSize; ++
i) {
82 __ masm()->SubS64(scratch, Operand(1));
83 __ masm()->b(
gt, &loop);
88 BaselineAssembler::ScratchRegisterScope temps(&
basm_);
89 Register scratch = temps.AcquireScratch();
91 __ masm()->AddS64(scratch, sp,
94 __ masm()->CmpU64(scratch, fp);
95 __ masm()->Assert(
eq, AbortReason::kUnexpectedStackPointer);
static constexpr int kFixedFrameSizeFromFp
void CallBuiltin(Args... args)
Handle< BytecodeArray > bytecode_
#define ASM_CODE_COMMENT(asm)
constexpr BuiltinCallJumpMode kFallbackBuiltinCallJumpModeForBaseline
constexpr Register kJavaScriptCallTargetRegister
constexpr Register kJavaScriptCallArgCountRegister
constexpr Register kInterpreterAccumulatorRegister
constexpr Register kContextRegister
V8_EXPORT_PRIVATE FlagValues v8_flags
constexpr Register kJavaScriptCallNewTargetRegister
constexpr Register kJSFunctionRegister
#define DCHECK_LE(v1, v2)
#define DCHECK_EQ(v1, v2)
#define DCHECK_GT(v1, v2)