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

Side by Side Diff: src/ia32/full-codegen-ia32.cc

Issue 6966033: Remove some dead code from full-codegen on all platforms. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Reinsert guard for (function != NULL), add comments. Created 9 years, 7 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
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 694 matching lines...) Expand 10 before | Expand all | Expand 10 after
705 VisitForStackValue(function); 705 VisitForStackValue(function);
706 } else { 706 } else {
707 __ push(Immediate(Smi::FromInt(0))); // No initial value! 707 __ push(Immediate(Smi::FromInt(0))); // No initial value!
708 } 708 }
709 __ CallRuntime(Runtime::kDeclareContextSlot, 4); 709 __ CallRuntime(Runtime::kDeclareContextSlot, 4);
710 break; 710 break;
711 } 711 }
712 } 712 }
713 713
714 } else if (prop != NULL) { 714 } else if (prop != NULL) {
715 if (function != NULL || mode == Variable::CONST) { 715 // A const declaration aliasing a parameter is a illegal redeclaration.
716 // We are declaring a function or constant that rewrites to a 716 ASSERT(mode != Variable::CONST);
717 // property. Use (keyed) IC to set the initial value. We cannot 717 // Do nothing for a regular var declaration.
718 // visit the rewrite because it's shared and we risk recording 718 // Store the function for a function declaration.
719 // duplicate AST IDs for bailouts from optimized code. 719 if (function != NULL) {
720 // We are declaring a function that rewrites to a property.
721 // Use (keyed) IC to set the initial value. We cannot visit the
722 // rewrite because it's shared and we risk recording duplicate AST
723 // IDs for bailouts from optimized code.
720 ASSERT(prop->obj()->AsVariableProxy() != NULL); 724 ASSERT(prop->obj()->AsVariableProxy() != NULL);
721 { AccumulatorValueContext for_object(this); 725 { AccumulatorValueContext for_object(this);
722 EmitVariableLoad(prop->obj()->AsVariableProxy()->var()); 726 EmitVariableLoad(prop->obj()->AsVariableProxy()->var());
723 } 727 }
724 728
725 if (function != NULL) { 729 __ push(eax);
726 __ push(eax); 730 VisitForAccumulatorValue(function);
727 VisitForAccumulatorValue(function); 731 __ pop(edx);
728 __ pop(edx); 732
729 } else {
730 __ mov(edx, eax);
731 __ mov(eax, isolate()->factory()->the_hole_value());
732 }
733 ASSERT(prop->key()->AsLiteral() != NULL && 733 ASSERT(prop->key()->AsLiteral() != NULL &&
734 prop->key()->AsLiteral()->handle()->IsSmi()); 734 prop->key()->AsLiteral()->handle()->IsSmi());
735 __ SafeSet(ecx, Immediate(prop->key()->AsLiteral()->handle())); 735 __ SafeSet(ecx, Immediate(prop->key()->AsLiteral()->handle()));
736 736
737 Handle<Code> ic = is_strict_mode() 737 Handle<Code> ic = is_strict_mode()
738 ? isolate()->builtins()->KeyedStoreIC_Initialize_Strict() 738 ? isolate()->builtins()->KeyedStoreIC_Initialize_Strict()
739 : isolate()->builtins()->KeyedStoreIC_Initialize(); 739 : isolate()->builtins()->KeyedStoreIC_Initialize();
740 EmitCallIC(ic, RelocInfo::CODE_TARGET, AstNode::kNoNumber); 740 EmitCallIC(ic, RelocInfo::CODE_TARGET, AstNode::kNoNumber);
741 } 741 }
742 } 742 }
(...skipping 3572 matching lines...) Expand 10 before | Expand all | Expand 10 after
4315 // And return. 4315 // And return.
4316 __ ret(0); 4316 __ ret(0);
4317 } 4317 }
4318 4318
4319 4319
4320 #undef __ 4320 #undef __
4321 4321
4322 } } // namespace v8::internal 4322 } } // namespace v8::internal
4323 4323
4324 #endif // V8_TARGET_ARCH_IA32 4324 #endif // V8_TARGET_ARCH_IA32
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698