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

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

Issue 3008017: Port inline in-object property stores from ia32 to x64. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 10 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 | src/x64/builtins-x64.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 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 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 5321 matching lines...) Expand 10 before | Expand all | Expand 10 after
5332 break; 5332 break;
5333 case ObjectLiteral::Property::MATERIALIZED_LITERAL: 5333 case ObjectLiteral::Property::MATERIALIZED_LITERAL:
5334 if (CompileTimeValue::IsCompileTimeValue(property->value())) break; 5334 if (CompileTimeValue::IsCompileTimeValue(property->value())) break;
5335 // else fall through. 5335 // else fall through.
5336 case ObjectLiteral::Property::COMPUTED: { 5336 case ObjectLiteral::Property::COMPUTED: {
5337 Handle<Object> key(property->key()->handle()); 5337 Handle<Object> key(property->key()->handle());
5338 if (key->IsSymbol()) { 5338 if (key->IsSymbol()) {
5339 // Duplicate the object as the IC receiver. 5339 // Duplicate the object as the IC receiver.
5340 frame_->Dup(); 5340 frame_->Dup();
5341 Load(property->value()); 5341 Load(property->value());
5342 Result dummy = frame_->CallStoreIC(Handle<String>::cast(key), false); 5342 Result ignored =
5343 frame_->CallStoreIC(Handle<String>::cast(key), false);
5343 // A test eax instruction following the store IC call would 5344 // A test eax instruction following the store IC call would
5344 // indicate the presence of an inlined version of the 5345 // indicate the presence of an inlined version of the
5345 // store. Add a nop to indicate that there is no such 5346 // store. Add a nop to indicate that there is no such
5346 // inlined version. 5347 // inlined version.
5347 __ nop(); 5348 __ nop();
5348 dummy.Unuse();
5349 break; 5349 break;
5350 } 5350 }
5351 // Fall through 5351 // Fall through
5352 } 5352 }
5353 case ObjectLiteral::Property::PROTOTYPE: { 5353 case ObjectLiteral::Property::PROTOTYPE: {
5354 // Duplicate the object as an argument to the runtime call. 5354 // Duplicate the object as an argument to the runtime call.
5355 frame_->Dup(); 5355 frame_->Dup();
5356 Load(property->key()); 5356 Load(property->key());
5357 Load(property->value()); 5357 Load(property->value());
5358 Result ignored = frame_->CallRuntime(Runtime::kSetProperty, 3); 5358 Result ignored = frame_->CallRuntime(Runtime::kSetProperty, 3);
(...skipping 8538 matching lines...) Expand 10 before | Expand all | Expand 10 after
13897 masm.GetCode(&desc); 13897 masm.GetCode(&desc);
13898 // Call the function from C++. 13898 // Call the function from C++.
13899 return FUNCTION_CAST<MemCopyFunction>(buffer); 13899 return FUNCTION_CAST<MemCopyFunction>(buffer);
13900 } 13900 }
13901 13901
13902 #undef __ 13902 #undef __
13903 13903
13904 } } // namespace v8::internal 13904 } } // namespace v8::internal
13905 13905
13906 #endif // V8_TARGET_ARCH_IA32 13906 #endif // V8_TARGET_ARCH_IA32
OLDNEW
« no previous file with comments | « no previous file | src/x64/builtins-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698