Skip to content

Commit f1bf29d

Browse files
authored
Add LoongArch register defs (gimli-rs#624)
1 parent 24a25b9 commit f1bf29d

File tree

1 file changed

+148
-0
lines changed

1 file changed

+148
-0
lines changed

src/arch.rs

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,154 @@ registers!(AArch64, {
291291
V31 = (95, "V31"),
292292
});
293293

294+
/// LoongArch architecture specific definitions.
295+
///
296+
/// See [LoongArch ELF psABI specification](https://loongson.github.io/LoongArch-Documentation/LoongArch-ELF-ABI-EN.html).
297+
#[derive(Debug, Clone, Copy)]
298+
pub struct LoongArch;
299+
300+
registers!(LoongArch, {
301+
R0 = (0, "$r0"),
302+
R1 = (1, "$r1"),
303+
R2 = (2, "$r2"),
304+
R3 = (3, "$r3"),
305+
R4 = (4, "$r4"),
306+
R5 = (5, "$r5"),
307+
R6 = (6, "$r6"),
308+
R7 = (7, "$r7"),
309+
R8 = (8, "$r8"),
310+
R9 = (9, "$r9"),
311+
R10 = (10, "$r10"),
312+
R11 = (11, "$r11"),
313+
R12 = (12, "$r12"),
314+
R13 = (13, "$r13"),
315+
R14 = (14, "$r14"),
316+
R15 = (15, "$r15"),
317+
R16 = (16, "$r16"),
318+
R17 = (17, "$r17"),
319+
R18 = (18, "$r18"),
320+
R19 = (19, "$r19"),
321+
R20 = (20, "$r20"),
322+
R21 = (21, "$r21"),
323+
R22 = (22, "$r22"),
324+
R23 = (23, "$r23"),
325+
R24 = (24, "$r24"),
326+
R25 = (25, "$r25"),
327+
R26 = (26, "$r26"),
328+
R27 = (27, "$r27"),
329+
R28 = (28, "$r28"),
330+
R29 = (29, "$r29"),
331+
R30 = (30, "$r30"),
332+
R31 = (31, "$r31"),
333+
334+
F0 = (32, "$f0"),
335+
F1 = (33, "$f1"),
336+
F2 = (34, "$f2"),
337+
F3 = (35, "$f3"),
338+
F4 = (36, "$f4"),
339+
F5 = (37, "$f5"),
340+
F6 = (38, "$f6"),
341+
F7 = (39, "$f7"),
342+
F8 = (40, "$f8"),
343+
F9 = (41, "$f9"),
344+
F10 = (42, "$f10"),
345+
F11 = (43, "$f11"),
346+
F12 = (44, "$f12"),
347+
F13 = (45, "$f13"),
348+
F14 = (46, "$f14"),
349+
F15 = (47, "$f15"),
350+
F16 = (48, "$f16"),
351+
F17 = (49, "$f17"),
352+
F18 = (50, "$f18"),
353+
F19 = (51, "$f19"),
354+
F20 = (52, "$f20"),
355+
F21 = (53, "$f21"),
356+
F22 = (54, "$f22"),
357+
F23 = (55, "$f23"),
358+
F24 = (56, "$f24"),
359+
F25 = (57, "$f25"),
360+
F26 = (58, "$f26"),
361+
F27 = (59, "$f27"),
362+
F28 = (60, "$f28"),
363+
F29 = (61, "$f29"),
364+
F30 = (62, "$f30"),
365+
F31 = (63, "$f31"),
366+
FCC0 = (64, "$fcc0"),
367+
FCC1 = (65, "$fcc1"),
368+
FCC2 = (66, "$fcc2"),
369+
FCC3 = (67, "$fcc3"),
370+
FCC4 = (68, "$fcc4"),
371+
FCC5 = (69, "$fcc5"),
372+
FCC6 = (70, "$fcc6"),
373+
FCC7 = (71, "$fcc7"),
374+
},
375+
aliases {
376+
ZERO = (0, "$zero"),
377+
RA = (1, "$ra"),
378+
TP = (2, "$tp"),
379+
SP = (3, "$sp"),
380+
A0 = (4, "$a0"),
381+
A1 = (5, "$a1"),
382+
A2 = (6, "$a2"),
383+
A3 = (7, "$a3"),
384+
A4 = (8, "$a4"),
385+
A5 = (9, "$a5"),
386+
A6 = (10, "$a6"),
387+
A7 = (11, "$a7"),
388+
T0 = (12, "$t0"),
389+
T1 = (13, "$t1"),
390+
T2 = (14, "$t2"),
391+
T3 = (15, "$t3"),
392+
T4 = (16, "$t4"),
393+
T5 = (17, "$t5"),
394+
T6 = (18, "$t6"),
395+
T7 = (19, "$t7"),
396+
T8 = (20, "$t8"),
397+
FP = (22, "$fp"),
398+
S0 = (23, "$s0"),
399+
S1 = (24, "$s1"),
400+
S2 = (25, "$s2"),
401+
S3 = (26, "$s3"),
402+
S4 = (27, "$s4"),
403+
S5 = (28, "$s5"),
404+
S6 = (29, "$s6"),
405+
S7 = (30, "$s7"),
406+
S8 = (31, "$s8"),
407+
408+
FA0 = (32, "$fa0"),
409+
FA1 = (33, "$fa1"),
410+
FA2 = (34, "$fa2"),
411+
FA3 = (35, "$fa3"),
412+
FA4 = (36, "$fa4"),
413+
FA5 = (37, "$fa5"),
414+
FA6 = (38, "$fa6"),
415+
FA7 = (39, "$fa7"),
416+
FT0 = (40, "$ft0"),
417+
FT1 = (41, "$ft1"),
418+
FT2 = (42, "$ft2"),
419+
FT3 = (43, "$ft3"),
420+
FT4 = (44, "$ft4"),
421+
FT5 = (45, "$ft5"),
422+
FT6 = (46, "$ft6"),
423+
FT7 = (47, "$ft7"),
424+
FT8 = (48, "$ft8"),
425+
FT9 = (49, "$ft9"),
426+
FT10 = (50, "$ft10"),
427+
FT11 = (51, "$ft11"),
428+
FT12 = (52, "$ft12"),
429+
FT13 = (53, "$ft13"),
430+
FT14 = (54, "$ft14"),
431+
FT15 = (55, "$ft15"),
432+
FS0 = (56, "$fs0"),
433+
FS1 = (57, "$fs1"),
434+
FS2 = (58, "$fs2"),
435+
FS3 = (59, "$fs3"),
436+
FS4 = (60, "$fs4"),
437+
FS5 = (61, "$fs5"),
438+
FS6 = (62, "$fs6"),
439+
FS7 = (63, "$fs7"),
440+
});
441+
294442
/// RISC-V architecture specific definitions.
295443
///
296444
/// See [RISC-V ELF psABI specification](https://github.com/riscv/riscv-elf-psabi-doc).

0 commit comments

Comments
 (0)