VirtualBox

Changeset 101246 in vbox


Ignore:
Timestamp:
Sep 22, 2023 11:47:21 PM (14 months ago)
Author:
vboxsync
Message:

iprt/armv8.h,iprt/formats/dwarf.h: Arm register names. bugref:10370

Location:
trunk/include/iprt
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/armv8.h

    r101185 r101246  
    5252 */
    5353
    54 /** @name The AArch64 register encoding.
     54/** @name The AArch64 register encoding - deprecated.
     55 *  @deprecated  Use ARMV8_A64_REG_XXX instead.
     56 *  @todo correct code and drop these remaining ones.
    5557 * @{ */
    5658#define ARMV8_AARCH64_REG_X0                        0
    57 #define ARMV8_AARCH64_REG_W0                        ARMV8_AARCH64_REG_X0
    5859#define ARMV8_AARCH64_REG_X1                        1
    59 #define ARMV8_AARCH64_REG_W1                        ARMV8_AARCH64_REG_X1
    6060#define ARMV8_AARCH64_REG_X2                        2
    61 #define ARMV8_AARCH64_REG_W2                        ARMV8_AARCH64_REG_X2
    6261#define ARMV8_AARCH64_REG_X3                        3
    63 #define ARMV8_AARCH64_REG_W3                        ARMV8_AARCH64_REG_X3
    64 #define ARMV8_AARCH64_REG_X4                        4
    65 #define ARMV8_AARCH64_REG_W4                        ARMV8_AARCH64_REG_X4
    66 #define ARMV8_AARCH64_REG_X5                        5
    67 #define ARMV8_AARCH64_REG_W5                        ARMV8_AARCH64_REG_X5
    68 #define ARMV8_AARCH64_REG_X6                        6
    69 #define ARMV8_AARCH64_REG_W6                        ARMV8_AARCH64_REG_X6
    70 #define ARMV8_AARCH64_REG_X7                        7
    71 #define ARMV8_AARCH64_REG_W7                        ARMV8_AARCH64_REG_X7
    72 #define ARMV8_AARCH64_REG_X8                        8
    73 #define ARMV8_AARCH64_REG_W8                        ARMV8_AARCH64_REG_X8
    74 #define ARMV8_AARCH64_REG_X9                        9
    75 #define ARMV8_AARCH64_REG_W9                        ARMV8_AARCH64_REG_X9
    76 #define ARMV8_AARCH64_REG_X10                       10
    77 #define ARMV8_AARCH64_REG_W10                       ARMV8_AARCH64_REG_X10
    78 #define ARMV8_AARCH64_REG_X11                       11
    79 #define ARMV8_AARCH64_REG_W11                       ARMV8_AARCH64_REG_X11
    80 #define ARMV8_AARCH64_REG_X12                       12
    81 #define ARMV8_AARCH64_REG_W12                       ARMV8_AARCH64_REG_X12
    82 #define ARMV8_AARCH64_REG_X13                       13
    83 #define ARMV8_AARCH64_REG_W13                       ARMV8_AARCH64_REG_X13
    84 #define ARMV8_AARCH64_REG_X14                       14
    85 #define ARMV8_AARCH64_REG_W14                       ARMV8_AARCH64_REG_X14
    86 #define ARMV8_AARCH64_REG_X15                       15
    87 #define ARMV8_AARCH64_REG_W15                       ARMV8_AARCH64_REG_X15
    88 #define ARMV8_AARCH64_REG_X16                       16
    89 #define ARMV8_AARCH64_REG_W16                       ARMV8_AARCH64_REG_X16
    90 #define ARMV8_AARCH64_REG_X17                       17
    91 #define ARMV8_AARCH64_REG_W17                       ARMV8_AARCH64_REG_X17
    92 #define ARMV8_AARCH64_REG_X18                       18
    93 #define ARMV8_AARCH64_REG_W18                       ARMV8_AARCH64_REG_X18
    94 #define ARMV8_AARCH64_REG_X19                       19
    95 #define ARMV8_AARCH64_REG_W19                       ARMV8_AARCH64_REG_X19
    96 #define ARMV8_AARCH64_REG_X20                       20
    97 #define ARMV8_AARCH64_REG_W20                       ARMV8_AARCH64_REG_X20
    98 #define ARMV8_AARCH64_REG_X21                       21
    99 #define ARMV8_AARCH64_REG_W21                       ARMV8_AARCH64_REG_X21
    100 #define ARMV8_AARCH64_REG_X22                       22
    101 #define ARMV8_AARCH64_REG_W22                       ARMV8_AARCH64_REG_X22
    102 #define ARMV8_AARCH64_REG_X23                       23
    103 #define ARMV8_AARCH64_REG_W23                       ARMV8_AARCH64_REG_X23
    104 #define ARMV8_AARCH64_REG_X24                       24
    105 #define ARMV8_AARCH64_REG_W24                       ARMV8_AARCH64_REG_X24
    106 #define ARMV8_AARCH64_REG_X25                       25
    107 #define ARMV8_AARCH64_REG_W25                       ARMV8_AARCH64_REG_X25
    108 #define ARMV8_AARCH64_REG_X26                       26
    109 #define ARMV8_AARCH64_REG_W26                       ARMV8_AARCH64_REG_X26
    110 #define ARMV8_AARCH64_REG_X27                       27
    111 #define ARMV8_AARCH64_REG_W27                       ARMV8_AARCH64_REG_X27
    112 #define ARMV8_AARCH64_REG_X28                       28
    113 #define ARMV8_AARCH64_REG_W28                       ARMV8_AARCH64_REG_X28
    114 #define ARMV8_AARCH64_REG_X29                       29
    115 #define ARMV8_AARCH64_REG_W29                       ARMV8_AARCH64_REG_X29
    116 #define ARMV8_AARCH64_REG_X30                       30
    117 #define ARMV8_AARCH64_REG_W30                       ARMV8_AARCH64_REG_X30
    118 /** The zero register. */
    11962#define ARMV8_AARCH64_REG_ZR                        31
    12063/** @} */
     64
     65/** @name The AArch64 general purpose register encoding.
     66 * @{ */
     67#define ARMV8_A64_REG_X0                            0
     68#define ARMV8_A64_REG_X1                            1
     69#define ARMV8_A64_REG_X2                            2
     70#define ARMV8_A64_REG_X3                            3
     71#define ARMV8_A64_REG_X4                            4
     72#define ARMV8_A64_REG_X5                            5
     73#define ARMV8_A64_REG_X6                            6
     74#define ARMV8_A64_REG_X7                            7
     75#define ARMV8_A64_REG_X8                            8
     76#define ARMV8_A64_REG_X9                            9
     77#define ARMV8_A64_REG_X10                           10
     78#define ARMV8_A64_REG_X11                           11
     79#define ARMV8_A64_REG_X12                           12
     80#define ARMV8_A64_REG_X13                           13
     81#define ARMV8_A64_REG_X14                           14
     82#define ARMV8_A64_REG_X15                           15
     83#define ARMV8_A64_REG_X16                           16
     84#define ARMV8_A64_REG_X17                           17
     85#define ARMV8_A64_REG_X18                           18
     86#define ARMV8_A64_REG_X19                           19
     87#define ARMV8_A64_REG_X20                           20
     88#define ARMV8_A64_REG_X21                           21
     89#define ARMV8_A64_REG_X22                           22
     90#define ARMV8_A64_REG_X23                           23
     91#define ARMV8_A64_REG_X24                           24
     92#define ARMV8_A64_REG_X25                           25
     93#define ARMV8_A64_REG_X26                           26
     94#define ARMV8_A64_REG_X27                           27
     95#define ARMV8_A64_REG_X28                           28
     96#define ARMV8_A64_REG_X29                           29
     97#define ARMV8_A64_REG_X30                           30
     98/** @} */
     99
     100/** @name The AArch64 32-bit general purpose register names.
     101 * @{ */
     102#define ARMV8_A64_REG_W0                            ARMV8_A64_REG_X0
     103#define ARMV8_A64_REG_W1                            ARMV8_A64_REG_X1
     104#define ARMV8_A64_REG_W2                            ARMV8_A64_REG_X2
     105#define ARMV8_A64_REG_W3                            ARMV8_A64_REG_X3
     106#define ARMV8_A64_REG_W4                            ARMV8_A64_REG_X4
     107#define ARMV8_A64_REG_W5                            ARMV8_A64_REG_X5
     108#define ARMV8_A64_REG_W6                            ARMV8_A64_REG_X6
     109#define ARMV8_A64_REG_W7                            ARMV8_A64_REG_X7
     110#define ARMV8_A64_REG_W8                            ARMV8_A64_REG_X8
     111#define ARMV8_A64_REG_W9                            ARMV8_A64_REG_X9
     112#define ARMV8_A64_REG_W10                           ARMV8_A64_REG_X10
     113#define ARMV8_A64_REG_W11                           ARMV8_A64_REG_X11
     114#define ARMV8_A64_REG_W12                           ARMV8_A64_REG_X12
     115#define ARMV8_A64_REG_W13                           ARMV8_A64_REG_X13
     116#define ARMV8_A64_REG_W14                           ARMV8_A64_REG_X14
     117#define ARMV8_A64_REG_W15                           ARMV8_A64_REG_X15
     118#define ARMV8_A64_REG_W16                           ARMV8_A64_REG_X16
     119#define ARMV8_A64_REG_W17                           ARMV8_A64_REG_X17
     120#define ARMV8_A64_REG_W18                           ARMV8_A64_REG_X18
     121#define ARMV8_A64_REG_W19                           ARMV8_A64_REG_X19
     122#define ARMV8_A64_REG_W20                           ARMV8_A64_REG_X20
     123#define ARMV8_A64_REG_W21                           ARMV8_A64_REG_X21
     124#define ARMV8_A64_REG_W22                           ARMV8_A64_REG_X22
     125#define ARMV8_A64_REG_W23                           ARMV8_A64_REG_X23
     126#define ARMV8_A64_REG_W24                           ARMV8_A64_REG_X24
     127#define ARMV8_A64_REG_W25                           ARMV8_A64_REG_X25
     128#define ARMV8_A64_REG_W26                           ARMV8_A64_REG_X26
     129#define ARMV8_A64_REG_W27                           ARMV8_A64_REG_X27
     130#define ARMV8_A64_REG_W28                           ARMV8_A64_REG_X28
     131#define ARMV8_A64_REG_W29                           ARMV8_A64_REG_X29
     132#define ARMV8_A64_REG_W30                           ARMV8_A64_REG_X30
     133/** @} */
     134
     135/** @name The AArch64 register 31.
     136 * @note Register 31 typically refers to the zero register, but can also in
     137 *       select case (by instruction and opecode field) refer the to stack
     138 *       pointer of the current exception level.  ARM typically uses \<Xn|SP\>
     139 *       to indicate that register 31 is taken as SP, if just \<Xn\> is used
     140 *       31 will be the zero register.
     141 * @{ */
     142/** The stack pointer. */
     143#define ARMV8_A64_REG_SP                            31
     144/** The zero register.  Reads as zero, writes ignored. */
     145#define ARMV8_A64_REG_XZR                           31
     146/** The zero register, the 32-bit register name. */
     147#define ARMV8_A64_REG_WZR                           ARMV8_A64_REG_XZR
     148/** @} */
     149
     150/** @name AArch64 register aliases
     151 * @{ */
     152/** The link register is typically mapped to x30 as that's the default pick of
     153 *  the RET instruction. */
     154#define ARMV8_A64_REG_LR                            ARMV8_A64_REG_X30
     155/** Frame base pointer is typically mapped to x29. */
     156#define ARMV8_A64_REG_BP                            ARMV8_A64_REG_X29
     157/* @} */
    121158
    122159
  • trunk/include/iprt/formats/dwarf.h

    r98103 r101246  
    471471
    472472/** @name DWREG_AMD64_XXX - AMD64 register number mappings.
    473  * @note This for some braindead reason the first 8 GPR are in intel encoding
    474  *       order, unlike the DWREG_X86_XXX variant.  Utter stupidity.
     473 * @note This for some braindead reason the first 8 GPR are NOT in the intel
     474 *       encoding order, unlike the DWREG_X86_XXX variant.  Utter stupidity.
    475475 * @{ */
    476476#define DWREG_AMD64_RAX     0
     
    539539/** @} */
    540540
     541
     542/** @name DWREG_ARM64_XXX - ARM64 register number mappings.
     543 * @{ */
     544#define DWREG_ARM64_X0              0
     545#define DWREG_ARM64_X1              1
     546#define DWREG_ARM64_X2              2
     547#define DWREG_ARM64_X3              3
     548#define DWREG_ARM64_X4              4
     549#define DWREG_ARM64_X5              5
     550#define DWREG_ARM64_X6              6
     551#define DWREG_ARM64_X7              7
     552#define DWREG_ARM64_X8              8
     553#define DWREG_ARM64_X9              9
     554#define DWREG_ARM64_X10             10
     555#define DWREG_ARM64_X11             11
     556#define DWREG_ARM64_X12             12
     557#define DWREG_ARM64_X13             13
     558#define DWREG_ARM64_X14             14
     559#define DWREG_ARM64_X15             15
     560#define DWREG_ARM64_X16             16
     561#define DWREG_ARM64_X17             17
     562#define DWREG_ARM64_X18             18
     563#define DWREG_ARM64_X19             19
     564#define DWREG_ARM64_X20             20
     565#define DWREG_ARM64_X21             21
     566#define DWREG_ARM64_X22             22
     567#define DWREG_ARM64_X23             23
     568#define DWREG_ARM64_X24             24
     569#define DWREG_ARM64_X25             25
     570#define DWREG_ARM64_X26             26
     571#define DWREG_ARM64_X27             27
     572#define DWREG_ARM64_X28             28
     573#define DWREG_ARM64_X29             29
     574#define DWREG_ARM64_X30             30
     575#define DWREG_ARM64_SP              31
     576#define DWREG_ARM64_BP              DWREG_ARM64_X29
     577#define DWREG_ARM64_LR              DWREG_ARM64_X30
     578#define DWREG_ARM64_PC              32
     579#define DWREG_ARM64_ELR_MODE        33
     580#define DWREG_ARM64_RA_SIGN_STATE   34
     581#define DWREG_ARM64_TPIDRRO_ELO     35
     582#define DWREG_ARM64_TPIDR_ELO       36
     583#define DWREG_ARM64_TPIDR_EL1       37
     584#define DWREG_ARM64_TPIDR_EL2       38
     585#define DWREG_ARM64_TPIDR_EL3       39
     586/* 40-45 are reserved */
     587#define DWREG_ARM64_VG              46
     588#define DWREG_ARM64_FFR             47
     589#define DWREG_ARM64_P0              48
     590#define DWREG_ARM64_P1              49
     591#define DWREG_ARM64_P2              50
     592#define DWREG_ARM64_P3              51
     593#define DWREG_ARM64_P4              52
     594#define DWREG_ARM64_P5              53
     595#define DWREG_ARM64_P6              54
     596#define DWREG_ARM64_P7              55
     597#define DWREG_ARM64_P8              56
     598#define DWREG_ARM64_P9              57
     599#define DWREG_ARM64_P10             58
     600#define DWREG_ARM64_P11             59
     601#define DWREG_ARM64_P12             60
     602#define DWREG_ARM64_P13             61
     603#define DWREG_ARM64_P14             62
     604#define DWREG_ARM64_P15             63
     605#define DWREG_ARM64_V0              64
     606#define DWREG_ARM64_V1              65
     607#define DWREG_ARM64_V2              66
     608#define DWREG_ARM64_V3              67
     609#define DWREG_ARM64_V4              68
     610#define DWREG_ARM64_V5              69
     611#define DWREG_ARM64_V6              70
     612#define DWREG_ARM64_V7              71
     613#define DWREG_ARM64_V8              72
     614#define DWREG_ARM64_V9              73
     615#define DWREG_ARM64_V10             74
     616#define DWREG_ARM64_V11             75
     617#define DWREG_ARM64_V12             76
     618#define DWREG_ARM64_V13             77
     619#define DWREG_ARM64_V14             78
     620#define DWREG_ARM64_V15             79
     621#define DWREG_ARM64_V16             80
     622#define DWREG_ARM64_V17             81
     623#define DWREG_ARM64_V18             82
     624#define DWREG_ARM64_V19             83
     625#define DWREG_ARM64_V20             84
     626#define DWREG_ARM64_V21             85
     627#define DWREG_ARM64_V22             86
     628#define DWREG_ARM64_V23             87
     629#define DWREG_ARM64_V24             88
     630#define DWREG_ARM64_V25             89
     631#define DWREG_ARM64_V26             90
     632#define DWREG_ARM64_V27             91
     633#define DWREG_ARM64_V28             92
     634#define DWREG_ARM64_V29             93
     635#define DWREG_ARM64_V30             94
     636#define DWREG_ARM64_V31             95
     637#define DWREG_ARM64_Z0              96
     638#define DWREG_ARM64_Z1              97
     639#define DWREG_ARM64_Z2              98
     640#define DWREG_ARM64_Z3              99
     641#define DWREG_ARM64_Z4              100
     642#define DWREG_ARM64_Z5              101
     643#define DWREG_ARM64_Z6              102
     644#define DWREG_ARM64_Z7              103
     645#define DWREG_ARM64_Z8              104
     646#define DWREG_ARM64_Z9              105
     647#define DWREG_ARM64_Z10             106
     648#define DWREG_ARM64_Z11             107
     649#define DWREG_ARM64_Z12             108
     650#define DWREG_ARM64_Z13             109
     651#define DWREG_ARM64_Z14             110
     652#define DWREG_ARM64_Z15             111
     653#define DWREG_ARM64_Z16             112
     654#define DWREG_ARM64_Z17             113
     655#define DWREG_ARM64_Z18             114
     656#define DWREG_ARM64_Z19             115
     657#define DWREG_ARM64_Z20             116
     658#define DWREG_ARM64_Z21             117
     659#define DWREG_ARM64_Z22             118
     660#define DWREG_ARM64_Z23             119
     661#define DWREG_ARM64_Z24             120
     662#define DWREG_ARM64_Z25             121
     663#define DWREG_ARM64_Z26             122
     664#define DWREG_ARM64_Z27             123
     665#define DWREG_ARM64_Z28             124
     666#define DWREG_ARM64_Z29             125
     667#define DWREG_ARM64_Z30             126
     668#define DWREG_ARM64_Z31             127
     669/** @} */
     670
     671
    541672#endif /* !IPRT_INCLUDED_formats_dwarf_h */
    542673
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette