| 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 2564 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2575 __ movq(rax, Operand(rsp, 6 * kPointerSize)); | 2575 __ movq(rax, Operand(rsp, 6 * kPointerSize)); |
| 2576 __ movq(rdx, Operand(rsp, 7 * kPointerSize)); | 2576 __ movq(rdx, Operand(rsp, 7 * kPointerSize)); |
| 2577 } | 2577 } |
| 2578 #endif | 2578 #endif |
| 2579 __ lea(rcx, Operand(rax, 1)); | 2579 __ lea(rcx, Operand(rax, 1)); |
| 2580 // Lower 2 bits of rcx are 0 iff rax has failure tag. | 2580 // Lower 2 bits of rcx are 0 iff rax has failure tag. |
| 2581 __ testl(rcx, Immediate(kFailureTagMask)); | 2581 __ testl(rcx, Immediate(kFailureTagMask)); |
| 2582 __ j(zero, &failure_returned); | 2582 __ j(zero, &failure_returned); |
| 2583 | 2583 |
| 2584 // Exit the JavaScript to C++ exit frame. | 2584 // Exit the JavaScript to C++ exit frame. |
| 2585 __ LeaveExitFrame(result_size_); | 2585 __ LeaveExitFrame(); |
| 2586 __ ret(0); | 2586 __ ret(0); |
| 2587 | 2587 |
| 2588 // Handling of failure. | 2588 // Handling of failure. |
| 2589 __ bind(&failure_returned); | 2589 __ bind(&failure_returned); |
| 2590 | 2590 |
| 2591 NearLabel retry; | 2591 NearLabel retry; |
| 2592 // If the returned exception is RETRY_AFTER_GC continue at retry label | 2592 // If the returned exception is RETRY_AFTER_GC continue at retry label |
| 2593 STATIC_ASSERT(Failure::RETRY_AFTER_GC == 0); | 2593 STATIC_ASSERT(Failure::RETRY_AFTER_GC == 0); |
| 2594 __ testl(rax, Immediate(((1 << kFailureTypeTagSize) - 1) << kFailureTagSize)); | 2594 __ testl(rax, Immediate(((1 << kFailureTypeTagSize) - 1) << kFailureTagSize)); |
| 2595 __ j(zero, &retry); | 2595 __ j(zero, &retry); |
| (...skipping 1387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3983 // tagged as a small integer. | 3983 // tagged as a small integer. |
| 3984 __ bind(&runtime); | 3984 __ bind(&runtime); |
| 3985 __ TailCallRuntime(Runtime::kStringCompare, 2, 1); | 3985 __ TailCallRuntime(Runtime::kStringCompare, 2, 1); |
| 3986 } | 3986 } |
| 3987 | 3987 |
| 3988 #undef __ | 3988 #undef __ |
| 3989 | 3989 |
| 3990 } } // namespace v8::internal | 3990 } } // namespace v8::internal |
| 3991 | 3991 |
| 3992 #endif // V8_TARGET_ARCH_X64 | 3992 #endif // V8_TARGET_ARCH_X64 |
| OLD | NEW |