Home | History | Annotate | Download | only in interpreter

Lines Matching refs:Node

25 using compiler::Node;
67 Node* InterpreterAssembler::GetInterpretedFramePointer() {
78 Node* InterpreterAssembler::GetAccumulatorUnchecked() {
82 Node* InterpreterAssembler::GetAccumulator() {
88 void InterpreterAssembler::SetAccumulator(Node* value) {
94 Node* InterpreterAssembler::GetContext() {
98 void InterpreterAssembler::SetContext(Node* value) {
102 Node* InterpreterAssembler::GetContextAtDepth(Node* context, Node* depth) {
132 void InterpreterAssembler::GotoIfHasContextExtensionUpToDepth(Node* context,
133 Node* depth,
152 Node* extension_slot =
167 Node* InterpreterAssembler::BytecodeOffset() {
176 Node* InterpreterAssembler::BytecodeArrayTaggedPointer() {
187 Node* InterpreterAssembler::DispatchTableRawPointer() {
197 Node* InterpreterAssembler::RegisterLocation(Node* reg_index) {
202 Node* InterpreterAssembler::RegisterFrameOffset(Node* index) {
206 Node* InterpreterAssembler::LoadRegister(Register reg) {
211 Node* InterpreterAssembler::LoadRegister(Node* reg_index) {
216 Node* InterpreterAssembler::LoadAndUntagRegister(Register reg) {
221 Node* InterpreterAssembler::StoreRegister(Node* value, Register reg) {
227 Node* InterpreterAssembler::StoreRegister(Node* value, Node* reg_index) {
233 Node* InterpreterAssembler::StoreAndTagRegister(compiler::Node* value,
239 Node* InterpreterAssembler::NextRegister(Node* reg_index) {
244 Node* InterpreterAssembler::OperandOffset(int operand_index) {
249 Node* InterpreterAssembler::BytecodeOperandUnsignedByte(int operand_index) {
253 Node* operand_offset = OperandOffset(operand_index);
258 Node* InterpreterAssembler::BytecodeOperandSignedByte(int operand_index) {
262 Node* operand_offset = OperandOffset(operand_index);
267 compiler::Node* InterpreterAssembler::BytecodeOperandReadUnaligned(
300 compiler::Node* bytes[kMaxCount];
303 Node* offset = IntPtrConstant(relative_offset + msb_offset + i * kStep);
304 Node* array_offset = IntPtrAdd(BytecodeOffset(), offset);
309 Node* result = bytes[--count];
311 Node* shift = Int32Constant(i * kBitsPerByte);
312 Node* value = Word32Shl(bytes[count], shift);
318 Node* InterpreterAssembler::BytecodeOperandUnsignedShort(int operand_index) {
333 Node* InterpreterAssembler::BytecodeOperandSignedShort(int operand_index) {
348 Node* InterpreterAssembler::BytecodeOperandUnsignedQuad(int operand_index) {
362 Node* InterpreterAssembler::BytecodeOperandSignedQuad(int operand_index) {
376 Node* InterpreterAssembler::BytecodeSignedOperand(int operand_index,
393 Node* InterpreterAssembler::BytecodeUnsignedOperand(int operand_index,
410 Node* InterpreterAssembler::BytecodeOperandCount(int operand_index) {
418 Node* InterpreterAssembler::BytecodeOperandFlag(int operand_index) {
427 Node* InterpreterAssembler::BytecodeOperandUImm(int operand_index) {
435 Node
439 Node* InterpreterAssembler::BytecodeOperandImm(int operand_index) {
447 Node* InterpreterAssembler::BytecodeOperandImmIntPtr(int operand_index) {
451 Node* InterpreterAssembler::BytecodeOperandImmSmi(int operand_index) {
455 Node* InterpreterAssembler::BytecodeOperandIdx(int operand_index) {
464 Node* InterpreterAssembler::BytecodeOperandIdxSmi(int operand_index) {
468 Node* InterpreterAssembler::BytecodeOperandReg(int operand_index) {
477 Node* InterpreterAssembler::BytecodeOperandRuntimeId(int operand_index) {
486 Node* InterpreterAssembler::BytecodeOperandIntrinsicId(int operand_index) {
495 Node* InterpreterAssembler::LoadConstantPoolEntry(Node* index) {
496 Node* constant_pool = LoadObjectField(BytecodeArrayTaggedPointer(),
501 Node* InterpreterAssembler::LoadAndUntagConstantPoolEntry(Node* index) {
505 Node* InterpreterAssembler::LoadFeedbackVector() {
506 Node* function = LoadRegister(Register::function_closure());
507 Node* cell = LoadObjectField(function, JSFunction::kFeedbackVectorOffset);
508 Node* vector = LoadObjectField(cell, Cell::kValueOffset);
536 Node* stack_pointer_after_call = LoadStackPointer();
537 Node* stack_pointer_before_call = stack_pointer_before_call_;
544 Node* InterpreterAssembler::IncrementCallCount(Node* feedback_vector,
545 Node* slot_id) {
547 Node* call_count_slot = IntPtrAdd(slot_id, IntPtrConstant(1));
548 Node* call_count = LoadFixedArrayElement(feedback_vector, call_count_slot);
549 Node* new_count = SmiAdd(call_count, SmiConstant(1));
555 Node* InterpreterAssembler::CallJSWithFeedback(Node* function, Node* context,
556 Node* first_arg, Node* arg_count,
557 Node* slot_id,
558 Node* feedback_vector,
582 Node* feedback_element = LoadFixedArrayElement(feedback_vector, slot_id);
583 Node* feedback_value = LoadWeakCellValueUnchecked(feedback_element);
584 Node* is_monomorphic = WordEqual(function, feedback_value);
589 Node* is_smi = TaggedIsSmi(function);
600 Node* code_target = HeapConstant(callable.code());
601 Node* ret_value = CallStub(callable.descriptor(), code_target, context,
614 Node* is_megamorphic =
624 Node* context_slot = LoadContextElement(LoadNativeContext(context),
626 Node* is_array_function = WordEqual(context_slot, function);
635 Node* code_target_call = HeapConstant(callable_call.code());
636 Node* ret_value =
646 Node* is_uninitialized = WordEqual(
653 Node* is_smi = TaggedIsSmi(function);
657 Node* instance_type = LoadInstanceType(function);
658 Node* is_js_function =
663 Node* context_slot = LoadContextElement(LoadNativeContext(context),
665 Node* is_array_function = WordEqual(context_slot, function);
669 Node* native_context = LoadNativeContext(
671 Node* is_same_native_context =
715 Node* code_target_call = HeapConstant(callable_call.code());
716 Node* ret_value = CallStub(callable_call.descriptor(), code_target_call,
726 Node* InterpreterAssembler::CallJS(Node* function, Node* context,
727 Node* first_arg, Node* arg_count,
733 Node* code_target = HeapConstant(callable.code());
739 Node* InterpreterAssembler::CallJSWithSpread(Node* function, Node* context,
740 Node* first_arg, Node* arg_count) {
745 Node* code_target = HeapConstant(callable.code());
751 Node* InterpreterAssembler::Construct(Node* constructor, Node* context,
752 Node* new_target, Node* first_arg,
753 Node* arg_count, Node* slot_id,
754 Node* feedback_vector) {
763 Node* is_feedback_unavailable = WordEqual(slot_id, IntPtrConstant(0));
767 Node* is_smi = TaggedIsSmi(constructor);
771 Node* instance_type = LoadInstanceType(constructor);
772 Node* is_js_function =
777 Node* feedback_element = LoadFixedArrayElement(feedback_vector, slot_id);
778 Node* feedback_value = LoadWeakCellValueUnchecked(feedback_element);
779 Node* is_monomorphic = WordEqual(constructor, feedback_value);
803 Node* is_megamorphic =
809 Node* is_weak_cell = WordEqual(LoadMap(feedback_element),
816 Node* is_smi = TaggedIsSmi(feedback_value);
822 Node* is_allocation_site =
828 Node* context_slot = LoadContextElement(LoadNativeContext(context),
830 Node* is_array_function = WordEqual(context_slot, constructor);
841 Node* is_uninitialized = WordEqual(
852 Node* context_slot = LoadContextElement(LoadNativeContext(context),
854 Node* is_array_function = WordEqual(context_slot, constructor);
859 Node* site = CreateAllocationSiteInFeedbackVector(feedback_vector,
892 Node* code_target = HeapConstant(callable.code());
903 Node* InterpreterAssembler::ConstructWithSpread(Node* constructor,
904 Node* context, Node* new_target,
905 Node* first_arg,
906 Node* arg_count) {
912 Node* code_target = HeapConstant(callable.code());
920 Node* InterpreterAssembler::CallRuntimeN(Node* function_id, Node* context,
921 Node* first_arg, Node* arg_count,
926 Node* code_target = HeapConstant(callable.code());
929 Node* function_table = ExternalConstant(
931 Node* function_offset =
933 Node* function =
935 Node* function_entry =
943 void InterpreterAssembler::UpdateInterruptBudget(Node* weight, bool backward) {
945 Node* budget_offset =
950 Node* old_budget =
957 Node* condition =
976 Node* InterpreterAssembler::Advance() {
980 Node* InterpreterAssembler::Advance(int delta) {
984 Node* InterpreterAssembler::Advance(Node* delta, bool backward) {
988 Node* next_offset = backward ? IntPtrSub(BytecodeOffset(), delta)
994 Node* InterpreterAssembler::Jump(Node* delta, bool backward) {
998 Node* new_bytecode_offset = Advance(delta, backward);
999 Node* target_bytecode = LoadBytecode(new_bytecode_offset);
1003 Node* InterpreterAssembler::Jump(Node* delta) { return Jump(delta, false); }
1005 Node* InterpreterAssembler::JumpBackward(Node* delta) {
1009 void InterpreterAssembler::JumpConditional(Node* condition, Node* delta) {
1019 void InterpreterAssembler::JumpIfWordEqual(Node* lhs, Node* rhs, Node* delta) {
1023 void InterpreterAssembler::JumpIfWordNotEqual(Node* lhs, Node* rhs,
1024 Node* delta) {
1028 Node* InterpreterAssembler::LoadBytecode(compiler::Node* bytecode_offset) {
1029 Node* bytecode =
1034 Node* InterpreterAssembler::StarDispatchLookahead(Node* target_bytecode) {
1040 Node* star_bytecode = IntPtrConstant(static_cast<int>(Bytecode::kStar));
1041 Node* is_star = WordEqual(target_bytecode, star_bytecode);
1073 Node* InterpreterAssembler::Dispatch() {
1076 Node* target_offset = Advance();
1077 Node* target_bytecode = LoadBytecode(target_offset);
1085 Node* InterpreterAssembler::DispatchToBytecode(Node* target_bytecode,
1086 Node* new_bytecode_offset) {
1091 Node* target_code_entry =
1098 Node* InterpreterAssembler::DispatchToBytecodeHandler(Node* handler,
1099 Node* bytecode_offset) {
1101 Node* handler_entry =
1107 Node* InterpreterAssembler::DispatchToBytecodeHandlerEntry(
1108 Node* handler_entry, Node* bytecode_offset) {
1124 Node* next_bytecode_offset = Advance(1);
1125 Node* next_bytecode = LoadBytecode(next_bytecode_offset);
1131 Node* base_index;
1143 Node* target_index = IntPtrAdd(base_index, next_bytecode);
1144 Node* target_code_entry =
1151 Node* InterpreterAssembler::TruncateTaggedToWord32WithFeedback(
1152 Node* context, Node* value, Variable* var_type_feedback) {
1185 Node* value_map = LoadMap(value);
1209 Node* is_oddball = Word32Equal(LoadMapInstanceType(value_map),
1243 Node* profiling_weight =
1249 Node* InterpreterAssembler::StackCheckTriggeredInterrupt() {
1250 Node* sp = LoadStackPointer();
1251 Node* stack_limit = Load(
1257 Node* InterpreterAssembler::LoadOSRNestingLevel() {
1265 Node
1270 void InterpreterAssembler::AbortIfWordNotEqual(Node* lhs, Node* rhs,
1282 void InterpreterAssembler::MaybeDropFrames(Node* context) {
1283 Node* restart_fp_address =
1286 Node* restart_fp = Load(MachineType::Pointer(), restart_fp_address);
1287 Node* null = IntPtrConstant(0);
1307 void InterpreterAssembler::TraceBytecodeDispatch(Node* target_bytecode) {
1308 Node* counters_table = ExternalConstant(
1310 Node* source_bytecode_table_index = IntPtrConstant(
1313 Node* counter_offset =
1316 Node* old_counter =
1321 Node* counter_reached_max = WordEqual(
1327 Node* new_counter = IntPtrAdd(old_counter, IntPtrConstant(1));
1349 Node* InterpreterAssembler::RegisterCount() {
1350 Node* bytecode_array = LoadRegister(Register::bytecode_array());
1351 Node* frame_size = LoadObjectField(
1357 Node* InterpreterAssembler::ExportRegisterFile(Node* array) {
1358 Node* register_count = RegisterCount();
1360 Node* array_size = LoadAndUntagFixedArrayBaseLength(array);
1375 Node* index = var_index.value();
1378 Node* reg_index = IntPtrSub(IntPtrConstant(Register(0).ToOperand()), index);
1379 Node* value = LoadRegister(reg_index);
1391 Node* InterpreterAssembler::ImportRegisterFile(Node* array) {
1392 Node* register_count = RegisterCount();
1394 Node* array_size = LoadAndUntagFixedArrayBaseLength(array);
1408 Node* index = var_index.value();
1411 Node* value = LoadFixedArrayElement(array, index);
1413 Node* reg_index = IntPtrSub(IntPtrConstant(Register(0).ToOperand()), index);