Поделиться через


CV_HREG_e

Указывает целевой регистр.

Примечание.

CV_HREG_e Так как перечисление слишком велико, чтобы дублироваться в целом здесь, сокращенная версия предоставляется в качестве ссылки. Отсутствующие записи не отображаются в курсиве. Полное перечисление доступно в файле заголовка cvconst.h.

Синтаксис

enum CV_HREG_e {
    // Register subset shared by all processor types
    CV_ALLREG_ERR    = 30000,
    CV_ALLREG_TEB    = 30001,
    CV_ALLREG_TIMER  = 30002,
    CV_ALLREG_EFAD1  = 30003,
    CV_ALLREG_EFAD2  = 30004,
    CV_ALLREG_EFAD3  = 30005,
    CV_ALLREG_VFRAME = 30006,
    CV_ALLREG_HANDLE = 30007,
    CV_ALLREG_PARAMS = 30008,
    CV_ALLREG_LOCALS = 30009,
    CV_ALLREG_TID    = 30010,
    CV_ALLREG_ENV    = 30011,
    CV_ALLREG_CMDLN  = 30012,

    //** Register set for Intel 80x86 and ix86 processor series **//
    CV_REG_NONE   = 0,
    CV_REG_AL     = 1,
    CV_REG_CL     = 2,
    CV_REG_DL     = 3,
    CV_REG_BL     = 4,
    CV_REG_AH     = 5,
    CV_REG_CH     = 6,
    CV_REG_DH     = 7,
    CV_REG_BH     = 8,
    CV_REG_AX     = 9,
    CV_REG_CX     = 10,
    CV_REG_DX     = 11,
    CV_REG_BX     = 12,
    CV_REG_SP     = 13,
    CV_REG_BP     = 14,
    CV_REG_SI     = 15,
    CV_REG_DI     = 16,
    CV_REG_EAX    = 17,
    CV_REG_ECX    = 18,
    CV_REG_EDX    = 19,
    CV_REG_EBX    = 20,
    CV_REG_ESP    = 21,
    CV_REG_EBP    = 22,
    CV_REG_ESI    = 23,
    CV_REG_EDI    = 24,
    CV_REG_ES     = 25,
    CV_REG_CS     = 26,
    CV_REG_SS     = 27,
    CV_REG_DS     = 28,
    CV_REG_FS     = 29,
    CV_REG_GS     = 30,
    CV_REG_IP     = 31,
    CV_REG_FLAGS  = 32,
    CV_REG_EIP    = 33,
    CV_REG_EFLAGS = 34,
    CV_REG_TEMP   = 40,     // PCODE Temp
    CV_REG_TEMPH  = 41,     // PCODE TempH
    CV_REG_QUOTE  = 42,     // PCODE Quote
    CV_REG_PCDR3  = 43,     // PCODE reserved
    // CV_REG_PCDR4 through CV_REG_PCDR7 defined
    CV_REG_CR0    = 80,     // CR0 -- control registers
    // CV_REG_CR1 through CV_REG_CR4 defined
    CV_REG_DR0    = 90,     // Debug register
    // CV_REG_DR1 through CV_REG_DR7 defined

    CV_REG_GDTR   = 110,
    CV_REG_GDTL   = 111,
    CV_REG_IDTR   = 112,
    CV_REG_IDTL   = 113,
    CV_REG_LDTR   = 114,
    CV_REG_TR     = 115,

    CV_REG_PSEUDO1 = 116,
    // CV_REG_PSEUDO2 through CV_REG_PSEUDO9 defined

    CV_REG_ST0   = 128,
    // CV_REG_ST1 through CV_REG_ST7 defined
    CV_REG_CTRL  = 136,
    CV_REG_STAT  = 137,
    CV_REG_TAG   = 138,
    CV_REG_FPIP  = 139,
    CV_REG_FPCS  = 140,
    CV_REG_FPDO  = 141,
    CV_REG_FPDS  = 142,
    CV_REG_ISEM  = 143,
    CV_REG_FPEIP = 144,
    CV_REG_FPEDO = 145,
    CV_REG_MM0   = 146,
    // CV_REG_MM1 through CV_REG_MM7 defined

