OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 // Check if an object has a given incremental marking colour. Also uses ecx! | 98 // Check if an object has a given incremental marking colour. Also uses ecx! |
99 // The colour bits are found by splitting the address at the bit offset | 99 // The colour bits are found by splitting the address at the bit offset |
100 // indicated by the mask: bits that are zero in the mask are used for the | 100 // indicated by the mask: bits that are zero in the mask are used for the |
101 // address of the bitmap, and bits that are one in the mask are used for the | 101 // address of the bitmap, and bits that are one in the mask are used for the |
102 // index of the bit. | 102 // index of the bit. |
103 template <typename LabelType> | 103 template <typename LabelType> |
104 void HasColour(Register object, | 104 void HasColour(Register object, |
105 Register scratch0, | 105 Register scratch0, |
106 Register scratch1, | 106 Register scratch1, |
107 LabelType* has_colour, | 107 LabelType* has_colour, |
108 uint32_t mask, | |
109 int header_size, | |
110 int first_bit, | 108 int first_bit, |
111 int second_bit, | 109 int second_bit); |
112 bool in_new_space); | |
113 | 110 |
114 template <typename LabelType> | 111 template <typename LabelType> |
115 void InOldSpaceIsBlack(Register object, | 112 void InOldSpaceIsBlack(Register object, |
116 Register scratch0, | 113 Register scratch0, |
117 Register scratch1, | 114 Register scratch1, |
118 LabelType* is_black); | 115 LabelType* is_black); |
119 | 116 |
120 template <typename LabelType> | 117 template <typename LabelType> |
121 void InNewSpaceIsBlack(Register object, | 118 void InNewSpaceIsBlack(Register object, |
122 Register scratch0, | 119 Register scratch0, |
(...skipping 658 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
781 MUST_USE_RESULT MaybeObject* PopHandleScopeHelper(Register saved, | 778 MUST_USE_RESULT MaybeObject* PopHandleScopeHelper(Register saved, |
782 Register scratch, | 779 Register scratch, |
783 bool gc_allowed); | 780 bool gc_allowed); |
784 | 781 |
785 // Helper for finding the mark bits for an address. Afterwards, the | 782 // Helper for finding the mark bits for an address. Afterwards, the |
786 // bitmap register points at the word with the mark bits and the mask | 783 // bitmap register points at the word with the mark bits and the mask |
787 // the position of the first bit. Uses ecx as scratch and leaves addr_reg | 784 // the position of the first bit. Uses ecx as scratch and leaves addr_reg |
788 // unchanged. | 785 // unchanged. |
789 inline void MarkBits(Register addr_reg, | 786 inline void MarkBits(Register addr_reg, |
790 Register bitmap_reg, | 787 Register bitmap_reg, |
791 Register mask_reg, | 788 Register mask_reg); |
792 int32_t high_mask, | |
793 bool in_new_space); | |
794 | 789 |
795 // Compute memory operands for safepoint stack slots. | 790 // Compute memory operands for safepoint stack slots. |
796 Operand SafepointRegisterSlot(Register reg); | 791 Operand SafepointRegisterSlot(Register reg); |
797 static int SafepointRegisterStackIndex(int reg_code); | 792 static int SafepointRegisterStackIndex(int reg_code); |
798 | 793 |
799 // Needs access to SafepointRegisterStackIndex for optimized frame | 794 // Needs access to SafepointRegisterStackIndex for optimized frame |
800 // traversal. | 795 // traversal. |
801 friend class OptimizedFrame; | 796 friend class OptimizedFrame; |
802 }; | 797 }; |
803 | 798 |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
903 } \ | 898 } \ |
904 masm-> | 899 masm-> |
905 #else | 900 #else |
906 #define ACCESS_MASM(masm) masm-> | 901 #define ACCESS_MASM(masm) masm-> |
907 #endif | 902 #endif |
908 | 903 |
909 | 904 |
910 } } // namespace v8::internal | 905 } } // namespace v8::internal |
911 | 906 |
912 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_ | 907 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_ |
OLD | NEW |