blob: 3716ad04d9fee66be4a81f762788c10ce90cf66d [file] [log] [blame]
// 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<Address>(wasm_code_->instructions().start());
}
Address CodeReference::instruction_end() const {
return kind_ == JS
? js_code_->InstructionEnd()
: reinterpret_cast<Address>(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