    CV_REG_XMM0  = 154,  // KATMAI registers
    // CV_REG_XMM1 through CV_REG_XMM7 defined
    CV_REG_XMM00 = 162, // KATMAI sub-registers
    // CV_REG_XMM01, 02, and 03 defined
    // CV_REG_XMM10, 11, 12, and 13 defined
    // CV_REG_XMM20, 21, 22, and 23 defined
    // CV_REG_XMM30, 31, 32, and 33 defined
    // CV_REG_XMM40, 41, 42, and 43 defined
    // CV_REG_XMM50, 51, 52, and 53 defined
    // CV_REG_XMM60, 61, 62, and 63 defined
    // CV_REG_XMM70, 71, 72, and 73 defined

    CV_REG_XMM0L  = 194,
    // CV_REG_XMM1L through CV_REG_XMM7L defined
    CV_REG_XMM0H  = 202,
    // CV_REG_XMM1H through CV_REG_XMM7H defined
    CV_REG_MXCSR  = 211, // XMM status register
    CV_REG_EDXEAX = 212, // EDX:EAX pair

    CV_REG_EMM0L  = 220, // XMM sub-registers (WNI integer)
    // CV_REG_EMM1L through CV_REG_EMM7L defined
    CV_REG_EMM0H  = 228,
    // CV_REG_EMM1H through CV_REG_EMM7H defined

    CV_REG_MM00 = 236,
    CV_REG_MM01 = 237,
    CV_REG_MM10 = 238,
    CV_REG_MM11 = 239,
    CV_REG_MM20 = 240,
    CV_REG_MM21 = 241,
    CV_REG_MM30 = 242,
    CV_REG_MM31 = 243,
    CV_REG_MM40 = 244,
    CV_REG_MM41 = 245,
    CV_REG_MM50 = 246,
    CV_REG_MM51 = 247,
    CV_REG_MM60 = 248,
    CV_REG_MM61 = 249,
    CV_REG_MM70 = 250,
    CV_REG_MM71 = 251,

    //** Register set for the 68K processors **//
    CV_R68_D0    = 0,
    // CV_R68_D1 through CV_R68_D7 defined
    CV_R68_A0    = 8,
    // CV_R68_A1 through CV_R68_A7 defined
    CV_R68_CCR   = 16,
    CV_R68_SR    = 17,
    CV_R68_USP   = 18,
    CV_R68_MSP   = 19,
    CV_R68_SFC   = 20,
    CV_R68_DFC   = 21,
    CV_R68_CACR  = 22,
    CV_R68_VBR   = 23,
    CV_R68_CAAR  = 24,
    CV_R68_ISP   = 25,
    CV_R68_PC    = 26,
    //reserved 27
    CV_R68_FPCR  = 28,
    CV_R68_FPSR  = 29,
    CV_R68_FPIAR = 30,
    //reserved 31
    CV_R68_FP0   = 32,
    // CV_R68_FP1 through CV_R68_FP7 defined
    //reserved 40
    CV_R68_MMUSR030 = 41,
    CV_R68_MMUSR    = 42,
    CV_R68_URP      = 43,
    CV_R68_DTT0     = 44,
    CV_R68_DTT1     = 45,
    CV_R68_ITT0     = 46,
    CV_R68_ITT1     = 47,
    //reserved 50
    CV_R68_PSR      = 51,
    CV_R68_PCSR     = 52,
    CV_R68_VAL      = 53,
    CV_R68_CRP      = 54,
    CV_R68_SRP      = 55,
    CV_R68_DRP      = 56,
    CV_R68_TC       = 57,
    CV_R68_AC       = 58,
    CV_R68_SCC      = 59,
    CV_R68_CAL      = 60,
    CV_R68_TT0      = 61,
    CV_R68_TT1      = 62,
    //reserved 63
    CV_R68_BAD0     = 64,
    // CV_R68_BAD1 through CV_R68_BAD7 defined
    CV_R68_BAC0     = 72,
    // CV_R68_BAC1 through CV_R68_BAC7 defined

