| 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 1071 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1082 CHECK_EQ(87, r.Call(1)); | 1082 CHECK_EQ(87, r.Call(1)); |
| 1083 CHECK_EQ(88, r.Call(2)); | 1083 CHECK_EQ(88, r.Call(2)); |
| 1084 CHECK_EQ(85, r.Call(3)); | 1084 CHECK_EQ(85, r.Call(3)); |
| 1085 CHECK_EQ(85, r.Call(4)); | 1085 CHECK_EQ(85, r.Call(4)); |
| 1086 CHECK_EQ(85, r.Call(5)); | 1086 CHECK_EQ(85, r.Call(5)); |
| 1087 } | 1087 } |
| 1088 | 1088 |
| 1089 TEST(Run_Wasm_BrTable4) { | 1089 TEST(Run_Wasm_BrTable4) { |
| 1090 for (int i = 0; i < 4; i++) { | 1090 for (int i = 0; i < 4; i++) { |
| 1091 for (int t = 0; t < 4; t++) { | 1091 for (int t = 0; t < 4; t++) { |
| 1092 uint16_t cases[] = {0, 1, 2, 3}; | 1092 uint32_t cases[] = {0, 1, 2, 3}; |
| 1093 cases[i] = t; | 1093 cases[i] = t; |
| 1094 byte code[] = {B2(B2(B2(B2(B1(WASM_BR_TABLE( | 1094 byte code[] = {B2(B2(B2(B2(B1(WASM_BR_TABLE( |
| 1095 WASM_GET_LOCAL(0), 3, BR_TARGET(cases[0]), | 1095 WASM_GET_LOCAL(0), 3, BR_TARGET(cases[0]), |
| 1096 BR_TARGET(cases[1]), BR_TARGET(cases[2]), | 1096 BR_TARGET(cases[1]), BR_TARGET(cases[2]), |
| 1097 BR_TARGET(cases[3]))), | 1097 BR_TARGET(cases[3]))), |
| 1098 RET_I8(70)), | 1098 RET_I8(70)), |
| 1099 RET_I8(71)), | 1099 RET_I8(71)), |
| 1100 RET_I8(72)), | 1100 RET_I8(72)), |
| 1101 RET_I8(73)), | 1101 RET_I8(73)), |
| 1102 WASM_I8(75)}; | 1102 WASM_I8(75)}; |
| 1103 | 1103 |
| 1104 WasmRunner<int32_t> r(MachineType::Int32()); | 1104 WasmRunner<int32_t> r(MachineType::Int32()); |
| 1105 r.Build(code, code + arraysize(code)); | 1105 r.Build(code, code + arraysize(code)); |
| 1106 | 1106 |
| 1107 for (int x = -3; x < 50; x++) { | 1107 for (int x = -3; x < 50; x++) { |
| 1108 int index = (x > 3 || x < 0) ? 3 : x; | 1108 int index = (x > 3 || x < 0) ? 3 : x; |
| 1109 int32_t expected = 70 + cases[index]; | 1109 int32_t expected = 70 + cases[index]; |
| 1110 CHECK_EQ(expected, r.Call(x)); | 1110 CHECK_EQ(expected, r.Call(x)); |
| 1111 } | 1111 } |
| 1112 } | 1112 } |
| 1113 } | 1113 } |
| 1114 } | 1114 } |
| 1115 | 1115 |
| 1116 TEST(Run_Wasm_BrTable4x4) { | 1116 TEST(Run_Wasm_BrTable4x4) { |
| 1117 for (byte a = 0; a < 4; a++) { | 1117 for (byte a = 0; a < 4; a++) { |
| 1118 for (byte b = 0; b < 4; b++) { | 1118 for (byte b = 0; b < 4; b++) { |
| 1119 for (byte c = 0; c < 4; c++) { | 1119 for (byte c = 0; c < 4; c++) { |
| 1120 for (byte d = 0; d < 4; d++) { | 1120 for (byte d = 0; d < 4; d++) { |
| 1121 for (int i = 0; i < 4; i++) { | 1121 for (int i = 0; i < 4; i++) { |
| 1122 uint16_t cases[] = {a, b, c, d}; | 1122 uint32_t cases[] = {a, b, c, d}; |
| 1123 byte code[] = { | 1123 byte code[] = { |
| 1124 B2(B2(B2(B2(B1(WASM_BR_TABLE( | 1124 B2(B2(B2(B2(B1(WASM_BR_TABLE( |
| 1125 WASM_GET_LOCAL(0), 3, BR_TARGET(cases[0]), | 1125 WASM_GET_LOCAL(0), 3, BR_TARGET(cases[0]), |
| 1126 BR_TARGET(cases[1]), BR_TARGET(cases[2]), | 1126 BR_TARGET(cases[1]), BR_TARGET(cases[2]), |
| 1127 BR_TARGET(cases[3]))), | 1127 BR_TARGET(cases[3]))), |
| 1128 RET_I8(50)), | 1128 RET_I8(50)), |
| 1129 RET_I8(51)), | 1129 RET_I8(51)), |
| 1130 RET_I8(52)), | 1130 RET_I8(52)), |
| 1131 RET_I8(53)), | 1131 RET_I8(53)), |
| 1132 WASM_I8(55)}; | 1132 WASM_I8(55)}; |
| (...skipping 2207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3340 | 3340 |
| 3341 #if WASM_64 | 3341 #if WASM_64 |
| 3342 TEST(Compile_Wasm_CallIndirect_Many_i64) { CompileCallIndirectMany(kAstI64); } | 3342 TEST(Compile_Wasm_CallIndirect_Many_i64) { CompileCallIndirectMany(kAstI64); } |
| 3343 #endif | 3343 #endif |
| 3344 | 3344 |
| 3345 | 3345 |
| 3346 TEST(Compile_Wasm_CallIndirect_Many_f32) { CompileCallIndirectMany(kAstF32); } | 3346 TEST(Compile_Wasm_CallIndirect_Many_f32) { CompileCallIndirectMany(kAstF32); } |
| 3347 | 3347 |
| 3348 | 3348 |
| 3349 TEST(Compile_Wasm_CallIndirect_Many_f64) { CompileCallIndirectMany(kAstF64); } | 3349 TEST(Compile_Wasm_CallIndirect_Many_f64) { CompileCallIndirectMany(kAstF64); } |
| OLD | NEW |