| OLD | NEW | 
|---|
| 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 1987 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1998   ASSERT(instr->object()->representation().IsTagged()); | 1998   ASSERT(instr->object()->representation().IsTagged()); | 
| 1999   ASSERT(instr->key()->representation().IsTagged()); | 1999   ASSERT(instr->key()->representation().IsTagged()); | 
| 2000   ASSERT(instr->value()->representation().IsTagged()); | 2000   ASSERT(instr->value()->representation().IsTagged()); | 
| 2001 | 2001 | 
| 2002   return MarkAsCall(new(zone()) LStoreKeyedGeneric(obj, key, val), instr); | 2002   return MarkAsCall(new(zone()) LStoreKeyedGeneric(obj, key, val), instr); | 
| 2003 } | 2003 } | 
| 2004 | 2004 | 
| 2005 | 2005 | 
| 2006 LInstruction* LChunkBuilder::DoTransitionElementsKind( | 2006 LInstruction* LChunkBuilder::DoTransitionElementsKind( | 
| 2007     HTransitionElementsKind* instr) { | 2007     HTransitionElementsKind* instr) { | 
| 2008   ElementsKind from_kind = instr->original_map()->elements_kind(); | 2008   if (IsSimpleMapChangeTransition(instr->from_kind(), instr->to_kind())) { | 
| 2009   ElementsKind to_kind = instr->transitioned_map()->elements_kind(); |  | 
| 2010   if (IsSimpleMapChangeTransition(from_kind, to_kind)) { |  | 
| 2011     LOperand* object = UseRegister(instr->object()); | 2009     LOperand* object = UseRegister(instr->object()); | 
| 2012     LOperand* new_map_reg = TempRegister(); | 2010     LOperand* new_map_reg = TempRegister(); | 
| 2013     LTransitionElementsKind* result = | 2011     LTransitionElementsKind* result = | 
| 2014         new(zone()) LTransitionElementsKind(object, new_map_reg, NULL); | 2012         new(zone()) LTransitionElementsKind(object, new_map_reg, NULL); | 
| 2015     return DefineSameAsFirst(result); | 2013     return DefineSameAsFirst(result); | 
| 2016   } else { | 2014   } else { | 
| 2017     LOperand* object = UseFixed(instr->object(), a0); | 2015     LOperand* object = UseFixed(instr->object(), a0); | 
| 2018     LOperand* fixed_object_reg = FixedTemp(a2); | 2016     LOperand* fixed_object_reg = FixedTemp(a2); | 
| 2019     LOperand* new_map_reg = FixedTemp(a3); | 2017     LOperand* new_map_reg = FixedTemp(a3); | 
| 2020     LTransitionElementsKind* result = | 2018     LTransitionElementsKind* result = | 
| (...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2255 } | 2253 } | 
| 2256 | 2254 | 
| 2257 | 2255 | 
| 2258 LInstruction* LChunkBuilder::DoEnterInlined(HEnterInlined* instr) { | 2256 LInstruction* LChunkBuilder::DoEnterInlined(HEnterInlined* instr) { | 
| 2259   HEnvironment* outer = current_block_->last_environment(); | 2257   HEnvironment* outer = current_block_->last_environment(); | 
| 2260   HConstant* undefined = graph()->GetConstantUndefined(); | 2258   HConstant* undefined = graph()->GetConstantUndefined(); | 
| 2261   HEnvironment* inner = outer->CopyForInlining(instr->closure(), | 2259   HEnvironment* inner = outer->CopyForInlining(instr->closure(), | 
| 2262                                                instr->arguments_count(), | 2260                                                instr->arguments_count(), | 
| 2263                                                instr->function(), | 2261                                                instr->function(), | 
| 2264                                                undefined, | 2262                                                undefined, | 
| 2265                                                instr->call_kind(), | 2263                                                instr->inlining_kind(), | 
| 2266                                                instr->inlining_kind()); | 2264                                                instr->undefined_receiver()); | 
| 2267   if (instr->arguments_var() != NULL) { | 2265   if (instr->arguments_var() != NULL) { | 
| 2268     inner->Bind(instr->arguments_var(), graph()->GetArgumentsObject()); | 2266     inner->Bind(instr->arguments_var(), graph()->GetArgumentsObject()); | 
| 2269   } | 2267   } | 
| 2270   inner->set_entry(instr); | 2268   inner->set_entry(instr); | 
| 2271   current_block_->UpdateEnvironment(inner); | 2269   current_block_->UpdateEnvironment(inner); | 
| 2272   chunk_->AddInlinedClosure(instr->closure()); | 2270   chunk_->AddInlinedClosure(instr->closure()); | 
| 2273   return NULL; | 2271   return NULL; | 
| 2274 } | 2272 } | 
| 2275 | 2273 | 
| 2276 | 2274 | 
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2322 | 2320 | 
| 2323 | 2321 | 
| 2324 LInstruction* LChunkBuilder::DoLoadFieldByIndex(HLoadFieldByIndex* instr) { | 2322 LInstruction* LChunkBuilder::DoLoadFieldByIndex(HLoadFieldByIndex* instr) { | 
| 2325   LOperand* object = UseRegister(instr->object()); | 2323   LOperand* object = UseRegister(instr->object()); | 
| 2326   LOperand* index = UseRegister(instr->index()); | 2324   LOperand* index = UseRegister(instr->index()); | 
| 2327   return DefineAsRegister(new(zone()) LLoadFieldByIndex(object, index)); | 2325   return DefineAsRegister(new(zone()) LLoadFieldByIndex(object, index)); | 
| 2328 } | 2326 } | 
| 2329 | 2327 | 
| 2330 | 2328 | 
| 2331 } }  // namespace v8::internal | 2329 } }  // namespace v8::internal | 
| OLD | NEW | 
|---|