5#ifndef V8_BASELINE_X64_BASELINE_COMPILER_X64_INL_H_
6#define V8_BASELINE_X64_BASELINE_COMPILER_X64_INL_H_
26 int max_frame_size =
bytecode_->max_frame_size();
30#ifdef V8_ENABLE_CET_SHADOW_STACK
31 __ MaybeEmitPlaceHolderForDeopt();
40 interpreter::Register new_target_or_generator_register =
41 bytecode_->incoming_new_target_or_generator_register();
46 __ masm()->Assert(
equal, AbortReason::kUnexpectedValue);
48 int register_count =
bytecode_->register_count();
50 const int kLoopUnrollSize = 8;
51 const int new_target_index = new_target_or_generator_register.index();
52 const bool has_new_target = new_target_index !=
kMaxInt;
54 DCHECK_LE(new_target_index, register_count);
55 for (
int i = 0;
i < new_target_index;
i++) {
60 register_count -= new_target_index + 1;
62 if (register_count < 2 * kLoopUnrollSize) {
64 for (
int i = 0;
i < register_count; ++
i) {
69 int first_registers = register_count % kLoopUnrollSize;
70 for (
int i = 0;
i < first_registers; ++
i) {
73 BaselineAssembler::ScratchRegisterScope scope(&
basm_);
74 Register scratch = scope.AcquireScratch();
75 __ Move(scratch, register_count / kLoopUnrollSize);
78 DCHECK_GT(register_count / kLoopUnrollSize, 0);
81 for (
int i = 0;
i < kLoopUnrollSize; ++
i) {
84 __ masm()->decl(scratch);
96 __ masm()->Assert(
equal, AbortReason::kUnexpectedStackPointer);
static constexpr int kFixedFrameSizeFromFp
void CallBuiltin(Args... args)
Handle< BytecodeArray > bytecode_
LocalIsolate * local_isolate_
#define ASM_CODE_COMMENT(asm)
constexpr BuiltinCallJumpMode kFallbackBuiltinCallJumpModeForBaseline
V8_INLINE IndirectHandle< T > handle(Tagged< T > object, Isolate *isolate)
constexpr Register kJavaScriptCallTargetRegister
constexpr Register kJavaScriptCallArgCountRegister
constexpr Register kInterpreterAccumulatorRegister
constexpr Register kScratchRegister
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)