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

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

Issue 6670119: VM initialization refactoring. (Closed)
Patch Set: Created 9 years, 8 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
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 1505 matching lines...) Expand 10 before | Expand all | Expand 10 after
1516 1516
1517 // ------------------------------------------- 1517 // -------------------------------------------
1518 // Dont adapt arguments. 1518 // Dont adapt arguments.
1519 // ------------------------------------------- 1519 // -------------------------------------------
1520 __ bind(&dont_adapt_arguments); 1520 __ bind(&dont_adapt_arguments);
1521 __ jmp(Operand(edx)); 1521 __ jmp(Operand(edx));
1522 } 1522 }
1523 1523
1524 1524
1525 void Builtins::Generate_OnStackReplacement(MacroAssembler* masm) { 1525 void Builtins::Generate_OnStackReplacement(MacroAssembler* masm) {
1526 // We shouldn't be performing on-stack replacement in the first 1526 CpuFeatures::TryForceFeatureScope scope(SSE2);
1527 // place if the CPU features we need for the optimized Crankshaft 1527 if (!CpuFeatures::IsSupported(SSE2)) {
1528 // code aren't supported.
1529 CpuFeatures* cpu_features = masm->isolate()->cpu_features();
1530 cpu_features->Probe(false);
1531 if (!cpu_features->IsSupported(SSE2)) {
1532 __ Abort("Unreachable code: Cannot optimize without SSE2 support."); 1528 __ Abort("Unreachable code: Cannot optimize without SSE2 support.");
1533 return; 1529 return;
1534 } 1530 }
1535 1531
1536 // Get the loop depth of the stack guard check. This is recorded in 1532 // Get the loop depth of the stack guard check. This is recorded in
1537 // a test(eax, depth) instruction right after the call. 1533 // a test(eax, depth) instruction right after the call.
1538 Label stack_check; 1534 Label stack_check;
1539 __ mov(ebx, Operand(esp, 0)); // return address 1535 __ mov(ebx, Operand(esp, 0)); // return address
1540 if (FLAG_debug_code) { 1536 if (FLAG_debug_code) {
1541 __ cmpb(Operand(ebx, 0), Assembler::kTestAlByte); 1537 __ cmpb(Operand(ebx, 0), Assembler::kTestAlByte);
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1591 Deoptimizer::EntryGenerator generator(masm, Deoptimizer::OSR); 1587 Deoptimizer::EntryGenerator generator(masm, Deoptimizer::OSR);
1592 generator.Generate(); 1588 generator.Generate();
1593 } 1589 }
1594 1590
1595 1591
1596 #undef __ 1592 #undef __
1597 } 1593 }
1598 } // namespace v8::internal 1594 } // namespace v8::internal
1599 1595
1600 #endif // V8_TARGET_ARCH_IA32 1596 #endif // V8_TARGET_ARCH_IA32
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698