microfmt
Zero-allocation C++ formatting for constrained environments
Loading...
Searching...
No Matches
dwarf_registers.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Jarosław Pelczar <jarek@jpelczar.com>
2//
3// SPDX-License-Identifier: BSD-2-Clause
4
5#pragma once
6
7#include "../detail/compat.hpp"
8#include "../reloco.hpp"
9#include <cstdint>
10
11namespace microfmt::dwarf {
12
14 microfmt::string_view name;
15 uint32_t index{};
16};
17
18namespace generic_timer {
19enum : uint32_t {
20 cntfrq = 320,
21 cntpct = 321,
22 cntvct = 322,
23 cntp_tval = 323,
24 cntp_ctl = 324,
25 cntp_cval = 325,
26 cntv_tval = 326,
27 cntv_ctl = 327,
28 cntv_cval = 328,
30 cnthp_ctl = 330,
32 cntvoff = 332,
33 cnthctl = 333,
35 cnthv_ctl = 335,
43 cntkctl = 343
44};
45} // namespace generic_timer
46
47// ============================================================================
48// x86_64 (AMD64) DWARF Register Numbers (System V ABI)
49// ============================================================================
50namespace x86_64 {
51enum : uint32_t {
52 rax = 0,
53 rdx = 1,
54 rcx = 2,
55 rbx = 3,
56 rsi = 4,
57 rdi = 5,
58 rbp = 6,
59 rsp = 7,
60 r8 = 8,
61 r9 = 9,
62 r10 = 10,
63 r11 = 11,
64 r12 = 12,
65 r13 = 13,
66 r14 = 14,
67 r15 = 15,
68 rip = 16,
69
70 // Semantic Platform Aliases
74
75 // Floating Point & SSE/AVX Vector Registers (XMM0 - XMM15)
76 xmm0 = 17,
77 xmm1 = 18,
78 xmm2 = 19,
79 xmm3 = 20,
80 xmm4 = 21,
81 xmm5 = 22,
82 xmm6 = 23,
83 xmm7 = 24,
84 xmm8 = 25,
85 xmm9 = 26,
86 xmm10 = 27,
87 xmm11 = 28,
88 xmm12 = 29,
89 xmm13 = 30,
90 xmm14 = 31,
91 xmm15 = 32,
92
93 // Status & Control
94 eflags = 49,
95
96 // --- Segments & Base Registers ---
97 fs_base = 58,
98 gs_base = 59,
99 cs = 60,
100 ss = 61,
101 ds = 62,
102 es = 63,
103 fs = 64,
104 gs = 65,
105
106 // --- Kernel / Privileged & Debug Registers (Extended IDs) ---
107 kernel_gs_base = 66, // MSR IA32_KERNEL_GS_BASE (SwapGS target)
108 cr0 = 100,
109 cr2 = 102,
110 cr3 = 103, // Page table base (PML4 / CR3)
111 cr4 = 104,
112 cr8 = 108, // Task Priority Register (TPR)
113 dr0 = 120, // Hardware Breakpoints / Debug Registers
114 dr1 = 121,
115 dr2 = 122,
116 dr3 = 123,
117 dr6 = 126, // Debug Status
118 dr7 = 127 // Debug Control
120
122 inline static constexpr microfmt::array gpr_registers{
129
130 [[nodiscard]] static constexpr microfmt::array<register_descriptor, 15> address_registers() noexcept {
131 return {{{"RBP", rbp},
132 {"RDI", rdi},
133 {"RSI", rsi},
134 {"RBX", rbx},
135 {"R12", r12},
136 {"R13", r13},
137 {"R14", r14},
138 {"R15", r15},
139 {"RAX", rax},
140 {"RCX", rcx},
141 {"RDX", rdx},
142 {"R8", r8},
143 {"R9", r9},
144 {"R10", r10},
145 {"R11", r11}}};
146 }
147
148 inline static constexpr microfmt::array system_registers{
150 register_descriptor{"GS_BASE", gs_base}, register_descriptor{"KERNEL_GS_BASE", kernel_gs_base},
159 register_descriptor{"DR7", dr7}};
160};
161} // namespace x86_64
162
163// ============================================================================
164// x86 (IA-32) DWARF Register Numbers
165// ============================================================================
166namespace x86 {
167enum : uint32_t {
168 eax = 0,
169 ecx = 1,
170 edx = 2,
171 ebx = 3,
172 esp = 4,
173 ebp = 5,
174 esi = 6,
175 edi = 7,
176 eip = 8,
177
178 // Semantic Platform Aliases
182
183 // Floating Point Stack (ST0 - ST7)
184 st0 = 11,
185 st1 = 12,
186 st2 = 13,
187 st3 = 14,
188 st4 = 15,
189 st5 = 16,
190 st6 = 17,
191 st7 = 18,
192
193 // SSE Vector Registers (XMM0 - XMM7)
194 xmm0 = 21,
195 xmm1 = 22,
196 xmm2 = 23,
197 xmm3 = 24,
198 xmm4 = 25,
199 xmm5 = 26,
200 xmm6 = 27,
201 xmm7 = 28,
202
203 // --- TLS & System Extensions ---
206 cr0 = 100,
207 cr3 = 103,
208 cr4 = 104
210
212 inline static constexpr microfmt::array gpr_registers{
216
217 [[nodiscard]] static constexpr microfmt::array<register_descriptor, 7> address_registers() noexcept {
218 return {{{"EBP", ebp}, {"ESI", esi}, {"EDI", edi}, {"EBX", ebx}, {"EAX", eax}, {"ECX", ecx}, {"EDX", edx}}};
219 }
220
221 inline static constexpr microfmt::array system_registers{
222 register_descriptor{"GS_BASE", gs_base}, register_descriptor{"FS_BASE", fs_base}, register_descriptor{"CR0", cr0},
223 register_descriptor{"CR3", cr3}, register_descriptor{"CR4", cr4}};
224};
225} // namespace x86
226
227// ============================================================================
228// AArch64 (ARM 64-bit) DWARF Register Numbers
229// ============================================================================
230namespace aarch64 {
231enum : uint32_t {
232 x0 = 0,
233 x1 = 1,
234 x2 = 2,
235 x3 = 3,
236 x4 = 4,
237 x5 = 5,
238 x6 = 6,
239 x7 = 7,
240 x8 = 8,
241 x9 = 9,
242 x10 = 10,
243 x11 = 11,
244 x12 = 12,
245 x13 = 13,
246 x14 = 14,
247 x15 = 15,
248 x16 = 16,
249 x17 = 17,
250 x18 = 18,
251 x19 = 19,
252 x20 = 20,
253 x21 = 21,
254 x22 = 22,
255 x23 = 23,
256 x24 = 24,
257 x25 = 25,
258 x26 = 26,
259 x27 = 27,
260 x28 = 28,
261 x29 = 29,
262 x30 = 30,
263 sp = 31,
264 pc = 32,
265
266 // Semantic Platform Aliases
269
270 // Floating Point & SIMD / Neon Vector Registers (V0 - V31)
271 v0 = 64,
272 v1 = 65,
273 v2 = 66,
274 v3 = 67,
275 v4 = 68,
276 v5 = 69,
277 v6 = 70,
278 v7 = 71,
279 v8 = 72,
280 v9 = 73,
281 v10 = 74,
282 v11 = 75,
283 v12 = 76,
284 v13 = 77,
285 v14 = 78,
286 v15 = 79,
287 v16 = 80,
288 v17 = 81,
289 v18 = 82,
290 v19 = 83,
291 v20 = 84,
292 v21 = 85,
293 v22 = 86,
294 v23 = 87,
295 v24 = 88,
296 v25 = 89,
297 v26 = 90,
298 v27 = 91,
299 v28 = 92,
300 v29 = 93,
301 v30 = 94,
302 v31 = 95,
303
304 // --- Kernel & Hypervisor System Registers (Extended IDs) ---
305 tpidr_el0 = 256, // User TLS
306 tpidrro_el0 = 257, // User Read-Only TLS
307 tpidr_el1 = 258, // Kernel TLS (OS thread structure pointer)
308 tpidr_el2 = 259, // Hypervisor TLS
309 tpidr_el3 = 260, // Monitor TLS
310 sp_el0 = 261,
311 sp_el1 = 262,
312 elr_el1 = 263, // Exception Link Register EL1
313 spsr_el1 = 264, // Saved Program Status Register EL1
314 sctlr_el1 = 265, // System Control Register EL1
315 vbar_el1 = 266, // Vector Base Address Register EL1
316 vbar_el2 = 267, // Vector Base Address Register EL2
317 sp_el2 = 268,
318 sp_el3 = 269,
319 elr_el2 = 270,
320 elr_el3 = 271,
321 spsr_el2 = 272,
322 spsr_el3 = 273,
325 vbar_el3 = 276,
328 tcr_el1 = 279,
329 mair_el1 = 280,
331 esr_el1 = 282,
332 far_el1 = 283,
333 par_el1 = 284,
336 midr_el1 = 287,
343 tcr_el2 = 294,
344 mair_el2 = 295,
345 esr_el2 = 296,
346 far_el2 = 297,
347 hcr_el2 = 298,
348 vtcr_el2 = 299,
350 scr_el3 = 301,
351 esr_el3 = 302,
352 far_el3 = 303,
353 pstate = 304,
355 daif = 306,
356 nzcv = 307,
357
383
397
398 [[nodiscard]] static constexpr microfmt::array<register_descriptor, 30> address_registers() noexcept {
399 return {{{"FP", fp}, {"X0", x0}, {"X1", x1}, {"X2", x2}, {"X3", x3}, {"X4", x4},
400 {"X5", x5}, {"X6", x6}, {"X7", x7}, {"X19", x19}, {"X20", x20}, {"X21", x21},
401 {"X22", x22}, {"X23", x23}, {"X24", x24}, {"X25", x25}, {"X26", x26}, {"X27", x27},
402 {"X28", x28}, {"X8", x8}, {"X9", x9}, {"X10", x10}, {"X11", x11}, {"X12", x12},
403 {"X13", x13}, {"X14", x14}, {"X15", x15}, {"X16", x16}, {"X17", x17}, {"X18", x18}}};
404 }
405
406 inline static constexpr microfmt::array system_registers{register_descriptor{"TPIDR_EL0", tpidr_el0},
407 register_descriptor{"TPIDRRO_EL0", tpidrro_el0},
408 register_descriptor{"TPIDR_EL1", tpidr_el1},
409 register_descriptor{"TPIDR_EL2", tpidr_el2},
410 register_descriptor{"TPIDR_EL3", tpidr_el3},
411 register_descriptor{"SP_EL0", sp_el0},
412 register_descriptor{"SP_EL1", sp_el1},
413 register_descriptor{"SP_EL2", sp_el2},
414 register_descriptor{"SP_EL3", sp_el3},
415 register_descriptor{"ELR_EL1", elr_el1},
416 register_descriptor{"ELR_EL2", elr_el2},
417 register_descriptor{"ELR_EL3", elr_el3},
418 register_descriptor{"SPSR_EL1", spsr_el1},
419 register_descriptor{"SPSR_EL2", spsr_el2},
420 register_descriptor{"SPSR_EL3", spsr_el3},
421 register_descriptor{"SCTLR_EL1", sctlr_el1},
422 register_descriptor{"SCTLR_EL2", sctlr_el2},
423 register_descriptor{"SCTLR_EL3", sctlr_el3},
424 register_descriptor{"VBAR_EL1", vbar_el1},
425 register_descriptor{"VBAR_EL2", vbar_el2},
426 register_descriptor{"VBAR_EL3", vbar_el3},
427 register_descriptor{"TTBR0_EL1", ttbr0_el1},
428 register_descriptor{"TTBR1_EL1", ttbr1_el1},
429 register_descriptor{"TCR_EL1", tcr_el1},
430 register_descriptor{"MAIR_EL1", mair_el1},
431 register_descriptor{"AMAIR_EL1", amair_el1},
432 register_descriptor{"ESR_EL1", esr_el1},
433 register_descriptor{"FAR_EL1", far_el1},
434 register_descriptor{"PAR_EL1", par_el1},
435 register_descriptor{"CONTEXTIDR_EL1", contextidr_el1},
436 register_descriptor{"CPACR_EL1", cpacr_el1},
437 register_descriptor{"MIDR_EL1", midr_el1},
438 register_descriptor{"MPIDR_EL1", mpidr_el1},
439 register_descriptor{"REVIDR_EL1", revidr_el1},
440 register_descriptor{"ID_AA64PFR0_EL1", id_aa64pfr0_el1},
441 register_descriptor{"ID_AA64MMFR0_EL1", id_aa64mmfr0_el1},
442 register_descriptor{"ID_AA64ISAR0_EL1", id_aa64isar0_el1},
443 register_descriptor{"TTBR0_EL2", ttbr0_el2},
444 register_descriptor{"TCR_EL2", tcr_el2},
445 register_descriptor{"MAIR_EL2", mair_el2},
446 register_descriptor{"ESR_EL2", esr_el2},
447 register_descriptor{"FAR_EL2", far_el2},
448 register_descriptor{"HCR_EL2", hcr_el2},
449 register_descriptor{"VTCR_EL2", vtcr_el2},
450 register_descriptor{"VTTBR_EL2", vttbr_el2},
451 register_descriptor{"SCR_EL3", scr_el3},
452 register_descriptor{"ESR_EL3", esr_el3},
453 register_descriptor{"FAR_EL3", far_el3},
454 register_descriptor{"PSTATE", pstate},
455 register_descriptor{"CurrentEL", currentel},
456 register_descriptor{"DAIF", daif},
457 register_descriptor{"NZCV", nzcv},
458 register_descriptor{"CNTFRQ_EL0", cntfrq_el0},
459 register_descriptor{"CNTPCT_EL0", cntpct_el0},
460 register_descriptor{"CNTVCT_EL0", cntvct_el0},
461 register_descriptor{"CNTP_TVAL_EL0", cntp_tval_el0},
462 register_descriptor{"CNTP_CTL_EL0", cntp_ctl_el0},
463 register_descriptor{"CNTP_CVAL_EL0", cntp_cval_el0},
464 register_descriptor{"CNTV_TVAL_EL0", cntv_tval_el0},
465 register_descriptor{"CNTV_CTL_EL0", cntv_ctl_el0},
466 register_descriptor{"CNTV_CVAL_EL0", cntv_cval_el0},
467 register_descriptor{"CNTHP_TVAL_EL2", cnthp_tval_el2},
468 register_descriptor{"CNTHP_CTL_EL2", cnthp_ctl_el2},
469 register_descriptor{"CNTHP_CVAL_EL2", cnthp_cval_el2},
470 register_descriptor{"CNTVOFF_EL2", cntvoff_el2},
471 register_descriptor{"CNTHCTL_EL2", cnthctl_el2},
472 register_descriptor{"CNTHV_TVAL_EL2", cnthv_tval_el2},
473 register_descriptor{"CNTHV_CTL_EL2", cnthv_ctl_el2},
474 register_descriptor{"CNTHV_CVAL_EL2", cnthv_cval_el2},
475 register_descriptor{"CNTHPS_TVAL_EL2", cnthps_tval_el2},
476 register_descriptor{"CNTHPS_CTL_EL2", cnthps_ctl_el2},
477 register_descriptor{"CNTHPS_CVAL_EL2", cnthps_cval_el2},
478 register_descriptor{"CNTHVS_TVAL_EL2", cnthvs_tval_el2},
479 register_descriptor{"CNTHVS_CTL_EL2", cnthvs_ctl_el2},
480 register_descriptor{"CNTHVS_CVAL_EL2", cnthvs_cval_el2},
481 register_descriptor{"CNTKCTL_EL1", cntkctl_el1}};
482};
483} // namespace aarch64
484
485// ============================================================================
486// ARM32 (AArch32) DWARF Register Numbers
487// ============================================================================
488namespace arm32 {
489enum : uint32_t {
490 r0 = 0,
491 r1 = 1,
492 r2 = 2,
493 r3 = 3,
494 r4 = 4,
495 r5 = 5,
496 r6 = 6,
497 r7 = 7,
498 r8 = 8,
499 r9 = 9,
500 r10 = 10,
501 r11 = 11,
502 r12 = 12,
503 r13 = 13,
504 r14 = 14,
505 r15 = 15,
506 // Semantic Platform Aliases
511
512 // VFP / NEON Double-Precision Floating Point Registers (D0 - D31)
513 d0 = 64,
514 d1 = 65,
515 d2 = 66,
516 d3 = 67,
517 d4 = 68,
518 d5 = 69,
519 d6 = 70,
520 d7 = 71,
521 d8 = 72,
522 d9 = 73,
523 d10 = 74,
524 d11 = 75,
525 d12 = 76,
526 d13 = 77,
527 d14 = 78,
528 d15 = 79,
529 d16 = 80,
530 d17 = 81,
531 d18 = 82,
532 d19 = 83,
533 d20 = 84,
534 d21 = 85,
535 d22 = 86,
536 d23 = 87,
537 d24 = 88,
538 d25 = 89,
539 d26 = 90,
540 d27 = 91,
541 d28 = 92,
542 d29 = 93,
543 d30 = 94,
544 d31 = 95,
545
546 // --- Kernel & Privileged System Registers (Extended IDs) ---
547 tpidrurw = 256, // User Read/Write Thread ID
548 tpidruro = 257, // User Read-Only Thread ID
549 tpidrprw = 258, // Privileged Read/Write Thread ID (Kernel thread pointer)
550 cpsr = 259, // Current Program Status Register
551 spsr = 260, // Saved Program Status Register (Exception mode)
552 apsr = 261,
553 iapsr = 262,
554 eapsr = 263,
555 xpsr = 264,
556 ipsr = 265,
557 epsr = 266,
558 iepsr = 267,
559 msp = 268,
560 psp = 269,
561 primask = 270,
562 basepri = 271,
565 control = 274,
566 sctlr = 275,
567 actlr = 276,
568 cpacr = 277,
569 ttbr0 = 278,
570 ttbr1 = 279,
571 ttbcr = 280,
572 dacr = 281,
573 dfsr = 282,
574 ifsr = 283,
575 dfar = 284,
576 ifar = 285,
577 vbar = 286,
579 mair0 = 288,
580 mair1 = 289,
581 amair0 = 290,
582 amair1 = 291,
583 midr = 292,
584 mpidr = 293,
585
611
613 inline static constexpr microfmt::array gpr_registers{
617 register_descriptor{"R9", r9}, register_descriptor{"R10", r10}, register_descriptor{"FP", fp},
618 register_descriptor{"IP", r12}, register_descriptor{"SP", sp}, register_descriptor{"LR", lr},
619 register_descriptor{"PC", pc}};
620
621 [[nodiscard]] static constexpr microfmt::array<register_descriptor, 13> address_registers() noexcept {
622 return {{{"FP", fp},
623 {"R0", r0},
624 {"R1", r1},
625 {"R2", r2},
626 {"R3", r3},
627 {"R4", r4},
628 {"R5", r5},
629 {"R6", r6},
630 {"R7", r7},
631 {"R8", r8},
632 {"R9", r9},
633 {"R10", r10},
634 {"IP", r12}}};
635 }
636
637 inline static constexpr microfmt::array system_registers{register_descriptor{"TPIDRURW", tpidrurw},
638 register_descriptor{"TPIDRURO", tpidruro},
639 register_descriptor{"TPIDRPRW", tpidrprw},
640 register_descriptor{"CPSR", cpsr},
641 register_descriptor{"SPSR", spsr},
642 register_descriptor{"APSR", apsr},
643 register_descriptor{"IAPSR", iapsr},
644 register_descriptor{"EAPSR", eapsr},
645 register_descriptor{"XPSR", xpsr},
646 register_descriptor{"IPSR", ipsr},
647 register_descriptor{"EPSR", epsr},
648 register_descriptor{"IEPSR", iepsr},
649 register_descriptor{"MSP", msp},
650 register_descriptor{"PSP", psp},
651 register_descriptor{"PRIMASK", primask},
652 register_descriptor{"BASEPRI", basepri},
653 register_descriptor{"BASEPRI_MAX", basepri_max},
654 register_descriptor{"FAULTMASK", faultmask},
655 register_descriptor{"CONTROL", control},
656 register_descriptor{"SCTLR", sctlr},
657 register_descriptor{"ACTLR", actlr},
658 register_descriptor{"CPACR", cpacr},
659 register_descriptor{"TTBR0", ttbr0},
660 register_descriptor{"TTBR1", ttbr1},
661 register_descriptor{"TTBCR", ttbcr},
662 register_descriptor{"DACR", dacr},
663 register_descriptor{"DFSR", dfsr},
664 register_descriptor{"IFSR", ifsr},
665 register_descriptor{"DFAR", dfar},
666 register_descriptor{"IFAR", ifar},
667 register_descriptor{"VBAR", vbar},
668 register_descriptor{"CONTEXTIDR", contextidr},
669 register_descriptor{"MAIR0", mair0},
670 register_descriptor{"MAIR1", mair1},
671 register_descriptor{"AMAIR0", amair0},
672 register_descriptor{"AMAIR1", amair1},
673 register_descriptor{"MIDR", midr},
674 register_descriptor{"MPIDR", mpidr},
675 register_descriptor{"CNTFRQ", cntfrq},
676 register_descriptor{"CNTPCT", cntpct},
677 register_descriptor{"CNTVCT", cntvct},
678 register_descriptor{"CNTP_TVAL", cntp_tval},
679 register_descriptor{"CNTP_CTL", cntp_ctl},
680 register_descriptor{"CNTP_CVAL", cntp_cval},
681 register_descriptor{"CNTV_TVAL", cntv_tval},
682 register_descriptor{"CNTV_CTL", cntv_ctl},
683 register_descriptor{"CNTV_CVAL", cntv_cval},
684 register_descriptor{"CNTHP_TVAL", cnthp_tval},
685 register_descriptor{"CNTHP_CTL", cnthp_ctl},
686 register_descriptor{"CNTHP_CVAL", cnthp_cval},
687 register_descriptor{"CNTVOFF", cntvoff},
688 register_descriptor{"CNTHCTL", cnthctl},
689 register_descriptor{"CNTHV_TVAL", cnthv_tval},
690 register_descriptor{"CNTHV_CTL", cnthv_ctl},
691 register_descriptor{"CNTHV_CVAL", cnthv_cval},
692 register_descriptor{"CNTHPS_TVAL", cnthps_tval},
693 register_descriptor{"CNTHPS_CTL", cnthps_ctl},
694 register_descriptor{"CNTHPS_CVAL", cnthps_cval},
695 register_descriptor{"CNTHVS_TVAL", cnthvs_tval},
696 register_descriptor{"CNTHVS_CTL", cnthvs_ctl},
697 register_descriptor{"CNTHVS_CVAL", cnthvs_cval},
698 register_descriptor{"CNTKCTL", cntkctl}};
699};
700} // namespace arm32
701
702// ============================================================================
703// RISC-V (RV32 / RV64) DWARF Register Numbers
704// ============================================================================
705namespace riscv {
706enum : uint32_t {
707 // Integer Registers (X0 - X31) with ABI Name Aliases
708 x0 = 0,
709 zero = 0,
710 x1 = 1,
711 ra = 1, // Return Address (Link Register)
712 x2 = 2,
713 sp = 2, // Stack Pointer
714 x3 = 3,
715 gp = 3, // Global Pointer
716 x4 = 4,
717 tp = 4, // Thread Pointer
718 x5 = 5,
719 t0 = 5, // Temporaries
720 x6 = 6,
721 t1 = 6,
722 x7 = 7,
723 t2 = 7,
724 x8 = 8,
725 s0 = 8,
726 fp = 8, // Saved Register / Frame Pointer
727 x9 = 9,
728 s1 = 9,
729 x10 = 10,
730 a0 = 10, // Function Arguments / Return Values
731 x11 = 11,
732 a1 = 11,
733 x12 = 12,
734 a2 = 12,
735 x13 = 13,
736 a3 = 13,
737 x14 = 14,
738 a4 = 14,
739 x15 = 15,
740 a5 = 15,
741 x16 = 16,
742 a6 = 16,
743 x17 = 17,
744 a7 = 17,
745 x18 = 18,
746 s2 = 18, // Saved Registers
747 x19 = 19,
748 s3 = 19,
749 x20 = 20,
750 s4 = 20,
751 x21 = 21,
752 s5 = 21,
753 x22 = 22,
754 s6 = 22,
755 x23 = 23,
756 s7 = 23,
757 x24 = 24,
758 s8 = 24,
759 x25 = 25,
760 s9 = 25,
761 x26 = 26,
762 s10 = 26,
763 x27 = 27,
764 s11 = 27,
765 x28 = 28,
766 s12 = 28,
767 t3 = 28,
768 x29 = 29,
769 s13 = 29,
770 t4 = 29,
771 x30 = 30,
772 s14 = 30,
773 t5 = 30,
774 x31 = 31,
775 s15 = 31,
776 t6 = 31,
777
778 // Floating-Point Registers (F0 - F31)
779 f0 = 32,
780 f1 = 33,
781 f2 = 34,
782 f3 = 35,
783 f4 = 36,
784 f5 = 37,
785 f6 = 38,
786 f7 = 39,
787 f8 = 40,
788 f9 = 41,
789 f10 = 42,
790 f11 = 43,
791 f12 = 44,
792 f13 = 45,
793 f14 = 46,
794 f15 = 47,
795 f16 = 48,
796 f17 = 49,
797 f18 = 50,
798 f19 = 51,
799 f20 = 52,
800 f21 = 53,
801 f22 = 54,
802 f23 = 55,
803 f24 = 56,
804 f25 = 57,
805 f26 = 58,
806 f27 = 59,
807 f28 = 60,
808 f29 = 61,
809 f30 = 62,
810 f31 = 63,
811
812 // Program Counter
813 pc = 65,
814
815 // --- Supervisor & Machine Control Status Registers (CSRs) ---
816 sstatus = 256,
817 sepc = 257,
818 stval = 258,
819 satp = 259, // Supervisor Address Translation and Protection (Page Table Base)
820 mstatus = 260,
821 mepc = 261,
822 mtvec = 262
824
838
839 [[nodiscard]] static constexpr microfmt::array<register_descriptor, 29> address_registers() noexcept {
840 return {{{"s0", fp}, {"gp", gp}, {"tp", tp}, {"a0", a0}, {"a1", a1}, {"a2", a2}, {"a3", a3}, {"a4", a4},
841 {"a5", a5}, {"a6", a6}, {"a7", a7}, {"s1", s1}, {"s2", s2}, {"s3", s3}, {"s4", s4}, {"s5", s5},
842 {"s6", s6}, {"s7", s7}, {"s8", s8}, {"s9", s9}, {"s10", s10}, {"s11", s11}, {"t0", t0}, {"t1", t1},
843 {"t2", t2}, {"t3", t3}, {"t4", t4}, {"t5", t5}, {"t6", t6}}};
844 }
845
846 inline static constexpr microfmt::array system_registers{
850 register_descriptor{"mtvec", mtvec}};
851};
852} // namespace riscv
853
854} // namespace microfmt::dwarf
#define MICROFMT_API_CLASS
Definition compat.hpp:181
@ v3
Definition dwarf_registers.hpp:274
@ x30
Definition dwarf_registers.hpp:262
@ v6
Definition dwarf_registers.hpp:277
@ x10
Definition dwarf_registers.hpp:242
@ cnthv_ctl_el2
Definition dwarf_registers.hpp:373
@ mpidr_el1
Definition dwarf_registers.hpp:337
@ x27
Definition dwarf_registers.hpp:259
@ esr_el2
Definition dwarf_registers.hpp:345
@ cnthp_tval_el2
Definition dwarf_registers.hpp:367
@ x15
Definition dwarf_registers.hpp:247
@ v27
Definition dwarf_registers.hpp:298
@ v8
Definition dwarf_registers.hpp:279
@ x6
Definition dwarf_registers.hpp:238
@ cpacr_el1
Definition dwarf_registers.hpp:335
@ x17
Definition dwarf_registers.hpp:249
@ sctlr_el2
Definition dwarf_registers.hpp:323
@ x22
Definition dwarf_registers.hpp:254
@ currentel
Definition dwarf_registers.hpp:354
@ cnthvs_cval_el2
Definition dwarf_registers.hpp:380
@ daif
Definition dwarf_registers.hpp:355
@ x2
Definition dwarf_registers.hpp:234
@ x4
Definition dwarf_registers.hpp:236
@ v24
Definition dwarf_registers.hpp:295
@ cntvct_el0
Definition dwarf_registers.hpp:360
@ contextidr_el1
Definition dwarf_registers.hpp:334
@ cnthp_ctl_el2
Definition dwarf_registers.hpp:368
@ v26
Definition dwarf_registers.hpp:297
@ cnthv_tval_el2
Definition dwarf_registers.hpp:372
@ v2
Definition dwarf_registers.hpp:273
@ cnthv_cval_el2
Definition dwarf_registers.hpp:374
@ id_aa64mmfr0_el1
Definition dwarf_registers.hpp:340
@ x28
Definition dwarf_registers.hpp:260
@ pstate
Definition dwarf_registers.hpp:353
@ esr_el1
Definition dwarf_registers.hpp:331
@ v18
Definition dwarf_registers.hpp:289
@ cntvoff_el2
Definition dwarf_registers.hpp:370
@ far_el2
Definition dwarf_registers.hpp:346
@ v20
Definition dwarf_registers.hpp:291
@ nzcv
Definition dwarf_registers.hpp:356
@ x9
Definition dwarf_registers.hpp:241
@ cntv_tval_el0
Definition dwarf_registers.hpp:364
@ sp_el3
Definition dwarf_registers.hpp:318
@ x26
Definition dwarf_registers.hpp:258
@ vttbr_el2
Definition dwarf_registers.hpp:349
@ cntpct_el0
Definition dwarf_registers.hpp:359
@ v11
Definition dwarf_registers.hpp:282
@ cntp_ctl_el0
Definition dwarf_registers.hpp:362
@ lr
Definition dwarf_registers.hpp:268
@ x29
Definition dwarf_registers.hpp:261
@ par_el1
Definition dwarf_registers.hpp:333
@ tpidr_el2
Definition dwarf_registers.hpp:308
@ cnthps_ctl_el2
Definition dwarf_registers.hpp:376
@ x18
Definition dwarf_registers.hpp:250
@ cnthctl_el2
Definition dwarf_registers.hpp:371
@ id_aa64isar0_el1
Definition dwarf_registers.hpp:341
@ mair_el1
Definition dwarf_registers.hpp:329
@ x16
Definition dwarf_registers.hpp:248
@ v22
Definition dwarf_registers.hpp:293
@ x14
Definition dwarf_registers.hpp:246
@ scr_el3
Definition dwarf_registers.hpp:350
@ x23
Definition dwarf_registers.hpp:255
@ revidr_el1
Definition dwarf_registers.hpp:338
@ cntfrq_el0
Definition dwarf_registers.hpp:358
@ vtcr_el2
Definition dwarf_registers.hpp:348
@ vbar_el3
Definition dwarf_registers.hpp:325
@ x20
Definition dwarf_registers.hpp:252
@ tpidr_el3
Definition dwarf_registers.hpp:309
@ fp
Definition dwarf_registers.hpp:267
@ x19
Definition dwarf_registers.hpp:251
@ sctlr_el3
Definition dwarf_registers.hpp:324
@ v16
Definition dwarf_registers.hpp:287
@ v1
Definition dwarf_registers.hpp:272
@ cntv_ctl_el0
Definition dwarf_registers.hpp:365
@ x5
Definition dwarf_registers.hpp:237
@ vbar_el2
Definition dwarf_registers.hpp:316
@ v12
Definition dwarf_registers.hpp:283
@ v19
Definition dwarf_registers.hpp:290
@ v17
Definition dwarf_registers.hpp:288
@ spsr_el2
Definition dwarf_registers.hpp:321
@ sctlr_el1
Definition dwarf_registers.hpp:314
@ tpidrro_el0
Definition dwarf_registers.hpp:306
@ x0
Definition dwarf_registers.hpp:232
@ x11
Definition dwarf_registers.hpp:243
@ sp_el0
Definition dwarf_registers.hpp:310
@ esr_el3
Definition dwarf_registers.hpp:351
@ far_el3
Definition dwarf_registers.hpp:352
@ amair_el1
Definition dwarf_registers.hpp:330
@ sp
Definition dwarf_registers.hpp:263
@ x8
Definition dwarf_registers.hpp:240
@ v21
Definition dwarf_registers.hpp:292
@ v4
Definition dwarf_registers.hpp:275
@ v0
Definition dwarf_registers.hpp:271
@ v9
Definition dwarf_registers.hpp:280
@ elr_el1
Definition dwarf_registers.hpp:312
@ ttbr0_el1
Definition dwarf_registers.hpp:326
@ hcr_el2
Definition dwarf_registers.hpp:347
@ far_el1
Definition dwarf_registers.hpp:332
@ v30
Definition dwarf_registers.hpp:301
@ mair_el2
Definition dwarf_registers.hpp:344
@ cnthp_cval_el2
Definition dwarf_registers.hpp:369
@ x21
Definition dwarf_registers.hpp:253
@ id_aa64pfr0_el1
Definition dwarf_registers.hpp:339
@ spsr_el1
Definition dwarf_registers.hpp:313
@ elr_el3
Definition dwarf_registers.hpp:320
@ v15
Definition dwarf_registers.hpp:286
@ cnthps_tval_el2
Definition dwarf_registers.hpp:375
@ v23
Definition dwarf_registers.hpp:294
@ v5
Definition dwarf_registers.hpp:276
@ tpidr_el0
Definition dwarf_registers.hpp:305
@ sp_el1
Definition dwarf_registers.hpp:311
@ cntv_cval_el0
Definition dwarf_registers.hpp:366
@ x3
Definition dwarf_registers.hpp:235
@ tcr_el1
Definition dwarf_registers.hpp:328
@ pc
Definition dwarf_registers.hpp:264
@ v28
Definition dwarf_registers.hpp:299
@ ttbr0_el2
Definition dwarf_registers.hpp:342
@ tpidr_el1
Definition dwarf_registers.hpp:307
@ cnthvs_tval_el2
Definition dwarf_registers.hpp:378
@ x7
Definition dwarf_registers.hpp:239
@ x1
Definition dwarf_registers.hpp:233
@ spsr_el3
Definition dwarf_registers.hpp:322
@ cntp_cval_el0
Definition dwarf_registers.hpp:363
@ x24
Definition dwarf_registers.hpp:256
@ v7
Definition dwarf_registers.hpp:278
@ x25
Definition dwarf_registers.hpp:257
@ v25
Definition dwarf_registers.hpp:296
@ cntp_tval_el0
Definition dwarf_registers.hpp:361
@ v31
Definition dwarf_registers.hpp:302
@ ttbr1_el1
Definition dwarf_registers.hpp:327
@ cnthps_cval_el2
Definition dwarf_registers.hpp:377
@ elr_el2
Definition dwarf_registers.hpp:319
@ cnthvs_ctl_el2
Definition dwarf_registers.hpp:379
@ x13
Definition dwarf_registers.hpp:245
@ v14
Definition dwarf_registers.hpp:285
@ x12
Definition dwarf_registers.hpp:244
@ midr_el1
Definition dwarf_registers.hpp:336
@ v13
Definition dwarf_registers.hpp:284
@ v29
Definition dwarf_registers.hpp:300
@ tcr_el2
Definition dwarf_registers.hpp:343
@ sp_el2
Definition dwarf_registers.hpp:317
@ v10
Definition dwarf_registers.hpp:281
@ vbar_el1
Definition dwarf_registers.hpp:315
@ cntkctl_el1
Definition dwarf_registers.hpp:381
@ d13
Definition dwarf_registers.hpp:526
@ r13
Definition dwarf_registers.hpp:503
@ cntp_tval
Definition dwarf_registers.hpp:589
@ d3
Definition dwarf_registers.hpp:516
@ spsr
Definition dwarf_registers.hpp:551
@ d17
Definition dwarf_registers.hpp:530
@ cpacr
Definition dwarf_registers.hpp:568
@ d27
Definition dwarf_registers.hpp:540
@ r4
Definition dwarf_registers.hpp:494
@ cntpct
Definition dwarf_registers.hpp:587
@ cntvoff
Definition dwarf_registers.hpp:598
@ d6
Definition dwarf_registers.hpp:519
@ d22
Definition dwarf_registers.hpp:535
@ cnthv_cval
Definition dwarf_registers.hpp:602
@ iepsr
Definition dwarf_registers.hpp:558
@ ttbr0
Definition dwarf_registers.hpp:569
@ mpidr
Definition dwarf_registers.hpp:584
@ actlr
Definition dwarf_registers.hpp:567
@ d10
Definition dwarf_registers.hpp:523
@ ipsr
Definition dwarf_registers.hpp:556
@ d23
Definition dwarf_registers.hpp:536
@ r15
Definition dwarf_registers.hpp:505
@ iapsr
Definition dwarf_registers.hpp:553
@ mair1
Definition dwarf_registers.hpp:580
@ d11
Definition dwarf_registers.hpp:524
@ apsr
Definition dwarf_registers.hpp:552
@ d4
Definition dwarf_registers.hpp:517
@ d8
Definition dwarf_registers.hpp:521
@ cnthv_tval
Definition dwarf_registers.hpp:600
@ control
Definition dwarf_registers.hpp:565
@ cnthps_ctl
Definition dwarf_registers.hpp:604
@ d12
Definition dwarf_registers.hpp:525
@ d18
Definition dwarf_registers.hpp:531
@ d7
Definition dwarf_registers.hpp:520
@ d15
Definition dwarf_registers.hpp:528
@ d28
Definition dwarf_registers.hpp:541
@ cnthvs_tval
Definition dwarf_registers.hpp:606
@ tpidruro
Definition dwarf_registers.hpp:548
@ msp
Definition dwarf_registers.hpp:559
@ cnthp_ctl
Definition dwarf_registers.hpp:596
@ pc
Definition dwarf_registers.hpp:510
@ cnthvs_cval
Definition dwarf_registers.hpp:608
@ cntv_ctl
Definition dwarf_registers.hpp:593
@ tpidrprw
Definition dwarf_registers.hpp:549
@ ifsr
Definition dwarf_registers.hpp:574
@ cntp_ctl
Definition dwarf_registers.hpp:590
@ mair0
Definition dwarf_registers.hpp:579
@ dfsr
Definition dwarf_registers.hpp:573
@ r11
Definition dwarf_registers.hpp:501
@ lr
Definition dwarf_registers.hpp:509
@ r6
Definition dwarf_registers.hpp:496
@ vbar
Definition dwarf_registers.hpp:577
@ d0
Definition dwarf_registers.hpp:513
@ d19
Definition dwarf_registers.hpp:532
@ contextidr
Definition dwarf_registers.hpp:578
@ amair0
Definition dwarf_registers.hpp:581
@ cnthps_tval
Definition dwarf_registers.hpp:603
@ r9
Definition dwarf_registers.hpp:499
@ cntfrq
Definition dwarf_registers.hpp:586
@ d24
Definition dwarf_registers.hpp:537
@ d31
Definition dwarf_registers.hpp:544
@ amair1
Definition dwarf_registers.hpp:582
@ cnthv_ctl
Definition dwarf_registers.hpp:601
@ d1
Definition dwarf_registers.hpp:514
@ midr
Definition dwarf_registers.hpp:583
@ dfar
Definition dwarf_registers.hpp:575
@ primask
Definition dwarf_registers.hpp:561
@ r2
Definition dwarf_registers.hpp:492
@ faultmask
Definition dwarf_registers.hpp:564
@ d5
Definition dwarf_registers.hpp:518
@ sctlr
Definition dwarf_registers.hpp:566
@ r8
Definition dwarf_registers.hpp:498
@ r5
Definition dwarf_registers.hpp:495
@ psp
Definition dwarf_registers.hpp:560
@ cnthvs_ctl
Definition dwarf_registers.hpp:607
@ fp
Definition dwarf_registers.hpp:507
@ d25
Definition dwarf_registers.hpp:538
@ cnthp_cval
Definition dwarf_registers.hpp:597
@ ifar
Definition dwarf_registers.hpp:576
@ d9
Definition dwarf_registers.hpp:522
@ r1
Definition dwarf_registers.hpp:491
@ cntv_cval
Definition dwarf_registers.hpp:594
@ ttbcr
Definition dwarf_registers.hpp:571
@ cntp_cval
Definition dwarf_registers.hpp:591
@ r3
Definition dwarf_registers.hpp:493
@ cntvct
Definition dwarf_registers.hpp:588
@ r14
Definition dwarf_registers.hpp:504
@ basepri
Definition dwarf_registers.hpp:562
@ d21
Definition dwarf_registers.hpp:534
@ epsr
Definition dwarf_registers.hpp:557
@ cpsr
Definition dwarf_registers.hpp:550
@ cntkctl
Definition dwarf_registers.hpp:609
@ d29
Definition dwarf_registers.hpp:542
@ tpidrurw
Definition dwarf_registers.hpp:547
@ basepri_max
Definition dwarf_registers.hpp:563
@ d2
Definition dwarf_registers.hpp:515
@ eapsr
Definition dwarf_registers.hpp:554
@ sp
Definition dwarf_registers.hpp:508
@ xpsr
Definition dwarf_registers.hpp:555
@ cnthctl
Definition dwarf_registers.hpp:599
@ cnthp_tval
Definition dwarf_registers.hpp:595
@ dacr
Definition dwarf_registers.hpp:572
@ d16
Definition dwarf_registers.hpp:529
@ ttbr1
Definition dwarf_registers.hpp:570
@ r7
Definition dwarf_registers.hpp:497
@ d26
Definition dwarf_registers.hpp:539
@ d14
Definition dwarf_registers.hpp:527
@ cnthps_cval
Definition dwarf_registers.hpp:605
@ d20
Definition dwarf_registers.hpp:533
@ r10
Definition dwarf_registers.hpp:500
@ d30
Definition dwarf_registers.hpp:543
@ r12
Definition dwarf_registers.hpp:502
@ cntv_tval
Definition dwarf_registers.hpp:592
@ r0
Definition dwarf_registers.hpp:490
@ cntv_cval
Definition dwarf_registers.hpp:28
@ cnthps_ctl
Definition dwarf_registers.hpp:38
@ cnthv_tval
Definition dwarf_registers.hpp:34
@ cnthvs_cval
Definition dwarf_registers.hpp:42
@ cnthv_cval
Definition dwarf_registers.hpp:36
@ cnthvs_ctl
Definition dwarf_registers.hpp:41
@ cntp_cval
Definition dwarf_registers.hpp:25
@ cntkctl
Definition dwarf_registers.hpp:43
@ cntvct
Definition dwarf_registers.hpp:22
@ cnthp_ctl
Definition dwarf_registers.hpp:30
@ cnthps_cval
Definition dwarf_registers.hpp:39
@ cntv_ctl
Definition dwarf_registers.hpp:27
@ cnthp_tval
Definition dwarf_registers.hpp:29
@ cnthvs_tval
Definition dwarf_registers.hpp:40
@ cnthv_ctl
Definition dwarf_registers.hpp:35
@ cntvoff
Definition dwarf_registers.hpp:32
@ cntfrq
Definition dwarf_registers.hpp:20
@ cntv_tval
Definition dwarf_registers.hpp:26
@ cntpct
Definition dwarf_registers.hpp:21
@ cntp_ctl
Definition dwarf_registers.hpp:24
@ cnthp_cval
Definition dwarf_registers.hpp:31
@ cnthps_tval
Definition dwarf_registers.hpp:37
@ cntp_tval
Definition dwarf_registers.hpp:23
@ cnthctl
Definition dwarf_registers.hpp:33
@ s9
Definition dwarf_registers.hpp:760
@ mstatus
Definition dwarf_registers.hpp:820
@ s7
Definition dwarf_registers.hpp:756
@ f7
Definition dwarf_registers.hpp:786
@ f8
Definition dwarf_registers.hpp:787
@ x10
Definition dwarf_registers.hpp:729
@ t2
Definition dwarf_registers.hpp:723
@ f23
Definition dwarf_registers.hpp:802
@ x2
Definition dwarf_registers.hpp:712
@ mepc
Definition dwarf_registers.hpp:821
@ x26
Definition dwarf_registers.hpp:761
@ s2
Definition dwarf_registers.hpp:746
@ f9
Definition dwarf_registers.hpp:788
@ s8
Definition dwarf_registers.hpp:758
@ fp
Definition dwarf_registers.hpp:726
@ ra
Definition dwarf_registers.hpp:711
@ mtvec
Definition dwarf_registers.hpp:822
@ x11
Definition dwarf_registers.hpp:731
@ f10
Definition dwarf_registers.hpp:789
@ a7
Definition dwarf_registers.hpp:744
@ x7
Definition dwarf_registers.hpp:722
@ x19
Definition dwarf_registers.hpp:747
@ x30
Definition dwarf_registers.hpp:771
@ x25
Definition dwarf_registers.hpp:759
@ gp
Definition dwarf_registers.hpp:715
@ a2
Definition dwarf_registers.hpp:734
@ f15
Definition dwarf_registers.hpp:794
@ s4
Definition dwarf_registers.hpp:750
@ x13
Definition dwarf_registers.hpp:735
@ f12
Definition dwarf_registers.hpp:791
@ f3
Definition dwarf_registers.hpp:782
@ s15
Definition dwarf_registers.hpp:775
@ f11
Definition dwarf_registers.hpp:790
@ t4
Definition dwarf_registers.hpp:770
@ x20
Definition dwarf_registers.hpp:749
@ s3
Definition dwarf_registers.hpp:748
@ sstatus
Definition dwarf_registers.hpp:816
@ x9
Definition dwarf_registers.hpp:727
@ f29
Definition dwarf_registers.hpp:808
@ tp
Definition dwarf_registers.hpp:717
@ x15
Definition dwarf_registers.hpp:739
@ f0
Definition dwarf_registers.hpp:779
@ x6
Definition dwarf_registers.hpp:720
@ s0
Definition dwarf_registers.hpp:725
@ t1
Definition dwarf_registers.hpp:721
@ f24
Definition dwarf_registers.hpp:803
@ x27
Definition dwarf_registers.hpp:763
@ x1
Definition dwarf_registers.hpp:710
@ s11
Definition dwarf_registers.hpp:764
@ x17
Definition dwarf_registers.hpp:743
@ a3
Definition dwarf_registers.hpp:736
@ f17
Definition dwarf_registers.hpp:796
@ x4
Definition dwarf_registers.hpp:716
@ f20
Definition dwarf_registers.hpp:799
@ f25
Definition dwarf_registers.hpp:804
@ f5
Definition dwarf_registers.hpp:784
@ t6
Definition dwarf_registers.hpp:776
@ f1
Definition dwarf_registers.hpp:780
@ s14
Definition dwarf_registers.hpp:772
@ f16
Definition dwarf_registers.hpp:795
@ f19
Definition dwarf_registers.hpp:798
@ x16
Definition dwarf_registers.hpp:741
@ s12
Definition dwarf_registers.hpp:766
@ s13
Definition dwarf_registers.hpp:769
@ x23
Definition dwarf_registers.hpp:755
@ f30
Definition dwarf_registers.hpp:809
@ f26
Definition dwarf_registers.hpp:805
@ f27
Definition dwarf_registers.hpp:806
@ a5
Definition dwarf_registers.hpp:740
@ s1
Definition dwarf_registers.hpp:728
@ sp
Definition dwarf_registers.hpp:713
@ a1
Definition dwarf_registers.hpp:732
@ x24
Definition dwarf_registers.hpp:757
@ satp
Definition dwarf_registers.hpp:819
@ sepc
Definition dwarf_registers.hpp:817
@ x22
Definition dwarf_registers.hpp:753
@ pc
Definition dwarf_registers.hpp:813
@ f21
Definition dwarf_registers.hpp:800
@ t3
Definition dwarf_registers.hpp:767
@ t0
Definition dwarf_registers.hpp:719
@ f31
Definition dwarf_registers.hpp:810
@ f14
Definition dwarf_registers.hpp:793
@ zero
Definition dwarf_registers.hpp:709
@ s10
Definition dwarf_registers.hpp:762
@ t5
Definition dwarf_registers.hpp:773
@ f13
Definition dwarf_registers.hpp:792
@ x31
Definition dwarf_registers.hpp:774
@ x5
Definition dwarf_registers.hpp:718
@ s6
Definition dwarf_registers.hpp:754
@ a4
Definition dwarf_registers.hpp:738
@ x0
Definition dwarf_registers.hpp:708
@ x29
Definition dwarf_registers.hpp:768
@ x21
Definition dwarf_registers.hpp:751
@ x14
Definition dwarf_registers.hpp:737
@ x28
Definition dwarf_registers.hpp:765
@ x8
Definition dwarf_registers.hpp:724
@ stval
Definition dwarf_registers.hpp:818
@ f6
Definition dwarf_registers.hpp:785
@ x12
Definition dwarf_registers.hpp:733
@ s5
Definition dwarf_registers.hpp:752
@ a0
Definition dwarf_registers.hpp:730
@ f28
Definition dwarf_registers.hpp:807
@ a6
Definition dwarf_registers.hpp:742
@ f2
Definition dwarf_registers.hpp:781
@ f22
Definition dwarf_registers.hpp:801
@ f4
Definition dwarf_registers.hpp:783
@ f18
Definition dwarf_registers.hpp:797
@ x3
Definition dwarf_registers.hpp:714
@ x18
Definition dwarf_registers.hpp:745
@ dr6
Definition dwarf_registers.hpp:117
@ fs
Definition dwarf_registers.hpp:103
@ eflags
Definition dwarf_registers.hpp:94
@ r13
Definition dwarf_registers.hpp:65
@ xmm8
Definition dwarf_registers.hpp:84
@ dr7
Definition dwarf_registers.hpp:118
@ dr3
Definition dwarf_registers.hpp:116
@ r14
Definition dwarf_registers.hpp:66
@ rbx
Definition dwarf_registers.hpp:55
@ r10
Definition dwarf_registers.hpp:62
@ r9
Definition dwarf_registers.hpp:61
@ xmm4
Definition dwarf_registers.hpp:80
@ cr8
Definition dwarf_registers.hpp:112
@ ds
Definition dwarf_registers.hpp:101
@ rsi
Definition dwarf_registers.hpp:56
@ fs_base
Definition dwarf_registers.hpp:97
@ gs_base
Definition dwarf_registers.hpp:98
@ cr3
Definition dwarf_registers.hpp:110
@ kernel_gs_base
Definition dwarf_registers.hpp:107
@ fp
Definition dwarf_registers.hpp:71
@ r15
Definition dwarf_registers.hpp:67
@ rbp
Definition dwarf_registers.hpp:58
@ dr0
Definition dwarf_registers.hpp:113
@ rdx
Definition dwarf_registers.hpp:53
@ rip
Definition dwarf_registers.hpp:68
@ gs
Definition dwarf_registers.hpp:104
@ xmm15
Definition dwarf_registers.hpp:91
@ xmm3
Definition dwarf_registers.hpp:79
@ xmm0
Definition dwarf_registers.hpp:76
@ xmm6
Definition dwarf_registers.hpp:82
@ rcx
Definition dwarf_registers.hpp:54
@ pc
Definition dwarf_registers.hpp:73
@ rsp
Definition dwarf_registers.hpp:59
@ sp
Definition dwarf_registers.hpp:72
@ rdi
Definition dwarf_registers.hpp:57
@ rax
Definition dwarf_registers.hpp:52
@ cs
Definition dwarf_registers.hpp:99
@ xmm13
Definition dwarf_registers.hpp:89
@ r8
Definition dwarf_registers.hpp:60
@ xmm9
Definition dwarf_registers.hpp:85
@ xmm7
Definition dwarf_registers.hpp:83
@ dr1
Definition dwarf_registers.hpp:114
@ es
Definition dwarf_registers.hpp:102
@ xmm10
Definition dwarf_registers.hpp:86
@ xmm5
Definition dwarf_registers.hpp:81
@ xmm2
Definition dwarf_registers.hpp:78
@ cr4
Definition dwarf_registers.hpp:111
@ xmm12
Definition dwarf_registers.hpp:88
@ xmm1
Definition dwarf_registers.hpp:77
@ cr0
Definition dwarf_registers.hpp:108
@ cr2
Definition dwarf_registers.hpp:109
@ xmm14
Definition dwarf_registers.hpp:90
@ ss
Definition dwarf_registers.hpp:100
@ r12
Definition dwarf_registers.hpp:64
@ xmm11
Definition dwarf_registers.hpp:87
@ r11
Definition dwarf_registers.hpp:63
@ dr2
Definition dwarf_registers.hpp:115
@ st1
Definition dwarf_registers.hpp:185
@ st0
Definition dwarf_registers.hpp:184
@ pc
Definition dwarf_registers.hpp:181
@ esp
Definition dwarf_registers.hpp:172
@ xmm6
Definition dwarf_registers.hpp:200
@ ecx
Definition dwarf_registers.hpp:169
@ xmm5
Definition dwarf_registers.hpp:199
@ st4
Definition dwarf_registers.hpp:188
@ edi
Definition dwarf_registers.hpp:175
@ ebx
Definition dwarf_registers.hpp:171
@ st7
Definition dwarf_registers.hpp:191
@ xmm3
Definition dwarf_registers.hpp:197
@ fs_base
Definition dwarf_registers.hpp:205
@ cr0
Definition dwarf_registers.hpp:206
@ fp
Definition dwarf_registers.hpp:179
@ esi
Definition dwarf_registers.hpp:174
@ eip
Definition dwarf_registers.hpp:176
@ cr3
Definition dwarf_registers.hpp:207
@ xmm7
Definition dwarf_registers.hpp:201
@ st5
Definition dwarf_registers.hpp:189
@ st6
Definition dwarf_registers.hpp:190
@ st2
Definition dwarf_registers.hpp:186
@ sp
Definition dwarf_registers.hpp:180
@ cr4
Definition dwarf_registers.hpp:208
@ xmm2
Definition dwarf_registers.hpp:196
@ st3
Definition dwarf_registers.hpp:187
@ xmm0
Definition dwarf_registers.hpp:194
@ xmm4
Definition dwarf_registers.hpp:198
@ gs_base
Definition dwarf_registers.hpp:204
@ eax
Definition dwarf_registers.hpp:168
@ edx
Definition dwarf_registers.hpp:170
@ ebp
Definition dwarf_registers.hpp:173
@ xmm1
Definition dwarf_registers.hpp:195
Definition dwarf_registers.hpp:11
Definition dwarf_registers.hpp:384
static constexpr microfmt::array< register_descriptor, 30 > address_registers() noexcept
Definition dwarf_registers.hpp:398
Definition dwarf_registers.hpp:612
static constexpr microfmt::array< register_descriptor, 13 > address_registers() noexcept
Definition dwarf_registers.hpp:621
Definition dwarf_registers.hpp:13
microfmt::string_view name
Definition dwarf_registers.hpp:14
Definition dwarf_registers.hpp:825
static constexpr microfmt::array< register_descriptor, 29 > address_registers() noexcept
Definition dwarf_registers.hpp:839
Definition dwarf_registers.hpp:211
static constexpr microfmt::array< register_descriptor, 7 > address_registers() noexcept
Definition dwarf_registers.hpp:217
Definition dwarf_registers.hpp:121
static constexpr microfmt::array< register_descriptor, 15 > address_registers() noexcept
Definition dwarf_registers.hpp:130