@@ -443,25 +443,24 @@ void TurboAssembler::CallEphemeronKeyBarrier(Register object, Register address,
443443void TurboAssembler::CallRecordWriteStub (
444444 Register object, Register address,
445445 RememberedSetAction remembered_set_action, SaveFPRegsMode fp_mode) {
446- CallRecordWriteStub (
447- object, address, remembered_set_action, fp_mode,
448- isolate ()->builtins ()->builtin_handle (Builtins::kRecordWrite ),
449- kNullAddress );
446+ CallRecordWriteStub (object, address, remembered_set_action, fp_mode,
447+ Builtins::kRecordWrite , kNullAddress );
450448}
451449
452450void TurboAssembler::CallRecordWriteStub (
453451 Register object, Register address,
454452 RememberedSetAction remembered_set_action, SaveFPRegsMode fp_mode,
455453 Address wasm_target) {
456454 CallRecordWriteStub (object, address, remembered_set_action, fp_mode,
457- Handle<Code>:: null () , wasm_target);
455+ Builtins:: kNoBuiltinId , wasm_target);
458456}
459457
460458void TurboAssembler::CallRecordWriteStub (
461459 Register object, Register address,
462460 RememberedSetAction remembered_set_action, SaveFPRegsMode fp_mode,
463- Handle<Code> code_target, Address wasm_target) {
464- DCHECK_NE (code_target.is_null (), wasm_target == kNullAddress );
461+ int builtin_index, Address wasm_target) {
462+ DCHECK_NE (builtin_index == Builtins::kNoBuiltinId ,
463+ wasm_target == kNullAddress );
465464 // TODO(albertnetymk): For now we ignore remembered_set_action and fp_mode,
466465 // i.e. always emit remember set and save FP registers in RecordWriteStub. If
467466 // large performance regression is observed, we should use these values to
@@ -489,10 +488,14 @@ void TurboAssembler::CallRecordWriteStub(
489488
490489 Move (remembered_set_parameter, Smi::FromEnum (remembered_set_action));
491490 Move (fp_mode_parameter, Smi::FromEnum (fp_mode));
492- if (code_target. is_null () ) {
491+ if (builtin_index == Builtins:: kNoBuiltinId ) {
493492 // Use {wasm_call} for direct Wasm call within a module.
494493 wasm_call (wasm_target, RelocInfo::WASM_STUB_CALL);
494+ } else if (options ().inline_offheap_trampolines ) {
495+ CallBuiltin (builtin_index);
495496 } else {
497+ Handle<Code> code_target =
498+ isolate ()->builtins ()->builtin_handle (Builtins::kRecordWrite );
496499 Call (code_target, RelocInfo::CODE_TARGET);
497500 }
498501
0 commit comments