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

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

Issue 7000023: Do inline object filtering (via page flags) before call to RecordWriteStub. (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 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 SaveFPRegsMode save_fp); 81 SaveFPRegsMode save_fp);
82 82
83 // Check if object is in new space. 83 // Check if object is in new space.
84 // scratch can be object itself, but it will be clobbered. 84 // scratch can be object itself, but it will be clobbered.
85 template <typename LabelType> 85 template <typename LabelType>
86 void InNewSpace(Register object, 86 void InNewSpace(Register object,
87 Register scratch, 87 Register scratch,
88 Condition cc, // equal for new space, not_equal otherwise. 88 Condition cc, // equal for new space, not_equal otherwise.
89 LabelType* branch); 89 LabelType* branch);
90 90
91 // Check if old-space object is on a scan-on-scavenge page. 91 template<typename LabelType>
92 template <typename LabelType> 92 void CheckPageFlag(Register object,
93 void HasScanOnScavenge(Register object, 93 Register scratch,
94 Register scratch, 94 MemoryChunk::MemoryChunkFlags flag,
95 LabelType* scan_on_scavenge); 95 Condition cc,
96 LabelType* not_set);
96 97
97 // 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!
98 // 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
99 // 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
100 // 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
101 // index of the bit. 102 // index of the bit.
102 template <typename LabelType> 103 template <typename LabelType>
103 void HasColour(Register object, 104 void HasColour(Register object,
104 Register scratch0, 105 Register scratch0,
105 Register scratch1, 106 Register scratch1,
(...skipping 796 matching lines...) Expand 10 before | Expand all | Expand 10 after
902 } \ 903 } \
903 masm-> 904 masm->
904 #else 905 #else
905 #define ACCESS_MASM(masm) masm-> 906 #define ACCESS_MASM(masm) masm->
906 #endif 907 #endif
907 908
908 909
909 } } // namespace v8::internal 910 } } // namespace v8::internal
910 911
911 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_ 912 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698