out: exit if there is no room for more relocations or symbols
[neatcc.git] / x64.h
blob3d913d36ba0733198df8839854f6a11650b4d470
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_ARGS 6 /* number of arg registers */
7 #define N_TMPS 14 /* number of tmp registers */
8 #define R_TMPS 0xffcf /* mask of tmp registers */
9 #define R_ARGS 0x03c6 /* mask of arg registers */
10 #define R_SAVED 0xf008 /* mask of callee-saved registers */
12 #define R_CALL 0x0001 /* mask of regs than can hold call dst */
13 #define R_BYTE R_TMPS /* mask of regs that can perform byte-wide instructions */
15 /* special registers */
16 #define REG_FP 5 /* frame pointer register */
17 #define REG_SP 4 /* stack pointer register */
18 #define REG_RET 0 /* returned value register */
19 #define REG_FORK 0 /* result of conditional branches */
21 /* memory model */
22 #define X64_ABS_RL (OUT_RL32)