summaryrefslogtreecommitdiff
path: root/deps/v8/src/codegen/arm64/assembler-arm64-inl.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/codegen/arm64/assembler-arm64-inl.h')
-rw-r--r--deps/v8/src/codegen/arm64/assembler-arm64-inl.h23
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);
}
}