tok: read '\08' as {'\0', '8'}
[neatcc.git] / x64.h
blob0157312cd1499060b5efb2c1898decea6f1cd21d
1 #define LONGSZ 8 /* word size */
2 #define I_ARCH "__x86_64__"
4 #define N_REGS 16 /* number of registers */
5 #define N_ARGS 6 /* number of arg registers */
6 #define N_TMPS 14 /* number of tmp registers */
7 #define R_TMPS 0xffcf /* mask of tmp registers */
8 #define R_ARGS 0x03c6 /* mask of arg registers */
9 #define R_SAVED 0xf008 /* mask of callee-saved registers */
11 #define R_CALL 0x0001 /* mask of regs than can hold call dst */
12 #define R_BYTE R_TMPS /* mask of regs that can perform byte-wide instructions */
14 /* special registers */
15 #define REG_FP 5 /* frame pointer register */
16 #define REG_SP 4 /* stack pointer register */
17 #define REG_RET 0 /* returned value register */
18 #define REG_FORK 0 /* result of conditional branches */
20 /* memory model */
21 #define X64_ABS_RL (OUT_RL32)