    //** Register set for the MIPS 4000 **//
    CV_M4_NOREG   = CV_REG_NONE,
    CV_M4_IntZERO = 10, // CPU register
    CV_M4_IntAT   = 11,
    CV_M4_IntV0   = 12,
    CV_M4_IntV1   = 13,
    CV_M4_IntA0   = 14,
    // CV_M4_IntA1, A2, and A3 defined
    CV_M4_IntT0   = 18,
    // CV_M4_IntT1 through CV_M4_IntT7 defined
    CV_M4_IntS0   = 26,
    // CV_M4_IntS1 through CV_M4_IntS7 defined
    CV_M4_IntT8   = 34,
    CV_M4_IntT9   = 35,
    CV_M4_IntKT0  = 36,
    CV_M4_IntKT1  = 37,
    CV_M4_IntGP   = 38,
    CV_M4_IntSP   = 39,
    CV_M4_IntS8   = 40,
    CV_M4_IntRA   = 41,
    CV_M4_IntLO   = 42,
    CV_M4_IntHI   = 43,

    CV_M4_Fir     = 50,
    CV_M4_Psr     = 51,

    CV_M4_FltF0   = 60, // Floating point registers
    // CV_M4_FltF1 through CV_M4_FltF31 defined
    CV_M4_FltFsr  = 92,

    //** Register set for the ALPHA AXP **//
    CV_ALPHA_NOREG    = CV_REG_NONE,
    CV_ALPHA_FltF0    = 10, // Floating point registers
    // CV_ALPHA_FltF1 through CV_ALPHA_FltF31 defined

    CV_ALPHA_IntV0    = 42, // Integer registers
    CV_ALPHA_IntT0    = 43,
    // CV_ALPHA_IntT1 through CV_ALPHA_IntT7 defined
    CV_ALPHA_IntS0    = 51,
    // CV_ALPHA_IntS1 through CV_ALPHA_IntS5 defined
    CV_ALPHA_IntFP    = 57,
    CV_ALPHA_IntA0    = 58,
    // CV_ALPHA_IntA1 through CV_ALPHA_IntA5 defined
    CV_ALPHA_IntT8    = 64,
    CV_ALPHA_IntT9    = 65,
    CV_ALPHA_IntT10   = 66,
    CV_ALPHA_IntT11   = 67,
    CV_ALPHA_IntRA    = 68,
    CV_ALPHA_IntT12   = 69,
    CV_ALPHA_IntAT    = 70,
    CV_ALPHA_IntGP    = 71,
    CV_ALPHA_IntSP    = 72,
    CV_ALPHA_IntZERO  = 73,

    CV_ALPHA_Fpcr     = 74, // Control registers
    CV_ALPHA_Fir      = 75,
    CV_ALPHA_Psr      = 76,
    CV_ALPHA_FltFsr   = 77,
    CV_ALPHA_SoftFpcr = 78,

    //** Register set for Motorola/IBM PowerPC **//
    CV_PPC_GPR0  = 1, // PowerPC general registers (User Level)
    // CV_PPC_GPR1 through CV_PPC_GPR31 defined

    CV_PPC_CR    = 33, // PowerPC condition register (User Level)
    CV_PPC_CR0   = 34,
    // CV_PPC_CR1 through CV_PPC_CR7 defined

    CV_PPC_FPR0  = 42, // PowerPC floating point registers (User Level)
    // CV_PPC_FPR1 through CV_PPC_FPR31 defined

