| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <stdint.h> | 5 #include <stdint.h> |
| 6 #include <stdlib.h> | 6 #include <stdlib.h> |
| 7 #include <string.h> | 7 #include <string.h> |
| 8 | 8 |
| 9 #include "src/wasm/wasm-macro-gen.h" | 9 #include "src/wasm/wasm-macro-gen.h" |
| 10 | 10 |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 109 WasmRunner<int64_t> r; | 109 WasmRunner<int64_t> r; |
| 110 const int64_t kExpectedValue = (static_cast<int64_t>(*i) << 32) | cntr; | 110 const int64_t kExpectedValue = (static_cast<int64_t>(*i) << 32) | cntr; |
| 111 // return(kExpectedValue) | 111 // return(kExpectedValue) |
| 112 BUILD(r, WASM_I64(kExpectedValue)); | 112 BUILD(r, WASM_I64(kExpectedValue)); |
| 113 CHECK_EQ(kExpectedValue, r.Call()); | 113 CHECK_EQ(kExpectedValue, r.Call()); |
| 114 cntr++; | 114 cntr++; |
| 115 } | 115 } |
| 116 } | 116 } |
| 117 #endif | 117 #endif |
| 118 | 118 |
| 119 TEST(Run_WasmI32ConvertI64) { |
| 120 FOR_INT64_INPUTS(i) { |
| 121 WasmRunner<int32_t> r; |
| 122 BUILD(r, WASM_I32_CONVERT_I64(WASM_I64(*i))); |
| 123 CHECK_EQ(static_cast<int32_t>(*i), r.Call()); |
| 124 } |
| 125 } |
| 126 |
| 127 TEST(Run_WasmI64AndConstants) { |
| 128 FOR_INT64_INPUTS(i) { |
| 129 FOR_INT64_INPUTS(j) { |
| 130 WasmRunner<int32_t> r; |
| 131 BUILD(r, WASM_I32_CONVERT_I64(WASM_I64_AND(WASM_I64(*i), WASM_I64(*j)))); |
| 132 CHECK_EQ(static_cast<int32_t>(*i & *j), r.Call()); |
| 133 } |
| 134 } |
| 135 } |
| 119 | 136 |
| 120 TEST(Run_WasmInt32Param0) { | 137 TEST(Run_WasmInt32Param0) { |
| 121 WasmRunner<int32_t> r(MachineType::Int32()); | 138 WasmRunner<int32_t> r(MachineType::Int32()); |
| 122 // return(local[0]) | 139 // return(local[0]) |
| 123 BUILD(r, WASM_GET_LOCAL(0)); | 140 BUILD(r, WASM_GET_LOCAL(0)); |
| 124 FOR_INT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i)); } | 141 FOR_INT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i)); } |
| 125 } | 142 } |
| 126 | 143 |
| 127 | 144 |
| 128 TEST(Run_WasmInt32Param0_fallthru) { | 145 TEST(Run_WasmInt32Param0_fallthru) { |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 209 CHECK_EQ(expected, r.Call()); | 226 CHECK_EQ(expected, r.Call()); |
| 210 } | 227 } |
| 211 { | 228 { |
| 212 WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32()); | 229 WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32()); |
| 213 // a op b | 230 // a op b |
| 214 BUILD(r, WASM_BINOP(opcode, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))); | 231 BUILD(r, WASM_BINOP(opcode, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))); |
| 215 CHECK_EQ(expected, r.Call(a, b)); | 232 CHECK_EQ(expected, r.Call(a, b)); |
| 216 } | 233 } |
| 217 } | 234 } |
| 218 | 235 |
| 219 | |
| 220 TEST(Run_WasmInt32Binops) { | 236 TEST(Run_WasmInt32Binops) { |
| 221 TestInt32Binop(kExprI32Add, 88888888, 33333333, 55555555); | 237 TestInt32Binop(kExprI32Add, 88888888, 33333333, 55555555); |
| 222 TestInt32Binop(kExprI32Sub, -1111111, 7777777, 8888888); | 238 TestInt32Binop(kExprI32Sub, -1111111, 7777777, 8888888); |
| 223 TestInt32Binop(kExprI32Mul, 65130756, 88734, 734); | 239 TestInt32Binop(kExprI32Mul, 65130756, 88734, 734); |
| 224 TestInt32Binop(kExprI32DivS, -66, -4777344, 72384); | 240 TestInt32Binop(kExprI32DivS, -66, -4777344, 72384); |
| 225 TestInt32Binop(kExprI32DivU, 805306368, 0xF0000000, 5); | 241 TestInt32Binop(kExprI32DivU, 805306368, 0xF0000000, 5); |
| 226 TestInt32Binop(kExprI32RemS, -3, -3003, 1000); | 242 TestInt32Binop(kExprI32RemS, -3, -3003, 1000); |
| 227 TestInt32Binop(kExprI32RemU, 4, 4004, 1000); | 243 TestInt32Binop(kExprI32RemU, 4, 4004, 1000); |
| 228 TestInt32Binop(kExprI32And, 0xEE, 0xFFEE, 0xFF0000FF); | 244 TestInt32Binop(kExprI32And, 0xEE, 0xFFEE, 0xFF0000FF); |
| 229 TestInt32Binop(kExprI32Ior, 0xF0FF00FF, 0xF0F000EE, 0x000F0011); | 245 TestInt32Binop(kExprI32Ior, 0xF0FF00FF, 0xF0F000EE, 0x000F0011); |
| (...skipping 3093 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3323 | 3339 |
| 3324 #if WASM_64 | 3340 #if WASM_64 |
| 3325 TEST(Compile_Wasm_CallIndirect_Many_i64) { CompileCallIndirectMany(kAstI64); } | 3341 TEST(Compile_Wasm_CallIndirect_Many_i64) { CompileCallIndirectMany(kAstI64); } |
| 3326 #endif | 3342 #endif |
| 3327 | 3343 |
| 3328 | 3344 |
| 3329 TEST(Compile_Wasm_CallIndirect_Many_f32) { CompileCallIndirectMany(kAstF32); } | 3345 TEST(Compile_Wasm_CallIndirect_Many_f32) { CompileCallIndirectMany(kAstF32); } |
| 3330 | 3346 |
| 3331 | 3347 |
| 3332 TEST(Compile_Wasm_CallIndirect_Many_f64) { CompileCallIndirectMany(kAstF64); } | 3348 TEST(Compile_Wasm_CallIndirect_Many_f64) { CompileCallIndirectMany(kAstF64); } |
| OLD | NEW |