Skip to content

Commit

Permalink
Add LoongArch register defs (#624)
Browse files Browse the repository at this point in the history
  • Loading branch information
zhaixiaojuan committed Aug 31, 2022
1 parent 24a25b9 commit f1bf29d
Showing 1 changed file with 148 additions and 0 deletions.
148 changes: 148 additions & 0 deletions src/arch.rs
Expand Up @@ -291,6 +291,154 @@ registers!(AArch64, {
V31 = (95, "V31"),
});

/// LoongArch architecture specific definitions.
///
/// See [LoongArch ELF psABI specification](https://loongson.github.io/LoongArch-Documentation/LoongArch-ELF-ABI-EN.html).
#[derive(Debug, Clone, Copy)]
pub struct LoongArch;

registers!(LoongArch, {
R0 = (0, "$r0"),
R1 = (1, "$r1"),
R2 = (2, "$r2"),
R3 = (3, "$r3"),
R4 = (4, "$r4"),
R5 = (5, "$r5"),
R6 = (6, "$r6"),
R7 = (7, "$r7"),
R8 = (8, "$r8"),
R9 = (9, "$r9"),
R10 = (10, "$r10"),
R11 = (11, "$r11"),
R12 = (12, "$r12"),
R13 = (13, "$r13"),
R14 = (14, "$r14"),
R15 = (15, "$r15"),
R16 = (16, "$r16"),
R17 = (17, "$r17"),
R18 = (18, "$r18"),
R19 = (19, "$r19"),
R20 = (20, "$r20"),
R21 = (21, "$r21"),
R22 = (22, "$r22"),
R23 = (23, "$r23"),
R24 = (24, "$r24"),
R25 = (25, "$r25"),
R26 = (26, "$r26"),
R27 = (27, "$r27"),
R28 = (28, "$r28"),
R29 = (29, "$r29"),
R30 = (30, "$r30"),
R31 = (31, "$r31"),

F0 = (32, "$f0"),
F1 = (33, "$f1"),
F2 = (34, "$f2"),
F3 = (35, "$f3"),
F4 = (36, "$f4"),
F5 = (37, "$f5"),
F6 = (38, "$f6"),
F7 = (39, "$f7"),
F8 = (40, "$f8"),
F9 = (41, "$f9"),
F10 = (42, "$f10"),
F11 = (43, "$f11"),
F12 = (44, "$f12"),
F13 = (45, "$f13"),
F14 = (46, "$f14"),
F15 = (47, "$f15"),
F16 = (48, "$f16"),
F17 = (49, "$f17"),
F18 = (50, "$f18"),
F19 = (51, "$f19"),
F20 = (52, "$f20"),
F21 = (53, "$f21"),
F22 = (54, "$f22"),
F23 = (55, "$f23"),
F24 = (56, "$f24"),
F25 = (57, "$f25"),
F26 = (58, "$f26"),
F27 = (59, "$f27"),
F28 = (60, "$f28"),
F29 = (61, "$f29"),
F30 = (62, "$f30"),
F31 = (63, "$f31"),
FCC0 = (64, "$fcc0"),
FCC1 = (65, "$fcc1"),
FCC2 = (66, "$fcc2"),
FCC3 = (67, "$fcc3"),
FCC4 = (68, "$fcc4"),
FCC5 = (69, "$fcc5"),
FCC6 = (70, "$fcc6"),
FCC7 = (71, "$fcc7"),
},
aliases {
ZERO = (0, "$zero"),
RA = (1, "$ra"),
TP = (2, "$tp"),
SP = (3, "$sp"),
A0 = (4, "$a0"),
A1 = (5, "$a1"),
A2 = (6, "$a2"),
A3 = (7, "$a3"),
A4 = (8, "$a4"),
A5 = (9, "$a5"),
A6 = (10, "$a6"),
A7 = (11, "$a7"),
T0 = (12, "$t0"),
T1 = (13, "$t1"),
T2 = (14, "$t2"),
T3 = (15, "$t3"),
T4 = (16, "$t4"),
T5 = (17, "$t5"),
T6 = (18, "$t6"),
T7 = (19, "$t7"),
T8 = (20, "$t8"),
FP = (22, "$fp"),
S0 = (23, "$s0"),
S1 = (24, "$s1"),
S2 = (25, "$s2"),
S3 = (26, "$s3"),
S4 = (27, "$s4"),
S5 = (28, "$s5"),
S6 = (29, "$s6"),
S7 = (30, "$s7"),
S8 = (31, "$s8"),

FA0 = (32, "$fa0"),
FA1 = (33, "$fa1"),
FA2 = (34, "$fa2"),
FA3 = (35, "$fa3"),
FA4 = (36, "$fa4"),
FA5 = (37, "$fa5"),
FA6 = (38, "$fa6"),
FA7 = (39, "$fa7"),
FT0 = (40, "$ft0"),
FT1 = (41, "$ft1"),
FT2 = (42, "$ft2"),
FT3 = (43, "$ft3"),
FT4 = (44, "$ft4"),
FT5 = (45, "$ft5"),
FT6 = (46, "$ft6"),
FT7 = (47, "$ft7"),
FT8 = (48, "$ft8"),
FT9 = (49, "$ft9"),
FT10 = (50, "$ft10"),
FT11 = (51, "$ft11"),
FT12 = (52, "$ft12"),
FT13 = (53, "$ft13"),
FT14 = (54, "$ft14"),
FT15 = (55, "$ft15"),
FS0 = (56, "$fs0"),
FS1 = (57, "$fs1"),
FS2 = (58, "$fs2"),
FS3 = (59, "$fs3"),
FS4 = (60, "$fs4"),
FS5 = (61, "$fs5"),
FS6 = (62, "$fs6"),
FS7 = (63, "$fs7"),
});

/// RISC-V architecture specific definitions.
///
/// See [RISC-V ELF psABI specification](https://github.com/riscv/riscv-elf-psabi-doc).
Expand Down

0 comments on commit f1bf29d

Please sign in to comment.