Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(959)

Side by Side Diff: src/ia32/macro-assembler-ia32.h

Issue 7032005: Unify markbits for old and new spaces. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/gc
Patch Set: Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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_
OLDNEW
« no previous file with comments | « src/heap.cc ('k') | src/ia32/macro-assembler-ia32-inl.h » ('j') | src/serialize.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698