3 Rv64Op rv64_op
[NOp
] = {
4 #define O(op, t, x) [O##op] =
5 #define V(imm) { imm },
10 T0
, T1
, T2
, T3
, T4
, T5
,
11 A0
, A1
, A2
, A3
, A4
, A5
, A6
, A7
,
12 FA0
, FA1
, FA2
, FA3
, FA4
, FA5
, FA6
, FA7
,
13 FT0
, FT1
, FT2
, FT3
, FT4
, FT5
, FT6
, FT7
,
18 S1
, S2
, S3
, S4
, S5
, S6
, S7
,
20 FS0
, FS1
, FS2
, FS3
, FS4
, FS5
, FS6
, FS7
,
25 #define RGLOB (BIT(FP) | BIT(SP) | BIT(GP) | BIT(TP) | BIT(RA))
43 .nrsave
= {NGPS
, NFPS
},
44 .retregs
= rv64_retregs
,
45 .argregs
= rv64_argregs
,
46 .memargs
= rv64_memargs
,
50 .emitfn
= rv64_emitfn
,
51 .emitfin
= elf_emitfin
,
55 MAKESURE(rsave_size_ok
, sizeof rv64_rsave
== (NGPS
+NFPS
+1) * sizeof(int));
56 MAKESURE(rclob_size_ok
, sizeof rv64_rclob
== (NCLR
+1) * sizeof(int));