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

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

Issue 7350015: Avoid patching code after the call to binary operation stub in optimized code (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 9 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
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 1327 matching lines...) Expand 10 before | Expand all | Expand 10 after
1338 1338
1339 1339
1340 void LCodeGen::DoArithmeticT(LArithmeticT* instr) { 1340 void LCodeGen::DoArithmeticT(LArithmeticT* instr) {
1341 ASSERT(ToRegister(instr->context()).is(esi)); 1341 ASSERT(ToRegister(instr->context()).is(esi));
1342 ASSERT(ToRegister(instr->left()).is(edx)); 1342 ASSERT(ToRegister(instr->left()).is(edx));
1343 ASSERT(ToRegister(instr->right()).is(eax)); 1343 ASSERT(ToRegister(instr->right()).is(eax));
1344 ASSERT(ToRegister(instr->result()).is(eax)); 1344 ASSERT(ToRegister(instr->result()).is(eax));
1345 1345
1346 BinaryOpStub stub(instr->op(), NO_OVERWRITE); 1346 BinaryOpStub stub(instr->op(), NO_OVERWRITE);
1347 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); 1347 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
1348 __ nop(); // Signals no inlined code.
1348 } 1349 }
1349 1350
1350 1351
1351 int LCodeGen::GetNextEmittedBlock(int block) { 1352 int LCodeGen::GetNextEmittedBlock(int block) {
1352 for (int i = block + 1; i < graph()->blocks()->length(); ++i) { 1353 for (int i = block + 1; i < graph()->blocks()->length(); ++i) {
1353 LLabel* label = chunk_->GetLabel(i); 1354 LLabel* label = chunk_->GetLabel(i);
1354 if (!label->HasReplacement()) return i; 1355 if (!label->HasReplacement()) return i;
1355 } 1356 }
1356 return -1; 1357 return -1;
1357 } 1358 }
(...skipping 2902 matching lines...) Expand 10 before | Expand all | Expand 10 after
4260 env->deoptimization_index()); 4261 env->deoptimization_index());
4261 __ InvokeBuiltin(Builtins::IN, CALL_FUNCTION, safepoint_generator); 4262 __ InvokeBuiltin(Builtins::IN, CALL_FUNCTION, safepoint_generator);
4262 } 4263 }
4263 4264
4264 4265
4265 #undef __ 4266 #undef __
4266 4267
4267 } } // namespace v8::internal 4268 } } // namespace v8::internal
4268 4269
4269 #endif // V8_TARGET_ARCH_IA32 4270 #endif // V8_TARGET_ARCH_IA32
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698