gen: prefer good registers to those holding the operands
[neatcc.git] / x64.h
blobca47d723cbc8418dc806e50e828596bb1f3a0ea8
1 /* architecture-dependent header for x86_64 */
2 #define LONGSZ 8 /* word size */
3 #define I_ARCH "__x86_64__"
5 #define N_REGS 16 /* number of registers */
6 #define N_TMPS 14 /* number of tmp registers */
7 #define N_ARGS 6 /* number of arg registers */
8 #define R_TMPS 0xffcf /* mask of tmp registers */
9 #define R_ARGS 0x03c6 /* mask of arg registers */
10 #define R_PERM 0xf008 /* mask of callee-saved registers */
12 #define REG_FP 5 /* frame pointer register */
13 #define REG_SP 4 /* stack pointer register */
15 #define I_ARG0 (-16) /* offset of the first argument from FP */
16 #define I_LOC0 0 /* offset of the first local from FP */
18 #define X64_ABS_RL (OUT_RL32) /* x86_64 memory model */