OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_X64_MACRO_ASSEMBLER_X64_H_ | 5 #ifndef V8_X64_MACRO_ASSEMBLER_X64_H_ |
6 #define V8_X64_MACRO_ASSEMBLER_X64_H_ | 6 #define V8_X64_MACRO_ASSEMBLER_X64_H_ |
7 | 7 |
8 #include "src/assembler.h" | 8 #include "src/assembler.h" |
9 #include "src/bailout-reason.h" | 9 #include "src/bailout-reason.h" |
10 #include "src/base/flags.h" | 10 #include "src/base/flags.h" |
(...skipping 741 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
752 // Reconstruct a raw integer with pointer size from two integers masquerading | 752 // Reconstruct a raw integer with pointer size from two integers masquerading |
753 // as smis on the top of stack. | 753 // as smis on the top of stack. |
754 void PopRegisterAsTwoSmis(Register dst, Register scratch = kScratchRegister); | 754 void PopRegisterAsTwoSmis(Register dst, Register scratch = kScratchRegister); |
755 | 755 |
756 void Test(const Operand& dst, Smi* source); | 756 void Test(const Operand& dst, Smi* source); |
757 | 757 |
758 | 758 |
759 // --------------------------------------------------------------------------- | 759 // --------------------------------------------------------------------------- |
760 // String macros. | 760 // String macros. |
761 | 761 |
762 // Generate code to do a lookup in the number string cache. If the number in | |
763 // the register object is found in the cache the generated code falls through | |
764 // with the result in the result register. The object and the result register | |
765 // can be the same. If the number is not found in the cache the code jumps to | |
766 // the label not_found with only the content of register object unchanged. | |
767 void LookupNumberStringCache(Register object, | |
768 Register result, | |
769 Register scratch1, | |
770 Register scratch2, | |
771 Label* not_found); | |
772 | |
773 // If object is a string, its map is loaded into object_map. | 762 // If object is a string, its map is loaded into object_map. |
774 void JumpIfNotString(Register object, | 763 void JumpIfNotString(Register object, |
775 Register object_map, | 764 Register object_map, |
776 Label* not_string, | 765 Label* not_string, |
777 Label::Distance near_jump = Label::kFar); | 766 Label::Distance near_jump = Label::kFar); |
778 | 767 |
779 | 768 |
780 void JumpIfNotBothSequentialOneByteStrings( | 769 void JumpIfNotBothSequentialOneByteStrings( |
781 Register first_object, Register second_object, Register scratch1, | 770 Register first_object, Register second_object, Register scratch1, |
782 Register scratch2, Label* on_not_both_flat_one_byte, | 771 Register scratch2, Label* on_not_both_flat_one_byte, |
(...skipping 861 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1644 masm->popfq(); \ | 1633 masm->popfq(); \ |
1645 } \ | 1634 } \ |
1646 masm-> | 1635 masm-> |
1647 #else | 1636 #else |
1648 #define ACCESS_MASM(masm) masm-> | 1637 #define ACCESS_MASM(masm) masm-> |
1649 #endif | 1638 #endif |
1650 | 1639 |
1651 } } // namespace v8::internal | 1640 } } // namespace v8::internal |
1652 | 1641 |
1653 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ | 1642 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ |
OLD | NEW |