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

Side by Side Diff: src/arm/macro-assembler-arm.h

Issue 1611313003: Revert of Array length reduction should throw in strict mode if it can't delete an element. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 11 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 | « src/arm/code-stubs-arm.cc ('k') | src/arm64/code-stubs-arm64.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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 #ifndef V8_ARM_MACRO_ASSEMBLER_ARM_H_ 5 #ifndef V8_ARM_MACRO_ASSEMBLER_ARM_H_
6 #define V8_ARM_MACRO_ASSEMBLER_ARM_H_ 6 #define V8_ARM_MACRO_ASSEMBLER_ARM_H_
7 7
8 #include "src/assembler.h" 8 #include "src/assembler.h"
9 #include "src/bailout-reason.h" 9 #include "src/bailout-reason.h"
10 #include "src/frames.h" 10 #include "src/frames.h"
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 SmiCheck smi_check = INLINE_SMI_CHECK, 309 SmiCheck smi_check = INLINE_SMI_CHECK,
310 PointersToHereCheck pointers_to_here_check_for_value = 310 PointersToHereCheck pointers_to_here_check_for_value =
311 kPointersToHereMaybeInteresting); 311 kPointersToHereMaybeInteresting);
312 312
313 // Push a handle. 313 // Push a handle.
314 void Push(Handle<Object> handle); 314 void Push(Handle<Object> handle);
315 void Push(Smi* smi) { Push(Handle<Smi>(smi, isolate())); } 315 void Push(Smi* smi) { Push(Handle<Smi>(smi, isolate())); }
316 316
317 // Push two registers. Pushes leftmost register first (to highest address). 317 // Push two registers. Pushes leftmost register first (to highest address).
318 void Push(Register src1, Register src2, Condition cond = al) { 318 void Push(Register src1, Register src2, Condition cond = al) {
319 DCHECK(!src1.is(src2));
319 if (src1.code() > src2.code()) { 320 if (src1.code() > src2.code()) {
320 stm(db_w, sp, src1.bit() | src2.bit(), cond); 321 stm(db_w, sp, src1.bit() | src2.bit(), cond);
321 } else { 322 } else {
322 str(src1, MemOperand(sp, 4, NegPreIndex), cond); 323 str(src1, MemOperand(sp, 4, NegPreIndex), cond);
323 str(src2, MemOperand(sp, 4, NegPreIndex), cond); 324 str(src2, MemOperand(sp, 4, NegPreIndex), cond);
324 } 325 }
325 } 326 }
326 327
327 // Push three registers. Pushes leftmost register first (to highest address). 328 // Push three registers. Pushes leftmost register first (to highest address).
328 void Push(Register src1, Register src2, Register src3, Condition cond = al) { 329 void Push(Register src1, Register src2, Register src3, Condition cond = al) {
330 DCHECK(!AreAliased(src1, src2, src3));
329 if (src1.code() > src2.code()) { 331 if (src1.code() > src2.code()) {
330 if (src2.code() > src3.code()) { 332 if (src2.code() > src3.code()) {
331 stm(db_w, sp, src1.bit() | src2.bit() | src3.bit(), cond); 333 stm(db_w, sp, src1.bit() | src2.bit() | src3.bit(), cond);
332 } else { 334 } else {
333 stm(db_w, sp, src1.bit() | src2.bit(), cond); 335 stm(db_w, sp, src1.bit() | src2.bit(), cond);
334 str(src3, MemOperand(sp, 4, NegPreIndex), cond); 336 str(src3, MemOperand(sp, 4, NegPreIndex), cond);
335 } 337 }
336 } else { 338 } else {
337 str(src1, MemOperand(sp, 4, NegPreIndex), cond); 339 str(src1, MemOperand(sp, 4, NegPreIndex), cond);
338 Push(src2, src3, cond); 340 Push(src2, src3, cond);
339 } 341 }
340 } 342 }
341 343
342 // Push four registers. Pushes leftmost register first (to highest address). 344 // Push four registers. Pushes leftmost register first (to highest address).
343 void Push(Register src1, 345 void Push(Register src1,
344 Register src2, 346 Register src2,
345 Register src3, 347 Register src3,
346 Register src4, 348 Register src4,
347 Condition cond = al) { 349 Condition cond = al) {
350 DCHECK(!AreAliased(src1, src2, src3, src4));
348 if (src1.code() > src2.code()) { 351 if (src1.code() > src2.code()) {
349 if (src2.code() > src3.code()) { 352 if (src2.code() > src3.code()) {
350 if (src3.code() > src4.code()) { 353 if (src3.code() > src4.code()) {
351 stm(db_w, 354 stm(db_w,
352 sp, 355 sp,
353 src1.bit() | src2.bit() | src3.bit() | src4.bit(), 356 src1.bit() | src2.bit() | src3.bit() | src4.bit(),
354 cond); 357 cond);
355 } else { 358 } else {
356 stm(db_w, sp, src1.bit() | src2.bit() | src3.bit(), cond); 359 stm(db_w, sp, src1.bit() | src2.bit() | src3.bit(), cond);
357 str(src4, MemOperand(sp, 4, NegPreIndex), cond); 360 str(src4, MemOperand(sp, 4, NegPreIndex), cond);
358 } 361 }
359 } else { 362 } else {
360 stm(db_w, sp, src1.bit() | src2.bit(), cond); 363 stm(db_w, sp, src1.bit() | src2.bit(), cond);
361 Push(src3, src4, cond); 364 Push(src3, src4, cond);
362 } 365 }
363 } else { 366 } else {
364 str(src1, MemOperand(sp, 4, NegPreIndex), cond); 367 str(src1, MemOperand(sp, 4, NegPreIndex), cond);
365 Push(src2, src3, src4, cond); 368 Push(src2, src3, src4, cond);
366 } 369 }
367 } 370 }
368 371
369 // Push five registers. Pushes leftmost register first (to highest address). 372 // Push five registers. Pushes leftmost register first (to highest address).
370 void Push(Register src1, Register src2, Register src3, Register src4, 373 void Push(Register src1, Register src2, Register src3, Register src4,
371 Register src5, Condition cond = al) { 374 Register src5, Condition cond = al) {
375 DCHECK(!AreAliased(src1, src2, src3, src4, src5));
372 if (src1.code() > src2.code()) { 376 if (src1.code() > src2.code()) {
373 if (src2.code() > src3.code()) { 377 if (src2.code() > src3.code()) {
374 if (src3.code() > src4.code()) { 378 if (src3.code() > src4.code()) {
375 if (src4.code() > src5.code()) { 379 if (src4.code() > src5.code()) {
376 stm(db_w, sp, 380 stm(db_w, sp,
377 src1.bit() | src2.bit() | src3.bit() | src4.bit() | src5.bit(), 381 src1.bit() | src2.bit() | src3.bit() | src4.bit() | src5.bit(),
378 cond); 382 cond);
379 } else { 383 } else {
380 stm(db_w, sp, src1.bit() | src2.bit() | src3.bit() | src4.bit(), 384 stm(db_w, sp, src1.bit() | src2.bit() | src3.bit() | src4.bit(),
381 cond); 385 cond);
(...skipping 1156 matching lines...) Expand 10 before | Expand all | Expand 10 after
1538 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 1542 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
1539 #else 1543 #else
1540 #define ACCESS_MASM(masm) masm-> 1544 #define ACCESS_MASM(masm) masm->
1541 #endif 1545 #endif
1542 1546
1543 1547
1544 } // namespace internal 1548 } // namespace internal
1545 } // namespace v8 1549 } // namespace v8
1546 1550
1547 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ 1551 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_
OLDNEW
« no previous file with comments | « src/arm/code-stubs-arm.cc ('k') | src/arm64/code-stubs-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698