// For Unicorn Engine. AUTO-GENERATED FILE, DO NOT EDIT

namespace UnicornEngine.Const

open System

[<AutoOpen>]
module Arm64 =

    // ARM64 CPU

    let UC_CPU_ARM64_A57 = 0
    let UC_CPU_ARM64_A53 = 1
    let UC_CPU_ARM64_A72 = 2
    let UC_CPU_ARM64_MAX = 3
    let UC_CPU_ARM64_ENDING = 4

    // ARM64 registers

    let UC_ARM64_REG_INVALID = 0
    let UC_ARM64_REG_X29 = 1
    let UC_ARM64_REG_X30 = 2
    let UC_ARM64_REG_NZCV = 3
    let UC_ARM64_REG_SP = 4
    let UC_ARM64_REG_WSP = 5
    let UC_ARM64_REG_WZR = 6
    let UC_ARM64_REG_XZR = 7
    let UC_ARM64_REG_B0 = 8
    let UC_ARM64_REG_B1 = 9
    let UC_ARM64_REG_B2 = 10
    let UC_ARM64_REG_B3 = 11
    let UC_ARM64_REG_B4 = 12
    let UC_ARM64_REG_B5 = 13
    let UC_ARM64_REG_B6 = 14
    let UC_ARM64_REG_B7 = 15
    let UC_ARM64_REG_B8 = 16
    let UC_ARM64_REG_B9 = 17
    let UC_ARM64_REG_B10 = 18
    let UC_ARM64_REG_B11 = 19
    let UC_ARM64_REG_B12 = 20
    let UC_ARM64_REG_B13 = 21
    let UC_ARM64_REG_B14 = 22
    let UC_ARM64_REG_B15 = 23
    let UC_ARM64_REG_B16 = 24
    let UC_ARM64_REG_B17 = 25
    let UC_ARM64_REG_B18 = 26
    let UC_ARM64_REG_B19 = 27
    let UC_ARM64_REG_B20 = 28
    let UC_ARM64_REG_B21 = 29
    let UC_ARM64_REG_B22 = 30
    let UC_ARM64_REG_B23 = 31
    let UC_ARM64_REG_B24 = 32
    let UC_ARM64_REG_B25 = 33
    let UC_ARM64_REG_B26 = 34
    let UC_ARM64_REG_B27 = 35
    let UC_ARM64_REG_B28 = 36
    let UC_ARM64_REG_B29 = 37
    let UC_ARM64_REG_B30 = 38
    let UC_ARM64_REG_B31 = 39
    let UC_ARM64_REG_D0 = 40
    let UC_ARM64_REG_D1 = 41
    let UC_ARM64_REG_D2 = 42
    let UC_ARM64_REG_D3 = 43
    let UC_ARM64_REG_D4 = 44
    let UC_ARM64_REG_D5 = 45
    let UC_ARM64_REG_D6 = 46
    let UC_ARM64_REG_D7 = 47
    let UC_ARM64_REG_D8 = 48
    let UC_ARM64_REG_D9 = 49
    let UC_ARM64_REG_D10 = 50
    let UC_ARM64_REG_D11 = 51
    let UC_ARM64_REG_D12 = 52
    let UC_ARM64_REG_D13 = 53
    let UC_ARM64_REG_D14 = 54
    let UC_ARM64_REG_D15 = 55
    let UC_ARM64_REG_D16 = 56
    let UC_ARM64_REG_D17 = 57
    let UC_ARM64_REG_D18 = 58
    let UC_ARM64_REG_D19 = 59
    let UC_ARM64_REG_D20 = 60
    let UC_ARM64_REG_D21 = 61
    let UC_ARM64_REG_D22 = 62
    let UC_ARM64_REG_D23 = 63
    let UC_ARM64_REG_D24 = 64
    let UC_ARM64_REG_D25 = 65
    let UC_ARM64_REG_D26 = 66
    let UC_ARM64_REG_D27 = 67
    let UC_ARM64_REG_D28 = 68
    let UC_ARM64_REG_D29 = 69
    let UC_ARM64_REG_D30 = 70
    let UC_ARM64_REG_D31 = 71
    let UC_ARM64_REG_H0 = 72
    let UC_ARM64_REG_H1 = 73
    let UC_ARM64_REG_H2 = 74
    let UC_ARM64_REG_H3 = 75
    let UC_ARM64_REG_H4 = 76
    let UC_ARM64_REG_H5 = 77
    let UC_ARM64_REG_H6 = 78
    let UC_ARM64_REG_H7 = 79
    let UC_ARM64_REG_H8 = 80
    let UC_ARM64_REG_H9 = 81
    let UC_ARM64_REG_H10 = 82
    let UC_ARM64_REG_H11 = 83
    let UC_ARM64_REG_H12 = 84
    let UC_ARM64_REG_H13 = 85
    let UC_ARM64_REG_H14 = 86
    let UC_ARM64_REG_H15 = 87
    let UC_ARM64_REG_H16 = 88
    let UC_ARM64_REG_H17 = 89
    let UC_ARM64_REG_H18 = 90
    let UC_ARM64_REG_H19 = 91
    let UC_ARM64_REG_H20 = 92
    let UC_ARM64_REG_H21 = 93
    let UC_ARM64_REG_H22 = 94
    let UC_ARM64_REG_H23 = 95
    let UC_ARM64_REG_H24 = 96
    let UC_ARM64_REG_H25 = 97
    let UC_ARM64_REG_H26 = 98
    let UC_ARM64_REG_H27 = 99
    let UC_ARM64_REG_H28 = 100
    let UC_ARM64_REG_H29 = 101
    let UC_ARM64_REG_H30 = 102
    let UC_ARM64_REG_H31 = 103
    let UC_ARM64_REG_Q0 = 104
    let UC_ARM64_REG_Q1 = 105
    let UC_ARM64_REG_Q2 = 106
    let UC_ARM64_REG_Q3 = 107
    let UC_ARM64_REG_Q4 = 108
    let UC_ARM64_REG_Q5 = 109
    let UC_ARM64_REG_Q6 = 110
    let UC_ARM64_REG_Q7 = 111
    let UC_ARM64_REG_Q8 = 112
    let UC_ARM64_REG_Q9 = 113
    let UC_ARM64_REG_Q10 = 114
    let UC_ARM64_REG_Q11 = 115
    let UC_ARM64_REG_Q12 = 116
    let UC_ARM64_REG_Q13 = 117
    let UC_ARM64_REG_Q14 = 118
    let UC_ARM64_REG_Q15 = 119
    let UC_ARM64_REG_Q16 = 120
    let UC_ARM64_REG_Q17 = 121
    let UC_ARM64_REG_Q18 = 122
    let UC_ARM64_REG_Q19 = 123
    let UC_ARM64_REG_Q20 = 124
    let UC_ARM64_REG_Q21 = 125
    let UC_ARM64_REG_Q22 = 126
    let UC_ARM64_REG_Q23 = 127
    let UC_ARM64_REG_Q24 = 128
    let UC_ARM64_REG_Q25 = 129
    let UC_ARM64_REG_Q26 = 130
    let UC_ARM64_REG_Q27 = 131
    let UC_ARM64_REG_Q28 = 132
    let UC_ARM64_REG_Q29 = 133
    let UC_ARM64_REG_Q30 = 134
    let UC_ARM64_REG_Q31 = 135
    let UC_ARM64_REG_S0 = 136
    let UC_ARM64_REG_S1 = 137
    let UC_ARM64_REG_S2 = 138
    let UC_ARM64_REG_S3 = 139
    let UC_ARM64_REG_S4 = 140
    let UC_ARM64_REG_S5 = 141
    let UC_ARM64_REG_S6 = 142
    let UC_ARM64_REG_S7 = 143
    let UC_ARM64_REG_S8 = 144
    let UC_ARM64_REG_S9 = 145
    let UC_ARM64_REG_S10 = 146
    let UC_ARM64_REG_S11 = 147
    let UC_ARM64_REG_S12 = 148
    let UC_ARM64_REG_S13 = 149
    let UC_ARM64_REG_S14 = 150
    let UC_ARM64_REG_S15 = 151
    let UC_ARM64_REG_S16 = 152
    let UC_ARM64_REG_S17 = 153
    let UC_ARM64_REG_S18 = 154
    let UC_ARM64_REG_S19 = 155
    let UC_ARM64_REG_S20 = 156
    let UC_ARM64_REG_S21 = 157
    let UC_ARM64_REG_S22 = 158
    let UC_ARM64_REG_S23 = 159
    let UC_ARM64_REG_S24 = 160
    let UC_ARM64_REG_S25 = 161
    let UC_ARM64_REG_S26 = 162
    let UC_ARM64_REG_S27 = 163
    let UC_ARM64_REG_S28 = 164
    let UC_ARM64_REG_S29 = 165
    let UC_ARM64_REG_S30 = 166
    let UC_ARM64_REG_S31 = 167
    let UC_ARM64_REG_W0 = 168
    let UC_ARM64_REG_W1 = 169
    let UC_ARM64_REG_W2 = 170
    let UC_ARM64_REG_W3 = 171
    let UC_ARM64_REG_W4 = 172
    let UC_ARM64_REG_W5 = 173
    let UC_ARM64_REG_W6 = 174
    let UC_ARM64_REG_W7 = 175
    let UC_ARM64_REG_W8 = 176
    let UC_ARM64_REG_W9 = 177
    let UC_ARM64_REG_W10 = 178
    let UC_ARM64_REG_W11 = 179
    let UC_ARM64_REG_W12 = 180
    let UC_ARM64_REG_W13 = 181
    let UC_ARM64_REG_W14 = 182
    let UC_ARM64_REG_W15 = 183
    let UC_ARM64_REG_W16 = 184
    let UC_ARM64_REG_W17 = 185
    let UC_ARM64_REG_W18 = 186
    let UC_ARM64_REG_W19 = 187
    let UC_ARM64_REG_W20 = 188
    let UC_ARM64_REG_W21 = 189
    let UC_ARM64_REG_W22 = 190
    let UC_ARM64_REG_W23 = 191
    let UC_ARM64_REG_W24 = 192
    let UC_ARM64_REG_W25 = 193
    let UC_ARM64_REG_W26 = 194
    let UC_ARM64_REG_W27 = 195
    let UC_ARM64_REG_W28 = 196
    let UC_ARM64_REG_W29 = 197
    let UC_ARM64_REG_W30 = 198
    let UC_ARM64_REG_X0 = 199
    let UC_ARM64_REG_X1 = 200
    let UC_ARM64_REG_X2 = 201
    let UC_ARM64_REG_X3 = 202
    let UC_ARM64_REG_X4 = 203
    let UC_ARM64_REG_X5 = 204
    let UC_ARM64_REG_X6 = 205
    let UC_ARM64_REG_X7 = 206
    let UC_ARM64_REG_X8 = 207
    let UC_ARM64_REG_X9 = 208
    let UC_ARM64_REG_X10 = 209
    let UC_ARM64_REG_X11 = 210
    let UC_ARM64_REG_X12 = 211
    let UC_ARM64_REG_X13 = 212
    let UC_ARM64_REG_X14 = 213
    let UC_ARM64_REG_X15 = 214
    let UC_ARM64_REG_X16 = 215
    let UC_ARM64_REG_X17 = 216
    let UC_ARM64_REG_X18 = 217
    let UC_ARM64_REG_X19 = 218
    let UC_ARM64_REG_X20 = 219
    let UC_ARM64_REG_X21 = 220
    let UC_ARM64_REG_X22 = 221
    let UC_ARM64_REG_X23 = 222
    let UC_ARM64_REG_X24 = 223
    let UC_ARM64_REG_X25 = 224
    let UC_ARM64_REG_X26 = 225
    let UC_ARM64_REG_X27 = 226
    let UC_ARM64_REG_X28 = 227
    let UC_ARM64_REG_V0 = 228
    let UC_ARM64_REG_V1 = 229
    let UC_ARM64_REG_V2 = 230
    let UC_ARM64_REG_V3 = 231
    let UC_ARM64_REG_V4 = 232
    let UC_ARM64_REG_V5 = 233
    let UC_ARM64_REG_V6 = 234
    let UC_ARM64_REG_V7 = 235
    let UC_ARM64_REG_V8 = 236
    let UC_ARM64_REG_V9 = 237
    let UC_ARM64_REG_V10 = 238
    let UC_ARM64_REG_V11 = 239
    let UC_ARM64_REG_V12 = 240
    let UC_ARM64_REG_V13 = 241
    let UC_ARM64_REG_V14 = 242
    let UC_ARM64_REG_V15 = 243
    let UC_ARM64_REG_V16 = 244
    let UC_ARM64_REG_V17 = 245
    let UC_ARM64_REG_V18 = 246
    let UC_ARM64_REG_V19 = 247
    let UC_ARM64_REG_V20 = 248
    let UC_ARM64_REG_V21 = 249
    let UC_ARM64_REG_V22 = 250
    let UC_ARM64_REG_V23 = 251
    let UC_ARM64_REG_V24 = 252
    let UC_ARM64_REG_V25 = 253
    let UC_ARM64_REG_V26 = 254
    let UC_ARM64_REG_V27 = 255
    let UC_ARM64_REG_V28 = 256
    let UC_ARM64_REG_V29 = 257
    let UC_ARM64_REG_V30 = 258
    let UC_ARM64_REG_V31 = 259

    // pseudo registers
    let UC_ARM64_REG_PC = 260
    let UC_ARM64_REG_CPACR_EL1 = 261

    // thread registers, depreciated, use UC_ARM64_REG_CP_REG instead
    let UC_ARM64_REG_TPIDR_EL0 = 262
    let UC_ARM64_REG_TPIDRRO_EL0 = 263
    let UC_ARM64_REG_TPIDR_EL1 = 264
    let UC_ARM64_REG_PSTATE = 265

    // exception link registers, depreciated, use UC_ARM64_REG_CP_REG instead
    let UC_ARM64_REG_ELR_EL0 = 266
    let UC_ARM64_REG_ELR_EL1 = 267
    let UC_ARM64_REG_ELR_EL2 = 268
    let UC_ARM64_REG_ELR_EL3 = 269

    // stack pointers registers, depreciated, use UC_ARM64_REG_CP_REG instead
    let UC_ARM64_REG_SP_EL0 = 270
    let UC_ARM64_REG_SP_EL1 = 271
    let UC_ARM64_REG_SP_EL2 = 272
    let UC_ARM64_REG_SP_EL3 = 273

    // other CP15 registers, depreciated, use UC_ARM64_REG_CP_REG instead
    let UC_ARM64_REG_TTBR0_EL1 = 274
    let UC_ARM64_REG_TTBR1_EL1 = 275
    let UC_ARM64_REG_ESR_EL0 = 276
    let UC_ARM64_REG_ESR_EL1 = 277
    let UC_ARM64_REG_ESR_EL2 = 278
    let UC_ARM64_REG_ESR_EL3 = 279
    let UC_ARM64_REG_FAR_EL0 = 280
    let UC_ARM64_REG_FAR_EL1 = 281
    let UC_ARM64_REG_FAR_EL2 = 282
    let UC_ARM64_REG_FAR_EL3 = 283
    let UC_ARM64_REG_PAR_EL1 = 284
    let UC_ARM64_REG_MAIR_EL1 = 285
    let UC_ARM64_REG_VBAR_EL0 = 286
    let UC_ARM64_REG_VBAR_EL1 = 287
    let UC_ARM64_REG_VBAR_EL2 = 288
    let UC_ARM64_REG_VBAR_EL3 = 289
    let UC_ARM64_REG_CP_REG = 290

    // floating point control and status registers
    let UC_ARM64_REG_FPCR = 291
    let UC_ARM64_REG_FPSR = 292
    let UC_ARM64_REG_ENDING = 293

    // alias registers
    let UC_ARM64_REG_IP0 = 215
    let UC_ARM64_REG_IP1 = 216
    let UC_ARM64_REG_FP = 1
    let UC_ARM64_REG_LR = 2

    // ARM64 instructions

    let UC_ARM64_INS_INVALID = 0
    let UC_ARM64_INS_MRS = 1
    let UC_ARM64_INS_MSR = 2
    let UC_ARM64_INS_SYS = 3
    let UC_ARM64_INS_SYSL = 4
    let UC_ARM64_INS_ENDING = 5