    CV_PPC_FPSCR = 74, // PowerPC floating point status and control register (User Level)
    CV_PPC_MSR   = 75, // PowerPC machine state register (Supervisor Level)
    CV_PPC_SR0   = 76, // PowerPC segment registers (Supervisor Level)
    // CV_PPC_SR1 through CV_PPC_SR15 defined

    //** ADDITIONAL PowerPC REGISTERS DEFINED IN cvconst.h **//

    //** Register set for the Hitachi SH3 **//
    CV_SH3_NOREG = CV_REG_NONE,
    CV_SH3_IntR0 = 10, // CPU register
    // CV_SH3_IntR1 through CV_SH3_IntR13 defined
    CV_SH3_IntFp = 24,
    CV_SH3_IntSp = 25,
    CV_SH3_Gbr   = 38,
    CV_SH3_Pr    = 39,
    CV_SH3_Mach  = 40,
    CV_SH3_Macl  = 41,
    CV_SH3_Pc    = 50,
    CV_SH3_Sr    = 51,
    CV_SH3_BarA  = 60,
    CV_SH3_BasrA = 61,
    CV_SH3_BamrA = 62,
    CV_SH3_BbrA  = 63,
    CV_SH3_BarB  = 64,
    CV_SH3_BasrB = 65,
    CV_SH3_BamrB = 66,
    CV_SH3_BbrB  = 67,
    CV_SH3_BdrB  = 68,
    CV_SH3_BdmrB = 69,
    CV_SH3_Brcr  = 70,

    // Additional registers for Hitachi SH processors
    CV_SH_Fpscr  = 75, // Floating point status/control register
    CV_SH_Fpul   = 76, // Floating point communication register
    CV_SH_FpR0   = 80, // Floating point registers
    // CV_SH_FpR1 through CV_SH_FpR15 defined
    CV_SH_XFpR0  = 96,
    // CV_SH_XFpR1 through CV_SH_XFpR15 defined

    //** Register set for the ARM processor **//
    CV_ARM_NOREG = CV_REG_NONE,
    CV_ARM_R0    = 10,
    // CV_ARM_R1 through CV_ARM_R12 defined
    CV_ARM_SP    = 23, // Stack pointer
    CV_ARM_LR    = 24, // Link register
    CV_ARM_PC    = 25, // Program counter
    CV_ARM_CPSR  = 26, // Current program status register

    //** Register set for Intel IA64 **//
    CV_IA64_NOREG = CV_REG_NONE,
    CV_IA64_Br0   = 512, // Branch registers
    // CV_IA64_Br1 through CV_IA64_Br7 defined
    CV_IA64_P0    = 704, // Predicate registers
    // CV_IA64_P1 through CV_IA64_P63 defined
    CV_IA64_Preds = 768,
    CV_IA64_IntH0 = 832, // Banked general registers
    // CV_IA64_IntH1 through CV_IA64_IntH15 defined
    CV_IA64_Ip    = 1016, // Special registers
    CV_IA64_Umask = 1017,
    CV_IA64_Cfm   = 1018,
    CV_IA64_Psr   = 1019,
    CV_IA64_Nats  = 1020, // Banked general registers
    CV_IA64_Nats2 = 1021,
    CV_IA64_Nats3 = 1022,
    CV_IA64_IntR0 = 1024, // Integer registers
    // CV_IA64_IntR1 through CV_IA64_IntR127 defined
    CV_IA64_FltF0 = 2048, // Low floating point registers
    // CV_IA64_FltF1 through CV_IA64_FltF127 defined

    //** ADDITIONAL Intel IA64 REGISTERS DEFINED IN cvconst.h **//

