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

Side by Side Diff: test/cctest/compiler/test-run-load-store.cc

Issue 2493173002: [turbofan] Fix more -Wsign-compare warnings. (Closed)
Patch Set: rebase 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/eh-frame.cc ('k') | test/cctest/compiler/test-run-machops.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 2016 the V8 project authors. All rights reserved. Use of this 1 // Copyright 2016 the V8 project authors. All rights reserved. Use of this
2 // source code is governed by a BSD-style license that can be found in the 2 // source code is governed by a BSD-style license that can be found in the
3 // LICENSE file. 3 // LICENSE file.
4 4
5 #include <cmath> 5 #include <cmath>
6 #include <functional> 6 #include <functional>
7 #include <limits> 7 #include <limits>
8 8
9 #include "src/base/bits.h" 9 #include "src/base/bits.h"
10 #include "src/base/utils/random-number-generator.h" 10 #include "src/base/utils/random-number-generator.h"
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 } 271 }
272 } 272 }
273 273
274 template <typename CType> 274 template <typename CType>
275 void RunUnalignedLoadStoreUnalignedAccess(MachineType rep) { 275 void RunUnalignedLoadStoreUnalignedAccess(MachineType rep) {
276 CType in, out; 276 CType in, out;
277 CType in_buffer[2]; 277 CType in_buffer[2];
278 CType out_buffer[2]; 278 CType out_buffer[2];
279 byte* raw; 279 byte* raw;
280 280
281 for (int x = 0; x < sizeof(CType); x++) { 281 for (int x = 0; x < static_cast<int>(sizeof(CType)); x++) {
282 int y = sizeof(CType) - x; 282 int y = sizeof(CType) - x;
283 283
284 raw = reinterpret_cast<byte*>(&in); 284 raw = reinterpret_cast<byte*>(&in);
285 for (size_t i = 0; i < sizeof(CType); i++) { 285 for (size_t i = 0; i < sizeof(CType); i++) {
286 raw[i] = static_cast<byte>((i + sizeof(CType)) ^ 0xAA); 286 raw[i] = static_cast<byte>((i + sizeof(CType)) ^ 0xAA);
287 } 287 }
288 288
289 raw = reinterpret_cast<byte*>(in_buffer); 289 raw = reinterpret_cast<byte*>(in_buffer);
290 MemCopy(raw + x, &in, sizeof(CType)); 290 MemCopy(raw + x, &in, sizeof(CType));
291 291
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 CHECK_EQ(static_cast<int8_t>(*i & 0xff), buffer[1]); 516 CHECK_EQ(static_cast<int8_t>(*i & 0xff), buffer[1]);
517 CHECK_EQ(static_cast<int16_t>(*i & 0xffff), buffer[2]); 517 CHECK_EQ(static_cast<int16_t>(*i & 0xffff), buffer[2]);
518 CHECK_EQ(static_cast<int32_t>(*i & 0xffffffff), buffer[3]); 518 CHECK_EQ(static_cast<int32_t>(*i & 0xffffffff), buffer[3]);
519 CHECK_EQ(*i, buffer[4]); 519 CHECK_EQ(*i, buffer[4]);
520 } 520 }
521 } 521 }
522 522
523 void RunLoadStoreZeroExtend64(TestAlignment t) { 523 void RunLoadStoreZeroExtend64(TestAlignment t) {
524 if (kPointerSize < 8) return; 524 if (kPointerSize < 8) return;
525 uint64_t buffer[5]; 525 uint64_t buffer[5];
526 RawMachineAssemblerTester<int64_t> m; 526 RawMachineAssemblerTester<uint64_t> m;
527 Node* load8 = m.LoadFromPointer(LSB(&buffer[0], 1), MachineType::Uint8()); 527 Node* load8 = m.LoadFromPointer(LSB(&buffer[0], 1), MachineType::Uint8());
528 if (t == TestAlignment::kAligned) { 528 if (t == TestAlignment::kAligned) {
529 Node* load16 = m.LoadFromPointer(LSB(&buffer[0], 2), MachineType::Uint16()); 529 Node* load16 = m.LoadFromPointer(LSB(&buffer[0], 2), MachineType::Uint16());
530 Node* load32 = m.LoadFromPointer(LSB(&buffer[0], 4), MachineType::Uint32()); 530 Node* load32 = m.LoadFromPointer(LSB(&buffer[0], 4), MachineType::Uint32());
531 Node* load64 = m.LoadFromPointer(&buffer[0], MachineType::Uint64()); 531 Node* load64 = m.LoadFromPointer(&buffer[0], MachineType::Uint64());
532 m.StoreToPointer(&buffer[1], MachineRepresentation::kWord64, load8); 532 m.StoreToPointer(&buffer[1], MachineRepresentation::kWord64, load8);
533 m.StoreToPointer(&buffer[2], MachineRepresentation::kWord64, load16); 533 m.StoreToPointer(&buffer[2], MachineRepresentation::kWord64, load16);
534 m.StoreToPointer(&buffer[3], MachineRepresentation::kWord64, load32); 534 m.StoreToPointer(&buffer[3], MachineRepresentation::kWord64, load32);
535 m.StoreToPointer(&buffer[4], MachineRepresentation::kWord64, load64); 535 m.StoreToPointer(&buffer[4], MachineRepresentation::kWord64, load64);
536 } else if (t == TestAlignment::kUnaligned) { 536 } else if (t == TestAlignment::kUnaligned) {
(...skipping 546 matching lines...) Expand 10 before | Expand all | Expand 10 after
1083 1083
1084 // in-bounds accesses. 1084 // in-bounds accesses.
1085 for (uint32_t i = 0; i < kNumElems; i++) { 1085 for (uint32_t i = 0; i < kNumElems; i++) {
1086 uint32_t offset = static_cast<uint32_t>(i * sizeof(MemType)); 1086 uint32_t offset = static_cast<uint32_t>(i * sizeof(MemType));
1087 MemType expected = buffer[i]; 1087 MemType expected = buffer[i];
1088 CHECK_EQ(kReturn, m.Call(offset + pseudo_base, kLength)); 1088 CHECK_EQ(kReturn, m.Call(offset + pseudo_base, kLength));
1089 CHECK_EQ(expected, result); 1089 CHECK_EQ(expected, result);
1090 } 1090 }
1091 1091
1092 // slightly out-of-bounds accesses. 1092 // slightly out-of-bounds accesses.
1093 for (int32_t i = kNumElems; i < kNumElems + 30; i++) { 1093 for (uint32_t i = kNumElems; i < kNumElems + 30; i++) {
1094 uint32_t offset = static_cast<uint32_t>(i * sizeof(MemType)); 1094 uint32_t offset = static_cast<uint32_t>(i * sizeof(MemType));
1095 CHECK_EQ(kReturn, m.Call(offset + pseudo_base, kLength)); 1095 CHECK_EQ(kReturn, m.Call(offset + pseudo_base, kLength));
1096 CheckOobValue(result); 1096 CheckOobValue(result);
1097 } 1097 }
1098 1098
1099 // way out-of-bounds accesses. 1099 // way out-of-bounds accesses.
1100 for (uint64_t i = pseudo_base + sizeof(buffer); i < 0xFFFFFFFF; 1100 for (uint64_t i = pseudo_base + sizeof(buffer); i < 0xFFFFFFFF;
1101 i += A_BILLION) { 1101 i += A_BILLION) {
1102 uint32_t offset = static_cast<uint32_t>(i); 1102 uint32_t offset = static_cast<uint32_t>(i);
1103 CHECK_EQ(kReturn, m.Call(offset, kLength)); 1103 CHECK_EQ(kReturn, m.Call(offset, kLength));
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
1182 TestRunOobCheckedLoadT_pseudo<int32_t>(4 * A_BILLION, true); 1182 TestRunOobCheckedLoadT_pseudo<int32_t>(4 * A_BILLION, true);
1183 TestRunOobCheckedLoadT_pseudo<float>(4 * A_BILLION, false); 1183 TestRunOobCheckedLoadT_pseudo<float>(4 * A_BILLION, false);
1184 TestRunOobCheckedLoadT_pseudo<float>(4 * A_BILLION, true); 1184 TestRunOobCheckedLoadT_pseudo<float>(4 * A_BILLION, true);
1185 TestRunOobCheckedLoadT_pseudo<double>(4 * A_BILLION, false); 1185 TestRunOobCheckedLoadT_pseudo<double>(4 * A_BILLION, false);
1186 TestRunOobCheckedLoadT_pseudo<double>(4 * A_BILLION, true); 1186 TestRunOobCheckedLoadT_pseudo<double>(4 * A_BILLION, true);
1187 } 1187 }
1188 1188
1189 } // namespace compiler 1189 } // namespace compiler
1190 } // namespace internal 1190 } // namespace internal
1191 } // namespace v8 1191 } // namespace v8
OLDNEW
« no previous file with comments | « src/eh-frame.cc ('k') | test/cctest/compiler/test-run-machops.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698