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 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
211 Condition cc, | 211 Condition cc, |
212 Label* condition_met, | 212 Label* condition_met, |
213 Label::Distance condition_met_distance = Label::kFar); | 213 Label::Distance condition_met_distance = Label::kFar); |
214 | 214 |
215 // Check if object is in new space. Jumps if the object is not in new space. | 215 // Check if object is in new space. Jumps if the object is not in new space. |
216 // The register scratch can be object itself, but scratch will be clobbered. | 216 // The register scratch can be object itself, but scratch will be clobbered. |
217 void JumpIfNotInNewSpace(Register object, | 217 void JumpIfNotInNewSpace(Register object, |
218 Register scratch, | 218 Register scratch, |
219 Label* branch, | 219 Label* branch, |
220 Label::Distance distance = Label::kFar) { | 220 Label::Distance distance = Label::kFar) { |
221 InNewSpace(object, scratch, not_equal, branch, distance); | 221 InNewSpace(object, scratch, zero, branch, distance); |
222 } | 222 } |
223 | 223 |
224 // Check if object is in new space. Jumps if the object is in new space. | 224 // Check if object is in new space. Jumps if the object is in new space. |
225 // The register scratch can be object itself, but it will be clobbered. | 225 // The register scratch can be object itself, but it will be clobbered. |
226 void JumpIfInNewSpace(Register object, | 226 void JumpIfInNewSpace(Register object, |
227 Register scratch, | 227 Register scratch, |
228 Label* branch, | 228 Label* branch, |
229 Label::Distance distance = Label::kFar) { | 229 Label::Distance distance = Label::kFar) { |
230 InNewSpace(object, scratch, equal, branch, distance); | 230 InNewSpace(object, scratch, not_zero, branch, distance); |
231 } | 231 } |
232 | 232 |
233 // Check if an object has the black incremental marking color. Also uses rcx! | 233 // Check if an object has the black incremental marking color. Also uses rcx! |
234 void JumpIfBlack(Register object, Register bitmap_scratch, | 234 void JumpIfBlack(Register object, Register bitmap_scratch, |
235 Register mask_scratch, Label* on_black, | 235 Register mask_scratch, Label* on_black, |
236 Label::Distance on_black_distance); | 236 Label::Distance on_black_distance); |
237 | 237 |
238 // Checks the color of an object. If the object is white we jump to the | 238 // Checks the color of an object. If the object is white we jump to the |
239 // incremental marker. | 239 // incremental marker. |
240 void JumpIfWhite(Register value, Register scratch1, Register scratch2, | 240 void JumpIfWhite(Register value, Register scratch1, Register scratch2, |
(...skipping 1509 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1750 } \ | 1750 } \ |
1751 masm-> | 1751 masm-> |
1752 #else | 1752 #else |
1753 #define ACCESS_MASM(masm) masm-> | 1753 #define ACCESS_MASM(masm) masm-> |
1754 #endif | 1754 #endif |
1755 | 1755 |
1756 } // namespace internal | 1756 } // namespace internal |
1757 } // namespace v8 | 1757 } // namespace v8 |
1758 | 1758 |
1759 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ | 1759 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ |
OLD | NEW |