1 | #include "all.h" |
2 | |
3 | Amd64Op amd64_op[NOp] = { |
4 | #define O(op, t, x) [O##op] = |
5 | #define X(nm, zf, lf) { nm, zf, lf, }, |
6 | #include "../ops.h" |
7 | }; |
8 | |
9 | static int |
10 | amd64_memargs(int op) |
11 | { |
12 | return amd64_op[op].nmem; |
13 | } |
14 | |
15 | Target T_amd64_sysv = { |
16 | .name = "amd64_sysv" , |
17 | .gpr0 = RAX, |
18 | .ngpr = NGPR, |
19 | .fpr0 = XMM0, |
20 | .nfpr = NFPR, |
21 | .rglob = BIT(RBP) | BIT(RSP), |
22 | .nrglob = 2, |
23 | .rsave = amd64_sysv_rsave, |
24 | .nrsave = {NGPS, NFPS}, |
25 | .retregs = amd64_sysv_retregs, |
26 | .argregs = amd64_sysv_argregs, |
27 | .memargs = amd64_memargs, |
28 | .abi = amd64_sysv_abi, |
29 | .isel = amd64_isel, |
30 | .emitfn = amd64_emitfn, |
31 | }; |
32 | |