OLD | NEW |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |