OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 3912 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3923 // Pass failure code returned from last attempt as first argument to | 3923 // Pass failure code returned from last attempt as first argument to |
3924 // PerformGC. No need to use PrepareCallCFunction/CallCFunction here as the | 3924 // PerformGC. No need to use PrepareCallCFunction/CallCFunction here as the |
3925 // stack is known to be aligned. This function takes one argument which is | 3925 // stack is known to be aligned. This function takes one argument which is |
3926 // passed in register. | 3926 // passed in register. |
3927 #ifdef _WIN64 | 3927 #ifdef _WIN64 |
3928 __ movq(rcx, rax); | 3928 __ movq(rcx, rax); |
3929 #else // _WIN64 | 3929 #else // _WIN64 |
3930 __ movq(rdi, rax); | 3930 __ movq(rdi, rax); |
3931 #endif | 3931 #endif |
3932 __ movq(kScratchRegister, | 3932 __ movq(kScratchRegister, |
3933 FUNCTION_ADDR(Runtime::PerformGC), | 3933 ExternalReference::perform_gc_function(masm->isolate())); |
3934 RelocInfo::RUNTIME_ENTRY); | |
3935 __ call(kScratchRegister); | 3934 __ call(kScratchRegister); |
3936 } | 3935 } |
3937 | 3936 |
3938 ExternalReference scope_depth = | 3937 ExternalReference scope_depth = |
3939 ExternalReference::heap_always_allocate_scope_depth(masm->isolate()); | 3938 ExternalReference::heap_always_allocate_scope_depth(masm->isolate()); |
3940 if (always_allocate_scope) { | 3939 if (always_allocate_scope) { |
3941 Operand scope_depth_operand = masm->ExternalOperand(scope_depth); | 3940 Operand scope_depth_operand = masm->ExternalOperand(scope_depth); |
3942 __ incl(scope_depth_operand); | 3941 __ incl(scope_depth_operand); |
3943 } | 3942 } |
3944 | 3943 |
(...skipping 2536 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6481 #endif | 6480 #endif |
6482 | 6481 |
6483 __ Ret(); | 6482 __ Ret(); |
6484 } | 6483 } |
6485 | 6484 |
6486 #undef __ | 6485 #undef __ |
6487 | 6486 |
6488 } } // namespace v8::internal | 6487 } } // namespace v8::internal |
6489 | 6488 |
6490 #endif // V8_TARGET_ARCH_X64 | 6489 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |