| Index: test/cctest/compiler/test-run-wasm-machops.cc
|
| diff --git a/test/cctest/compiler/test-run-wasm-machops.cc b/test/cctest/compiler/test-run-wasm-machops.cc
|
| deleted file mode 100644
|
| index 29709e981b02325e003cfd7e9a6d37b078cee54f..0000000000000000000000000000000000000000
|
| --- a/test/cctest/compiler/test-run-wasm-machops.cc
|
| +++ /dev/null
|
| @@ -1,145 +0,0 @@
|
| -// Copyright 2016 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 <cmath>
|
| -#include <functional>
|
| -#include <limits>
|
| -
|
| -#include "src/base/bits.h"
|
| -#include "src/base/utils/random-number-generator.h"
|
| -#include "src/codegen.h"
|
| -#include "test/cctest/cctest.h"
|
| -#include "test/cctest/compiler/codegen-tester.h"
|
| -#include "test/cctest/compiler/graph-builder-tester.h"
|
| -#include "test/cctest/compiler/value-helper.h"
|
| -
|
| -using namespace v8::internal;
|
| -using namespace v8::internal::compiler;
|
| -
|
| -static void UpdateMemoryReferences(Handle<Code> code, Address old_base,
|
| - Address new_base, size_t old_size,
|
| - size_t new_size) {
|
| - Isolate* isolate = CcTest::i_isolate();
|
| - bool modified = false;
|
| - int mode_mask = (1 << RelocInfo::WASM_MEMORY_REFERENCE);
|
| - for (RelocIterator it(*code, mode_mask); !it.done(); it.next()) {
|
| - RelocInfo::Mode mode = it.rinfo()->rmode();
|
| - if (RelocInfo::IsWasmMemoryReference(mode)) {
|
| - // Patch addresses with change in memory start address
|
| - it.rinfo()->update_wasm_memory_reference(old_base, new_base, old_size,
|
| - new_size);
|
| - modified = true;
|
| - }
|
| - }
|
| - if (modified) {
|
| - Assembler::FlushICache(isolate, code->instruction_start(),
|
| - code->instruction_size());
|
| - }
|
| -}
|
| -
|
| -template <typename CType>
|
| -static void RunLoadStoreRelocation(MachineType rep) {
|
| - const int kNumElems = 2;
|
| - CType buffer[kNumElems];
|
| - CType new_buffer[kNumElems];
|
| - byte* raw = reinterpret_cast<byte*>(buffer);
|
| - byte* new_raw = reinterpret_cast<byte*>(new_buffer);
|
| - for (size_t i = 0; i < sizeof(buffer); i++) {
|
| - raw[i] = static_cast<byte>((i + sizeof(CType)) ^ 0xAA);
|
| - new_raw[i] = static_cast<byte>((i + sizeof(CType)) ^ 0xAA);
|
| - }
|
| - int32_t OK = 0x29000;
|
| - RawMachineAssemblerTester<uint32_t> m;
|
| - Node* base = m.RelocatableIntPtrConstant(reinterpret_cast<intptr_t>(raw),
|
| - RelocInfo::WASM_MEMORY_REFERENCE);
|
| - Node* base1 = m.RelocatableIntPtrConstant(
|
| - reinterpret_cast<intptr_t>(raw + sizeof(CType)),
|
| - RelocInfo::WASM_MEMORY_REFERENCE);
|
| - Node* index = m.Int32Constant(0);
|
| - Node* load = m.Load(rep, base, index);
|
| - m.Store(rep.representation(), base1, index, load, kNoWriteBarrier);
|
| - m.Return(m.Int32Constant(OK));
|
| - CHECK(buffer[0] != buffer[1]);
|
| - CHECK_EQ(OK, m.Call());
|
| - CHECK(buffer[0] == buffer[1]);
|
| - m.GenerateCode();
|
| - Handle<Code> code = m.GetCode();
|
| - UpdateMemoryReferences(code, raw, new_raw, sizeof(buffer),
|
| - sizeof(new_buffer));
|
| - CHECK(new_buffer[0] != new_buffer[1]);
|
| - CHECK_EQ(OK, m.Call());
|
| - CHECK(new_buffer[0] == new_buffer[1]);
|
| -}
|
| -
|
| -TEST(RunLoadStoreRelocation) {
|
| - RunLoadStoreRelocation<int8_t>(MachineType::Int8());
|
| - RunLoadStoreRelocation<uint8_t>(MachineType::Uint8());
|
| - RunLoadStoreRelocation<int16_t>(MachineType::Int16());
|
| - RunLoadStoreRelocation<uint16_t>(MachineType::Uint16());
|
| - RunLoadStoreRelocation<int32_t>(MachineType::Int32());
|
| - RunLoadStoreRelocation<uint32_t>(MachineType::Uint32());
|
| - RunLoadStoreRelocation<void*>(MachineType::AnyTagged());
|
| - RunLoadStoreRelocation<float>(MachineType::Float32());
|
| - RunLoadStoreRelocation<double>(MachineType::Float64());
|
| -}
|
| -
|
| -template <typename CType>
|
| -static void RunLoadStoreRelocationOffset(MachineType rep) {
|
| - RawMachineAssemblerTester<int32_t> r(MachineType::Int32());
|
| - const int kNumElems = 4;
|
| - CType buffer[kNumElems];
|
| - CType new_buffer[kNumElems + 1];
|
| -
|
| - for (int32_t x = 0; x < kNumElems; x++) {
|
| - int32_t y = kNumElems - x - 1;
|
| - // initialize the buffer with raw data.
|
| - byte* raw = reinterpret_cast<byte*>(buffer);
|
| - for (size_t i = 0; i < sizeof(buffer); i++) {
|
| - raw[i] = static_cast<byte>((i + sizeof(buffer)) ^ 0xAA);
|
| - }
|
| -
|
| - RawMachineAssemblerTester<int32_t> m;
|
| - int32_t OK = 0x29000 + x;
|
| - Node* base = m.RelocatableIntPtrConstant(reinterpret_cast<intptr_t>(buffer),
|
| - RelocInfo::WASM_MEMORY_REFERENCE);
|
| - Node* index0 = m.IntPtrConstant(x * sizeof(buffer[0]));
|
| - Node* load = m.Load(rep, base, index0);
|
| - Node* index1 = m.IntPtrConstant(y * sizeof(buffer[0]));
|
| - m.Store(rep.representation(), base, index1, load, kNoWriteBarrier);
|
| - m.Return(m.Int32Constant(OK));
|
| -
|
| - CHECK(buffer[x] != buffer[y]);
|
| - CHECK_EQ(OK, m.Call());
|
| - CHECK(buffer[x] == buffer[y]);
|
| - m.GenerateCode();
|
| -
|
| - // Initialize new buffer and set old_buffer to 0
|
| - byte* new_raw = reinterpret_cast<byte*>(new_buffer);
|
| - for (size_t i = 0; i < sizeof(buffer); i++) {
|
| - raw[i] = 0;
|
| - new_raw[i] = static_cast<byte>((i + sizeof(buffer)) ^ 0xAA);
|
| - }
|
| -
|
| - // Perform relocation on generated code
|
| - Handle<Code> code = m.GetCode();
|
| - UpdateMemoryReferences(code, raw, new_raw, sizeof(buffer),
|
| - sizeof(new_buffer));
|
| -
|
| - CHECK(new_buffer[x] != new_buffer[y]);
|
| - CHECK_EQ(OK, m.Call());
|
| - CHECK(new_buffer[x] == new_buffer[y]);
|
| - }
|
| -}
|
| -
|
| -TEST(RunLoadStoreRelocationOffset) {
|
| - RunLoadStoreRelocationOffset<int8_t>(MachineType::Int8());
|
| - RunLoadStoreRelocationOffset<uint8_t>(MachineType::Uint8());
|
| - RunLoadStoreRelocationOffset<int16_t>(MachineType::Int16());
|
| - RunLoadStoreRelocationOffset<uint16_t>(MachineType::Uint16());
|
| - RunLoadStoreRelocationOffset<int32_t>(MachineType::Int32());
|
| - RunLoadStoreRelocationOffset<uint32_t>(MachineType::Uint32());
|
| - RunLoadStoreRelocationOffset<void*>(MachineType::AnyTagged());
|
| - RunLoadStoreRelocationOffset<float>(MachineType::Float32());
|
| - RunLoadStoreRelocationOffset<double>(MachineType::Float64());
|
| -}
|
|
|