mirror of
https://github.com/danog/ir.git
synced 2024-12-02 17:55:40 +01:00
AArch64: Make x18 register allocatable on Linux
This commit is contained in:
parent
dd77b6b71a
commit
a746ceb650
12
ir_aarch64.h
12
ir_aarch64.h
@ -104,10 +104,16 @@ enum _ir_reg {
|
|||||||
IR_REG_X31
|
IR_REG_X31
|
||||||
#define IR_REG_FRAME_POINTER \
|
#define IR_REG_FRAME_POINTER \
|
||||||
IR_REG_X29
|
IR_REG_X29
|
||||||
|
|
||||||
|
#if defined(__linux__)
|
||||||
#define IR_REGSET_FIXED \
|
#define IR_REGSET_FIXED \
|
||||||
( IR_REGSET(IR_REG_INT_TMP) \
|
(IR_REGSET(IR_REG_INT_TMP) | IR_REGSET_INTERVAL(IR_REG_X29, IR_REG_X31))
|
||||||
| IR_REGSET(IR_REG_X18) /* platform specific register */ \
|
#else
|
||||||
| IR_REGSET_INTERVAL(IR_REG_X29, IR_REG_X31))
|
#define IR_REGSET_FIXED \
|
||||||
|
(IR_REGSET(IR_REG_INT_TMP) | IR_REGSET_INTERVAL(IR_REG_X29, IR_REG_X31) \
|
||||||
|
| IR_REGSET(IR_REG_X18)) /* Other platforms reserve x18 register */
|
||||||
|
#endif
|
||||||
|
|
||||||
#define IR_REGSET_GP \
|
#define IR_REGSET_GP \
|
||||||
IR_REGSET_DIFFERENCE(IR_REGSET_INTERVAL(IR_REG_GP_FIRST, IR_REG_GP_LAST), IR_REGSET_FIXED)
|
IR_REGSET_DIFFERENCE(IR_REGSET_INTERVAL(IR_REG_GP_FIRST, IR_REG_GP_LAST), IR_REGSET_FIXED)
|
||||||
#define IR_REGSET_FP \
|
#define IR_REGSET_FP \
|
||||||
|
Loading…
Reference in New Issue
Block a user