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

Side by Side Diff: src/mips/code-stubs-mips.cc

Issue 13393012: Merged r14074 into 3.16 branch. (Closed) Base URL: https://v8.googlecode.com/svn/branches/3.16
Patch Set: Created 7 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « src/arm/code-stubs-arm.cc ('k') | src/version.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 // 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 7399 matching lines...) Expand 10 before | Expand all | Expand 10 after
7410 ASSERT_EQ(kSmiTagSize, 1); 7410 ASSERT_EQ(kSmiTagSize, 1);
7411 Register tmp = properties; 7411 Register tmp = properties;
7412 __ sll(scratch0, index, 1); 7412 __ sll(scratch0, index, 1);
7413 __ Addu(tmp, properties, scratch0); 7413 __ Addu(tmp, properties, scratch0);
7414 __ lw(entity_name, FieldMemOperand(tmp, kElementsStartOffset)); 7414 __ lw(entity_name, FieldMemOperand(tmp, kElementsStartOffset));
7415 7415
7416 ASSERT(!tmp.is(entity_name)); 7416 ASSERT(!tmp.is(entity_name));
7417 __ LoadRoot(tmp, Heap::kUndefinedValueRootIndex); 7417 __ LoadRoot(tmp, Heap::kUndefinedValueRootIndex);
7418 __ Branch(done, eq, entity_name, Operand(tmp)); 7418 __ Branch(done, eq, entity_name, Operand(tmp));
7419 7419
7420 if (i != kInlinedProbes - 1) { 7420 // Load the hole ready for use below:
7421 // Load the hole ready for use below: 7421 __ LoadRoot(tmp, Heap::kTheHoleValueRootIndex);
7422 __ LoadRoot(tmp, Heap::kTheHoleValueRootIndex);
7423 7422
7424 // Stop if found the property. 7423 // Stop if found the property.
7425 __ Branch(miss, eq, entity_name, Operand(Handle<String>(name))); 7424 __ Branch(miss, eq, entity_name, Operand(Handle<String>(name)));
7426 7425
7427 Label the_hole; 7426 Label the_hole;
7428 __ Branch(&the_hole, eq, entity_name, Operand(tmp)); 7427 __ Branch(&the_hole, eq, entity_name, Operand(tmp));
7429 7428
7430 // Check if the entry name is not a symbol. 7429 // Check if the entry name is not a symbol.
7431 __ lw(entity_name, FieldMemOperand(entity_name, HeapObject::kMapOffset)); 7430 __ lw(entity_name, FieldMemOperand(entity_name, HeapObject::kMapOffset));
7432 __ lbu(entity_name, 7431 __ lbu(entity_name,
7433 FieldMemOperand(entity_name, Map::kInstanceTypeOffset)); 7432 FieldMemOperand(entity_name, Map::kInstanceTypeOffset));
7434 __ And(scratch0, entity_name, Operand(kIsSymbolMask)); 7433 __ And(scratch0, entity_name, Operand(kIsSymbolMask));
7435 __ Branch(miss, eq, scratch0, Operand(zero_reg)); 7434 __ Branch(miss, eq, scratch0, Operand(zero_reg));
7436 7435
7437 __ bind(&the_hole); 7436 __ bind(&the_hole);
7438 7437
7439 // Restore the properties. 7438 // Restore the properties.
7440 __ lw(properties, 7439 __ lw(properties,
7441 FieldMemOperand(receiver, JSObject::kPropertiesOffset)); 7440 FieldMemOperand(receiver, JSObject::kPropertiesOffset));
7442 }
7443 } 7441 }
7444 7442
7445 const int spill_mask = 7443 const int spill_mask =
7446 (ra.bit() | t2.bit() | t1.bit() | t0.bit() | a3.bit() | 7444 (ra.bit() | t2.bit() | t1.bit() | t0.bit() | a3.bit() |
7447 a2.bit() | a1.bit() | a0.bit() | v0.bit()); 7445 a2.bit() | a1.bit() | a0.bit() | v0.bit());
7448 7446
7449 __ MultiPush(spill_mask); 7447 __ MultiPush(spill_mask);
7450 __ lw(a0, FieldMemOperand(receiver, JSObject::kPropertiesOffset)); 7448 __ lw(a0, FieldMemOperand(receiver, JSObject::kPropertiesOffset));
7451 __ li(a1, Operand(Handle<String>(name))); 7449 __ li(a1, Operand(Handle<String>(name)));
7452 StringDictionaryLookupStub stub(NEGATIVE_LOOKUP); 7450 StringDictionaryLookupStub stub(NEGATIVE_LOOKUP);
(...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after
8062 __ Pop(ra, t1, a1); 8060 __ Pop(ra, t1, a1);
8063 __ Ret(); 8061 __ Ret();
8064 } 8062 }
8065 8063
8066 8064
8067 #undef __ 8065 #undef __
8068 8066
8069 } } // namespace v8::internal 8067 } } // namespace v8::internal
8070 8068
8071 #endif // V8_TARGET_ARCH_MIPS 8069 #endif // V8_TARGET_ARCH_MIPS
OLDNEW
« no previous file with comments | « src/arm/code-stubs-arm.cc ('k') | src/version.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698