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

Side by Side Diff: test/cctest/test-assembler-arm64.cc

Issue 1475823003: [runtime] First step to sanitize regexp literal creation. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years 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
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 10221 matching lines...) Expand 10 before | Expand all | Expand 10 after
10232 CHECK_EQUAL_64(54, x27); 10232 CHECK_EQUAL_64(54, x27);
10233 // 3=3, 4=40, 5=500 10233 // 3=3, 4=40, 5=500
10234 CHECK_EQUAL_64(17, x28); 10234 CHECK_EQUAL_64(17, x28);
10235 // w3: 4294967295, s1: 1.234000, x5: 18446744073709551615, d3: 3.456000 10235 // w3: 4294967295, s1: 1.234000, x5: 18446744073709551615, d3: 3.456000
10236 CHECK_EQUAL_64(69, x29); 10236 CHECK_EQUAL_64(69, x29);
10237 10237
10238 TEARDOWN(); 10238 TEARDOWN();
10239 } 10239 }
10240 10240
10241 10241
10242 // This is a V8-specific test.
10243 static void CopyFieldsHelper(CPURegList temps) {
10244 static const uint64_t kLiteralBase = 0x0100001000100101UL;
10245 static const uint64_t src[] = {kLiteralBase * 1,
10246 kLiteralBase * 2,
10247 kLiteralBase * 3,
10248 kLiteralBase * 4,
10249 kLiteralBase * 5,
10250 kLiteralBase * 6,
10251 kLiteralBase * 7,
10252 kLiteralBase * 8,
10253 kLiteralBase * 9,
10254 kLiteralBase * 10,
10255 kLiteralBase * 11};
10256 static const uint64_t src_tagged =
10257 reinterpret_cast<uint64_t>(src) + kHeapObjectTag;
10258
10259 static const unsigned kTestCount = sizeof(src) / sizeof(src[0]) + 1;
10260 uint64_t* dst[kTestCount];
10261 uint64_t dst_tagged[kTestCount];
10262
10263 // The first test will be to copy 0 fields. The destination (and source)
10264 // should not be accessed in any way.
10265 dst[0] = NULL;
10266 dst_tagged[0] = kHeapObjectTag;
10267
10268 // Allocate memory for each other test. Each test <n> will have <n> fields.
10269 // This is intended to exercise as many paths in CopyFields as possible.
10270 for (unsigned i = 1; i < kTestCount; i++) {
10271 dst[i] = new uint64_t[i];
10272 memset(dst[i], 0, i * sizeof(kLiteralBase));
10273 dst_tagged[i] = reinterpret_cast<uint64_t>(dst[i]) + kHeapObjectTag;
10274 }
10275
10276 SETUP();
10277 START();
10278
10279 __ Mov(x0, dst_tagged[0]);
10280 __ Mov(x1, 0);
10281 __ CopyFields(x0, x1, temps, 0);
10282 for (unsigned i = 1; i < kTestCount; i++) {
10283 __ Mov(x0, dst_tagged[i]);
10284 __ Mov(x1, src_tagged);
10285 __ CopyFields(x0, x1, temps, i);
10286 }
10287
10288 END();
10289 RUN();
10290 TEARDOWN();
10291
10292 for (unsigned i = 1; i < kTestCount; i++) {
10293 for (unsigned j = 0; j < i; j++) {
10294 CHECK(src[j] == dst[i][j]);
10295 }
10296 delete [] dst[i];
10297 }
10298 }
10299
10300
10301 // This is a V8-specific test.
10302 TEST(copyfields) {
10303 INIT_V8();
10304 CopyFieldsHelper(CPURegList(x10));
10305 CopyFieldsHelper(CPURegList(x10, x11));
10306 CopyFieldsHelper(CPURegList(x10, x11, x12));
10307 CopyFieldsHelper(CPURegList(x10, x11, x12, x13));
10308 }
10309
10310
10311 TEST(blr_lr) { 10242 TEST(blr_lr) {
10312 // A simple test to check that the simulator correcty handle "blr lr". 10243 // A simple test to check that the simulator correcty handle "blr lr".
10313 INIT_V8(); 10244 INIT_V8();
10314 SETUP(); 10245 SETUP();
10315 10246
10316 START(); 10247 START();
10317 Label target; 10248 Label target;
10318 Label end; 10249 Label end;
10319 10250
10320 __ Mov(x0, 0x0); 10251 __ Mov(x0, 0x0);
(...skipping 1014 matching lines...) Expand 10 before | Expand all | Expand 10 after
11335 __ Mov(x0, 1); 11266 __ Mov(x0, 1);
11336 11267
11337 END(); 11268 END();
11338 11269
11339 RUN(); 11270 RUN();
11340 11271
11341 CHECK_EQUAL_64(0x1, x0); 11272 CHECK_EQUAL_64(0x1, x0);
11342 11273
11343 TEARDOWN(); 11274 TEARDOWN();
11344 } 11275 }
OLDNEW
« src/code-stubs-hydrogen.cc ('K') | « src/x87/interface-descriptors-x87.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698