def allocate_int
      compiler.reset_regs
      integer = self.integer!
      build do
        factory! << Parfait.object_space.get_factory_for(:Integer)
        integer << factory[:next_object]
        object! << Parfait.object_space.nil_object
        object - integer
        if_not_zero cont_label
        integer_2! << factory[:reserve]
        factory[:next_object] << integer_2
        call_get_more
        integer << factory[:next_object]
        add_code cont_label
        integer_2 << integer[:next_integer]
        factory[:next_object] << integer_2
      end
      reset_names
      integer_tmp!
    end
def allocate_int
      compiler.reset_regs
      integer = self.integer!
      build do
        factory! << Parfait.object_space.get_factory_for(:Integer)
        integer << factory[:next_object]
        object! << Parfait.object_space.nil_object
        object - integer
        if_not_zero cont_label
        integer_2! << factory[:reserve]
        factory[:next_object] << integer_2
        call_get_more
        integer << factory[:next_object]
        add_code cont_label
        integer_2 << integer[:next_integer]
        factory[:next_object] << integer_2
      end
      reset_names
      integer_tmp!
    end
allocate int fetches a new int, for sure. It is a builder method, rather than
 an inbuilt one, to avoid call overhead for 99.9%
 The factories allocate in 1k, so only when that runs out do we really need a call.
 Note:
   Unfortunately (or so me thinks), this creates code bloat, as the calling is
   included in 100%, but only needed in 0.1. Risc-level Blocks or Macros may be needed.
   as the calling in (the same) 40-50 instructions for every basic int op.

 The method
 - grabs a Integer instance from the Integer factory
 - checks for nil and calls (get_more) for more if needed
 - returns the RiscValue (Register) where the object is found

 The implicit condition is that the method is called at the entry of a method.
 It uses a fair few registers and resets all at the end. The returned object
 will always be in r1, because the method resets, and all others will be clobbered.

 Return RegisterValue(:r1) that will be named integer_tmp