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

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

Issue 2490533003: [wasm] Always trap for memory accesses with offset=uint32_max. (Closed)
Patch Set: Remove unused variable, address comments Created 4 years, 1 month 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 | « src/compiler/wasm-compiler.cc ('k') | no next file » | 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/base/platform/elapsed-timer.h" 9 #include "src/base/platform/elapsed-timer.h"
10 #include "src/utils.h" 10 #include "src/utils.h"
(...skipping 1091 matching lines...) Expand 10 before | Expand all | Expand 10 after
1102 WASM_F32_REINTERPRET_I32(WASM_GET_LOCAL(0))), 1102 WASM_F32_REINTERPRET_I32(WASM_GET_LOCAL(0))),
1103 WASM_I8(107)); 1103 WASM_I8(107));
1104 1104
1105 FOR_INT32_INPUTS(i) { 1105 FOR_INT32_INPUTS(i) {
1106 int32_t expected = *i; 1106 int32_t expected = *i;
1107 CHECK_EQ(107, r.Call(expected)); 1107 CHECK_EQ(107, r.Call(expected));
1108 CHECK_EQ(expected, module.ReadMemory(&memory[0])); 1108 CHECK_EQ(expected, module.ReadMemory(&memory[0]));
1109 } 1109 }
1110 } 1110 }
1111 1111
1112 WASM_EXEC_TEST(LoadMaxUint32Offset) {
1113 TestingModule module(execution_mode);
1114 module.AddMemoryElems<int32_t>(8);
1115 WasmRunner<int32_t> r(&module);
1116
1117 BUILD(r, kExprI8Const, 0, // index
1118 static_cast<byte>(v8::internal::wasm::WasmOpcodes::LoadStoreOpcodeOf(
1119 MachineType::Int32(), false)), // --
1120 0, // alignment
1121 U32V_5(0xffffffff)); // offset
1122
1123 CHECK_TRAP32(r.Call());
1124 }
1125
1112 WASM_EXEC_TEST(LoadStoreLoad) { 1126 WASM_EXEC_TEST(LoadStoreLoad) {
1113 TestingModule module(execution_mode); 1127 TestingModule module(execution_mode);
1114 int32_t* memory = module.AddMemoryElems<int32_t>(8); 1128 int32_t* memory = module.AddMemoryElems<int32_t>(8);
1115 WasmRunner<int32_t> r(&module); 1129 WasmRunner<int32_t> r(&module);
1116 1130
1117 BUILD(r, WASM_STORE_MEM(MachineType::Int32(), WASM_ZERO, 1131 BUILD(r, WASM_STORE_MEM(MachineType::Int32(), WASM_ZERO,
1118 WASM_LOAD_MEM(MachineType::Int32(), WASM_ZERO)), 1132 WASM_LOAD_MEM(MachineType::Int32(), WASM_ZERO)),
1119 WASM_LOAD_MEM(MachineType::Int32(), WASM_ZERO)); 1133 WASM_LOAD_MEM(MachineType::Int32(), WASM_ZERO));
1120 1134
1121 FOR_INT32_INPUTS(i) { 1135 FOR_INT32_INPUTS(i) {
(...skipping 1871 matching lines...) Expand 10 before | Expand all | Expand 10 after
2993 BUILD(r, WASM_I32_REMS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)), WASM_DROP, 3007 BUILD(r, WASM_I32_REMS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)), WASM_DROP,
2994 WASM_ZERO); 3008 WASM_ZERO);
2995 const int32_t kMin = std::numeric_limits<int32_t>::min(); 3009 const int32_t kMin = std::numeric_limits<int32_t>::min();
2996 CHECK_EQ(0, r.Call(133, 100)); 3010 CHECK_EQ(0, r.Call(133, 100));
2997 CHECK_EQ(0, r.Call(kMin, -1)); 3011 CHECK_EQ(0, r.Call(kMin, -1));
2998 CHECK_EQ(0, r.Call(0, 1)); 3012 CHECK_EQ(0, r.Call(0, 1));
2999 CHECK_TRAP(r.Call(100, 0)); 3013 CHECK_TRAP(r.Call(100, 0));
3000 CHECK_TRAP(r.Call(-1001, 0)); 3014 CHECK_TRAP(r.Call(-1001, 0));
3001 CHECK_TRAP(r.Call(kMin, 0)); 3015 CHECK_TRAP(r.Call(kMin, 0));
3002 } 3016 }
OLDNEW
« no previous file with comments | « src/compiler/wasm-compiler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698