diff options
Diffstat (limited to 'deps/v8/src/codegen/arm64/assembler-arm64-inl.h')
-rw-r--r-- | deps/v8/src/codegen/arm64/assembler-arm64-inl.h | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/deps/v8/src/codegen/arm64/assembler-arm64-inl.h b/deps/v8/src/codegen/arm64/assembler-arm64-inl.h index 37158040ea..d564d06274 100644 --- a/deps/v8/src/codegen/arm64/assembler-arm64-inl.h +++ b/deps/v8/src/codegen/arm64/assembler-arm64-inl.h @@ -485,15 +485,15 @@ Tagged_t Assembler::target_compressed_address_at(Address pc, return Memory<Tagged_t>(target_pointer_address_at(pc)); } -Handle<CodeT> Assembler::code_target_object_handle_at(Address pc) { +Handle<Code> Assembler::code_target_object_handle_at(Address pc) { Instruction* instr = reinterpret_cast<Instruction*>(pc); if (instr->IsLdrLiteralX()) { - return Handle<CodeT>(reinterpret_cast<Address*>( + return Handle<Code>(reinterpret_cast<Address*>( Assembler::target_address_at(pc, 0 /* unused */))); } else { DCHECK(instr->IsBranchAndLink() || instr->IsUnconditionalBranch()); DCHECK_EQ(instr->ImmPCOffset() % kInstrSize, 0); - return Handle<CodeT>::cast( + return Handle<Code>::cast( GetEmbeddedObject(instr->ImmPCOffset() >> kInstrSizeLog2)); } } @@ -620,7 +620,7 @@ int RelocInfo::target_address_size() { Address RelocInfo::target_address() { DCHECK(IsCodeTarget(rmode_) || IsNearBuiltinEntry(rmode_) || - IsWasmCall(rmode_)); + IsWasmCall(rmode_) || IsWasmStubCall(rmode_)); return Assembler::target_address_at(pc_, constant_pool_); } @@ -659,10 +659,11 @@ HeapObject RelocInfo::target_object(PtrComprCageBase cage_base) { Tagged_t compressed = Assembler::target_compressed_address_at(pc_, constant_pool_); DCHECK(!HAS_SMI_TAG(compressed)); - Object obj(V8HeapCompressionScheme::DecompressTaggedPointer(cage_base, - compressed)); - // Embedding of compressed Code objects must not happen when external code - // space is enabled, because CodeDataContainers must be used instead. + Object obj( + V8HeapCompressionScheme::DecompressTagged(cage_base, compressed)); + // Embedding of compressed InstructionStream objects must not happen when + // external code space is enabled, because Codes must be used + // instead. DCHECK_IMPLIES(V8_EXTERNAL_CODE_SPACE_BOOL, !IsCodeSpaceObject(HeapObject::cast(obj))); return HeapObject::cast(obj); @@ -688,15 +689,15 @@ void RelocInfo::set_target_object(Heap* heap, HeapObject target, if (IsCompressedEmbeddedObject(rmode_)) { Assembler::set_target_compressed_address_at( pc_, constant_pool_, - V8HeapCompressionScheme::CompressTagged(target.ptr()), + V8HeapCompressionScheme::CompressObject(target.ptr()), icache_flush_mode); } else { DCHECK(IsFullEmbeddedObject(rmode_)); Assembler::set_target_address_at(pc_, constant_pool_, target.ptr(), icache_flush_mode); } - if (!host().is_null() && !v8_flags.disable_write_barriers) { - WriteBarrierForCode(host(), this, target, write_barrier_mode); + if (!instruction_stream().is_null() && !v8_flags.disable_write_barriers) { + WriteBarrierForCode(instruction_stream(), this, target, write_barrier_mode); } } |