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

Side by Side Diff: src/mips/builtins-mips.cc

Issue 8894030: MIPS: Support Smi->Double->HeapObject transitions in constructed Arrays. (Closed)
Patch Set: Created 9 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
« no previous file with comments | « no previous file | 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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 // Fill arguments as array elements. Copy from the top of the stack (last 393 // Fill arguments as array elements. Copy from the top of the stack (last
394 // element) to the array backing store filling it backwards. Note: 394 // element) to the array backing store filling it backwards. Note:
395 // elements_array_end points after the backing store. 395 // elements_array_end points after the backing store.
396 // a0: argc 396 // a0: argc
397 // a3: JSArray 397 // a3: JSArray
398 // t0: elements_array storage start (untagged) 398 // t0: elements_array storage start (untagged)
399 // t1: elements_array_end (untagged) 399 // t1: elements_array_end (untagged)
400 // sp[0]: last argument 400 // sp[0]: last argument
401 401
402 Label loop, entry; 402 Label loop, entry;
403 __ Branch(&entry); 403 __ Branch(USE_DELAY_SLOT, &entry);
404 __ mov(t3, sp);
404 __ bind(&loop); 405 __ bind(&loop);
405 __ pop(a2); 406 __ lw(a2, MemOperand(t3));
407 __ Addu(t3, t3, kPointerSize);
408 if (FLAG_smi_only_arrays) {
409 __ JumpIfNotSmi(a2, call_generic_code);
410 }
406 __ Addu(t1, t1, -kPointerSize); 411 __ Addu(t1, t1, -kPointerSize);
407 __ sw(a2, MemOperand(t1)); 412 __ sw(a2, MemOperand(t1));
408 __ bind(&entry); 413 __ bind(&entry);
409 __ Branch(&loop, lt, t0, Operand(t1)); 414 __ Branch(&loop, lt, t0, Operand(t1));
415 __ mov(sp, t3);
410 416
411 // Remove caller arguments and receiver from the stack, setup return value and 417 // Remove caller arguments and receiver from the stack, setup return value and
412 // return. 418 // return.
413 // a0: argc 419 // a0: argc
414 // a3: JSArray 420 // a3: JSArray
415 // sp[0]: receiver 421 // sp[0]: receiver
416 __ Addu(sp, sp, Operand(kPointerSize)); 422 __ Addu(sp, sp, Operand(kPointerSize));
417 __ mov(v0, a3); 423 __ mov(v0, a3);
418 __ Ret(); 424 __ Ret();
419 } 425 }
(...skipping 1331 matching lines...) Expand 10 before | Expand all | Expand 10 after
1751 __ bind(&dont_adapt_arguments); 1757 __ bind(&dont_adapt_arguments);
1752 __ Jump(a3); 1758 __ Jump(a3);
1753 } 1759 }
1754 1760
1755 1761
1756 #undef __ 1762 #undef __
1757 1763
1758 } } // namespace v8::internal 1764 } } // namespace v8::internal
1759 1765
1760 #endif // V8_TARGET_ARCH_MIPS 1766 #endif // V8_TARGET_ARCH_MIPS
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698