gcc.info: Allocation Order

Go forward to Values in Registers
Go backward to Register Basics
Go up to Registers
Go to the top op gcc

Order of Allocation of Registers

   Registers are allocated in order.
`REG_ALLOC_ORDER'
     If defined, an initializer for a vector of integers, containing the
     numbers of hard registers in the order in which GNU CC should
     prefer to use them (from most preferred to least).
     If this macro is not defined, registers are used lowest numbered
     first (all else being equal).
     One use of this macro is on machines where the highest numbered
     registers must always be saved and the save-multiple-registers
     instruction supports only sequences of consecutive registers.  On
     such machines, define `REG_ALLOC_ORDER' to be an initializer that
     lists the highest numbered allocable register first.
`ORDER_REGS_FOR_LOCAL_ALLOC'
     A C statement (sans semicolon) to choose the order in which to
     allocate hard registers for pseudo-registers local to a basic
     block.
     Store the desired register order in the array `reg_alloc_order'.
     Element 0 should be the register to allocate first; element 1, the
     next register; and so on.
     The macro body should not assume anything about the contents of
     `reg_alloc_order' before execution of the macro.
     On most machines, it is not necessary to define this macro.