Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(78)

Side by Side Diff: test/cctest/wasm/test-run-wasm-64.cc

Issue 1778493004: [wasm] Int64Lowering of Int64Add on ia32 and arm. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: rebase Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/cctest/test-disasm-ia32.cc ('k') | test/unittests/compiler/int64-lowering-unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 17 matching lines...) Expand all
28 #else 28 #else
29 #define MIPS_OR_ARM_OR_X87 false 29 #define MIPS_OR_ARM_OR_X87 false
30 #endif 30 #endif
31 31
32 #define FOREACH_I64_OPERATOR(V) \ 32 #define FOREACH_I64_OPERATOR(V) \
33 V(DepthFirst, false) \ 33 V(DepthFirst, false) \
34 V(I64Const, true) \ 34 V(I64Const, true) \
35 V(I64Return, true) \ 35 V(I64Return, true) \
36 V(I64Param, true) \ 36 V(I64Param, true) \
37 V(I64LoadStore, true) \ 37 V(I64LoadStore, true) \
38 V(I64Add, false) \ 38 V(I64Add, true) \
39 V(I64Sub, false) \ 39 V(I64Sub, false) \
40 V(I64Mul, false) \ 40 V(I64Mul, false) \
41 V(I64DivS, false) \ 41 V(I64DivS, false) \
42 V(I64DivU, false) \ 42 V(I64DivU, false) \
43 V(I64RemS, false) \ 43 V(I64RemS, false) \
44 V(I64RemU, false) \ 44 V(I64RemU, false) \
45 V(I64And, true) \ 45 V(I64And, true) \
46 V(I64Ior, true) \ 46 V(I64Ior, true) \
47 V(I64Xor, true) \ 47 V(I64Xor, true) \
48 V(I64Shl, !MIPS_OR_X87) \ 48 V(I64Shl, !MIPS_OR_X87) \
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 WasmRunner<int64_t> r(MachineType::Int64()); 111 WasmRunner<int64_t> r(MachineType::Int64());
112 112
113 BUILD(r, WASM_RETURN(WASM_GET_LOCAL(0))); 113 BUILD(r, WASM_RETURN(WASM_GET_LOCAL(0)));
114 114
115 FOR_INT64_INPUTS(i) { CHECK_EQ(*i, r.Call(*i)); } 115 FOR_INT64_INPUTS(i) { CHECK_EQ(*i, r.Call(*i)); }
116 } 116 }
117 117
118 // todo(ahaas): I added a list of missing instructions here to make merging 118 // todo(ahaas): I added a list of missing instructions here to make merging
119 // easier when I do them one by one. 119 // easier when I do them one by one.
120 // kExprI64Add: 120 // kExprI64Add:
121 TEST(Run_WasmI64Add) {
122 REQUIRE(I64Add);
123 WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
124 BUILD(r, WASM_I64_ADD(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
125 FOR_INT64_INPUTS(i) {
126 FOR_INT64_INPUTS(j) { CHECK_EQ(*i + *j, r.Call(*i, *j)); }
127 }
128 }
121 // kExprI64Sub: 129 // kExprI64Sub:
122 // kExprI64Mul: 130 // kExprI64Mul:
123 // kExprI64DivS: 131 // kExprI64DivS:
124 // kExprI64DivU: 132 // kExprI64DivU:
125 // kExprI64RemS: 133 // kExprI64RemS:
126 // kExprI64RemU: 134 // kExprI64RemU:
127 // kExprI64And: 135 // kExprI64And:
128 TEST(Run_Wasm_I64And) { 136 TEST(Run_Wasm_I64And) {
129 REQUIRE(I64And); 137 REQUIRE(I64And);
130 WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64()); 138 WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
(...skipping 1063 matching lines...) Expand 10 before | Expand all | Expand 10 after
1194 WASM_I64_SCONVERT_I32(WASM_GET_LOCAL(0)))), 1202 WASM_I64_SCONVERT_I32(WASM_GET_LOCAL(0)))),
1195 WASM_ZERO)); 1203 WASM_ZERO));
1196 1204
1197 *global = 0xFFFFFFFFFFFFFFFFLL; 1205 *global = 0xFFFFFFFFFFFFFFFFLL;
1198 for (int i = 9; i < 444444; i += 111111) { 1206 for (int i = 9; i < 444444; i += 111111) {
1199 int64_t expected = *global & i; 1207 int64_t expected = *global & i;
1200 r.Call(i); 1208 r.Call(i);
1201 CHECK_EQ(expected, *global); 1209 CHECK_EQ(expected, *global);
1202 } 1210 }
1203 } 1211 }
OLDNEW
« no previous file with comments | « test/cctest/test-disasm-ia32.cc ('k') | test/unittests/compiler/int64-lowering-unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698