Chromium Code Reviews| Index: src/ia32/macro-assembler-ia32-inl.h |
| diff --git a/src/ia32/macro-assembler-ia32-inl.h b/src/ia32/macro-assembler-ia32-inl.h |
| index 634a3e1e2ee7ae3ceac912b0ce92fa3d03cb2411..0bf1eb497c5ac8108f34664f013421248a7930d0 100644 |
| --- a/src/ia32/macro-assembler-ia32-inl.h |
| +++ b/src/ia32/macro-assembler-ia32-inl.h |
| @@ -33,6 +33,25 @@ |
| namespace v8 { |
| namespace internal { |
| +template <typename LabelType> |
| +void MacroAssembler::InNewSpace(Register object, |
|
Erik Corry
2011/05/19 07:22:32
Seems like you can just use CheckPageFlag instead
Lasse Reichstein
2011/05/19 08:40:40
Merged this with CheckPageFlag (accept object and
|
| + Register scratch, |
| + Condition cc, |
| + LabelType* branch) { |
| + ASSERT(cc == equal || cc == not_equal); |
| + if (scratch.is(object)) { |
| + and_(scratch, Immediate(~Page::kPageAlignmentMask)); |
| + } else { |
| + mov(scratch, Immediate(~Page::kPageAlignmentMask)); |
| + and_(scratch, Operand(object)); |
| + } |
| + // Ensure that flag is in the first byte of flags field. |
| + ASSERT(MemoryChunk::IN_NEW_SPACE < kBitsPerByte); |
| + test_b(Operand(scratch, MemoryChunk::kFlagsOffset), |
| + 1 << MemoryChunk::IN_NEW_SPACE); |
| + j(NegateCondition(cc), branch); |
| +} |
| + |
| template<typename LabelType> |
| void MacroAssembler::CheckPageFlag( |