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

Side by Side Diff: src/ia32/stub-cache-ia32.cc

Issue 548181: Remove some unneeded restorations of a register in StoreIC. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 10 years, 11 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 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 1311 matching lines...) Expand 10 before | Expand all | Expand 10 after
1322 __ push(eax); // value 1322 __ push(eax); // value
1323 __ push(ebx); // restore return address 1323 __ push(ebx); // restore return address
1324 1324
1325 // Do tail-call to the runtime system. 1325 // Do tail-call to the runtime system.
1326 ExternalReference store_callback_property = 1326 ExternalReference store_callback_property =
1327 ExternalReference(IC_Utility(IC::kStoreCallbackProperty)); 1327 ExternalReference(IC_Utility(IC::kStoreCallbackProperty));
1328 __ TailCallRuntime(store_callback_property, 4, 1); 1328 __ TailCallRuntime(store_callback_property, 4, 1);
1329 1329
1330 // Handle store cache miss. 1330 // Handle store cache miss.
1331 __ bind(&miss); 1331 __ bind(&miss);
1332 __ mov(ecx, Immediate(Handle<String>(name))); // restore name
1333 Handle<Code> ic(Builtins::builtin(Builtins::StoreIC_Miss)); 1332 Handle<Code> ic(Builtins::builtin(Builtins::StoreIC_Miss));
1334 __ jmp(ic, RelocInfo::CODE_TARGET); 1333 __ jmp(ic, RelocInfo::CODE_TARGET);
1335 1334
1336 // Return the generated code. 1335 // Return the generated code.
1337 return GetCode(CALLBACKS, name); 1336 return GetCode(CALLBACKS, name);
1338 } 1337 }
1339 1338
1340 1339
1341 Object* StoreStubCompiler::CompileStoreInterceptor(JSObject* receiver, 1340 Object* StoreStubCompiler::CompileStoreInterceptor(JSObject* receiver,
1342 String* name) { 1341 String* name) {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1375 __ push(eax); // value 1374 __ push(eax); // value
1376 __ push(ebx); // restore return address 1375 __ push(ebx); // restore return address
1377 1376
1378 // Do tail-call to the runtime system. 1377 // Do tail-call to the runtime system.
1379 ExternalReference store_ic_property = 1378 ExternalReference store_ic_property =
1380 ExternalReference(IC_Utility(IC::kStoreInterceptorProperty)); 1379 ExternalReference(IC_Utility(IC::kStoreInterceptorProperty));
1381 __ TailCallRuntime(store_ic_property, 3, 1); 1380 __ TailCallRuntime(store_ic_property, 3, 1);
1382 1381
1383 // Handle store cache miss. 1382 // Handle store cache miss.
1384 __ bind(&miss); 1383 __ bind(&miss);
1385 __ mov(ecx, Immediate(Handle<String>(name))); // restore name
1386 Handle<Code> ic(Builtins::builtin(Builtins::StoreIC_Miss)); 1384 Handle<Code> ic(Builtins::builtin(Builtins::StoreIC_Miss));
1387 __ jmp(ic, RelocInfo::CODE_TARGET); 1385 __ jmp(ic, RelocInfo::CODE_TARGET);
1388 1386
1389 // Return the generated code. 1387 // Return the generated code.
1390 return GetCode(INTERCEPTOR, name); 1388 return GetCode(INTERCEPTOR, name);
1391 } 1389 }
1392 1390
1393 1391
1394 Object* StoreStubCompiler::CompileStoreGlobal(GlobalObject* object, 1392 Object* StoreStubCompiler::CompileStoreGlobal(GlobalObject* object,
1395 JSGlobalPropertyCell* cell, 1393 JSGlobalPropertyCell* cell,
(...skipping 571 matching lines...) Expand 10 before | Expand all | Expand 10 after
1967 __ jmp(generic_construct_stub, RelocInfo::CODE_TARGET); 1965 __ jmp(generic_construct_stub, RelocInfo::CODE_TARGET);
1968 1966
1969 // Return the generated code. 1967 // Return the generated code.
1970 return GetCode(); 1968 return GetCode();
1971 } 1969 }
1972 1970
1973 1971
1974 #undef __ 1972 #undef __
1975 1973
1976 } } // namespace v8::internal 1974 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/arm/stub-cache-arm.cc ('k') | src/x64/stub-cache-x64.cc » ('j') | src/x64/stub-cache-x64.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698