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

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

Issue 147147: Reintroduce recording of source position that was lost on ia32 for... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 11 years, 5 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 | « no previous file | test/message/overwritten-builtins.out » ('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 2006-2009 the V8 project authors. All rights reserved. 1 // Copyright 2006-2009 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 6077 matching lines...) Expand 10 before | Expand all | Expand 10 after
6088 return Handle<String>(String::cast(*raw_name->handle())); 6088 return Handle<String>(String::cast(*raw_name->handle()));
6089 } 6089 }
6090 } 6090 }
6091 6091
6092 6092
6093 void Reference::GetValue(TypeofState typeof_state) { 6093 void Reference::GetValue(TypeofState typeof_state) {
6094 ASSERT(!cgen_->in_spilled_code()); 6094 ASSERT(!cgen_->in_spilled_code());
6095 ASSERT(cgen_->HasValidEntryRegisters()); 6095 ASSERT(cgen_->HasValidEntryRegisters());
6096 ASSERT(!is_illegal()); 6096 ASSERT(!is_illegal());
6097 MacroAssembler* masm = cgen_->masm(); 6097 MacroAssembler* masm = cgen_->masm();
6098
6099 // Record the source position for the property load.
6100 Property* property = expression_->AsProperty();
6101 if (property != NULL) {
6102 cgen_->CodeForSourcePosition(property->position());
6103 }
6104
6098 switch (type_) { 6105 switch (type_) {
6099 case SLOT: { 6106 case SLOT: {
6100 Comment cmnt(masm, "[ Load from Slot"); 6107 Comment cmnt(masm, "[ Load from Slot");
6101 Slot* slot = expression_->AsVariableProxy()->AsVariable()->slot(); 6108 Slot* slot = expression_->AsVariableProxy()->AsVariable()->slot();
6102 ASSERT(slot != NULL); 6109 ASSERT(slot != NULL);
6103 cgen_->LoadFromSlotCheckForArguments(slot, typeof_state); 6110 cgen_->LoadFromSlotCheckForArguments(slot, typeof_state);
6104 break; 6111 break;
6105 } 6112 }
6106 6113
6107 case NAMED: { 6114 case NAMED: {
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
6179 break; 6186 break;
6180 } 6187 }
6181 6188
6182 case KEYED: { 6189 case KEYED: {
6183 // TODO(1241834): Make sure that this it is safe to ignore the 6190 // TODO(1241834): Make sure that this it is safe to ignore the
6184 // distinction between expressions in a typeof and not in a typeof. 6191 // distinction between expressions in a typeof and not in a typeof.
6185 Comment cmnt(masm, "[ Load from keyed Property"); 6192 Comment cmnt(masm, "[ Load from keyed Property");
6186 Variable* var = expression_->AsVariableProxy()->AsVariable(); 6193 Variable* var = expression_->AsVariableProxy()->AsVariable();
6187 bool is_global = var != NULL; 6194 bool is_global = var != NULL;
6188 ASSERT(!is_global || var->is_global()); 6195 ASSERT(!is_global || var->is_global());
6196
6189 // Inline array load code if inside of a loop. We do not know 6197 // Inline array load code if inside of a loop. We do not know
6190 // the receiver map yet, so we initially generate the code with 6198 // the receiver map yet, so we initially generate the code with
6191 // a check against an invalid map. In the inline cache code, we 6199 // a check against an invalid map. In the inline cache code, we
6192 // patch the map check if appropriate. 6200 // patch the map check if appropriate.
6193 if (cgen_->loop_nesting() > 0) { 6201 if (cgen_->loop_nesting() > 0) {
6194 Comment cmnt(masm, "[ Inlined load from keyed Property"); 6202 Comment cmnt(masm, "[ Inlined load from keyed Property");
6195 6203
6196 Result key = cgen_->frame()->Pop(); 6204 Result key = cgen_->frame()->Pop();
6197 Result receiver = cgen_->frame()->Pop(); 6205 Result receiver = cgen_->frame()->Pop();
6198 key.ToRegister(); 6206 key.ToRegister();
(...skipping 1642 matching lines...) Expand 10 before | Expand all | Expand 10 after
7841 7849
7842 // Slow-case: Go through the JavaScript implementation. 7850 // Slow-case: Go through the JavaScript implementation.
7843 __ bind(&slow); 7851 __ bind(&slow);
7844 __ InvokeBuiltin(Builtins::INSTANCE_OF, JUMP_FUNCTION); 7852 __ InvokeBuiltin(Builtins::INSTANCE_OF, JUMP_FUNCTION);
7845 } 7853 }
7846 7854
7847 7855
7848 #undef __ 7856 #undef __
7849 7857
7850 } } // namespace v8::internal 7858 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « no previous file | test/message/overwritten-builtins.out » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698