| Index: test/cctest/wasm/test-run-wasm-64.cc
|
| diff --git a/test/cctest/wasm/test-run-wasm-64.cc b/test/cctest/wasm/test-run-wasm-64.cc
|
| index 578698783177a9e1de40ac724cdc3a2e844fc3cd..1a5b341b744c8b3a3410b27158d84d1691cfe90e 100644
|
| --- a/test/cctest/wasm/test-run-wasm-64.cc
|
| +++ b/test/cctest/wasm/test-run-wasm-64.cc
|
| @@ -92,7 +92,7 @@ FOREACH_I64_OPERATOR(DECLARE_CONST)
|
|
|
| WASM_EXEC_TEST(I64Const) {
|
| REQUIRE(I64Const);
|
| - WasmRunner<int64_t> r;
|
| + WasmRunner<int64_t> r(execution_mode);
|
| const int64_t kExpectedValue = 0x1122334455667788LL;
|
| // return(kExpectedValue)
|
| BUILD(r, WASM_I64V_9(kExpectedValue));
|
| @@ -103,7 +103,7 @@ WASM_EXEC_TEST(I64Const_many) {
|
| REQUIRE(I64Const);
|
| int cntr = 0;
|
| FOR_INT32_INPUTS(i) {
|
| - WasmRunner<int64_t> r;
|
| + WasmRunner<int64_t> r(execution_mode);
|
| const int64_t kExpectedValue = (static_cast<int64_t>(*i) << 32) | cntr;
|
| // return(kExpectedValue)
|
| BUILD(r, WASM_I64V(kExpectedValue));
|
| @@ -114,7 +114,7 @@ WASM_EXEC_TEST(I64Const_many) {
|
|
|
| WASM_EXEC_TEST(Return_I64) {
|
| REQUIRE(I64Return);
|
| - WasmRunner<int64_t> r(MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
|
|
|
| BUILD(r, WASM_RETURN1(WASM_GET_LOCAL(0)));
|
|
|
| @@ -123,7 +123,8 @@ WASM_EXEC_TEST(Return_I64) {
|
|
|
| WASM_EXEC_TEST(I64Add) {
|
| REQUIRE(I64Add);
|
| - WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_ADD(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| FOR_INT64_INPUTS(i) {
|
| FOR_INT64_INPUTS(j) { CHECK_EQ(*i + *j, r.Call(*i, *j)); }
|
| @@ -132,7 +133,8 @@ WASM_EXEC_TEST(I64Add) {
|
|
|
| WASM_EXEC_TEST(I64Sub) {
|
| REQUIRE(I64Sub);
|
| - WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_SUB(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| FOR_INT64_INPUTS(i) {
|
| FOR_INT64_INPUTS(j) { CHECK_EQ(*i - *j, r.Call(*i, *j)); }
|
| @@ -141,7 +143,8 @@ WASM_EXEC_TEST(I64Sub) {
|
|
|
| WASM_EXEC_TEST(I64DivS) {
|
| REQUIRE(I64DivS);
|
| - WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_DIVS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| FOR_INT64_INPUTS(i) {
|
| FOR_INT64_INPUTS(j) {
|
| @@ -158,7 +161,8 @@ WASM_EXEC_TEST(I64DivS) {
|
|
|
| WASM_EXEC_TEST(I64DivS_Trap) {
|
| REQUIRE(I64DivS);
|
| - WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_DIVS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| CHECK_EQ(0, r.Call(asi64(0), asi64(100)));
|
| CHECK_TRAP64(r.Call(asi64(100), asi64(0)));
|
| @@ -170,7 +174,7 @@ WASM_EXEC_TEST(I64DivS_Trap) {
|
| WASM_EXEC_TEST(I64DivS_Byzero_Const) {
|
| REQUIRE(I64DivS);
|
| for (int8_t denom = -2; denom < 8; denom++) {
|
| - WasmRunner<int64_t> r(MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
|
| BUILD(r, WASM_I64_DIVS(WASM_GET_LOCAL(0), WASM_I64V_1(denom)));
|
| for (int64_t val = -7; val < 8; val++) {
|
| if (denom == 0) {
|
| @@ -184,7 +188,8 @@ WASM_EXEC_TEST(I64DivS_Byzero_Const) {
|
|
|
| WASM_EXEC_TEST(I64DivU) {
|
| REQUIRE(I64DivU);
|
| - WasmRunner<uint64_t> r(MachineType::Uint64(), MachineType::Uint64());
|
| + WasmRunner<uint64_t> r(execution_mode, MachineType::Uint64(),
|
| + MachineType::Uint64());
|
| BUILD(r, WASM_I64_DIVU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| FOR_UINT64_INPUTS(i) {
|
| FOR_UINT64_INPUTS(j) {
|
| @@ -199,7 +204,8 @@ WASM_EXEC_TEST(I64DivU) {
|
|
|
| WASM_EXEC_TEST(I64DivU_Trap) {
|
| REQUIRE(I64DivU);
|
| - WasmRunner<uint64_t> r(MachineType::Uint64(), MachineType::Uint64());
|
| + WasmRunner<uint64_t> r(execution_mode, MachineType::Uint64(),
|
| + MachineType::Uint64());
|
| BUILD(r, WASM_I64_DIVU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| CHECK_EQ(0, r.Call(asu64(0), asu64(100)));
|
| CHECK_TRAP64(r.Call(asu64(100), asu64(0)));
|
| @@ -210,7 +216,7 @@ WASM_EXEC_TEST(I64DivU_Trap) {
|
| WASM_EXEC_TEST(I64DivU_Byzero_Const) {
|
| REQUIRE(I64DivU);
|
| for (uint64_t denom = 0xfffffffffffffffe; denom < 8; denom++) {
|
| - WasmRunner<uint64_t> r(MachineType::Uint64());
|
| + WasmRunner<uint64_t> r(execution_mode, MachineType::Uint64());
|
| BUILD(r, WASM_I64_DIVU(WASM_GET_LOCAL(0), WASM_I64V_1(denom)));
|
|
|
| for (uint64_t val = 0xfffffffffffffff0; val < 8; val++) {
|
| @@ -225,7 +231,8 @@ WASM_EXEC_TEST(I64DivU_Byzero_Const) {
|
|
|
| WASM_EXEC_TEST(I64RemS) {
|
| REQUIRE(I64RemS);
|
| - WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_REMS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| FOR_INT64_INPUTS(i) {
|
| FOR_INT64_INPUTS(j) {
|
| @@ -240,7 +247,8 @@ WASM_EXEC_TEST(I64RemS) {
|
|
|
| WASM_EXEC_TEST(I64RemS_Trap) {
|
| REQUIRE(I64RemS);
|
| - WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_REMS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| CHECK_EQ(33, r.Call(asi64(133), asi64(100)));
|
| CHECK_EQ(0, r.Call(std::numeric_limits<int64_t>::min(), asi64(-1)));
|
| @@ -251,7 +259,8 @@ WASM_EXEC_TEST(I64RemS_Trap) {
|
|
|
| WASM_EXEC_TEST(I64RemU) {
|
| REQUIRE(I64RemU);
|
| - WasmRunner<uint64_t> r(MachineType::Uint64(), MachineType::Uint64());
|
| + WasmRunner<uint64_t> r(execution_mode, MachineType::Uint64(),
|
| + MachineType::Uint64());
|
| BUILD(r, WASM_I64_REMU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| FOR_UINT64_INPUTS(i) {
|
| FOR_UINT64_INPUTS(j) {
|
| @@ -266,7 +275,8 @@ WASM_EXEC_TEST(I64RemU) {
|
|
|
| WASM_EXEC_TEST(I64RemU_Trap) {
|
| REQUIRE(I64RemU);
|
| - WasmRunner<uint64_t> r(MachineType::Uint64(), MachineType::Uint64());
|
| + WasmRunner<uint64_t> r(execution_mode, MachineType::Uint64(),
|
| + MachineType::Uint64());
|
| BUILD(r, WASM_I64_REMU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| CHECK_EQ(17, r.Call(asu64(217), asu64(100)));
|
| CHECK_TRAP64(r.Call(asu64(100), asu64(0)));
|
| @@ -276,7 +286,8 @@ WASM_EXEC_TEST(I64RemU_Trap) {
|
|
|
| WASM_EXEC_TEST(I64And) {
|
| REQUIRE(I64And);
|
| - WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_AND(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| FOR_INT64_INPUTS(i) {
|
| FOR_INT64_INPUTS(j) { CHECK_EQ((*i) & (*j), r.Call(*i, *j)); }
|
| @@ -285,7 +296,8 @@ WASM_EXEC_TEST(I64And) {
|
|
|
| WASM_EXEC_TEST(I64Ior) {
|
| REQUIRE(I64Ior);
|
| - WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_IOR(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| FOR_INT64_INPUTS(i) {
|
| FOR_INT64_INPUTS(j) { CHECK_EQ((*i) | (*j), r.Call(*i, *j)); }
|
| @@ -294,7 +306,8 @@ WASM_EXEC_TEST(I64Ior) {
|
|
|
| WASM_EXEC_TEST(I64Xor) {
|
| REQUIRE(I64Xor);
|
| - WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_XOR(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| FOR_INT64_INPUTS(i) {
|
| FOR_INT64_INPUTS(j) { CHECK_EQ((*i) ^ (*j), r.Call(*i, *j)); }
|
| @@ -304,7 +317,8 @@ WASM_EXEC_TEST(I64Xor) {
|
| WASM_EXEC_TEST(I64Shl) {
|
| REQUIRE(I64Shl);
|
| {
|
| - WasmRunner<uint64_t> r(MachineType::Uint64(), MachineType::Uint64());
|
| + WasmRunner<uint64_t> r(execution_mode, MachineType::Uint64(),
|
| + MachineType::Uint64());
|
| BUILD(r, WASM_I64_SHL(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
|
|
| FOR_UINT64_INPUTS(i) {
|
| @@ -315,22 +329,22 @@ WASM_EXEC_TEST(I64Shl) {
|
| }
|
| }
|
| {
|
| - WasmRunner<int64_t> r(MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
|
| BUILD(r, WASM_I64_SHL(WASM_GET_LOCAL(0), WASM_I64V_1(0)));
|
| FOR_UINT64_INPUTS(i) { CHECK_EQ(*i << 0, r.Call(*i)); }
|
| }
|
| {
|
| - WasmRunner<int64_t> r(MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
|
| BUILD(r, WASM_I64_SHL(WASM_GET_LOCAL(0), WASM_I64V_1(32)));
|
| FOR_UINT64_INPUTS(i) { CHECK_EQ(*i << 32, r.Call(*i)); }
|
| }
|
| {
|
| - WasmRunner<int64_t> r(MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
|
| BUILD(r, WASM_I64_SHL(WASM_GET_LOCAL(0), WASM_I64V_1(20)));
|
| FOR_UINT64_INPUTS(i) { CHECK_EQ(*i << 20, r.Call(*i)); }
|
| }
|
| {
|
| - WasmRunner<int64_t> r(MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
|
| BUILD(r, WASM_I64_SHL(WASM_GET_LOCAL(0), WASM_I64V_1(40)));
|
| FOR_UINT64_INPUTS(i) { CHECK_EQ(*i << 40, r.Call(*i)); }
|
| }
|
| @@ -339,7 +353,8 @@ WASM_EXEC_TEST(I64Shl) {
|
| WASM_EXEC_TEST(I64ShrU) {
|
| REQUIRE(I64ShrU);
|
| {
|
| - WasmRunner<uint64_t> r(MachineType::Uint64(), MachineType::Uint64());
|
| + WasmRunner<uint64_t> r(execution_mode, MachineType::Uint64(),
|
| + MachineType::Uint64());
|
| BUILD(r, WASM_I64_SHR(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
|
|
| FOR_UINT64_INPUTS(i) {
|
| @@ -350,22 +365,22 @@ WASM_EXEC_TEST(I64ShrU) {
|
| }
|
| }
|
| {
|
| - WasmRunner<int64_t> r(MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
|
| BUILD(r, WASM_I64_SHR(WASM_GET_LOCAL(0), WASM_I64V_1(0)));
|
| FOR_UINT64_INPUTS(i) { CHECK_EQ(*i >> 0, r.Call(*i)); }
|
| }
|
| {
|
| - WasmRunner<int64_t> r(MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
|
| BUILD(r, WASM_I64_SHR(WASM_GET_LOCAL(0), WASM_I64V_1(32)));
|
| FOR_UINT64_INPUTS(i) { CHECK_EQ(*i >> 32, r.Call(*i)); }
|
| }
|
| {
|
| - WasmRunner<int64_t> r(MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
|
| BUILD(r, WASM_I64_SHR(WASM_GET_LOCAL(0), WASM_I64V_1(20)));
|
| FOR_UINT64_INPUTS(i) { CHECK_EQ(*i >> 20, r.Call(*i)); }
|
| }
|
| {
|
| - WasmRunner<int64_t> r(MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
|
| BUILD(r, WASM_I64_SHR(WASM_GET_LOCAL(0), WASM_I64V_1(40)));
|
| FOR_UINT64_INPUTS(i) { CHECK_EQ(*i >> 40, r.Call(*i)); }
|
| }
|
| @@ -374,7 +389,8 @@ WASM_EXEC_TEST(I64ShrU) {
|
| WASM_EXEC_TEST(I64ShrS) {
|
| REQUIRE(I64ShrS);
|
| {
|
| - WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_SAR(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
|
|
| FOR_INT64_INPUTS(i) {
|
| @@ -385,22 +401,22 @@ WASM_EXEC_TEST(I64ShrS) {
|
| }
|
| }
|
| {
|
| - WasmRunner<int64_t> r(MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
|
| BUILD(r, WASM_I64_SAR(WASM_GET_LOCAL(0), WASM_I64V_1(0)));
|
| FOR_INT64_INPUTS(i) { CHECK_EQ(*i >> 0, r.Call(*i)); }
|
| }
|
| {
|
| - WasmRunner<int64_t> r(MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
|
| BUILD(r, WASM_I64_SAR(WASM_GET_LOCAL(0), WASM_I64V_1(32)));
|
| FOR_INT64_INPUTS(i) { CHECK_EQ(*i >> 32, r.Call(*i)); }
|
| }
|
| {
|
| - WasmRunner<int64_t> r(MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
|
| BUILD(r, WASM_I64_SAR(WASM_GET_LOCAL(0), WASM_I64V_1(20)));
|
| FOR_INT64_INPUTS(i) { CHECK_EQ(*i >> 20, r.Call(*i)); }
|
| }
|
| {
|
| - WasmRunner<int64_t> r(MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
|
| BUILD(r, WASM_I64_SAR(WASM_GET_LOCAL(0), WASM_I64V_1(40)));
|
| FOR_INT64_INPUTS(i) { CHECK_EQ(*i >> 40, r.Call(*i)); }
|
| }
|
| @@ -408,7 +424,8 @@ WASM_EXEC_TEST(I64ShrS) {
|
|
|
| WASM_EXEC_TEST(I64Eq) {
|
| REQUIRE(I64Eq);
|
| - WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_EQ(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| FOR_INT64_INPUTS(i) {
|
| FOR_INT64_INPUTS(j) { CHECK_EQ(*i == *j ? 1 : 0, r.Call(*i, *j)); }
|
| @@ -417,7 +434,8 @@ WASM_EXEC_TEST(I64Eq) {
|
|
|
| WASM_EXEC_TEST(I64Ne) {
|
| REQUIRE(I64Ne);
|
| - WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_NE(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| FOR_INT64_INPUTS(i) {
|
| FOR_INT64_INPUTS(j) { CHECK_EQ(*i != *j ? 1 : 0, r.Call(*i, *j)); }
|
| @@ -426,7 +444,8 @@ WASM_EXEC_TEST(I64Ne) {
|
|
|
| WASM_EXEC_TEST(I64LtS) {
|
| REQUIRE(I64LtS);
|
| - WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_LTS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| FOR_INT64_INPUTS(i) {
|
| FOR_INT64_INPUTS(j) { CHECK_EQ(*i < *j ? 1 : 0, r.Call(*i, *j)); }
|
| @@ -435,7 +454,8 @@ WASM_EXEC_TEST(I64LtS) {
|
|
|
| WASM_EXEC_TEST(I64LeS) {
|
| REQUIRE(I64LeS);
|
| - WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_LES(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| FOR_INT64_INPUTS(i) {
|
| FOR_INT64_INPUTS(j) { CHECK_EQ(*i <= *j ? 1 : 0, r.Call(*i, *j)); }
|
| @@ -444,7 +464,8 @@ WASM_EXEC_TEST(I64LeS) {
|
|
|
| WASM_EXEC_TEST(I64LtU) {
|
| REQUIRE(I64LtU);
|
| - WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_LTU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| FOR_UINT64_INPUTS(i) {
|
| FOR_UINT64_INPUTS(j) { CHECK_EQ(*i < *j ? 1 : 0, r.Call(*i, *j)); }
|
| @@ -453,7 +474,8 @@ WASM_EXEC_TEST(I64LtU) {
|
|
|
| WASM_EXEC_TEST(I64LeU) {
|
| REQUIRE(I64LeU);
|
| - WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_LEU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| FOR_UINT64_INPUTS(i) {
|
| FOR_UINT64_INPUTS(j) { CHECK_EQ(*i <= *j ? 1 : 0, r.Call(*i, *j)); }
|
| @@ -462,7 +484,8 @@ WASM_EXEC_TEST(I64LeU) {
|
|
|
| WASM_EXEC_TEST(I64GtS) {
|
| REQUIRE(I64GtS);
|
| - WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_GTS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| FOR_INT64_INPUTS(i) {
|
| FOR_INT64_INPUTS(j) { CHECK_EQ(*i > *j ? 1 : 0, r.Call(*i, *j)); }
|
| @@ -471,7 +494,8 @@ WASM_EXEC_TEST(I64GtS) {
|
|
|
| WASM_EXEC_TEST(I64GeS) {
|
| REQUIRE(I64GeS);
|
| - WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_GES(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| FOR_INT64_INPUTS(i) {
|
| FOR_INT64_INPUTS(j) { CHECK_EQ(*i >= *j ? 1 : 0, r.Call(*i, *j)); }
|
| @@ -480,7 +504,8 @@ WASM_EXEC_TEST(I64GeS) {
|
|
|
| WASM_EXEC_TEST(I64GtU) {
|
| REQUIRE(I64GtU);
|
| - WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_GTU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| FOR_UINT64_INPUTS(i) {
|
| FOR_UINT64_INPUTS(j) { CHECK_EQ(*i > *j ? 1 : 0, r.Call(*i, *j)); }
|
| @@ -489,7 +514,8 @@ WASM_EXEC_TEST(I64GtU) {
|
|
|
| WASM_EXEC_TEST(I64GeU) {
|
| REQUIRE(I64GeU);
|
| - WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_GEU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| FOR_UINT64_INPUTS(i) {
|
| FOR_UINT64_INPUTS(j) { CHECK_EQ(*i >= *j ? 1 : 0, r.Call(*i, *j)); }
|
| @@ -499,7 +525,7 @@ WASM_EXEC_TEST(I64GeU) {
|
| WASM_EXEC_TEST(I32ConvertI64) {
|
| REQUIRE(I32ConvertI64);
|
| FOR_INT64_INPUTS(i) {
|
| - WasmRunner<int32_t> r;
|
| + WasmRunner<int32_t> r(execution_mode);
|
| BUILD(r, WASM_I32_CONVERT_I64(WASM_I64V(*i)));
|
| CHECK_EQ(static_cast<int32_t>(*i), r.Call());
|
| }
|
| @@ -507,14 +533,14 @@ WASM_EXEC_TEST(I32ConvertI64) {
|
|
|
| WASM_EXEC_TEST(I64SConvertI32) {
|
| REQUIRE(I64SConvertI32);
|
| - WasmRunner<int64_t> r(MachineType::Int32());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int32());
|
| BUILD(r, WASM_I64_SCONVERT_I32(WASM_GET_LOCAL(0)));
|
| FOR_INT32_INPUTS(i) { CHECK_EQ(static_cast<int64_t>(*i), r.Call(*i)); }
|
| }
|
|
|
| WASM_EXEC_TEST(I64UConvertI32) {
|
| REQUIRE(I64UConvertI32);
|
| - WasmRunner<int64_t> r(MachineType::Uint32());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Uint32());
|
| BUILD(r, WASM_I64_UCONVERT_I32(WASM_GET_LOCAL(0)));
|
| FOR_UINT32_INPUTS(i) { CHECK_EQ(static_cast<uint64_t>(*i), r.Call(*i)); }
|
| }
|
| @@ -529,7 +555,7 @@ WASM_EXEC_TEST(I64Popcnt) {
|
| {26, 0x1123456782345678},
|
| {38, 0xffedcba09edcba09}};
|
|
|
| - WasmRunner<int64_t> r(MachineType::Uint64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Uint64());
|
| BUILD(r, WASM_I64_POPCNT(WASM_GET_LOCAL(0)));
|
| for (size_t i = 0; i < arraysize(values); i++) {
|
| CHECK_EQ(values[i].expected, r.Call(values[i].input));
|
| @@ -538,7 +564,7 @@ WASM_EXEC_TEST(I64Popcnt) {
|
|
|
| WASM_EXEC_TEST(F32SConvertI64) {
|
| REQUIRE(F32SConvertI64);
|
| - WasmRunner<float> r(MachineType::Int64());
|
| + WasmRunner<float> r(execution_mode, MachineType::Int64());
|
| BUILD(r, WASM_F32_SCONVERT_I64(WASM_GET_LOCAL(0)));
|
| FOR_INT64_INPUTS(i) { CHECK_FLOAT_EQ(static_cast<float>(*i), r.Call(*i)); }
|
| }
|
| @@ -624,7 +650,7 @@ WASM_EXEC_TEST(F32UConvertI64) {
|
| {0x8000008000000001, 0x5f000001},
|
| {0x8000000000000400, 0x5f000000},
|
| {0x8000000000000401, 0x5f000000}};
|
| - WasmRunner<float> r(MachineType::Uint64());
|
| + WasmRunner<float> r(execution_mode, MachineType::Uint64());
|
| BUILD(r, WASM_F32_UCONVERT_I64(WASM_GET_LOCAL(0)));
|
| for (size_t i = 0; i < arraysize(values); i++) {
|
| CHECK_EQ(bit_cast<float>(values[i].expected), r.Call(values[i].input));
|
| @@ -633,7 +659,7 @@ WASM_EXEC_TEST(F32UConvertI64) {
|
|
|
| WASM_EXEC_TEST(F64SConvertI64) {
|
| REQUIRE(F64SConvertI64);
|
| - WasmRunner<double> r(MachineType::Int64());
|
| + WasmRunner<double> r(execution_mode, MachineType::Int64());
|
| BUILD(r, WASM_F64_SCONVERT_I64(WASM_GET_LOCAL(0)));
|
| FOR_INT64_INPUTS(i) { CHECK_DOUBLE_EQ(static_cast<double>(*i), r.Call(*i)); }
|
| }
|
| @@ -718,7 +744,7 @@ WASM_EXEC_TEST(F64UConvertI64) {
|
| {0x8000008000000001, 0x43e0000010000000},
|
| {0x8000000000000400, 0x43e0000000000000},
|
| {0x8000000000000401, 0x43e0000000000001}};
|
| - WasmRunner<double> r(MachineType::Uint64());
|
| + WasmRunner<double> r(execution_mode, MachineType::Uint64());
|
| BUILD(r, WASM_F64_UCONVERT_I64(WASM_GET_LOCAL(0)));
|
| for (size_t i = 0; i < arraysize(values); i++) {
|
| CHECK_EQ(bit_cast<double>(values[i].expected), r.Call(values[i].input));
|
| @@ -726,7 +752,7 @@ WASM_EXEC_TEST(F64UConvertI64) {
|
| }
|
|
|
| WASM_EXEC_TEST(I64SConvertF32a) {
|
| - WasmRunner<int64_t> r(MachineType::Float32());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Float32());
|
| BUILD(r, WASM_I64_SCONVERT_F32(WASM_GET_LOCAL(0)));
|
|
|
| FOR_FLOAT32_INPUTS(i) {
|
| @@ -740,7 +766,7 @@ WASM_EXEC_TEST(I64SConvertF32a) {
|
| }
|
|
|
| WASM_EXEC_TEST(I64SConvertF64a) {
|
| - WasmRunner<int64_t> r(MachineType::Float64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Float64());
|
| BUILD(r, WASM_I64_SCONVERT_F64(WASM_GET_LOCAL(0)));
|
|
|
| FOR_FLOAT64_INPUTS(i) {
|
| @@ -754,7 +780,7 @@ WASM_EXEC_TEST(I64SConvertF64a) {
|
| }
|
|
|
| WASM_EXEC_TEST(I64UConvertF32a) {
|
| - WasmRunner<uint64_t> r(MachineType::Float32());
|
| + WasmRunner<uint64_t> r(execution_mode, MachineType::Float32());
|
| BUILD(r, WASM_I64_UCONVERT_F32(WASM_GET_LOCAL(0)));
|
|
|
| FOR_FLOAT32_INPUTS(i) {
|
| @@ -768,7 +794,7 @@ WASM_EXEC_TEST(I64UConvertF32a) {
|
| }
|
|
|
| WASM_EXEC_TEST(I64UConvertF64a) {
|
| - WasmRunner<uint64_t> r(MachineType::Float64());
|
| + WasmRunner<uint64_t> r(execution_mode, MachineType::Float64());
|
| BUILD(r, WASM_I64_UCONVERT_F64(WASM_GET_LOCAL(0)));
|
|
|
| FOR_FLOAT64_INPUTS(i) {
|
| @@ -789,7 +815,7 @@ WASM_EXEC_TEST(CallI64Parameter) {
|
| param_types[4] = kAstI32;
|
| FunctionSig sig(1, 19, param_types);
|
| for (int i = 0; i < 19; i++) {
|
| - TestingModule module;
|
| + TestingModule module(execution_mode);
|
| WasmFunctionCompiler t(&sig, &module);
|
| if (i == 2 || i == 3) {
|
| continue;
|
| @@ -819,40 +845,44 @@ WASM_EXEC_TEST(CallI64Parameter) {
|
| }
|
| }
|
|
|
| -void TestI64Binop(WasmOpcode opcode, int64_t expected, int64_t a, int64_t b) {
|
| +void TestI64Binop(WasmExecutionMode execution_mode, WasmOpcode opcode,
|
| + int64_t expected, int64_t a, int64_t b) {
|
| {
|
| - WasmRunner<int64_t> r;
|
| + WasmRunner<int64_t> r(execution_mode);
|
| // return K op K
|
| BUILD(r, WASM_BINOP(opcode, WASM_I64V(a), WASM_I64V(b)));
|
| CHECK_EQ(expected, r.Call());
|
| }
|
| {
|
| - WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| // return a op b
|
| BUILD(r, WASM_BINOP(opcode, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| CHECK_EQ(expected, r.Call(a, b));
|
| }
|
| }
|
|
|
| -void TestI64Cmp(WasmOpcode opcode, int64_t expected, int64_t a, int64_t b) {
|
| +void TestI64Cmp(WasmExecutionMode execution_mode, WasmOpcode opcode,
|
| + int64_t expected, int64_t a, int64_t b) {
|
| {
|
| - WasmRunner<int32_t> r;
|
| + WasmRunner<int32_t> r(execution_mode);
|
| // return K op K
|
| BUILD(r, WASM_BINOP(opcode, WASM_I64V(a), WASM_I64V(b)));
|
| CHECK_EQ(expected, r.Call());
|
| }
|
| {
|
| - WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| // return a op b
|
| BUILD(r, WASM_BINOP(opcode, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| CHECK_EQ(expected, r.Call(a, b));
|
| }
|
| }
|
|
|
| -#define TEST_I64_BINOP(name, expected, a, b) \
|
| - do { \
|
| - if (WASM_64 || kSupported_##name) \
|
| - TestI64Binop(kExpr##name, expected, a, b); \
|
| +#define TEST_I64_BINOP(name, expected, a, b) \
|
| + do { \
|
| + if (WASM_64 || kSupported_##name) \
|
| + TestI64Binop(execution_mode, kExpr##name, expected, a, b); \
|
| } while (false)
|
|
|
| WASM_EXEC_TEST(I64Binops) {
|
| @@ -887,9 +917,10 @@ WASM_EXEC_TEST(I64Binops) {
|
| TEST_I64_BINOP(I64Rol, 8728493013947314237, 0xe07af243ac4d219d, 15);
|
| }
|
|
|
| -#define TEST_I64_CMP(name, expected, a, b) \
|
| - do { \
|
| - if (WASM_64 || kSupported_##name) TestI64Cmp(kExpr##name, expected, a, b); \
|
| +#define TEST_I64_CMP(name, expected, a, b) \
|
| + do { \
|
| + if (WASM_64 || kSupported_##name) \
|
| + TestI64Cmp(execution_mode, kExpr##name, expected, a, b); \
|
| } while (false)
|
|
|
| WASM_EXEC_TEST(I64Compare) {
|
| @@ -944,7 +975,7 @@ WASM_EXEC_TEST(I64Clz) {
|
| {62, 0x0000000000000002}, {63, 0x0000000000000001},
|
| {64, 0x0000000000000000}};
|
|
|
| - WasmRunner<int64_t> r(MachineType::Uint64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Uint64());
|
| BUILD(r, WASM_I64_CLZ(WASM_GET_LOCAL(0)));
|
| for (size_t i = 0; i < arraysize(values); i++) {
|
| CHECK_EQ(values[i].expected, r.Call(values[i].input));
|
| @@ -990,7 +1021,7 @@ WASM_EXEC_TEST(I64Ctz) {
|
| {2, 0x000000009afdbc84}, {1, 0x000000009afdbc82},
|
| {0, 0x000000009afdbc81}};
|
|
|
| - WasmRunner<int64_t> r(MachineType::Uint64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Uint64());
|
| BUILD(r, WASM_I64_CTZ(WASM_GET_LOCAL(0)));
|
| for (size_t i = 0; i < arraysize(values); i++) {
|
| CHECK_EQ(values[i].expected, r.Call(values[i].input));
|
| @@ -1008,7 +1039,7 @@ WASM_EXEC_TEST(I64Popcnt2) {
|
| {26, 0x1123456782345678},
|
| {38, 0xffedcba09edcba09}};
|
|
|
| - WasmRunner<int64_t> r(MachineType::Uint64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Uint64());
|
| BUILD(r, WASM_I64_POPCNT(WASM_GET_LOCAL(0)));
|
| for (size_t i = 0; i < arraysize(values); i++) {
|
| CHECK_EQ(values[i].expected, r.Call(values[i].input));
|
| @@ -1017,29 +1048,30 @@ WASM_EXEC_TEST(I64Popcnt2) {
|
|
|
| // Test the WasmRunner with an Int64 return value and different numbers of
|
| // Int64 parameters.
|
| -TEST(Run_TestI64WasmRunner) {
|
| +WASM_EXEC_TEST(I64WasmRunner) {
|
| REQUIRE(I64Param);
|
| REQUIRE(I64Xor);
|
| - {FOR_INT64_INPUTS(i){WasmRunner<int64_t> r;
|
| + {FOR_INT64_INPUTS(i){WasmRunner<int64_t> r(execution_mode);
|
| BUILD(r, WASM_I64V(*i));
|
| CHECK_EQ(*i, r.Call());
|
| }
|
| }
|
| {
|
| - WasmRunner<int64_t> r(MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
|
| BUILD(r, WASM_GET_LOCAL(0));
|
| FOR_INT64_INPUTS(i) { CHECK_EQ(*i, r.Call(*i)); }
|
| }
|
| {
|
| - WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_XOR(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| FOR_INT64_INPUTS(i) {
|
| FOR_INT64_INPUTS(j) { CHECK_EQ(*i ^ *j, r.Call(*i, *j)); }
|
| }
|
| }
|
| {
|
| - WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64(),
|
| - MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64(), MachineType::Int64());
|
| BUILD(r, WASM_I64_XOR(WASM_GET_LOCAL(0),
|
| WASM_I64_XOR(WASM_GET_LOCAL(1), WASM_GET_LOCAL(2))));
|
| FOR_INT64_INPUTS(i) {
|
| @@ -1051,8 +1083,9 @@ TEST(Run_TestI64WasmRunner) {
|
| }
|
| }
|
| {
|
| - WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64(),
|
| - MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64(), MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_XOR(WASM_GET_LOCAL(0),
|
| WASM_I64_XOR(WASM_GET_LOCAL(1),
|
| WASM_I64_XOR(WASM_GET_LOCAL(2),
|
| @@ -1072,7 +1105,7 @@ WASM_EXEC_TEST(Call_Int64Sub) {
|
| REQUIRE(I64Sub);
|
| // Build the target function.
|
| TestSignatures sigs;
|
| - TestingModule module;
|
| + TestingModule module(execution_mode);
|
| WasmFunctionCompiler t(sigs.l_ll(), &module);
|
| BUILD(t, WASM_I64_SUB(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
| uint32_t index = t.CompileAndAdd();
|
| @@ -1102,7 +1135,7 @@ WASM_EXEC_TEST(LoadStoreI64_sx) {
|
| kExprI64LoadMem};
|
|
|
| for (size_t m = 0; m < arraysize(loads); m++) {
|
| - TestingModule module;
|
| + TestingModule module(execution_mode);
|
| byte* memory = module.AddMemoryElems<byte>(16);
|
| WasmRunner<int64_t> r(&module);
|
|
|
| @@ -1138,7 +1171,7 @@ WASM_EXEC_TEST(LoadStoreI64_sx) {
|
|
|
| WASM_EXEC_TEST(I64SConvertF32b) {
|
| REQUIRE(I64SConvertF32);
|
| - WasmRunner<int64_t> r(MachineType::Float32());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Float32());
|
| BUILD(r, WASM_I64_SCONVERT_F32(WASM_GET_LOCAL(0)));
|
|
|
| FOR_FLOAT32_INPUTS(i) {
|
| @@ -1153,7 +1186,7 @@ WASM_EXEC_TEST(I64SConvertF32b) {
|
|
|
| WASM_EXEC_TEST(I64SConvertF64b) {
|
| REQUIRE(I64SConvertF64);
|
| - WasmRunner<int64_t> r(MachineType::Float64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Float64());
|
| BUILD(r, WASM_I64_SCONVERT_F64(WASM_GET_LOCAL(0)));
|
|
|
| FOR_FLOAT64_INPUTS(i) {
|
| @@ -1168,7 +1201,7 @@ WASM_EXEC_TEST(I64SConvertF64b) {
|
|
|
| WASM_EXEC_TEST(I64UConvertF32b) {
|
| REQUIRE(I64UConvertF32);
|
| - WasmRunner<uint64_t> r(MachineType::Float32());
|
| + WasmRunner<uint64_t> r(execution_mode, MachineType::Float32());
|
| BUILD(r, WASM_I64_UCONVERT_F32(WASM_GET_LOCAL(0)));
|
|
|
| FOR_FLOAT32_INPUTS(i) {
|
| @@ -1182,7 +1215,7 @@ WASM_EXEC_TEST(I64UConvertF32b) {
|
|
|
| WASM_EXEC_TEST(I64UConvertF64b) {
|
| REQUIRE(I64UConvertF64);
|
| - WasmRunner<uint64_t> r(MachineType::Float64());
|
| + WasmRunner<uint64_t> r(execution_mode, MachineType::Float64());
|
| BUILD(r, WASM_I64_UCONVERT_F64(WASM_GET_LOCAL(0)));
|
|
|
| FOR_FLOAT64_INPUTS(i) {
|
| @@ -1196,7 +1229,7 @@ WASM_EXEC_TEST(I64UConvertF64b) {
|
|
|
| WASM_EXEC_TEST(I64ReinterpretF64) {
|
| REQUIRE(I64ReinterpretF64);
|
| - TestingModule module;
|
| + TestingModule module(execution_mode);
|
| int64_t* memory = module.AddMemoryElems<int64_t>(8);
|
| WasmRunner<int64_t> r(&module);
|
|
|
| @@ -1212,7 +1245,7 @@ WASM_EXEC_TEST(I64ReinterpretF64) {
|
|
|
| WASM_EXEC_TEST(F64ReinterpretI64) {
|
| REQUIRE(F64ReinterpretI64);
|
| - TestingModule module;
|
| + TestingModule module(execution_mode);
|
| int64_t* memory = module.AddMemoryElems<int64_t>(8);
|
| WasmRunner<int64_t> r(&module, MachineType::Int64());
|
|
|
| @@ -1230,7 +1263,7 @@ WASM_EXEC_TEST(F64ReinterpretI64) {
|
|
|
| WASM_EXEC_TEST(LoadMemI64) {
|
| REQUIRE(I64LoadStore);
|
| - TestingModule module;
|
| + TestingModule module(execution_mode);
|
| int64_t* memory = module.AddMemoryElems<int64_t>(8);
|
| module.RandomizeMemory(1111);
|
| WasmRunner<int64_t> r(&module);
|
| @@ -1247,9 +1280,9 @@ WASM_EXEC_TEST(LoadMemI64) {
|
| CHECK_EQ(77777777, r.Call());
|
| }
|
|
|
| -WASM_EXEC_TEST(Run_Wasm_LoadMemI64_alignment) {
|
| +WASM_EXEC_TEST(LoadMemI64_alignment) {
|
| REQUIRE(I64LoadStore);
|
| - TestingModule module;
|
| + TestingModule module(execution_mode);
|
| int64_t* memory = module.AddMemoryElems<int64_t>(8);
|
| for (byte alignment = 0; alignment <= 3; alignment++) {
|
| module.RandomizeMemory(1111);
|
| @@ -1269,13 +1302,13 @@ WASM_EXEC_TEST(Run_Wasm_LoadMemI64_alignment) {
|
| }
|
| }
|
|
|
| -WASM_EXEC_TEST(Run_Wasm_MemI64_Sum) {
|
| +WASM_EXEC_TEST(MemI64_Sum) {
|
| REQUIRE(I64LoadStore);
|
| REQUIRE(I64Add);
|
| REQUIRE(I64Sub);
|
| REQUIRE(I64Phi);
|
| const int kNumElems = 20;
|
| - TestingModule module;
|
| + TestingModule module(execution_mode);
|
| uint64_t* memory = module.AddMemoryElems<uint64_t>(kNumElems);
|
| WasmRunner<uint64_t> r(&module, MachineType::Int32());
|
| const byte kSum = r.AllocateLocal(kAstI64);
|
| @@ -1305,8 +1338,8 @@ WASM_EXEC_TEST(Run_Wasm_MemI64_Sum) {
|
| }
|
| }
|
|
|
| -WASM_EXEC_TEST(Run_Wasm_StoreMemI64_alignment) {
|
| - TestingModule module;
|
| +WASM_EXEC_TEST(StoreMemI64_alignment) {
|
| + TestingModule module(execution_mode);
|
| int64_t* memory = module.AddMemoryElems<int64_t>(4);
|
| const int64_t kWritten = 0x12345678abcd0011ll;
|
|
|
| @@ -1322,12 +1355,12 @@ WASM_EXEC_TEST(Run_Wasm_StoreMemI64_alignment) {
|
| }
|
| }
|
|
|
| -WASM_EXEC_TEST(Run_Wasm_I64Global) {
|
| +WASM_EXEC_TEST(I64Global) {
|
| REQUIRE(I64LoadStore);
|
| REQUIRE(I64SConvertI32);
|
| REQUIRE(I64And);
|
| REQUIRE(DepthFirst);
|
| - TestingModule module;
|
| + TestingModule module(execution_mode);
|
| int64_t* global = module.AddGlobal<int64_t>(MachineType::Int64());
|
| WasmRunner<int32_t> r(&module, MachineType::Int32());
|
| // global = global + p0
|
| @@ -1347,7 +1380,7 @@ WASM_EXEC_TEST(Run_Wasm_I64Global) {
|
| WASM_EXEC_TEST(I64Eqz) {
|
| REQUIRE(I64Eq);
|
|
|
| - WasmRunner<int32_t> r(MachineType::Int64());
|
| + WasmRunner<int32_t> r(execution_mode, MachineType::Int64());
|
| BUILD(r, WASM_I64_EQZ(WASM_GET_LOCAL(0)));
|
|
|
| FOR_INT64_INPUTS(i) {
|
| @@ -1358,7 +1391,8 @@ WASM_EXEC_TEST(I64Eqz) {
|
|
|
| WASM_EXEC_TEST(I64Ror) {
|
| REQUIRE(I64Ror);
|
| - WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_ROR(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
|
|
| FOR_UINT64_INPUTS(i) {
|
| @@ -1371,7 +1405,8 @@ WASM_EXEC_TEST(I64Ror) {
|
|
|
| WASM_EXEC_TEST(I64Rol) {
|
| REQUIRE(I64Rol);
|
| - WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
|
| + WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
|
| + MachineType::Int64());
|
| BUILD(r, WASM_I64_ROL(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
|
|
|
| FOR_UINT64_INPUTS(i) {
|
|
|