libraries/v8/mips/macro-assembler-mips.cc
// Allocates a heap number or jumps to the label if the young space is full and
// a scavenge is needed.
Allocates a heap number or jumps to the label if the young space is full and
a scavenge is needed.
Allocates a heap number or jumps to the label if the young space is full and a scavenge is needed .
void MacroAssembler::AllocateHeapNumber(Register result,
                                        Register scratch1,
                                        Register scratch2,
                                        Register heap_number_map,
                                        Label* need_gc,
                                        TaggingMode tagging_mode) {
  Allocate(HeapNumber::kSize, result, scratch1, scratch2, need_gc,
           tagging_mode == TAG_RESULT ? TAG_OBJECT : NO_ALLOCATION_FLAGS);
  AssertIsRoot(heap_number_map, Heap::kHeapNumberMapRootIndex);
  if (tagging_mode == TAG_RESULT) {
    sw(heap_number_map, FieldMemOperand(result, HeapObject::kMapOffset));
  } else {
    sw(heap_number_map, MemOperand(result, HeapObject::kMapOffset));
  }
}
void MacroAssembler :: AllocateHeapNumber ( Register result , Register scratch1 , Register scratch2 , Register heap_number_map , Label * need_gc , TaggingMode tagging_mode ) { Allocate ( HeapNumber :: kSize , result , scratch1 , scratch2 , need_gc , tagging_mode == TAG_RESULT ? TAG_OBJECT : NO_ALLOCATION_FLAGS ) ; AssertIsRoot ( heap_number_map , Heap :: kHeapNumberMapRootIndex ) ; if ( tagging_mode == TAG_RESULT ) { sw ( heap_number_map , FieldMemOperand ( result , HeapObject :: kMapOffset ) ) ; } else { sw ( heap_number_map , MemOperand ( result , HeapObject :: kMapOffset ) ) ; } }
Allocates a heap number or jumps to the label if the young space is full and
a scavenge is needed.
Allocates a heap number or jumps to the label if the young space is full and a scavenge is needed .
// Allocate an object in the heap for the heap number and tag it as a heap // object. // Store heap number map in the allocated object.