chromium/v8/test/cctest/wasm/test-run-wasm-64.cc

// Copyright 2015 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 <stdint.h>
#include <stdlib.h>
#include <string.h>

#include "src/base/bits.h"
#include "src/base/overflowing-math.h"
#include "src/base/safe_conversions.h"
#include "src/codegen/assembler-inl.h"
#include "src/objects/objects-inl.h"
#include "test/cctest/cctest.h"
#include "test/cctest/wasm/wasm-run-utils.h"
#include "test/common/value-helper.h"
#include "test/common/wasm/test-signatures.h"
#include "test/common/wasm/wasm-macro-gen.h"

namespace v8 {
namespace internal {
namespace wasm {
namespace test_run_wasm_64 {

WASM_EXEC_TEST(I64Const) {}

WASM_EXEC_TEST(I64Const_many) {}

WASM_EXEC_TEST(Return_I64) {}

WASM_EXEC_TEST(I64Add) {}

// The i64 add and subtract regression tests need a 64-bit value with a non-zero
// upper half. This upper half was clobbering eax, leading to the function
// returning 1 rather than 0.
const int64_t kHasBit33On =;

WASM_EXEC_TEST(Regress5800_Add) {}

WASM_EXEC_TEST(I64Sub) {}

WASM_EXEC_TEST(Regress5800_Sub) {}

WASM_EXEC_TEST(I64AddUseOnlyLowWord) {}

WASM_EXEC_TEST(I64SubUseOnlyLowWord) {}

WASM_EXEC_TEST(I64MulUseOnlyLowWord) {}

WASM_EXEC_TEST(I64ShlUseOnlyLowWord) {}

WASM_EXEC_TEST(I64ShrUseOnlyLowWord) {}

WASM_EXEC_TEST(I64SarUseOnlyLowWord) {}

WASM_EXEC_TEST(I64DivS) {}

WASM_EXEC_TEST(I64DivS_Trap) {}

WASM_EXEC_TEST(I64DivS_Byzero_Const) {}

WASM_EXEC_TEST(I64DivU) {}

WASM_EXEC_TEST(I64DivU_Trap) {}

WASM_EXEC_TEST(I64DivU_Byzero_Const) {}

WASM_EXEC_TEST(I64RemS) {}

WASM_EXEC_TEST(I64RemS_Trap) {}

WASM_EXEC_TEST(I64RemU) {}

WASM_EXEC_TEST(I64RemU_Trap) {}

WASM_EXEC_TEST(I64And) {}

WASM_EXEC_TEST(I64Ior) {}

WASM_EXEC_TEST(I64Xor) {}

WASM_EXEC_TEST(I64Shl) {}

WASM_EXEC_TEST(I64ShrU) {}

WASM_EXEC_TEST(I64ShrS) {}

WASM_EXEC_TEST(I64Eq) {}

WASM_EXEC_TEST(I64Ne) {}

WASM_EXEC_TEST(I64LtS) {}

WASM_EXEC_TEST(I64LeS) {}

WASM_EXEC_TEST(I64LtU) {}

WASM_EXEC_TEST(I64LeU) {}

WASM_EXEC_TEST(I64GtS) {}

WASM_EXEC_TEST(I64GeS) {}

WASM_EXEC_TEST(I64GtU) {}

WASM_EXEC_TEST(I64GeU) {}

WASM_EXEC_TEST(I32ConvertI64) {}

WASM_EXEC_TEST(I64SConvertI32) {}

WASM_EXEC_TEST(I64UConvertI32) {}

WASM_EXEC_TEST(I64Popcnt) {}

WASM_EXEC_TEST(F32SConvertI64) {}

WASM_EXEC_TEST(F32UConvertI64) {}

WASM_EXEC_TEST(F64SConvertI64) {}

WASM_EXEC_TEST(F64UConvertI64) {}

WASM_EXEC_TEST(I64SConvertF32) {}

WASM_EXEC_TEST(I64SConvertSatF32) {}

WASM_EXEC_TEST(I64SConvertF64) {}

WASM_EXEC_TEST(I64SConvertSatF64) {}

WASM_EXEC_TEST(I64UConvertF32) {}

WASM_EXEC_TEST(I64UConvertSatF32) {}

WASM_EXEC_TEST(I64UConvertF64) {}

WASM_EXEC_TEST(I64UConvertSatF64) {}

WASM_EXEC_TEST(CallI64Parameter) {}

WASM_EXEC_TEST(CallI64Return) {}

void TestI64Binop(TestExecutionTier execution_tier, WasmOpcode opcode,
                  int64_t expected, int64_t a, int64_t b) {}

void TestI64Cmp(TestExecutionTier execution_tier, WasmOpcode opcode,
                int64_t expected, int64_t a, int64_t b) {}

WASM_EXEC_TEST(I64Binops) {}

WASM_EXEC_TEST(I64Compare) {}

WASM_EXEC_TEST(I64Clz) {}

WASM_EXEC_TEST(I64Ctz) {}

WASM_EXEC_TEST(I64Popcnt2) {}

// Test the WasmRunner with an Int64 return value and different numbers of
// Int64 parameters.
WASM_EXEC_TEST(I64WasmRunner) {}

WASM_EXEC_TEST(Call_Int64Sub) {}

WASM_EXEC_TEST(LoadStoreI64_sx) {}

WASM_EXEC_TEST(I64ReinterpretF64) {}

WASM_EXEC_TEST(SignallingNanSurvivesI64ReinterpretF64) {}

WASM_EXEC_TEST(F64ReinterpretI64) {}

WASM_EXEC_TEST(LoadMemI64) {}

WASM_EXEC_TEST(LoadMemI64_alignment) {}

WASM_EXEC_TEST(MemI64_Sum) {}

WASM_EXEC_TEST(StoreMemI64_alignment) {}

WASM_EXEC_TEST(I64Global) {}

WASM_EXEC_TEST(I64Eqz) {}

WASM_EXEC_TEST(I64Ror) {}

WASM_EXEC_TEST(I64Rol) {}

WASM_EXEC_TEST(StoreMem_offset_oob_i64) {}

WASM_EXEC_TEST(Store_i64_narrowed) {}

WASM_EXEC_TEST(UnalignedInt64Load) {}

WASM_EXEC_TEST(UnalignedInt64Store) {}

static void CompileCallIndirectMany(TestExecutionTier tier, ValueType param) {}

WASM_EXEC_TEST(Compile_Wasm_CallIndirect_Many_i64) {}

static void Run_WasmMixedCall_N(TestExecutionTier execution_tier, int start) {}

WASM_EXEC_TEST(MixedCall_i64_0) {}
WASM_EXEC_TEST(MixedCall_i64_1) {}
WASM_EXEC_TEST(MixedCall_i64_2) {}
WASM_EXEC_TEST(MixedCall_i64_3) {}

WASM_EXEC_TEST(Regress5874) {}

WASM_EXEC_TEST(Regression_6858) {}

// clang-format gets confused about these closing parentheses (wants to change
// the first comment to "// namespace v8". Disable it.
// clang-format off
}  // namespace test_run_wasm_64
}  // namespace wasm
}  // namespace internal
}  // namespace v8
// clang-format on