Next: Values in Registers, Previous: Register Basics, Up: Registers
13.7.2 Order of Allocation of Registers
Registers are allocated in order.
If defined, an initializer for a vector of integers, containing the numbers of hard registers in the order in which GCC 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.
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.