Chromium Code Reviews| Index: src/objects-inl.h |
| diff --git a/src/objects-inl.h b/src/objects-inl.h |
| index 3b0e96f1ef93793398b98eb7a5daa50ca1c156a6..6ef90c045f7fa7952ef563471bc24bf547b0c0e4 100644 |
| --- a/src/objects-inl.h |
| +++ b/src/objects-inl.h |
| @@ -2945,13 +2945,35 @@ void Code::set_optimizable(bool value) { |
| bool Code::has_deoptimization_support() { |
| ASSERT(kind() == FUNCTION); |
| - return READ_BYTE_FIELD(this, kHasDeoptimizationSupportOffset) == 1; |
| + return ((READ_BYTE_FIELD(this, kFullCodeFlags) & |
| + kFullCodeFlagsHasDeoptimizationSupportMask) >> |
| + kFullCodeFlagsHasDeoptimizationSupportShift) == 1; |
|
Sven Panne
2011/09/08 08:07:59
Why do we need both a mask and a shift? A single b
Søren Thygesen Gjesse
2011/09/13 07:31:19
This pattern is used for all the other flags (at l
Sven Panne
2011/09/13 07:51:51
I think Kevin changed Code to use BitField for fla
Søren Thygesen Gjesse
2011/09/13 08:06:29
I also noticed that after the rebase. This has now
|
| } |
| void Code::set_has_deoptimization_support(bool value) { |
| ASSERT(kind() == FUNCTION); |
| - WRITE_BYTE_FIELD(this, kHasDeoptimizationSupportOffset, value ? 1 : 0); |
| + byte flags = READ_BYTE_FIELD(this, kFullCodeFlags); |
| + flags = (flags & ~kFullCodeFlagsHasDeoptimizationSupportMask) | |
| + ((value ? 1 : 0) << kFullCodeFlagsHasDeoptimizationSupportShift); |
| + WRITE_BYTE_FIELD(this, kFullCodeFlags, flags); |
| +} |
| + |
| + |
| +bool Code::has_debug_break_slots() { |
| + ASSERT(kind() == FUNCTION); |
| + return ((READ_BYTE_FIELD(this, kFullCodeFlags) & |
| + kFullCodeFlagsHasDebugBreakSlotsMask) >> |
| + kFullCodeFlagsHasDebugBreakSlotsShift) == 1; |
| +} |
| + |
| + |
| +void Code::set_has_debug_break_slots(bool value) { |
| + ASSERT(kind() == FUNCTION); |
| + byte flags = READ_BYTE_FIELD(this, kFullCodeFlags); |
| + flags = (flags & ~kFullCodeFlagsHasDebugBreakSlotsMask) | |
| + ((value ? 1 : 0) << kFullCodeFlagsHasDebugBreakSlotsShift); |
| + WRITE_BYTE_FIELD(this, kFullCodeFlags, flags); |
| } |