 Chromium Code Reviews
 Chromium Code Reviews Issue 9425045:
  Support fast case for-in in Crankshaft.  (Closed) 
  Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
    
  
    Issue 9425045:
  Support fast case for-in in Crankshaft.  (Closed) 
  Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge| Index: src/ia32/lithium-ia32.cc | 
| diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc | 
| index abf2f02bca6d1e6e900699aa5ba1f2dc1d4f22f9..cc177b891812fec73006e874f0c23067b25a67b4 100644 | 
| --- a/src/ia32/lithium-ia32.cc | 
| +++ b/src/ia32/lithium-ia32.cc | 
| @@ -2408,6 +2408,37 @@ LInstruction* LChunkBuilder::DoIn(HIn* instr) { | 
| } | 
| +LInstruction* LChunkBuilder::DoForInPrepareMap(HForInPrepareMap* instr) { | 
| + LOperand* context = UseFixed(instr->context(), esi); | 
| + LOperand* object = UseFixed(instr->enumerable(), eax); | 
| + LForInPrepareMap* result = new(zone()) LForInPrepareMap(context, object); | 
| + return MarkAsCall(DefineFixed(result, eax), instr, CAN_DEOPTIMIZE_EAGERLY); | 
| +} | 
| + | 
| + | 
| +LInstruction* LChunkBuilder::DoForInCacheArray(HForInCacheArray* instr) { | 
| + LOperand* object = UseRegister(instr->enumerable()); | 
| + LOperand* keys = UseRegister(instr->keys()); | 
| + return AssignEnvironment(DefineAsRegister( | 
| + new(zone()) LForInCacheArray(object, keys))); | 
| +} | 
| + | 
| + | 
| +LInstruction* LChunkBuilder::DoCheckMapValue(HCheckMapValue* instr) { | 
| + LOperand* value = UseRegisterAtStart(instr->value()); | 
| + LOperand* map = UseRegisterAtStart(instr->map()); | 
| + return AssignEnvironment(DefineAsRegister(new(zone()) LCheckMapValue(value, map))); | 
| 
fschneider
2012/02/20 14:56:06
Long line.
 
fschneider
2012/02/20 14:56:06
Since the result of the HCheckMapValue instruction
 | 
| +} | 
| + | 
| + | 
| +LInstruction* LChunkBuilder::DoLoadFieldByIndex(HLoadFieldByIndex* instr) { | 
| + LOperand* object = UseRegister(instr->object()); | 
| + LOperand* index = UseTempRegister(instr->index()); | 
| + return DefineSameAsFirst(new(zone()) LLoadFieldByIndex(object, index)); | 
| +} | 
| + | 
| + | 
| + | 
| } } // namespace v8::internal | 
| #endif // V8_TARGET_ARCH_IA32 |