Index: src/arm/macro-assembler-arm.cc |
diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc |
index d44c3be644e5833ce0eb4a362557783748de451d..1c96341fd9ecd44d28770f692661fac5869e0cce 100644 |
--- a/src/arm/macro-assembler-arm.cc |
+++ b/src/arm/macro-assembler-arm.cc |
@@ -452,9 +452,9 @@ void MacroAssembler::InNewSpace(Register object, |
Condition cond, |
Label* branch) { |
DCHECK(cond == eq || cond == ne); |
- and_(scratch, object, Operand(ExternalReference::new_space_mask(isolate()))); |
- cmp(scratch, Operand(ExternalReference::new_space_start(isolate()))); |
- b(cond, branch); |
+ const int mask = |
+ (1 << MemoryChunk::IN_FROM_SPACE) | (1 << MemoryChunk::IN_TO_SPACE); |
+ CheckPageFlag(object, scratch, mask, cond, branch); |
} |
@@ -3312,6 +3312,7 @@ void MacroAssembler::CheckPageFlag( |
int mask, |
Condition cc, |
Label* condition_met) { |
+ DCHECK(cc == eq || cc == ne); |
Bfc(scratch, object, 0, kPageSizeBits); |
ldr(scratch, MemOperand(scratch, MemoryChunk::kFlagsOffset)); |
tst(scratch, Operand(mask)); |