diff options
Diffstat (limited to 'deps/v8/src/ppc/assembler-ppc-inl.h')
-rw-r--r-- | deps/v8/src/ppc/assembler-ppc-inl.h | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/deps/v8/src/ppc/assembler-ppc-inl.h b/deps/v8/src/ppc/assembler-ppc-inl.h index 166a854638..ae37b02a24 100644 --- a/deps/v8/src/ppc/assembler-ppc-inl.h +++ b/deps/v8/src/ppc/assembler-ppc-inl.h @@ -91,7 +91,8 @@ Address RelocInfo::target_address() { Address RelocInfo::target_address_address() { DCHECK(IsCodeTarget(rmode_) || IsRuntimeEntry(rmode_) || IsWasmCall(rmode_) || - rmode_ == EMBEDDED_OBJECT || rmode_ == EXTERNAL_REFERENCE); + IsEmbeddedObject(rmode_) || IsExternalReference(rmode_) || + IsOffHeapTarget(rmode_)); if (FLAG_enable_embedded_constant_pool && Assembler::IsConstantPoolLoadStart(pc_)) { @@ -192,6 +193,19 @@ Address RelocInfo::target_external_reference() { return Assembler::target_address_at(pc_, constant_pool_); } +void RelocInfo::set_target_external_reference( + Address target, ICacheFlushMode icache_flush_mode) { + DCHECK(rmode_ == RelocInfo::EXTERNAL_REFERENCE); + Assembler::set_target_address_at(pc_, constant_pool_, target, + icache_flush_mode); +} + +void RelocInfo::set_wasm_code_table_entry(Address target, + ICacheFlushMode icache_flush_mode) { + DCHECK(rmode_ == RelocInfo::WASM_CODE_TABLE_ENTRY); + Assembler::set_target_address_at(pc_, constant_pool_, target, + icache_flush_mode); +} Address RelocInfo::target_runtime_entry(Assembler* origin) { DCHECK(IsRuntimeEntry(rmode_)); @@ -206,6 +220,11 @@ void RelocInfo::set_target_runtime_entry(Address target, set_target_address(target, write_barrier_mode, icache_flush_mode); } +Address RelocInfo::target_off_heap_target() { + DCHECK(IsOffHeapTarget(rmode_)); + return Assembler::target_address_at(pc_, constant_pool_); +} + void RelocInfo::WipeOut() { DCHECK(IsEmbeddedObject(rmode_) || IsCodeTarget(rmode_) || IsRuntimeEntry(rmode_) || IsExternalReference(rmode_) || @@ -237,6 +256,8 @@ void RelocInfo::Visit(ObjectVisitor* visitor) { visitor->VisitInternalReference(host(), this); } else if (IsRuntimeEntry(mode)) { visitor->VisitRuntimeEntry(host(), this); + } else if (RelocInfo::IsOffHeapTarget(mode)) { + visitor->VisitOffHeapTarget(host(), this); } } |