| Index: src/x64/assembler-x64.cc
|
| diff --git a/src/x64/assembler-x64.cc b/src/x64/assembler-x64.cc
|
| index 48f9a9a18364157a77769d60dc2d9564155ec8fa..7c992cbd88bc7062e96dc778f72de74fb4bed58a 100644
|
| --- a/src/x64/assembler-x64.cc
|
| +++ b/src/x64/assembler-x64.cc
|
| @@ -127,6 +127,11 @@ uint32_t RelocInfo::wasm_memory_size_reference() {
|
| return Memory::uint32_at(pc_);
|
| }
|
|
|
| +uint32_t RelocInfo::wasm_function_index() {
|
| + DCHECK(IsWasmDirectCall(rmode_));
|
| + return Memory::uint32_at(pc_);
|
| +}
|
| +
|
| void RelocInfo::update_wasm_memory_reference(
|
| Address old_base, Address new_base, uint32_t old_size, uint32_t new_size,
|
| ICacheFlushMode icache_flush_mode) {
|
| @@ -888,6 +893,14 @@ void Assembler::call(Handle<Code> target,
|
| emit_code_target(target, rmode, ast_id);
|
| }
|
|
|
| +void Assembler::wasm_direct_call(uint32_t index) {
|
| + positions_recorder()->WriteRecordedPositions();
|
| + EnsureSpace ensure_space(this);
|
| + emit(0xE8);
|
| + RecordRelocInfo(RelocInfo::WASM_DIRECT_CALL);
|
| +
|
| + emitl(index);
|
| +}
|
|
|
| void Assembler::call(Register adr) {
|
| positions_recorder()->WriteRecordedPositions();
|
|
|