// Copyright 2018 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "src/code-reference.h" #include "src/handles-inl.h" #include "src/objects-inl.h" #include "src/wasm/wasm-code-manager.h" namespace v8 { namespace internal { Address CodeReference::constant_pool() const { return kind_ == JS ? js_code_->constant_pool() : wasm_code_->constant_pool(); } Address CodeReference::instruction_start() const { return kind_ == JS ? js_code_->InstructionStart() : reinterpret_cast
(wasm_code_->instructions().start()); } Address CodeReference::instruction_end() const { return kind_ == JS ? js_code_->InstructionEnd() : reinterpret_cast
(wasm_code_->instructions().start() + wasm_code_->instructions().size()); } int CodeReference::instruction_size() const { return kind_ == JS ? js_code_->InstructionSize() : wasm_code_->instructions().length(); } const byte* CodeReference::relocation_start() const { return kind_ == JS ? js_code_->relocation_start() : wasm_code_->reloc_info().start(); } const byte* CodeReference::relocation_end() const { return kind_ == JS ? js_code_->relocation_end() : wasm_code_->reloc_info().start() + wasm_code_->reloc_info().length(); } int CodeReference::relocation_size() const { return kind_ == JS ? js_code_->relocation_size() : wasm_code_->reloc_info().length(); } } // namespace internal } // namespace v8