    //** Register set for the TriCore processor **//
    CV_TRI_NOREG = CV_REG_NONE,
    CV_TRI_D0    = 10, // General purpose data registers
    // CV_TRI_D1 through CV_TRI_D15 defined
    CV_TRI_A0    = 26, // General purpose address registers
    // CV_TRI_A1 through CV_TRI_A15 defined
    CV_TRI_E0    = 42, // Extended (64-bit) data registers
    CV_TRI_E2    = 43,
    CV_TRI_E4    = 44,
    CV_TRI_E6    = 45,
    CV_TRI_E8    = 46,
    CV_TRI_E10   = 47,
    CV_TRI_E12   = 48,
    CV_TRI_E14   = 49,
    CV_TRI_EA0   = 50, // Extended (64-bit) address registers
    CV_TRI_EA2   = 51,
    CV_TRI_EA4   = 52,
    CV_TRI_EA6   = 53,
    CV_TRI_EA8   = 54,
    CV_TRI_EA10  = 55,
    CV_TRI_EA12  = 56,
    CV_TRI_EA14  = 57,

    //** ADDITIONAL TriCore REGISTERS DEFINED IN cvconst.h **//

    //** Register set for the AM33 and related processors **//
    CV_AM33_NOREG = CV_REG_NONE,
    // "Extended" (general purpose integer) registers
    CV_AM33_E0    = 10,
    // CV_AM33_E1 through CV_AM33_E7 defined
    CV_AM33_A0    = 20, // Address registers
    // CV_AM33_A1 through CV_AM33_A3 defined
    CV_AM33_D0    = 30, // Integer data registers
    // CV_AM33_D1 CV_AM33_D3 defined
    CV_AM33_FS0   = 40, // (Single-precision) floating-point registers
    // CV_AM33_FS1 through CV_AM33_FS31 defined

    //** ADDITIONAL AM33 REGISTERS DEFINED IN cvconst.h **//

    //** Register set for the Mitsubishi M32R **//
    CV_M32R_NOREG = CV_REG_NONE,
    CV_M32R_R0    = 10,
    // CV_M32R_R1 through CV_M32R_R11 defined
    CV_M32R_R12   = 22, // Global pointer, if used
    CV_M32R_R13   = 23, // Frame pointer, if allocated
    CV_M32R_R14   = 24, // Link register
    CV_M32R_R15   = 25, // Stack pointer
    CV_M32R_PSW   = 26, // Preprocessor status register
    CV_M32R_CBR   = 27, // Condition bit register
    CV_M32R_SPI   = 28, // Interrupt stack pointer
    CV_M32R_SPU   = 29, // User stack pointer
    CV_M32R_SPO   = 30, // OS stack pointer
    CV_M32R_BPC   = 31, // Backup program counter
    CV_M32R_ACHI  = 32, // Accumulator high
    CV_M32R_ACLO  = 33, // Accumulator low
    CV_M32R_PC    = 34, // Program counter

} CV_HREG_e;

Элементы

Элемент Description
CV_REG_* Регистры, используемые процессорами Intel 80x86 и ix86 и p-code.
CV_R68_* Регистры, используемые процессором 68K.
CV_M4_* Регистры, используемые процессором серии MIPS 4000.
CV_ALPHA_* Регистры, используемые процессором серии Digital Equipment Corporation Alpha AXP.
CV_PPC_* Регистры, используемые процессором Motorola/IBM PowerPC.
CV_SH3_* и CV_SH_\* Регистры, используемые процессором серии Sh3 и Hitachi SH.
CV_ARM_* Регистры, используемые процессорами Advanced RISC Machine (ARM).
CV_IA64_* Регистры, используемые процессорами серии Intel IA64.
CV_TRI_* Регистры, используемые процессором Infineon Technologies TriCore.
CV_AM33_* Регистры, используемые Matsushita/Panasonic AM33 и соответствующими процессорами.
CV_M32R_* Регистры, используемые процессором Mitsubishi M32R.

Замечания

Каждый тип процессора использует собственный уникальный набор регистров.

Значения в этом перечислении передаются следующим методам:

Требования:

Заголовок: cvconst.h

См. также