libraries/v8/mips/macro-assembler-mips.cc
// Detect some, but not all, common pointer-free objects.  This is used by the
// incremental write barrier which doesn't care about oddballs (they are always
// marked black immediately so this code is not hit).
Detect some, but not all, common pointer-free objects.  This is used by the
incremental write barrier which doesn't care about oddballs (they are always
marked black immediately so this code is not hit).
Detect some but not all common pointer - free objects . This is used by the incremental write barrier which doesn ' t care about oddballs ( they are always marked black immediately so this code is not hit ) .
void MacroAssembler::JumpIfDataObject(Register value,
                                      Register scratch,
                                      Label* not_data_object) {
  ASSERT(!AreAliased(value, scratch, t8, no_reg));
  Label is_data_object;
  lw(scratch, FieldMemOperand(value, HeapObject::kMapOffset));
  LoadRoot(t8, Heap::kHeapNumberMapRootIndex);
  Branch(&is_data_object, eq, t8, Operand(scratch));
  ASSERT(kIsIndirectStringTag == 1 && kIsIndirectStringMask == 1);
  ASSERT(kNotStringTag == 0x80 && kIsNotStringMask == 0x80);
  lbu(scratch, FieldMemOperand(scratch, Map::kInstanceTypeOffset));
  And(t8, scratch, Operand(kIsIndirectStringMask | kIsNotStringMask));
  Branch(not_data_object, ne, t8, Operand(zero_reg));
  bind(&is_data_object);
}
void MacroAssembler :: JumpIfDataObject ( Register value , Register scratch , Label * not_data_object ) { ASSERT ( ! AreAliased ( value , scratch , t8 , no_reg ) ) ; Label is_data_object ; lw ( scratch , FieldMemOperand ( value , HeapObject :: kMapOffset ) ) ; LoadRoot ( t8 , Heap :: kHeapNumberMapRootIndex ) ; Branch ( & is_data_object , eq , t8 , Operand ( scratch ) ) ; ASSERT ( kIsIndirectStringTag == 1 && kIsIndirectStringMask == 1 ) ; ASSERT ( kNotStringTag == 0x80 && kIsNotStringMask == 0x80 ) ; lbu ( scratch , FieldMemOperand ( scratch , Map :: kInstanceTypeOffset ) ) ; And ( t8 , scratch , Operand ( kIsIndirectStringMask | kIsNotStringMask ) ) ; Branch ( not_data_object , ne , t8 , Operand ( zero_reg ) ) ; bind ( & is_data_object ) ; }
Detect some, but not all, common pointer-free objects.
Detect some but not all common pointer - free objects .
// If it's a string and it's not a cons string then it's an object containing // no GC pointers.