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); |
} |