1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
Reg(Rnone, "%NOREG", "NOREG", ModeB)
/* byte regs */
Reg(Ral, "%al", "AL", ModeB)
Reg(Rcl, "%cl", "CL", ModeB)
Reg(Rdl, "%dl", "DL", ModeB)
Reg(Rbl, "%bl", "BL", ModeB)
Reg(Rsil, "%sil", "SIB", ModeB)
Reg(Rdil, "%dil", "DIB", ModeB)
Reg(Rspl, "%spl", "SPB", ModeB)
Reg(Rbpl, "%bpl", "BPB", ModeB)
Reg(Rr8b, "%r8b", "R8B", ModeB)
Reg(Rr9b, "%r9b", "R9B", ModeB)
Reg(Rr10b, "%r10b", "R10", ModeB)
Reg(Rr11b, "%r11b", "R11", ModeB)
Reg(Rr12b, "%r12b", "R12", ModeB)
Reg(Rr13b, "%r13b", "R13", ModeB)
Reg(Rr14b, "%r14b", "R14", ModeB)
Reg(Rr15b, "%r15b", "R15", ModeB)
/* high byte regs. We *NEVER* allocate these */
Reg(Rah, "%ah", "AH", ModeB)
Reg(Rch, "%ch", "CH", ModeB)
Reg(Rdh, "%dh", "DH", ModeB)
Reg(Rbh, "%bh", "BH", ModeB)
/* short regs */
Reg(Rax, "%ax", "AX", ModeW)
Reg(Rcx, "%cx", "CX", ModeW)
Reg(Rdx, "%dx", "DX", ModeW)
Reg(Rbx, "%bx", "BX", ModeW)
Reg(Rsi, "%si", "SI", ModeW)
Reg(Rdi, "%di", "DI", ModeW)
Reg(Rsp, "%sp", "SP", ModeW)
Reg(Rbp, "%bp", "BP", ModeW)
Reg(Rr8w, "%r8w", "R8", ModeW)
Reg(Rr9w, "%r9w", "R9", ModeW)
Reg(Rr10w, "%r10w", "R10", ModeW)
Reg(Rr11w, "%r11w", "R11", ModeW)
Reg(Rr12w, "%r12w", "R12", ModeW)
Reg(Rr13w, "%r13w", "R13", ModeW)
Reg(Rr14w, "%r14w", "R14", ModeW)
Reg(Rr15w, "%r15w", "R15", ModeW)
/* long regs */
Reg(Reax, "%eax", "AX", ModeL)
Reg(Recx, "%ecx", "CX", ModeL)
Reg(Redx, "%edx", "DX", ModeL)
Reg(Rebx, "%ebx", "BX", ModeL)
Reg(Resi, "%esi", "SI", ModeL)
Reg(Redi, "%edi", "DI", ModeL)
Reg(Resp, "%esp", "SP", ModeL)
Reg(Rebp, "%ebp", "BP", ModeL)
Reg(Rr8d, "%r8d", "R8", ModeL)
Reg(Rr9d, "%r9d", "R9", ModeL)
Reg(Rr10d, "%r10d", "R10", ModeL)
Reg(Rr11d, "%r11d", "R11", ModeL)
Reg(Rr12d, "%r12d", "R12", ModeL)
Reg(Rr13d, "%r13d", "R13", ModeL)
Reg(Rr14d, "%r14d", "R14", ModeL)
Reg(Rr15d, "%r15d", "R15", ModeL)
/* quad regs */
Reg(Rrax, "%rax", "AX", ModeQ)
Reg(Rrcx, "%rcx", "CX", ModeQ)
Reg(Rrdx, "%rdx", "DX", ModeQ)
Reg(Rrbx, "%rbx", "BX", ModeQ)
Reg(Rrsi, "%rsi", "SI", ModeQ)
Reg(Rrdi, "%rdi", "DI", ModeQ)
Reg(Rrsp, "%rsp", "SP", ModeQ)
Reg(Rrbp, "%rbp", "BP", ModeQ)
Reg(Rr8, "%r8", "R8", ModeQ)
Reg(Rr9, "%r9", "R9", ModeQ)
Reg(Rr10, "%r10", "R10", ModeQ)
Reg(Rr11, "%r11", "R11", ModeQ)
Reg(Rr12, "%r12", "R12", ModeQ)
Reg(Rr13, "%r13", "R13", ModeQ)
Reg(Rr14, "%r14", "R14", ModeQ)
Reg(Rr15, "%r15", "R15", ModeQ)
/* floating point registers */
Reg(Rxmm0f, "%xmm0", "X0", ModeF)
Reg(Rxmm1f, "%xmm1", "X1", ModeF)
Reg(Rxmm2f, "%xmm2", "X2", ModeF)
Reg(Rxmm3f, "%xmm3", "X3", ModeF)
Reg(Rxmm4f, "%xmm4", "X4", ModeF)
Reg(Rxmm5f, "%xmm5", "X5", ModeF)
Reg(Rxmm6f, "%xmm6", "X6", ModeF)
Reg(Rxmm7f, "%xmm7", "X7", ModeF)
Reg(Rxmm8f, "%xmm8", "X8", ModeF)
Reg(Rxmm9f, "%xmm9", "X9", ModeF)
Reg(Rxmm10f, "%xmm10", "X10", ModeF)
Reg(Rxmm11f, "%xmm11", "X11", ModeF)
Reg(Rxmm12f, "%xmm12", "X12", ModeF)
Reg(Rxmm13f, "%xmm13", "X13", ModeF)
Reg(Rxmm14f, "%xmm14", "X14", ModeF)
Reg(Rxmm15f, "%xmm15", "X15", ModeF)
/* double precision floating point registers */
Reg(Rxmm0d, "%xmm0", "X0", ModeD)
Reg(Rxmm1d, "%xmm1", "X1", ModeD)
Reg(Rxmm2d, "%xmm2", "X2", ModeD)
Reg(Rxmm3d, "%xmm3", "X3", ModeD)
Reg(Rxmm4d, "%xmm4", "X4", ModeD)
Reg(Rxmm5d, "%xmm5", "X5", ModeD)
Reg(Rxmm6d, "%xmm6", "X6", ModeD)
Reg(Rxmm7d, "%xmm7", "X7", ModeD)
Reg(Rxmm8d, "%xmm8", "X8", ModeD)
Reg(Rxmm9d, "%xmm9", "X9", ModeD)
Reg(Rxmm10d, "%xmm10", "X10", ModeD)
Reg(Rxmm11d, "%xmm11", "X11", ModeD)
Reg(Rxmm12d, "%xmm12", "X12", ModeD)
Reg(Rxmm13d, "%xmm13", "X13", ModeD)
Reg(Rxmm14d, "%xmm14", "X14", ModeD)
Reg(Rxmm15d, "%xmm15", "X15", ModeD)
Reg(Rrip, "%rip", "IP", ModeQ)
|