// 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
|