From 678398c7d12d07d9a639b3d75941973b83b15aab Mon Sep 17 00:00:00 2001 From: Enrico Deiana Date: Wed, 30 Oct 2024 18:20:03 -0700 Subject: [PATCH] i#6662: REGDEPS DR_REG_V renaming (#7063) The name `DR_REG_V` of enum values for REGDEPS virtual registers can be misleading, as the `V` can be confused with "Vector (registers)", which are unrelated. We rename `DR_REG_V` to `DR_REG_VIRT` for better readability and to avoid confusion. Since this is technically a "breaking compatibility change" w.r.t. DynamoRIO version 10.93, we increase the version to 10.94. Issue #6662 --- .github/workflows/ci-docs.yml | 4 +- .github/workflows/ci-package.yml | 10 +- CMakeLists.txt | 2 +- core/ir/aarch64/encode.c | 321 ++++++++-------- core/ir/arm/encode.c | 396 ++++++++++---------- core/ir/isa_regdeps/encoding_common.c | 2 +- core/ir/opnd.h | 2 +- core/ir/opnd_api.h | 519 ++++++++++++------------- core/ir/riscv64/encode.c | 200 +++++----- core/ir/x86/encode.c | 514 ++++++++++++------------- suite/tests/api/ir_regdeps.c | 520 +++++++++++++------------- 11 files changed, 1247 insertions(+), 1243 deletions(-) diff --git a/.github/workflows/ci-docs.yml b/.github/workflows/ci-docs.yml index 0d1d7f10678..57a134e79d5 100644 --- a/.github/workflows/ci-docs.yml +++ b/.github/workflows/ci-docs.yml @@ -1,5 +1,5 @@ # ********************************************************** -# Copyright (c) 2020-2023 Google, Inc. All rights reserved. +# Copyright (c) 2020-2024 Google, Inc. All rights reserved. # ********************************************************** # Redistribution and use in source and binary forms, with or without @@ -90,7 +90,7 @@ jobs: # We only use a non-zero build # when making multiple manual builds in one day. run: | if test -z "${{ github.event.inputs.version }}"; then - export VERSION_NUMBER=10.93.$((`git log -n 1 --format=%ct` / (60*60*24))) + export VERSION_NUMBER=10.94.$((`git log -n 1 --format=%ct` / (60*60*24))) else export VERSION_NUMBER=${{ github.event.inputs.version }} fi diff --git a/.github/workflows/ci-package.yml b/.github/workflows/ci-package.yml index 62ca328a2b9..3df7e7c2388 100644 --- a/.github/workflows/ci-package.yml +++ b/.github/workflows/ci-package.yml @@ -103,7 +103,7 @@ jobs: # We only use a non-zero build # when making multiple manual builds in one day. run: | if test -z "${{ github.event.inputs.version }}"; then - export VERSION_NUMBER=10.93.$((`git log -n 1 --format=%ct` / (60*60*24))) + export VERSION_NUMBER=10.94.$((`git log -n 1 --format=%ct` / (60*60*24))) else export VERSION_NUMBER=${{ github.event.inputs.version }} fi @@ -196,7 +196,7 @@ jobs: # XXX: See x86 job comments on sharing the default ver# with CMakeLists.txt. run: | if test -z "${{ github.event.inputs.version }}"; then - export VERSION_NUMBER=10.93.$((`git log -n 1 --format=%ct` / (60*60*24))) + export VERSION_NUMBER=10.94.$((`git log -n 1 --format=%ct` / (60*60*24))) else export VERSION_NUMBER=${{ github.event.inputs.version }} fi @@ -285,7 +285,7 @@ jobs: # XXX: See x86 job comments on sharing the default ver# with CMakeLists.txt. run: | if test -z "${{ github.event.inputs.version }}"; then - export VERSION_NUMBER=10.93.$((`git log -n 1 --format=%ct` / (60*60*24))) + export VERSION_NUMBER=10.94.$((`git log -n 1 --format=%ct` / (60*60*24))) else export VERSION_NUMBER=${{ github.event.inputs.version }} fi @@ -374,7 +374,7 @@ jobs: # XXX: See x86 job comments on sharing the default ver# with CMakeLists.txt. run: | if test -z "${{ github.event.inputs.version }}"; then - export VERSION_NUMBER=10.93.$((`git log -n 1 --format=%ct` / (60*60*24))) + export VERSION_NUMBER=10.94.$((`git log -n 1 --format=%ct` / (60*60*24))) else export VERSION_NUMBER=${{ github.event.inputs.version }} fi @@ -457,7 +457,7 @@ jobs: # XXX: See x86 job comments on sharing the default ver# with CMakeLists.txt. run: | if test -z "${{ github.event.inputs.version }}"; then - export VERSION_NUMBER=10.93.$((`git log -n 1 --format=%ct` / (60*60*24))) + export VERSION_NUMBER=10.94.$((`git log -n 1 --format=%ct` / (60*60*24))) else export VERSION_NUMBER=${{ github.event.inputs.version }} fi diff --git a/CMakeLists.txt b/CMakeLists.txt index c0c696c415d..88f32edc9ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -575,7 +575,7 @@ endif (EXISTS "${PROJECT_SOURCE_DIR}/.svn") # N.B.: When updating this, update all the default versions in ci-package.yml # and ci-docs.yml. We should find a way to share (xref i#1565). -set(VERSION_NUMBER_DEFAULT "10.93.${VERSION_NUMBER_PATCHLEVEL}") +set(VERSION_NUMBER_DEFAULT "10.94.${VERSION_NUMBER_PATCHLEVEL}") # do not store the default VERSION_NUMBER in the cache to prevent a stale one # from preventing future version updates in a pre-existing build dir set(VERSION_NUMBER "" CACHE STRING "Version number: leave empty for default") diff --git a/core/ir/aarch64/encode.c b/core/ir/aarch64/encode.c index 0f4f10617e0..f02a6fead95 100644 --- a/core/ir/aarch64/encode.c +++ b/core/ir/aarch64/encode.c @@ -210,24 +210,27 @@ const reg_id_t d_r_reg_id_to_virtual[] = { DR_REG_NULL, /* DR_REG_NULL */ DR_REG_NULL, /* DR_REG_NULL */ -#define VIRTUAL_XREGS \ - DR_REG_V0, DR_REG_V1, DR_REG_V2, DR_REG_V3, DR_REG_V4, DR_REG_V5, DR_REG_V6, \ - DR_REG_V7, DR_REG_V8, DR_REG_V9, DR_REG_V10, DR_REG_V11, DR_REG_V12, DR_REG_V13, \ - DR_REG_V14, DR_REG_V15, DR_REG_V16, DR_REG_V17, DR_REG_V18, DR_REG_V19, \ - DR_REG_V20, DR_REG_V21, DR_REG_V22, DR_REG_V23, DR_REG_V24, DR_REG_V25, \ - DR_REG_V26, DR_REG_V27, DR_REG_V28, DR_REG_V29, DR_REG_V30, DR_REG_V31, \ - DR_REG_V32, +#define VIRTUAL_XREGS \ + DR_REG_VIRT0, DR_REG_VIRT1, DR_REG_VIRT2, DR_REG_VIRT3, DR_REG_VIRT4, DR_REG_VIRT5, \ + DR_REG_VIRT6, DR_REG_VIRT7, DR_REG_VIRT8, DR_REG_VIRT9, DR_REG_VIRT10, \ + DR_REG_VIRT11, DR_REG_VIRT12, DR_REG_VIRT13, DR_REG_VIRT14, DR_REG_VIRT15, \ + DR_REG_VIRT16, DR_REG_VIRT17, DR_REG_VIRT18, DR_REG_VIRT19, DR_REG_VIRT20, \ + DR_REG_VIRT21, DR_REG_VIRT22, DR_REG_VIRT23, DR_REG_VIRT24, DR_REG_VIRT25, \ + DR_REG_VIRT26, DR_REG_VIRT27, DR_REG_VIRT28, DR_REG_VIRT29, DR_REG_VIRT30, \ + DR_REG_VIRT31, DR_REG_VIRT32, VIRTUAL_XREGS /* from DR_REG_X0 to DR_REG_XZR */ VIRTUAL_XREGS /* from DR_REG_W0 to DR_REG_WZR */ #undef VIRTUAL_XREGS -#define VIRTUAL_ZREGS \ - DR_REG_V33, DR_REG_V34, DR_REG_V35, DR_REG_V36, DR_REG_V37, DR_REG_V38, DR_REG_V39, \ - DR_REG_V40, DR_REG_V41, DR_REG_V42, DR_REG_V43, DR_REG_V44, DR_REG_V45, DR_REG_V46, \ - DR_REG_V47, DR_REG_V48, DR_REG_V49, DR_REG_V50, DR_REG_V51, DR_REG_V52, \ - DR_REG_V53, DR_REG_V54, DR_REG_V55, DR_REG_V56, DR_REG_V57, DR_REG_V58, \ - DR_REG_V59, DR_REG_V60, DR_REG_V61, DR_REG_V62, DR_REG_V63, DR_REG_V64, +#define VIRTUAL_ZREGS \ + DR_REG_VIRT33, DR_REG_VIRT34, DR_REG_VIRT35, DR_REG_VIRT36, DR_REG_VIRT37, \ + DR_REG_VIRT38, DR_REG_VIRT39, DR_REG_VIRT40, DR_REG_VIRT41, DR_REG_VIRT42, \ + DR_REG_VIRT43, DR_REG_VIRT44, DR_REG_VIRT45, DR_REG_VIRT46, DR_REG_VIRT47, \ + DR_REG_VIRT48, DR_REG_VIRT49, DR_REG_VIRT50, DR_REG_VIRT51, DR_REG_VIRT52, \ + DR_REG_VIRT53, DR_REG_VIRT54, DR_REG_VIRT55, DR_REG_VIRT56, DR_REG_VIRT57, \ + DR_REG_VIRT58, DR_REG_VIRT59, DR_REG_VIRT60, DR_REG_VIRT61, DR_REG_VIRT62, \ + DR_REG_VIRT63, DR_REG_VIRT64, VIRTUAL_ZREGS /* from DR_REG_Z0 to DR_REG_Z31 */ VIRTUAL_ZREGS /* from DR_REG_Q0 to DR_REG_Q31 */ @@ -237,152 +240,152 @@ const reg_id_t d_r_reg_id_to_virtual[] = { VIRTUAL_ZREGS /* from DR_REG_B0 to DR_REG_B31 */ #undef VIRTUAL_ZREGS - DR_REG_V65, /* DR_REG_NZCV */ - DR_REG_V66, /* DR_REG_FPCR */ - DR_REG_V67, /* DR_REG_FPSR */ - DR_REG_V68, /* DR_REG_MDCCSR_EL0 */ - DR_REG_V69, /* DR_REG_DBGDTR_EL0 */ - DR_REG_V70, /* DR_REG_DBGDTRRX_EL0 */ - DR_REG_V71, /* DR_REG_SP_EL0 */ - DR_REG_V72, /* DR_REG_SPSEL */ - DR_REG_V73, /* DR_REG_DAIFSET */ - DR_REG_V74, /* DR_REG_DAIFCLR */ - DR_REG_V75, /* DR_REG_CURRENTEL */ - DR_REG_V76, /* DR_REG_PAN */ - DR_REG_V77, /* DR_REG_UAO */ - DR_REG_V78, /* DR_REG_CTR_EL0 */ - DR_REG_V79, /* DR_REG_DCZID_EL0 */ - DR_REG_V80, /* DR_REG_RNDR */ - DR_REG_V81, /* DR_REG_RNDRRS */ - DR_REG_V82, /* DR_REG_DAIF */ - DR_REG_V83, /* DR_REG_DIT */ - DR_REG_V84, /* DR_REG_SSBS */ - DR_REG_V85, /* DR_REG_TCO */ - DR_REG_V86, /* DR_REG_DSPSR_EL0 */ - DR_REG_V87, /* DR_REG_DLR_EL0 */ - DR_REG_V88, /* DR_REG_PMCR_EL0 */ - DR_REG_V89, /* DR_REG_PMCNTENSET_EL0 */ - DR_REG_V90, /* DR_REG_PMCNTENCLR_EL0 */ - DR_REG_V91, /* DR_REG_PMOVSCLR_EL0 */ - DR_REG_V92, /* DR_REG_PMSWINC_EL0 */ - DR_REG_V93, /* DR_REG_PMSELR_EL0 */ - DR_REG_V94, /* DR_REG_PMCEID0_EL0 */ - DR_REG_V95, /* DR_REG_PMCEID1_EL0 */ - DR_REG_V96, /* DR_REG_PMCCNTR_EL0 */ - DR_REG_V97, /* DR_REG_PMXEVTYPER_EL0 */ - DR_REG_V98, /* DR_REG_PMXEVCNTR_EL0 */ - DR_REG_V99, /* DR_REG_PMUSERENR_EL0 */ - DR_REG_V100, /* DR_REG_PMOVSSET_EL0 */ - DR_REG_V101, /* DR_REG_SCXTNUM_EL0 */ - DR_REG_V102, /* DR_REG_CNTFRQ_EL0 */ - DR_REG_V103, /* DR_REG_CNTPCT_EL0 */ - DR_REG_V104, /* DR_REG_CNTP_TVAL_EL0 */ - DR_REG_V105, /* DR_REG_CNTP_CTL_EL0 */ - DR_REG_V106, /* DR_REG_CNTP_CVAL_EL0 */ - DR_REG_V107, /* DR_REG_CNTV_TVAL_EL0 */ - DR_REG_V108, /* DR_REG_CNTV_CTL_EL0 */ - DR_REG_V109, /* DR_REG_CNTV_CVAL_EL0 */ - DR_REG_V110, /* DR_REG_PMEVCNTR0_EL0 */ - DR_REG_V111, /* DR_REG_PMEVCNTR1_EL0 */ - DR_REG_V112, /* DR_REG_PMEVCNTR2_EL0 */ - DR_REG_V113, /* DR_REG_PMEVCNTR3_EL0 */ - DR_REG_V114, /* DR_REG_PMEVCNTR4_EL0 */ - DR_REG_V115, /* DR_REG_PMEVCNTR5_EL0 */ - DR_REG_V116, /* DR_REG_PMEVCNTR6_EL0 */ - DR_REG_V117, /* DR_REG_PMEVCNTR7_EL0 */ - DR_REG_V118, /* DR_REG_PMEVCNTR8_EL0 */ - DR_REG_V119, /* DR_REG_PMEVCNTR9_EL0 */ - DR_REG_V120, /* DR_REG_PMEVCNTR10_EL0 */ - DR_REG_V121, /* DR_REG_PMEVCNTR11_EL0 */ - DR_REG_V122, /* DR_REG_PMEVCNTR12_EL0 */ - DR_REG_V123, /* DR_REG_PMEVCNTR13_EL0 */ - DR_REG_V124, /* DR_REG_PMEVCNTR14_EL0 */ - DR_REG_V125, /* DR_REG_PMEVCNTR15_EL0 */ - DR_REG_V126, /* DR_REG_PMEVCNTR16_EL0 */ - DR_REG_V127, /* DR_REG_PMEVCNTR17_EL0 */ - DR_REG_V128, /* DR_REG_PMEVCNTR18_EL0 */ - DR_REG_V129, /* DR_REG_PMEVCNTR19_EL0 */ - DR_REG_V130, /* DR_REG_PMEVCNTR20_EL0 */ - DR_REG_V131, /* DR_REG_PMEVCNTR21_EL0 */ - DR_REG_V132, /* DR_REG_PMEVCNTR22_EL0 */ - DR_REG_V133, /* DR_REG_PMEVCNTR23_EL0 */ - DR_REG_V134, /* DR_REG_PMEVCNTR24_EL0 */ - DR_REG_V135, /* DR_REG_PMEVCNTR25_EL0 */ - DR_REG_V136, /* DR_REG_PMEVCNTR26_EL0 */ - DR_REG_V137, /* DR_REG_PMEVCNTR27_EL0 */ - DR_REG_V138, /* DR_REG_PMEVCNTR28_EL0 */ - DR_REG_V139, /* DR_REG_PMEVCNTR29_EL0 */ - DR_REG_V140, /* DR_REG_PMEVCNTR30_EL0 */ - DR_REG_V141, /* DR_REG_PMEVTYPER0_EL0 */ - DR_REG_V142, /* DR_REG_PMEVTYPER1_EL0 */ - DR_REG_V143, /* DR_REG_PMEVTYPER2_EL0 */ - DR_REG_V144, /* DR_REG_PMEVTYPER3_EL0 */ - DR_REG_V145, /* DR_REG_PMEVTYPER4_EL0 */ - DR_REG_V146, /* DR_REG_PMEVTYPER5_EL0 */ - DR_REG_V147, /* DR_REG_PMEVTYPER6_EL0 */ - DR_REG_V148, /* DR_REG_PMEVTYPER7_EL0 */ - DR_REG_V149, /* DR_REG_PMEVTYPER8_EL0 */ - DR_REG_V150, /* DR_REG_PMEVTYPER9_EL0 */ - DR_REG_V151, /* DR_REG_PMEVTYPER10_EL0 */ - DR_REG_V152, /* DR_REG_PMEVTYPER11_EL0 */ - DR_REG_V153, /* DR_REG_PMEVTYPER12_EL0 */ - DR_REG_V154, /* DR_REG_PMEVTYPER13_EL0 */ - DR_REG_V155, /* DR_REG_PMEVTYPER14_EL0 */ - DR_REG_V156, /* DR_REG_PMEVTYPER15_EL0 */ - DR_REG_V157, /* DR_REG_PMEVTYPER16_EL0 */ - DR_REG_V158, /* DR_REG_PMEVTYPER17_EL0 */ - DR_REG_V159, /* DR_REG_PMEVTYPER18_EL0 */ - DR_REG_V160, /* DR_REG_PMEVTYPER19_EL0 */ - DR_REG_V161, /* DR_REG_PMEVTYPER20_EL0 */ - DR_REG_V162, /* DR_REG_PMEVTYPER21_EL0 */ - DR_REG_V163, /* DR_REG_PMEVTYPER22_EL0 */ - DR_REG_V164, /* DR_REG_PMEVTYPER23_EL0 */ - DR_REG_V165, /* DR_REG_PMEVTYPER24_EL0 */ - DR_REG_V166, /* DR_REG_PMEVTYPER25_EL0 */ - DR_REG_V167, /* DR_REG_PMEVTYPER26_EL0 */ - DR_REG_V168, /* DR_REG_PMEVTYPER27_EL0 */ - DR_REG_V169, /* DR_REG_PMEVTYPER28_EL0 */ - DR_REG_V170, /* DR_REG_PMEVTYPER29_EL0 */ - DR_REG_V171, /* DR_REG_PMEVTYPER30_EL0 */ - DR_REG_V172, /* DR_REG_PMCCFILTR_EL0 */ - DR_REG_V173, /* DR_REG_SPSR_IRQ */ - DR_REG_V174, /* DR_REG_SPSR_ABT */ - DR_REG_V175, /* DR_REG_SPSR_UND */ - DR_REG_V176, /* DR_REG_SPSR_FIQ */ - DR_REG_V177, /* DR_REG_TPIDR_EL0 */ - DR_REG_V178, /* DR_REG_TPIDRRO_EL0 */ - - DR_REG_V179, /* DR_REG_P0 */ - DR_REG_V180, /* DR_REG_P1 */ - DR_REG_V181, /* DR_REG_P2 */ - DR_REG_V182, /* DR_REG_P3 */ - DR_REG_V183, /* DR_REG_P4 */ - DR_REG_V184, /* DR_REG_P5 */ - DR_REG_V185, /* DR_REG_P6 */ - DR_REG_V186, /* DR_REG_P7 */ - DR_REG_V187, /* DR_REG_P8 */ - DR_REG_V188, /* DR_REG_P9 */ - DR_REG_V189, /* DR_REG_P10 */ - DR_REG_V190, /* DR_REG_P11 */ - DR_REG_V191, /* DR_REG_P12 */ - DR_REG_V192, /* DR_REG_P13 */ - DR_REG_V193, /* DR_REG_P14 */ - DR_REG_V194, /* DR_REG_P15 */ - DR_REG_V195, /* DR_REG_FFR */ - - DR_REG_V196, /* DR_REG_CNTVCT_EL0 */ - DR_REG_V197, /* DR_REG_ID_AA64ISAR0_EL1 */ - DR_REG_V198, /* DR_REG_ID_AA64ISAR1_EL1 */ - DR_REG_V199, /* DR_REG_ID_AA64ISAR2_EL1 */ - DR_REG_V200, /* DR_REG_ID_AA64PFR0_EL1 */ - DR_REG_V201, /* DR_REG_ID_AA64MMFR1_EL1 */ - DR_REG_V202, /* DR_REG_ID_AA64DFR0_EL1 */ - DR_REG_V203, /* DR_REG_ID_AA64ZFR0_EL1 */ - DR_REG_V204, /* DR_REG_ID_AA64PFR1_EL1 */ - DR_REG_V205, /* DR_REG_ID_AA64MMFR2_EL1 */ - DR_REG_V206, /* DR_REG_MIDR_EL1 */ - DR_REG_V207, /* DR_REG_MPIDR_EL1 */ - DR_REG_V208, /* DR_REG_REVIDR_EL1 */ + DR_REG_VIRT65, /* DR_REG_NZCV */ + DR_REG_VIRT66, /* DR_REG_FPCR */ + DR_REG_VIRT67, /* DR_REG_FPSR */ + DR_REG_VIRT68, /* DR_REG_MDCCSR_EL0 */ + DR_REG_VIRT69, /* DR_REG_DBGDTR_EL0 */ + DR_REG_VIRT70, /* DR_REG_DBGDTRRX_EL0 */ + DR_REG_VIRT71, /* DR_REG_SP_EL0 */ + DR_REG_VIRT72, /* DR_REG_SPSEL */ + DR_REG_VIRT73, /* DR_REG_DAIFSET */ + DR_REG_VIRT74, /* DR_REG_DAIFCLR */ + DR_REG_VIRT75, /* DR_REG_CURRENTEL */ + DR_REG_VIRT76, /* DR_REG_PAN */ + DR_REG_VIRT77, /* DR_REG_UAO */ + DR_REG_VIRT78, /* DR_REG_CTR_EL0 */ + DR_REG_VIRT79, /* DR_REG_DCZID_EL0 */ + DR_REG_VIRT80, /* DR_REG_RNDR */ + DR_REG_VIRT81, /* DR_REG_RNDRRS */ + DR_REG_VIRT82, /* DR_REG_DAIF */ + DR_REG_VIRT83, /* DR_REG_DIT */ + DR_REG_VIRT84, /* DR_REG_SSBS */ + DR_REG_VIRT85, /* DR_REG_TCO */ + DR_REG_VIRT86, /* DR_REG_DSPSR_EL0 */ + DR_REG_VIRT87, /* DR_REG_DLR_EL0 */ + DR_REG_VIRT88, /* DR_REG_PMCR_EL0 */ + DR_REG_VIRT89, /* DR_REG_PMCNTENSET_EL0 */ + DR_REG_VIRT90, /* DR_REG_PMCNTENCLR_EL0 */ + DR_REG_VIRT91, /* DR_REG_PMOVSCLR_EL0 */ + DR_REG_VIRT92, /* DR_REG_PMSWINC_EL0 */ + DR_REG_VIRT93, /* DR_REG_PMSELR_EL0 */ + DR_REG_VIRT94, /* DR_REG_PMCEID0_EL0 */ + DR_REG_VIRT95, /* DR_REG_PMCEID1_EL0 */ + DR_REG_VIRT96, /* DR_REG_PMCCNTR_EL0 */ + DR_REG_VIRT97, /* DR_REG_PMXEVTYPER_EL0 */ + DR_REG_VIRT98, /* DR_REG_PMXEVCNTR_EL0 */ + DR_REG_VIRT99, /* DR_REG_PMUSERENR_EL0 */ + DR_REG_VIRT100, /* DR_REG_PMOVSSET_EL0 */ + DR_REG_VIRT101, /* DR_REG_SCXTNUM_EL0 */ + DR_REG_VIRT102, /* DR_REG_CNTFRQ_EL0 */ + DR_REG_VIRT103, /* DR_REG_CNTPCT_EL0 */ + DR_REG_VIRT104, /* DR_REG_CNTP_TVAL_EL0 */ + DR_REG_VIRT105, /* DR_REG_CNTP_CTL_EL0 */ + DR_REG_VIRT106, /* DR_REG_CNTP_CVAL_EL0 */ + DR_REG_VIRT107, /* DR_REG_CNTV_TVAL_EL0 */ + DR_REG_VIRT108, /* DR_REG_CNTV_CTL_EL0 */ + DR_REG_VIRT109, /* DR_REG_CNTV_CVAL_EL0 */ + DR_REG_VIRT110, /* DR_REG_PMEVCNTR0_EL0 */ + DR_REG_VIRT111, /* DR_REG_PMEVCNTR1_EL0 */ + DR_REG_VIRT112, /* DR_REG_PMEVCNTR2_EL0 */ + DR_REG_VIRT113, /* DR_REG_PMEVCNTR3_EL0 */ + DR_REG_VIRT114, /* DR_REG_PMEVCNTR4_EL0 */ + DR_REG_VIRT115, /* DR_REG_PMEVCNTR5_EL0 */ + DR_REG_VIRT116, /* DR_REG_PMEVCNTR6_EL0 */ + DR_REG_VIRT117, /* DR_REG_PMEVCNTR7_EL0 */ + DR_REG_VIRT118, /* DR_REG_PMEVCNTR8_EL0 */ + DR_REG_VIRT119, /* DR_REG_PMEVCNTR9_EL0 */ + DR_REG_VIRT120, /* DR_REG_PMEVCNTR10_EL0 */ + DR_REG_VIRT121, /* DR_REG_PMEVCNTR11_EL0 */ + DR_REG_VIRT122, /* DR_REG_PMEVCNTR12_EL0 */ + DR_REG_VIRT123, /* DR_REG_PMEVCNTR13_EL0 */ + DR_REG_VIRT124, /* DR_REG_PMEVCNTR14_EL0 */ + DR_REG_VIRT125, /* DR_REG_PMEVCNTR15_EL0 */ + DR_REG_VIRT126, /* DR_REG_PMEVCNTR16_EL0 */ + DR_REG_VIRT127, /* DR_REG_PMEVCNTR17_EL0 */ + DR_REG_VIRT128, /* DR_REG_PMEVCNTR18_EL0 */ + DR_REG_VIRT129, /* DR_REG_PMEVCNTR19_EL0 */ + DR_REG_VIRT130, /* DR_REG_PMEVCNTR20_EL0 */ + DR_REG_VIRT131, /* DR_REG_PMEVCNTR21_EL0 */ + DR_REG_VIRT132, /* DR_REG_PMEVCNTR22_EL0 */ + DR_REG_VIRT133, /* DR_REG_PMEVCNTR23_EL0 */ + DR_REG_VIRT134, /* DR_REG_PMEVCNTR24_EL0 */ + DR_REG_VIRT135, /* DR_REG_PMEVCNTR25_EL0 */ + DR_REG_VIRT136, /* DR_REG_PMEVCNTR26_EL0 */ + DR_REG_VIRT137, /* DR_REG_PMEVCNTR27_EL0 */ + DR_REG_VIRT138, /* DR_REG_PMEVCNTR28_EL0 */ + DR_REG_VIRT139, /* DR_REG_PMEVCNTR29_EL0 */ + DR_REG_VIRT140, /* DR_REG_PMEVCNTR30_EL0 */ + DR_REG_VIRT141, /* DR_REG_PMEVTYPER0_EL0 */ + DR_REG_VIRT142, /* DR_REG_PMEVTYPER1_EL0 */ + DR_REG_VIRT143, /* DR_REG_PMEVTYPER2_EL0 */ + DR_REG_VIRT144, /* DR_REG_PMEVTYPER3_EL0 */ + DR_REG_VIRT145, /* DR_REG_PMEVTYPER4_EL0 */ + DR_REG_VIRT146, /* DR_REG_PMEVTYPER5_EL0 */ + DR_REG_VIRT147, /* DR_REG_PMEVTYPER6_EL0 */ + DR_REG_VIRT148, /* DR_REG_PMEVTYPER7_EL0 */ + DR_REG_VIRT149, /* DR_REG_PMEVTYPER8_EL0 */ + DR_REG_VIRT150, /* DR_REG_PMEVTYPER9_EL0 */ + DR_REG_VIRT151, /* DR_REG_PMEVTYPER10_EL0 */ + DR_REG_VIRT152, /* DR_REG_PMEVTYPER11_EL0 */ + DR_REG_VIRT153, /* DR_REG_PMEVTYPER12_EL0 */ + DR_REG_VIRT154, /* DR_REG_PMEVTYPER13_EL0 */ + DR_REG_VIRT155, /* DR_REG_PMEVTYPER14_EL0 */ + DR_REG_VIRT156, /* DR_REG_PMEVTYPER15_EL0 */ + DR_REG_VIRT157, /* DR_REG_PMEVTYPER16_EL0 */ + DR_REG_VIRT158, /* DR_REG_PMEVTYPER17_EL0 */ + DR_REG_VIRT159, /* DR_REG_PMEVTYPER18_EL0 */ + DR_REG_VIRT160, /* DR_REG_PMEVTYPER19_EL0 */ + DR_REG_VIRT161, /* DR_REG_PMEVTYPER20_EL0 */ + DR_REG_VIRT162, /* DR_REG_PMEVTYPER21_EL0 */ + DR_REG_VIRT163, /* DR_REG_PMEVTYPER22_EL0 */ + DR_REG_VIRT164, /* DR_REG_PMEVTYPER23_EL0 */ + DR_REG_VIRT165, /* DR_REG_PMEVTYPER24_EL0 */ + DR_REG_VIRT166, /* DR_REG_PMEVTYPER25_EL0 */ + DR_REG_VIRT167, /* DR_REG_PMEVTYPER26_EL0 */ + DR_REG_VIRT168, /* DR_REG_PMEVTYPER27_EL0 */ + DR_REG_VIRT169, /* DR_REG_PMEVTYPER28_EL0 */ + DR_REG_VIRT170, /* DR_REG_PMEVTYPER29_EL0 */ + DR_REG_VIRT171, /* DR_REG_PMEVTYPER30_EL0 */ + DR_REG_VIRT172, /* DR_REG_PMCCFILTR_EL0 */ + DR_REG_VIRT173, /* DR_REG_SPSR_IRQ */ + DR_REG_VIRT174, /* DR_REG_SPSR_ABT */ + DR_REG_VIRT175, /* DR_REG_SPSR_UND */ + DR_REG_VIRT176, /* DR_REG_SPSR_FIQ */ + DR_REG_VIRT177, /* DR_REG_TPIDR_EL0 */ + DR_REG_VIRT178, /* DR_REG_TPIDRRO_EL0 */ + + DR_REG_VIRT179, /* DR_REG_P0 */ + DR_REG_VIRT180, /* DR_REG_P1 */ + DR_REG_VIRT181, /* DR_REG_P2 */ + DR_REG_VIRT182, /* DR_REG_P3 */ + DR_REG_VIRT183, /* DR_REG_P4 */ + DR_REG_VIRT184, /* DR_REG_P5 */ + DR_REG_VIRT185, /* DR_REG_P6 */ + DR_REG_VIRT186, /* DR_REG_P7 */ + DR_REG_VIRT187, /* DR_REG_P8 */ + DR_REG_VIRT188, /* DR_REG_P9 */ + DR_REG_VIRT189, /* DR_REG_P10 */ + DR_REG_VIRT190, /* DR_REG_P11 */ + DR_REG_VIRT191, /* DR_REG_P12 */ + DR_REG_VIRT192, /* DR_REG_P13 */ + DR_REG_VIRT193, /* DR_REG_P14 */ + DR_REG_VIRT194, /* DR_REG_P15 */ + DR_REG_VIRT195, /* DR_REG_FFR */ + + DR_REG_VIRT196, /* DR_REG_CNTVCT_EL0 */ + DR_REG_VIRT197, /* DR_REG_ID_AA64ISAR0_EL1 */ + DR_REG_VIRT198, /* DR_REG_ID_AA64ISAR1_EL1 */ + DR_REG_VIRT199, /* DR_REG_ID_AA64ISAR2_EL1 */ + DR_REG_VIRT200, /* DR_REG_ID_AA64PFR0_EL1 */ + DR_REG_VIRT201, /* DR_REG_ID_AA64MMFR1_EL1 */ + DR_REG_VIRT202, /* DR_REG_ID_AA64DFR0_EL1 */ + DR_REG_VIRT203, /* DR_REG_ID_AA64ZFR0_EL1 */ + DR_REG_VIRT204, /* DR_REG_ID_AA64PFR1_EL1 */ + DR_REG_VIRT205, /* DR_REG_ID_AA64MMFR2_EL1 */ + DR_REG_VIRT206, /* DR_REG_MIDR_EL1 */ + DR_REG_VIRT207, /* DR_REG_MPIDR_EL1 */ + DR_REG_VIRT208, /* DR_REG_REVIDR_EL1 */ }; /* clang-format on */ diff --git a/core/ir/arm/encode.c b/core/ir/arm/encode.c index 7263ab50fc6..80c4f0896bb 100644 --- a/core/ir/arm/encode.c +++ b/core/ir/arm/encode.c @@ -470,58 +470,58 @@ const reg_id_t d_r_reg_id_to_virtual[] = { DR_REG_NULL, /* DR_REG_NULL */ /* from DR_REG_R0 to DR_REG_R15 */ - DR_REG_V0, /* DR_REG_R0 */ - DR_REG_V1, /* DR_REG_R1 */ - DR_REG_V2, /* DR_REG_R2 */ - DR_REG_V3, /* DR_REG_R3 */ - DR_REG_V4, /* DR_REG_R4 */ - DR_REG_V5, /* DR_REG_R5 */ - DR_REG_V6, /* DR_REG_R6 */ - DR_REG_V7, /* DR_REG_R7 */ - DR_REG_V8, /* DR_REG_R8 */ - DR_REG_V9, /* DR_REG_R9 */ - DR_REG_V10, /* DR_REG_R10 */ - DR_REG_V11, /* DR_REG_R11 */ - DR_REG_V12, /* DR_REG_R12 */ - DR_REG_V13, /* DR_REG_R13 or DR_REG_SP */ - DR_REG_V14, /* DR_REG_R14 or DR_REG_LR */ - DR_REG_V15, /* DR_REG_R15 or DR_REG_PC */ + DR_REG_VIRT0, /* DR_REG_R0 */ + DR_REG_VIRT1, /* DR_REG_R1 */ + DR_REG_VIRT2, /* DR_REG_R2 */ + DR_REG_VIRT3, /* DR_REG_R3 */ + DR_REG_VIRT4, /* DR_REG_R4 */ + DR_REG_VIRT5, /* DR_REG_R5 */ + DR_REG_VIRT6, /* DR_REG_R6 */ + DR_REG_VIRT7, /* DR_REG_R7 */ + DR_REG_VIRT8, /* DR_REG_R8 */ + DR_REG_VIRT9, /* DR_REG_R9 */ + DR_REG_VIRT10, /* DR_REG_R10 */ + DR_REG_VIRT11, /* DR_REG_R11 */ + DR_REG_VIRT12, /* DR_REG_R12 */ + DR_REG_VIRT13, /* DR_REG_R13 or DR_REG_SP */ + DR_REG_VIRT14, /* DR_REG_R14 or DR_REG_LR */ + DR_REG_VIRT15, /* DR_REG_R15 or DR_REG_PC */ /* from DR_REG_Q0 to DR_REG_Q31 */ - DR_REG_V16, /* DR_REG_Q0 */ - DR_REG_V17, /* DR_REG_Q1 */ - DR_REG_V18, /* DR_REG_Q2 */ - DR_REG_V19, /* DR_REG_Q3 */ - DR_REG_V20, /* DR_REG_Q4 */ - DR_REG_V21, /* DR_REG_Q5 */ - DR_REG_V22, /* DR_REG_Q6 */ - DR_REG_V23, /* DR_REG_Q7 */ - DR_REG_V24, /* DR_REG_Q8 */ - DR_REG_V25, /* DR_REG_Q9 */ - DR_REG_V26, /* DR_REG_Q10 */ - DR_REG_V27, /* DR_REG_Q11 */ - DR_REG_V28, /* DR_REG_Q12 */ - DR_REG_V29, /* DR_REG_Q13 */ - DR_REG_V30, /* DR_REG_Q14 */ - DR_REG_V31, /* DR_REG_Q15 */ + DR_REG_VIRT16, /* DR_REG_Q0 */ + DR_REG_VIRT17, /* DR_REG_Q1 */ + DR_REG_VIRT18, /* DR_REG_Q2 */ + DR_REG_VIRT19, /* DR_REG_Q3 */ + DR_REG_VIRT20, /* DR_REG_Q4 */ + DR_REG_VIRT21, /* DR_REG_Q5 */ + DR_REG_VIRT22, /* DR_REG_Q6 */ + DR_REG_VIRT23, /* DR_REG_Q7 */ + DR_REG_VIRT24, /* DR_REG_Q8 */ + DR_REG_VIRT25, /* DR_REG_Q9 */ + DR_REG_VIRT26, /* DR_REG_Q10 */ + DR_REG_VIRT27, /* DR_REG_Q11 */ + DR_REG_VIRT28, /* DR_REG_Q12 */ + DR_REG_VIRT29, /* DR_REG_Q13 */ + DR_REG_VIRT30, /* DR_REG_Q14 */ + DR_REG_VIRT31, /* DR_REG_Q15 */ /* The following are x64-only but simpler code to not ifdef it. */ - DR_REG_V32, /* DR_REG_Q16 */ - DR_REG_V33, /* DR_REG_Q17 */ - DR_REG_V34, /* DR_REG_Q18 */ - DR_REG_V35, /* DR_REG_Q19 */ - DR_REG_V36, /* DR_REG_Q20 */ - DR_REG_V37, /* DR_REG_Q21 */ - DR_REG_V38, /* DR_REG_Q22 */ - DR_REG_V39, /* DR_REG_Q23 */ - DR_REG_V40, /* DR_REG_Q24 */ - DR_REG_V41, /* DR_REG_Q25 */ - DR_REG_V42, /* DR_REG_Q26 */ - DR_REG_V43, /* DR_REG_Q27 */ - DR_REG_V44, /* DR_REG_Q28 */ - DR_REG_V45, /* DR_REG_Q29 */ - DR_REG_V46, /* DR_REG_Q30 */ - DR_REG_V47, /* DR_REG_Q31 */ + DR_REG_VIRT32, /* DR_REG_Q16 */ + DR_REG_VIRT33, /* DR_REG_Q17 */ + DR_REG_VIRT34, /* DR_REG_Q18 */ + DR_REG_VIRT35, /* DR_REG_Q19 */ + DR_REG_VIRT36, /* DR_REG_Q20 */ + DR_REG_VIRT37, /* DR_REG_Q21 */ + DR_REG_VIRT38, /* DR_REG_Q22 */ + DR_REG_VIRT39, /* DR_REG_Q23 */ + DR_REG_VIRT40, /* DR_REG_Q24 */ + DR_REG_VIRT41, /* DR_REG_Q25 */ + DR_REG_VIRT42, /* DR_REG_Q26 */ + DR_REG_VIRT43, /* DR_REG_Q27 */ + DR_REG_VIRT44, /* DR_REG_Q28 */ + DR_REG_VIRT45, /* DR_REG_Q29 */ + DR_REG_VIRT46, /* DR_REG_Q30 */ + DR_REG_VIRT47, /* DR_REG_Q31 */ /* For AArch64, the smaller SIMD names refer to the lower * bits of the corresponding same-number larger SIMD register. @@ -529,168 +529,168 @@ const reg_id_t d_r_reg_id_to_virtual[] = { * they refer to the top and bottom. B and H are AArch64-only. */ /* from DR_REG_D0 to DR_REG_D31 */ - DR_REG_V16, /* DR_REG_D0 */ - DR_REG_V16, /* DR_REG_D1 */ - DR_REG_V17, /* DR_REG_D2 */ - DR_REG_V17, /* DR_REG_D3 */ - DR_REG_V18, /* DR_REG_D4 */ - DR_REG_V18, /* DR_REG_D5 */ - DR_REG_V19, /* DR_REG_D6 */ - DR_REG_V19, /* DR_REG_D7 */ - DR_REG_V20, /* DR_REG_D8 */ - DR_REG_V20, /* DR_REG_D9 */ - DR_REG_V21, /* DR_REG_D10 */ - DR_REG_V21, /* DR_REG_D11 */ - DR_REG_V22, /* DR_REG_D12 */ - DR_REG_V22, /* DR_REG_D13 */ - DR_REG_V23, /* DR_REG_D14 */ - DR_REG_V23, /* DR_REG_D15 */ - DR_REG_V24, /* DR_REG_D16 */ - DR_REG_V24, /* DR_REG_D17 */ - DR_REG_V25, /* DR_REG_D18 */ - DR_REG_V25, /* DR_REG_D19 */ - DR_REG_V26, /* DR_REG_D20 */ - DR_REG_V26, /* DR_REG_D21 */ - DR_REG_V27, /* DR_REG_D22 */ - DR_REG_V27, /* DR_REG_D23 */ - DR_REG_V28, /* DR_REG_D24 */ - DR_REG_V28, /* DR_REG_D25 */ - DR_REG_V29, /* DR_REG_D26 */ - DR_REG_V29, /* DR_REG_D27 */ - DR_REG_V30, /* DR_REG_D28 */ - DR_REG_V30, /* DR_REG_D29 */ - DR_REG_V31, /* DR_REG_D30 */ - DR_REG_V31, /* DR_REG_D31 */ + DR_REG_VIRT16, /* DR_REG_D0 */ + DR_REG_VIRT16, /* DR_REG_D1 */ + DR_REG_VIRT17, /* DR_REG_D2 */ + DR_REG_VIRT17, /* DR_REG_D3 */ + DR_REG_VIRT18, /* DR_REG_D4 */ + DR_REG_VIRT18, /* DR_REG_D5 */ + DR_REG_VIRT19, /* DR_REG_D6 */ + DR_REG_VIRT19, /* DR_REG_D7 */ + DR_REG_VIRT20, /* DR_REG_D8 */ + DR_REG_VIRT20, /* DR_REG_D9 */ + DR_REG_VIRT21, /* DR_REG_D10 */ + DR_REG_VIRT21, /* DR_REG_D11 */ + DR_REG_VIRT22, /* DR_REG_D12 */ + DR_REG_VIRT22, /* DR_REG_D13 */ + DR_REG_VIRT23, /* DR_REG_D14 */ + DR_REG_VIRT23, /* DR_REG_D15 */ + DR_REG_VIRT24, /* DR_REG_D16 */ + DR_REG_VIRT24, /* DR_REG_D17 */ + DR_REG_VIRT25, /* DR_REG_D18 */ + DR_REG_VIRT25, /* DR_REG_D19 */ + DR_REG_VIRT26, /* DR_REG_D20 */ + DR_REG_VIRT26, /* DR_REG_D21 */ + DR_REG_VIRT27, /* DR_REG_D22 */ + DR_REG_VIRT27, /* DR_REG_D23 */ + DR_REG_VIRT28, /* DR_REG_D24 */ + DR_REG_VIRT28, /* DR_REG_D25 */ + DR_REG_VIRT29, /* DR_REG_D26 */ + DR_REG_VIRT29, /* DR_REG_D27 */ + DR_REG_VIRT30, /* DR_REG_D28 */ + DR_REG_VIRT30, /* DR_REG_D29 */ + DR_REG_VIRT31, /* DR_REG_D30 */ + DR_REG_VIRT31, /* DR_REG_D31 */ /* from DR_REG_S0 to DR_REG_S31 */ - DR_REG_V16, /* DR_REG_S0 */ - DR_REG_V16, /* DR_REG_S1 */ - DR_REG_V16, /* DR_REG_S2 */ - DR_REG_V16, /* DR_REG_S3 */ - DR_REG_V17, /* DR_REG_S4 */ - DR_REG_V17, /* DR_REG_S5 */ - DR_REG_V17, /* DR_REG_S6 */ - DR_REG_V17, /* DR_REG_S7 */ - DR_REG_V18, /* DR_REG_S8 */ - DR_REG_V18, /* DR_REG_S9 */ - DR_REG_V18, /* DR_REG_S10 */ - DR_REG_V18, /* DR_REG_S11 */ - DR_REG_V19, /* DR_REG_S12 */ - DR_REG_V19, /* DR_REG_S13 */ - DR_REG_V19, /* DR_REG_S14 */ - DR_REG_V19, /* DR_REG_S15 */ - DR_REG_V20, /* DR_REG_S16 */ - DR_REG_V20, /* DR_REG_S17 */ - DR_REG_V20, /* DR_REG_S18 */ - DR_REG_V20, /* DR_REG_S19 */ - DR_REG_V21, /* DR_REG_S20 */ - DR_REG_V21, /* DR_REG_S21 */ - DR_REG_V21, /* DR_REG_S22 */ - DR_REG_V21, /* DR_REG_S23 */ - DR_REG_V22, /* DR_REG_S24 */ - DR_REG_V22, /* DR_REG_S25 */ - DR_REG_V22, /* DR_REG_S26 */ - DR_REG_V22, /* DR_REG_S27 */ - DR_REG_V23, /* DR_REG_S28 */ - DR_REG_V23, /* DR_REG_S29 */ - DR_REG_V23, /* DR_REG_S30 */ - DR_REG_V23, /* DR_REG_S31 */ + DR_REG_VIRT16, /* DR_REG_S0 */ + DR_REG_VIRT16, /* DR_REG_S1 */ + DR_REG_VIRT16, /* DR_REG_S2 */ + DR_REG_VIRT16, /* DR_REG_S3 */ + DR_REG_VIRT17, /* DR_REG_S4 */ + DR_REG_VIRT17, /* DR_REG_S5 */ + DR_REG_VIRT17, /* DR_REG_S6 */ + DR_REG_VIRT17, /* DR_REG_S7 */ + DR_REG_VIRT18, /* DR_REG_S8 */ + DR_REG_VIRT18, /* DR_REG_S9 */ + DR_REG_VIRT18, /* DR_REG_S10 */ + DR_REG_VIRT18, /* DR_REG_S11 */ + DR_REG_VIRT19, /* DR_REG_S12 */ + DR_REG_VIRT19, /* DR_REG_S13 */ + DR_REG_VIRT19, /* DR_REG_S14 */ + DR_REG_VIRT19, /* DR_REG_S15 */ + DR_REG_VIRT20, /* DR_REG_S16 */ + DR_REG_VIRT20, /* DR_REG_S17 */ + DR_REG_VIRT20, /* DR_REG_S18 */ + DR_REG_VIRT20, /* DR_REG_S19 */ + DR_REG_VIRT21, /* DR_REG_S20 */ + DR_REG_VIRT21, /* DR_REG_S21 */ + DR_REG_VIRT21, /* DR_REG_S22 */ + DR_REG_VIRT21, /* DR_REG_S23 */ + DR_REG_VIRT22, /* DR_REG_S24 */ + DR_REG_VIRT22, /* DR_REG_S25 */ + DR_REG_VIRT22, /* DR_REG_S26 */ + DR_REG_VIRT22, /* DR_REG_S27 */ + DR_REG_VIRT23, /* DR_REG_S28 */ + DR_REG_VIRT23, /* DR_REG_S29 */ + DR_REG_VIRT23, /* DR_REG_S30 */ + DR_REG_VIRT23, /* DR_REG_S31 */ /* AArch64-only. * from DR_REG_H0 to DR_REG_H31 */ - DR_REG_V16, /* DR_REG_H0 */ - DR_REG_V17, /* DR_REG_H1 */ - DR_REG_V18, /* DR_REG_H2 */ - DR_REG_V19, /* DR_REG_H3 */ - DR_REG_V20, /* DR_REG_H4 */ - DR_REG_V21, /* DR_REG_H5 */ - DR_REG_V22, /* DR_REG_H6 */ - DR_REG_V23, /* DR_REG_H7 */ - DR_REG_V24, /* DR_REG_H8 */ - DR_REG_V25, /* DR_REG_H9 */ - DR_REG_V26, /* DR_REG_H10 */ - DR_REG_V27, /* DR_REG_H11 */ - DR_REG_V28, /* DR_REG_H12 */ - DR_REG_V29, /* DR_REG_H13 */ - DR_REG_V30, /* DR_REG_H14 */ - DR_REG_V31, /* DR_REG_H15 */ - DR_REG_V48, /* DR_REG_H16 */ - DR_REG_V49, /* DR_REG_H17 */ - DR_REG_V50, /* DR_REG_H18 */ - DR_REG_V51, /* DR_REG_H19 */ - DR_REG_V52, /* DR_REG_H20 */ - DR_REG_V53, /* DR_REG_H21 */ - DR_REG_V54, /* DR_REG_H22 */ - DR_REG_V55, /* DR_REG_H23 */ - DR_REG_V56, /* DR_REG_H24 */ - DR_REG_V57, /* DR_REG_H25 */ - DR_REG_V58, /* DR_REG_H26 */ - DR_REG_V59, /* DR_REG_H27 */ - DR_REG_V60, /* DR_REG_H28 */ - DR_REG_V61, /* DR_REG_H29 */ - DR_REG_V62, /* DR_REG_H30 */ - DR_REG_V63, /* DR_REG_H31 */ + DR_REG_VIRT16, /* DR_REG_H0 */ + DR_REG_VIRT17, /* DR_REG_H1 */ + DR_REG_VIRT18, /* DR_REG_H2 */ + DR_REG_VIRT19, /* DR_REG_H3 */ + DR_REG_VIRT20, /* DR_REG_H4 */ + DR_REG_VIRT21, /* DR_REG_H5 */ + DR_REG_VIRT22, /* DR_REG_H6 */ + DR_REG_VIRT23, /* DR_REG_H7 */ + DR_REG_VIRT24, /* DR_REG_H8 */ + DR_REG_VIRT25, /* DR_REG_H9 */ + DR_REG_VIRT26, /* DR_REG_H10 */ + DR_REG_VIRT27, /* DR_REG_H11 */ + DR_REG_VIRT28, /* DR_REG_H12 */ + DR_REG_VIRT29, /* DR_REG_H13 */ + DR_REG_VIRT30, /* DR_REG_H14 */ + DR_REG_VIRT31, /* DR_REG_H15 */ + DR_REG_VIRT48, /* DR_REG_H16 */ + DR_REG_VIRT49, /* DR_REG_H17 */ + DR_REG_VIRT50, /* DR_REG_H18 */ + DR_REG_VIRT51, /* DR_REG_H19 */ + DR_REG_VIRT52, /* DR_REG_H20 */ + DR_REG_VIRT53, /* DR_REG_H21 */ + DR_REG_VIRT54, /* DR_REG_H22 */ + DR_REG_VIRT55, /* DR_REG_H23 */ + DR_REG_VIRT56, /* DR_REG_H24 */ + DR_REG_VIRT57, /* DR_REG_H25 */ + DR_REG_VIRT58, /* DR_REG_H26 */ + DR_REG_VIRT59, /* DR_REG_H27 */ + DR_REG_VIRT60, /* DR_REG_H28 */ + DR_REG_VIRT61, /* DR_REG_H29 */ + DR_REG_VIRT62, /* DR_REG_H30 */ + DR_REG_VIRT63, /* DR_REG_H31 */ /* AArch64-only. * from DR_REG_B0 to DR_REG_B31 */ - DR_REG_V16, /* DR_REG_B0 */ - DR_REG_V17, /* DR_REG_B1 */ - DR_REG_V18, /* DR_REG_B2 */ - DR_REG_V19, /* DR_REG_B3 */ - DR_REG_V20, /* DR_REG_B4 */ - DR_REG_V21, /* DR_REG_B5 */ - DR_REG_V22, /* DR_REG_B6 */ - DR_REG_V23, /* DR_REG_B7 */ - DR_REG_V24, /* DR_REG_B8 */ - DR_REG_V25, /* DR_REG_B9 */ - DR_REG_V26, /* DR_REG_B10 */ - DR_REG_V27, /* DR_REG_B11 */ - DR_REG_V28, /* DR_REG_B12 */ - DR_REG_V29, /* DR_REG_B13 */ - DR_REG_V30, /* DR_REG_B14 */ - DR_REG_V31, /* DR_REG_B15 */ - DR_REG_V48, /* DR_REG_B16 */ - DR_REG_V49, /* DR_REG_B17 */ - DR_REG_V50, /* DR_REG_B18 */ - DR_REG_V51, /* DR_REG_B19 */ - DR_REG_V52, /* DR_REG_B20 */ - DR_REG_V53, /* DR_REG_B21 */ - DR_REG_V54, /* DR_REG_B22 */ - DR_REG_V55, /* DR_REG_B23 */ - DR_REG_V56, /* DR_REG_B24 */ - DR_REG_V57, /* DR_REG_B25 */ - DR_REG_V58, /* DR_REG_B26 */ - DR_REG_V59, /* DR_REG_B27 */ - DR_REG_V60, /* DR_REG_B28 */ - DR_REG_V61, /* DR_REG_B29 */ - DR_REG_V62, /* DR_REG_B30 */ - DR_REG_V63, /* DR_REG_B31 */ + DR_REG_VIRT16, /* DR_REG_B0 */ + DR_REG_VIRT17, /* DR_REG_B1 */ + DR_REG_VIRT18, /* DR_REG_B2 */ + DR_REG_VIRT19, /* DR_REG_B3 */ + DR_REG_VIRT20, /* DR_REG_B4 */ + DR_REG_VIRT21, /* DR_REG_B5 */ + DR_REG_VIRT22, /* DR_REG_B6 */ + DR_REG_VIRT23, /* DR_REG_B7 */ + DR_REG_VIRT24, /* DR_REG_B8 */ + DR_REG_VIRT25, /* DR_REG_B9 */ + DR_REG_VIRT26, /* DR_REG_B10 */ + DR_REG_VIRT27, /* DR_REG_B11 */ + DR_REG_VIRT28, /* DR_REG_B12 */ + DR_REG_VIRT29, /* DR_REG_B13 */ + DR_REG_VIRT30, /* DR_REG_B14 */ + DR_REG_VIRT31, /* DR_REG_B15 */ + DR_REG_VIRT48, /* DR_REG_B16 */ + DR_REG_VIRT49, /* DR_REG_B17 */ + DR_REG_VIRT50, /* DR_REG_B18 */ + DR_REG_VIRT51, /* DR_REG_B19 */ + DR_REG_VIRT52, /* DR_REG_B20 */ + DR_REG_VIRT53, /* DR_REG_B21 */ + DR_REG_VIRT54, /* DR_REG_B22 */ + DR_REG_VIRT55, /* DR_REG_B23 */ + DR_REG_VIRT56, /* DR_REG_B24 */ + DR_REG_VIRT57, /* DR_REG_B25 */ + DR_REG_VIRT58, /* DR_REG_B26 */ + DR_REG_VIRT59, /* DR_REG_B27 */ + DR_REG_VIRT60, /* DR_REG_B28 */ + DR_REG_VIRT61, /* DR_REG_B29 */ + DR_REG_VIRT62, /* DR_REG_B30 */ + DR_REG_VIRT63, /* DR_REG_B31 */ /* from DR_REG_C0 to DR_REG_C15 */ - DR_REG_V64, /* DR_REG_C0 */ - DR_REG_V65, /* DR_REG_C1 */ - DR_REG_V66, /* DR_REG_C2 */ - DR_REG_V67, /* DR_REG_C3 */ - DR_REG_V68, /* DR_REG_C4 */ - DR_REG_V69, /* DR_REG_C5 */ - DR_REG_V70, /* DR_REG_C6 */ - DR_REG_V71, /* DR_REG_C7 */ - DR_REG_V72, /* DR_REG_C8 */ - DR_REG_V73, /* DR_REG_C9 */ - DR_REG_V74, /* DR_REG_C10 */ - DR_REG_V75, /* DR_REG_C11 */ - DR_REG_V76, /* DR_REG_C12 */ - DR_REG_V77, /* DR_REG_C13 */ - DR_REG_V78, /* DR_REG_C14 */ - DR_REG_V79, /* DR_REG_C15 */ - - DR_REG_V80, /* DR_REG_CPSR */ - DR_REG_V81, /* DR_REG_SPSR */ - DR_REG_V82, /* DR_REG_FPSCR */ - DR_REG_V83, /* DR_REG_TPIDRURW */ - DR_REG_V84, /* DR_REG_TPIDRURO */ + DR_REG_VIRT64, /* DR_REG_C0 */ + DR_REG_VIRT65, /* DR_REG_C1 */ + DR_REG_VIRT66, /* DR_REG_C2 */ + DR_REG_VIRT67, /* DR_REG_C3 */ + DR_REG_VIRT68, /* DR_REG_C4 */ + DR_REG_VIRT69, /* DR_REG_C5 */ + DR_REG_VIRT70, /* DR_REG_C6 */ + DR_REG_VIRT71, /* DR_REG_C7 */ + DR_REG_VIRT72, /* DR_REG_C8 */ + DR_REG_VIRT73, /* DR_REG_C9 */ + DR_REG_VIRT74, /* DR_REG_C10 */ + DR_REG_VIRT75, /* DR_REG_C11 */ + DR_REG_VIRT76, /* DR_REG_C12 */ + DR_REG_VIRT77, /* DR_REG_C13 */ + DR_REG_VIRT78, /* DR_REG_C14 */ + DR_REG_VIRT79, /* DR_REG_C15 */ + + DR_REG_VIRT80, /* DR_REG_CPSR */ + DR_REG_VIRT81, /* DR_REG_SPSR */ + DR_REG_VIRT82, /* DR_REG_FPSCR */ + DR_REG_VIRT83, /* DR_REG_TPIDRURW */ + DR_REG_VIRT84, /* DR_REG_TPIDRURO */ }; const char *const type_names[] = { diff --git a/core/ir/isa_regdeps/encoding_common.c b/core/ir/isa_regdeps/encoding_common.c index 4802a93e9d1..b2b2cdc47e6 100644 --- a/core/ir/isa_regdeps/encoding_common.c +++ b/core/ir/isa_regdeps/encoding_common.c @@ -30,7 +30,7 @@ * DAMAGE. */ -/* Keep this array (d_r_reg_virtual_names[]) and DR_REG_V enum in core/ir/opnd_api.h +/* Keep this array (d_r_reg_virtual_names[]) and DR_REG_VIRT enum in core/ir/opnd_api.h * synched. */ const char *const d_r_reg_virtual_names[] = { diff --git a/core/ir/opnd.h b/core/ir/opnd.h index 09b4e0b4dc1..596194fd397 100644 --- a/core/ir/opnd.h +++ b/core/ir/opnd.h @@ -182,7 +182,7 @@ opnd_get_reg_mcontext_offs(reg_id_t reg); /* Assumes that \p reg is a DR_REG_ 32-bit register constant. * Returns the corresponding DR_ISA_REGDEPS virtual register of \p reg, which holds 8-bit - * DR_REG_V values. + * DR_REG_VIRT values. */ reg_id_t d_r_reg_to_virtual(reg_id_t reg); diff --git a/core/ir/opnd_api.h b/core/ir/opnd_api.h index ec13b0c8186..d426f03b1dc 100644 --- a/core/ir/opnd_api.h +++ b/core/ir/opnd_api.h @@ -1361,269 +1361,270 @@ enum { #endif }; -/* We need a seprate DR_REG_V enum from DR_REG_ so we can start counting virtual registers - * from lower values. Otherwise, the DR_REG_ enum values won't fit in the 1 byte operand - * size of #DR_ISA_REGDEPS encoding. Note that DR_REG_V skips both values of - * DR_REG_INVALID to avoid issues with opnd_t operations. +/* We need a seprate DR_REG_VIRT enum from DR_REG_ so we can start counting virtual + * registers from lower values. Otherwise, the DR_REG_ enum values won't fit in the 1 + * byte operand size of #DR_ISA_REGDEPS encoding. Note that DR_REG_VIRT skips both values + * of DR_REG_INVALID to avoid issues with opnd_t operations. */ /** Virtual register identifiers for #DR_ISA_REGDEPS. */ enum { /** * The first virtual register. Note that all virtual registers named here are valid. */ - DR_REG_V0 = DR_REG_NULL + 2, /* Start from 2. Skip DR_REG_INVALID == 1 for non-x86. */ - DR_REG_V1, - DR_REG_V2, - DR_REG_V3, - DR_REG_V4, - DR_REG_V5, - DR_REG_V6, - DR_REG_V7, - DR_REG_V8, - DR_REG_V9, - DR_REG_V10, - DR_REG_V11, - DR_REG_V12, - DR_REG_V13, - DR_REG_V14, - DR_REG_V15, - DR_REG_V16, - DR_REG_V17, - DR_REG_V18, - DR_REG_V19, - DR_REG_V20, - DR_REG_V21, - DR_REG_V22, - DR_REG_V23, - DR_REG_V24, - DR_REG_V25, - DR_REG_V26, - DR_REG_V27, - DR_REG_V28, - DR_REG_V29, - DR_REG_V30, - DR_REG_V31, - DR_REG_V32, - DR_REG_V33, - DR_REG_V34, - DR_REG_V35, - DR_REG_V36, - DR_REG_V37, - DR_REG_V38, - DR_REG_V39, - DR_REG_V40, - DR_REG_V41, - DR_REG_V42, - DR_REG_V43, - DR_REG_V44, - DR_REG_V45, - DR_REG_V46, - DR_REG_V47, - DR_REG_V48, - DR_REG_V49, - DR_REG_V50, - DR_REG_V51, - DR_REG_V52, - DR_REG_V53, - DR_REG_V54, - DR_REG_V55, - DR_REG_V56, - DR_REG_V57, - DR_REG_V58, - DR_REG_V59, - DR_REG_V60, - DR_REG_V61, - DR_REG_V62, - DR_REG_V63, - DR_REG_V64, - DR_REG_V65, - DR_REG_V66, - DR_REG_V67, - DR_REG_V68, - DR_REG_V69, - DR_REG_V70, - DR_REG_V71, - DR_REG_V72, - DR_REG_V73, - DR_REG_V74, - DR_REG_V75, - DR_REG_V76, - DR_REG_V77, - DR_REG_V78, - DR_REG_V79, - DR_REG_V80, - DR_REG_V81, - DR_REG_V82, - DR_REG_V83, - DR_REG_V84, - DR_REG_V85, - DR_REG_V86, - DR_REG_V87, - DR_REG_V88, - DR_REG_V89, - DR_REG_V90, - DR_REG_V91, - DR_REG_V92, - DR_REG_V93, - DR_REG_V94, - DR_REG_V95, - DR_REG_V96, - DR_REG_V97, - DR_REG_V98, - DR_REG_V99, - DR_REG_V100, - DR_REG_V101, - DR_REG_V102, - DR_REG_V103, - DR_REG_V104, - DR_REG_V105, - DR_REG_V106, - DR_REG_V107, - DR_REG_V108, - DR_REG_V109, - DR_REG_V110, - DR_REG_V111, - DR_REG_V112, - DR_REG_V113, - DR_REG_V114, - DR_REG_V115, - DR_REG_V116, - DR_REG_V117, - DR_REG_V118, - DR_REG_V119, - DR_REG_V120, - DR_REG_V121, - DR_REG_V122, - DR_REG_V123, - DR_REG_V124, - DR_REG_V125, - DR_REG_V126, - DR_REG_V127, - DR_REG_V128, - DR_REG_V129, - DR_REG_V130, - DR_REG_V131, - DR_REG_V132, - DR_REG_V133, - DR_REG_V134, - DR_REG_V135, - DR_REG_V136, - DR_REG_V137, - DR_REG_V138, - DR_REG_V139, - DR_REG_V140, - DR_REG_V141, - DR_REG_V142, - DR_REG_V143, - DR_REG_V144, - DR_REG_V145, - DR_REG_V146, - DR_REG_V147, - DR_REG_V148, - DR_REG_V149, - DR_REG_V150, - DR_REG_V151, - DR_REG_V152, - DR_REG_V153, - DR_REG_V154, - DR_REG_V155, - DR_REG_V156, - DR_REG_V157, - DR_REG_V158, - DR_REG_V159, - DR_REG_V160, - DR_REG_V161, - DR_REG_V162, - DR_REG_V163, - DR_REG_V164, - DR_REG_V165, - DR_REG_V166, - DR_REG_V167, - DR_REG_V168, - DR_REG_V169, - DR_REG_V170, - DR_REG_V171, - DR_REG_V172, - DR_REG_V173, - DR_REG_V174, - DR_REG_V175, - DR_REG_V176, - DR_REG_V177, - DR_REG_V178, - DR_REG_V179, - DR_REG_V180, - DR_REG_V181, - DR_REG_V182, - DR_REG_V183, - DR_REG_V184, - DR_REG_V185 = 188, /* Skip x86 DR_REG_INVALID == 187. */ - DR_REG_V186, - DR_REG_V187, - DR_REG_V188, - DR_REG_V189, - DR_REG_V190, - DR_REG_V191, - DR_REG_V192, - DR_REG_V193, - DR_REG_V194, - DR_REG_V195, - DR_REG_V196, - DR_REG_V197, - DR_REG_V198, - DR_REG_V199, - DR_REG_V200, - DR_REG_V201, - DR_REG_V202, - DR_REG_V203, - DR_REG_V204, - DR_REG_V205, - DR_REG_V206, - DR_REG_V207, - DR_REG_V208, - DR_REG_V209, - DR_REG_V210, - DR_REG_V211, - DR_REG_V212, - DR_REG_V213, - DR_REG_V214, - DR_REG_V215, - DR_REG_V216, - DR_REG_V217, - DR_REG_V218, - DR_REG_V219, - DR_REG_V220, - DR_REG_V221, - DR_REG_V222, - DR_REG_V223, - DR_REG_V224, - DR_REG_V225, - DR_REG_V226, - DR_REG_V227, - DR_REG_V228, - DR_REG_V229, - DR_REG_V230, - DR_REG_V231, - DR_REG_V232, - DR_REG_V233, - DR_REG_V234, - DR_REG_V235, - DR_REG_V236, - DR_REG_V237, - DR_REG_V238, - DR_REG_V239, - DR_REG_V240, - DR_REG_V241, - DR_REG_V242, - DR_REG_V243, - DR_REG_V244, - DR_REG_V245, - DR_REG_V246, - DR_REG_V247, - DR_REG_V248, - DR_REG_V249, - DR_REG_V250, - DR_REG_V251, - DR_REG_V252, + DR_REG_VIRT0 = + DR_REG_NULL + 2, /* Start from 2. Skip DR_REG_INVALID == 1 for non-x86. */ + DR_REG_VIRT1, + DR_REG_VIRT2, + DR_REG_VIRT3, + DR_REG_VIRT4, + DR_REG_VIRT5, + DR_REG_VIRT6, + DR_REG_VIRT7, + DR_REG_VIRT8, + DR_REG_VIRT9, + DR_REG_VIRT10, + DR_REG_VIRT11, + DR_REG_VIRT12, + DR_REG_VIRT13, + DR_REG_VIRT14, + DR_REG_VIRT15, + DR_REG_VIRT16, + DR_REG_VIRT17, + DR_REG_VIRT18, + DR_REG_VIRT19, + DR_REG_VIRT20, + DR_REG_VIRT21, + DR_REG_VIRT22, + DR_REG_VIRT23, + DR_REG_VIRT24, + DR_REG_VIRT25, + DR_REG_VIRT26, + DR_REG_VIRT27, + DR_REG_VIRT28, + DR_REG_VIRT29, + DR_REG_VIRT30, + DR_REG_VIRT31, + DR_REG_VIRT32, + DR_REG_VIRT33, + DR_REG_VIRT34, + DR_REG_VIRT35, + DR_REG_VIRT36, + DR_REG_VIRT37, + DR_REG_VIRT38, + DR_REG_VIRT39, + DR_REG_VIRT40, + DR_REG_VIRT41, + DR_REG_VIRT42, + DR_REG_VIRT43, + DR_REG_VIRT44, + DR_REG_VIRT45, + DR_REG_VIRT46, + DR_REG_VIRT47, + DR_REG_VIRT48, + DR_REG_VIRT49, + DR_REG_VIRT50, + DR_REG_VIRT51, + DR_REG_VIRT52, + DR_REG_VIRT53, + DR_REG_VIRT54, + DR_REG_VIRT55, + DR_REG_VIRT56, + DR_REG_VIRT57, + DR_REG_VIRT58, + DR_REG_VIRT59, + DR_REG_VIRT60, + DR_REG_VIRT61, + DR_REG_VIRT62, + DR_REG_VIRT63, + DR_REG_VIRT64, + DR_REG_VIRT65, + DR_REG_VIRT66, + DR_REG_VIRT67, + DR_REG_VIRT68, + DR_REG_VIRT69, + DR_REG_VIRT70, + DR_REG_VIRT71, + DR_REG_VIRT72, + DR_REG_VIRT73, + DR_REG_VIRT74, + DR_REG_VIRT75, + DR_REG_VIRT76, + DR_REG_VIRT77, + DR_REG_VIRT78, + DR_REG_VIRT79, + DR_REG_VIRT80, + DR_REG_VIRT81, + DR_REG_VIRT82, + DR_REG_VIRT83, + DR_REG_VIRT84, + DR_REG_VIRT85, + DR_REG_VIRT86, + DR_REG_VIRT87, + DR_REG_VIRT88, + DR_REG_VIRT89, + DR_REG_VIRT90, + DR_REG_VIRT91, + DR_REG_VIRT92, + DR_REG_VIRT93, + DR_REG_VIRT94, + DR_REG_VIRT95, + DR_REG_VIRT96, + DR_REG_VIRT97, + DR_REG_VIRT98, + DR_REG_VIRT99, + DR_REG_VIRT100, + DR_REG_VIRT101, + DR_REG_VIRT102, + DR_REG_VIRT103, + DR_REG_VIRT104, + DR_REG_VIRT105, + DR_REG_VIRT106, + DR_REG_VIRT107, + DR_REG_VIRT108, + DR_REG_VIRT109, + DR_REG_VIRT110, + DR_REG_VIRT111, + DR_REG_VIRT112, + DR_REG_VIRT113, + DR_REG_VIRT114, + DR_REG_VIRT115, + DR_REG_VIRT116, + DR_REG_VIRT117, + DR_REG_VIRT118, + DR_REG_VIRT119, + DR_REG_VIRT120, + DR_REG_VIRT121, + DR_REG_VIRT122, + DR_REG_VIRT123, + DR_REG_VIRT124, + DR_REG_VIRT125, + DR_REG_VIRT126, + DR_REG_VIRT127, + DR_REG_VIRT128, + DR_REG_VIRT129, + DR_REG_VIRT130, + DR_REG_VIRT131, + DR_REG_VIRT132, + DR_REG_VIRT133, + DR_REG_VIRT134, + DR_REG_VIRT135, + DR_REG_VIRT136, + DR_REG_VIRT137, + DR_REG_VIRT138, + DR_REG_VIRT139, + DR_REG_VIRT140, + DR_REG_VIRT141, + DR_REG_VIRT142, + DR_REG_VIRT143, + DR_REG_VIRT144, + DR_REG_VIRT145, + DR_REG_VIRT146, + DR_REG_VIRT147, + DR_REG_VIRT148, + DR_REG_VIRT149, + DR_REG_VIRT150, + DR_REG_VIRT151, + DR_REG_VIRT152, + DR_REG_VIRT153, + DR_REG_VIRT154, + DR_REG_VIRT155, + DR_REG_VIRT156, + DR_REG_VIRT157, + DR_REG_VIRT158, + DR_REG_VIRT159, + DR_REG_VIRT160, + DR_REG_VIRT161, + DR_REG_VIRT162, + DR_REG_VIRT163, + DR_REG_VIRT164, + DR_REG_VIRT165, + DR_REG_VIRT166, + DR_REG_VIRT167, + DR_REG_VIRT168, + DR_REG_VIRT169, + DR_REG_VIRT170, + DR_REG_VIRT171, + DR_REG_VIRT172, + DR_REG_VIRT173, + DR_REG_VIRT174, + DR_REG_VIRT175, + DR_REG_VIRT176, + DR_REG_VIRT177, + DR_REG_VIRT178, + DR_REG_VIRT179, + DR_REG_VIRT180, + DR_REG_VIRT181, + DR_REG_VIRT182, + DR_REG_VIRT183, + DR_REG_VIRT184, + DR_REG_VIRT185 = 188, /* Skip x86 DR_REG_INVALID == 187. */ + DR_REG_VIRT186, + DR_REG_VIRT187, + DR_REG_VIRT188, + DR_REG_VIRT189, + DR_REG_VIRT190, + DR_REG_VIRT191, + DR_REG_VIRT192, + DR_REG_VIRT193, + DR_REG_VIRT194, + DR_REG_VIRT195, + DR_REG_VIRT196, + DR_REG_VIRT197, + DR_REG_VIRT198, + DR_REG_VIRT199, + DR_REG_VIRT200, + DR_REG_VIRT201, + DR_REG_VIRT202, + DR_REG_VIRT203, + DR_REG_VIRT204, + DR_REG_VIRT205, + DR_REG_VIRT206, + DR_REG_VIRT207, + DR_REG_VIRT208, + DR_REG_VIRT209, + DR_REG_VIRT210, + DR_REG_VIRT211, + DR_REG_VIRT212, + DR_REG_VIRT213, + DR_REG_VIRT214, + DR_REG_VIRT215, + DR_REG_VIRT216, + DR_REG_VIRT217, + DR_REG_VIRT218, + DR_REG_VIRT219, + DR_REG_VIRT220, + DR_REG_VIRT221, + DR_REG_VIRT222, + DR_REG_VIRT223, + DR_REG_VIRT224, + DR_REG_VIRT225, + DR_REG_VIRT226, + DR_REG_VIRT227, + DR_REG_VIRT228, + DR_REG_VIRT229, + DR_REG_VIRT230, + DR_REG_VIRT231, + DR_REG_VIRT232, + DR_REG_VIRT233, + DR_REG_VIRT234, + DR_REG_VIRT235, + DR_REG_VIRT236, + DR_REG_VIRT237, + DR_REG_VIRT238, + DR_REG_VIRT239, + DR_REG_VIRT240, + DR_REG_VIRT241, + DR_REG_VIRT242, + DR_REG_VIRT243, + DR_REG_VIRT244, + DR_REG_VIRT245, + DR_REG_VIRT246, + DR_REG_VIRT247, + DR_REG_VIRT248, + DR_REG_VIRT249, + DR_REG_VIRT250, + DR_REG_VIRT251, + DR_REG_VIRT252, }; /* we avoid typedef-ing the enum, as its storage size is compiler-specific */ @@ -3453,8 +3454,8 @@ DR_API * Assumes that \p reg is a DR_REG_ 32-bit register constant. * Returns the string name for \p reg. * \note It uses the global dcontext_t to determine the ISA mode. If the ISA mode is a - * synthetic one (e.g., #DR_ISA_REGDEPS), it returns the name of a #DR_REG_V0 etc. virtual - * register. + * synthetic one (e.g., #DR_ISA_REGDEPS), it returns the name of a #DR_REG_VIRT0 etc. + * virtual register. */ const char * get_register_name(reg_id_t reg); diff --git a/core/ir/riscv64/encode.c b/core/ir/riscv64/encode.c index dde1ba3aa52..6c40195af6d 100644 --- a/core/ir/riscv64/encode.c +++ b/core/ir/riscv64/encode.c @@ -84,108 +84,108 @@ const reg_id_t dr_reg_fixer[] = { REG_NULL, * Same size as dr_reg_fixer[], keep them synched. */ const reg_id_t d_r_reg_id_to_virtual[] = { - DR_REG_NULL, /* DR_REG_NULL */ - DR_REG_NULL, /* DR_REG_NULL */ - DR_REG_V0, /* DR_REG_X0 */ - DR_REG_V1, /* DR_REG_X1 */ - DR_REG_V2, /* DR_REG_X2 */ - DR_REG_V3, /* DR_REG_X3 */ - DR_REG_V4, /* DR_REG_X4 */ - DR_REG_V5, /* DR_REG_X5 */ - DR_REG_V6, /* DR_REG_X6 */ - DR_REG_V7, /* DR_REG_X7 */ - DR_REG_V8, /* DR_REG_X8 */ - DR_REG_V9, /* DR_REG_X9 */ - DR_REG_V10, /* DR_REG_X10 */ - DR_REG_V11, /* DR_REG_X11 */ - DR_REG_V12, /* DR_REG_X12 */ - DR_REG_V13, /* DR_REG_X13 */ - DR_REG_V14, /* DR_REG_X14 */ - DR_REG_V15, /* DR_REG_X15 */ - DR_REG_V16, /* DR_REG_X16 */ - DR_REG_V17, /* DR_REG_X17 */ - DR_REG_V18, /* DR_REG_X18 */ - DR_REG_V19, /* DR_REG_X19 */ - DR_REG_V20, /* DR_REG_X20 */ - DR_REG_V21, /* DR_REG_X21 */ - DR_REG_V22, /* DR_REG_X22 */ - DR_REG_V23, /* DR_REG_X23 */ - DR_REG_V24, /* DR_REG_X24 */ - DR_REG_V25, /* DR_REG_X25 */ - DR_REG_V26, /* DR_REG_X26 */ - DR_REG_V27, /* DR_REG_X27 */ - DR_REG_V28, /* DR_REG_X28 */ - DR_REG_V29, /* DR_REG_X29 */ - DR_REG_V30, /* DR_REG_X30 */ - DR_REG_V31, /* DR_REG_X31 */ - DR_REG_V32, /* DR_REG_PC */ + DR_REG_NULL, /* DR_REG_NULL */ + DR_REG_NULL, /* DR_REG_NULL */ + DR_REG_VIRT0, /* DR_REG_X0 */ + DR_REG_VIRT1, /* DR_REG_X1 */ + DR_REG_VIRT2, /* DR_REG_X2 */ + DR_REG_VIRT3, /* DR_REG_X3 */ + DR_REG_VIRT4, /* DR_REG_X4 */ + DR_REG_VIRT5, /* DR_REG_X5 */ + DR_REG_VIRT6, /* DR_REG_X6 */ + DR_REG_VIRT7, /* DR_REG_X7 */ + DR_REG_VIRT8, /* DR_REG_X8 */ + DR_REG_VIRT9, /* DR_REG_X9 */ + DR_REG_VIRT10, /* DR_REG_X10 */ + DR_REG_VIRT11, /* DR_REG_X11 */ + DR_REG_VIRT12, /* DR_REG_X12 */ + DR_REG_VIRT13, /* DR_REG_X13 */ + DR_REG_VIRT14, /* DR_REG_X14 */ + DR_REG_VIRT15, /* DR_REG_X15 */ + DR_REG_VIRT16, /* DR_REG_X16 */ + DR_REG_VIRT17, /* DR_REG_X17 */ + DR_REG_VIRT18, /* DR_REG_X18 */ + DR_REG_VIRT19, /* DR_REG_X19 */ + DR_REG_VIRT20, /* DR_REG_X20 */ + DR_REG_VIRT21, /* DR_REG_X21 */ + DR_REG_VIRT22, /* DR_REG_X22 */ + DR_REG_VIRT23, /* DR_REG_X23 */ + DR_REG_VIRT24, /* DR_REG_X24 */ + DR_REG_VIRT25, /* DR_REG_X25 */ + DR_REG_VIRT26, /* DR_REG_X26 */ + DR_REG_VIRT27, /* DR_REG_X27 */ + DR_REG_VIRT28, /* DR_REG_X28 */ + DR_REG_VIRT29, /* DR_REG_X29 */ + DR_REG_VIRT30, /* DR_REG_X30 */ + DR_REG_VIRT31, /* DR_REG_X31 */ + DR_REG_VIRT32, /* DR_REG_PC */ - DR_REG_V33, /* DR_REG_F0 */ - DR_REG_V34, /* DR_REG_F1 */ - DR_REG_V35, /* DR_REG_F2 */ - DR_REG_V36, /* DR_REG_F3 */ - DR_REG_V37, /* DR_REG_F4 */ - DR_REG_V38, /* DR_REG_F5 */ - DR_REG_V39, /* DR_REG_F6 */ - DR_REG_V40, /* DR_REG_F7 */ - DR_REG_V41, /* DR_REG_F8 */ - DR_REG_V42, /* DR_REG_F9 */ - DR_REG_V43, /* DR_REG_F10 */ - DR_REG_V44, /* DR_REG_F11 */ - DR_REG_V45, /* DR_REG_F12 */ - DR_REG_V46, /* DR_REG_F13 */ - DR_REG_V47, /* DR_REG_F14 */ - DR_REG_V48, /* DR_REG_F15 */ - DR_REG_V49, /* DR_REG_F16 */ - DR_REG_V50, /* DR_REG_F17 */ - DR_REG_V51, /* DR_REG_F18 */ - DR_REG_V52, /* DR_REG_F19 */ - DR_REG_V53, /* DR_REG_F20 */ - DR_REG_V54, /* DR_REG_F21 */ - DR_REG_V55, /* DR_REG_F22 */ - DR_REG_V56, /* DR_REG_F23 */ - DR_REG_V57, /* DR_REG_F24 */ - DR_REG_V58, /* DR_REG_F25 */ - DR_REG_V59, /* DR_REG_F26 */ - DR_REG_V60, /* DR_REG_F27 */ - DR_REG_V61, /* DR_REG_F28 */ - DR_REG_V62, /* DR_REG_F29 */ - DR_REG_V63, /* DR_REG_F30 */ - DR_REG_V64, /* DR_REG_F31 */ - DR_REG_V65, /* DR_REG_FCSR */ + DR_REG_VIRT33, /* DR_REG_F0 */ + DR_REG_VIRT34, /* DR_REG_F1 */ + DR_REG_VIRT35, /* DR_REG_F2 */ + DR_REG_VIRT36, /* DR_REG_F3 */ + DR_REG_VIRT37, /* DR_REG_F4 */ + DR_REG_VIRT38, /* DR_REG_F5 */ + DR_REG_VIRT39, /* DR_REG_F6 */ + DR_REG_VIRT40, /* DR_REG_F7 */ + DR_REG_VIRT41, /* DR_REG_F8 */ + DR_REG_VIRT42, /* DR_REG_F9 */ + DR_REG_VIRT43, /* DR_REG_F10 */ + DR_REG_VIRT44, /* DR_REG_F11 */ + DR_REG_VIRT45, /* DR_REG_F12 */ + DR_REG_VIRT46, /* DR_REG_F13 */ + DR_REG_VIRT47, /* DR_REG_F14 */ + DR_REG_VIRT48, /* DR_REG_F15 */ + DR_REG_VIRT49, /* DR_REG_F16 */ + DR_REG_VIRT50, /* DR_REG_F17 */ + DR_REG_VIRT51, /* DR_REG_F18 */ + DR_REG_VIRT52, /* DR_REG_F19 */ + DR_REG_VIRT53, /* DR_REG_F20 */ + DR_REG_VIRT54, /* DR_REG_F21 */ + DR_REG_VIRT55, /* DR_REG_F22 */ + DR_REG_VIRT56, /* DR_REG_F23 */ + DR_REG_VIRT57, /* DR_REG_F24 */ + DR_REG_VIRT58, /* DR_REG_F25 */ + DR_REG_VIRT59, /* DR_REG_F26 */ + DR_REG_VIRT60, /* DR_REG_F27 */ + DR_REG_VIRT61, /* DR_REG_F28 */ + DR_REG_VIRT62, /* DR_REG_F29 */ + DR_REG_VIRT63, /* DR_REG_F30 */ + DR_REG_VIRT64, /* DR_REG_F31 */ + DR_REG_VIRT65, /* DR_REG_FCSR */ - DR_REG_V66, /* DR_REG_VR0 */ - DR_REG_V67, /* DR_REG_VR1 */ - DR_REG_V68, /* DR_REG_VR2 */ - DR_REG_V69, /* DR_REG_VR3 */ - DR_REG_V70, /* DR_REG_VR4 */ - DR_REG_V71, /* DR_REG_VR5 */ - DR_REG_V72, /* DR_REG_VR6 */ - DR_REG_V73, /* DR_REG_VR7 */ - DR_REG_V74, /* DR_REG_VR8 */ - DR_REG_V75, /* DR_REG_VR9 */ - DR_REG_V76, /* DR_REG_VR10 */ - DR_REG_V77, /* DR_REG_VR11 */ - DR_REG_V78, /* DR_REG_VR12 */ - DR_REG_V79, /* DR_REG_VR13 */ - DR_REG_V80, /* DR_REG_VR14 */ - DR_REG_V81, /* DR_REG_VR15 */ - DR_REG_V82, /* DR_REG_VR16 */ - DR_REG_V83, /* DR_REG_VR17 */ - DR_REG_V84, /* DR_REG_VR18 */ - DR_REG_V85, /* DR_REG_VR19 */ - DR_REG_V86, /* DR_REG_VR20 */ - DR_REG_V87, /* DR_REG_VR21 */ - DR_REG_V88, /* DR_REG_VR22 */ - DR_REG_V89, /* DR_REG_VR23 */ - DR_REG_V90, /* DR_REG_VR24 */ - DR_REG_V91, /* DR_REG_VR25 */ - DR_REG_V92, /* DR_REG_VR26 */ - DR_REG_V93, /* DR_REG_VR27 */ - DR_REG_V94, /* DR_REG_VR28 */ - DR_REG_V95, /* DR_REG_VR29 */ - DR_REG_V96, /* DR_REG_VR30 */ - DR_REG_V97, /* DR_REG_VR31 */ + DR_REG_VIRT66, /* DR_REG_VR0 */ + DR_REG_VIRT67, /* DR_REG_VR1 */ + DR_REG_VIRT68, /* DR_REG_VR2 */ + DR_REG_VIRT69, /* DR_REG_VR3 */ + DR_REG_VIRT70, /* DR_REG_VR4 */ + DR_REG_VIRT71, /* DR_REG_VR5 */ + DR_REG_VIRT72, /* DR_REG_VR6 */ + DR_REG_VIRT73, /* DR_REG_VR7 */ + DR_REG_VIRT74, /* DR_REG_VR8 */ + DR_REG_VIRT75, /* DR_REG_VR9 */ + DR_REG_VIRT76, /* DR_REG_VR10 */ + DR_REG_VIRT77, /* DR_REG_VR11 */ + DR_REG_VIRT78, /* DR_REG_VR12 */ + DR_REG_VIRT79, /* DR_REG_VR13 */ + DR_REG_VIRT80, /* DR_REG_VR14 */ + DR_REG_VIRT81, /* DR_REG_VR15 */ + DR_REG_VIRT82, /* DR_REG_VR16 */ + DR_REG_VIRT83, /* DR_REG_VR17 */ + DR_REG_VIRT84, /* DR_REG_VR18 */ + DR_REG_VIRT85, /* DR_REG_VR19 */ + DR_REG_VIRT86, /* DR_REG_VR20 */ + DR_REG_VIRT87, /* DR_REG_VR21 */ + DR_REG_VIRT88, /* DR_REG_VR22 */ + DR_REG_VIRT89, /* DR_REG_VR23 */ + DR_REG_VIRT90, /* DR_REG_VR24 */ + DR_REG_VIRT91, /* DR_REG_VR25 */ + DR_REG_VIRT92, /* DR_REG_VR26 */ + DR_REG_VIRT93, /* DR_REG_VR27 */ + DR_REG_VIRT94, /* DR_REG_VR28 */ + DR_REG_VIRT95, /* DR_REG_VR29 */ + DR_REG_VIRT96, /* DR_REG_VR30 */ + DR_REG_VIRT97, /* DR_REG_VR31 */ }; #ifdef DEBUG diff --git a/core/ir/x86/encode.c b/core/ir/x86/encode.c index 1ef345f1146..a30b5284a9b 100644 --- a/core/ir/x86/encode.c +++ b/core/ir/x86/encode.c @@ -242,225 +242,225 @@ const reg_id_t dr_reg_fixer[] = { */ const reg_id_t d_r_reg_id_to_virtual[] = { DR_REG_NULL, /* DR_REG_NULL */ - DR_REG_V0, /* DR_REG_RAX */ - DR_REG_V1, /* DR_REG_RCX */ - DR_REG_V2, /* DR_REG_RDX */ - DR_REG_V3, /* DR_REG_RBX */ - DR_REG_V4, /* DR_REG_RSP */ - DR_REG_V5, /* DR_REG_RBP */ - DR_REG_V6, /* DR_REG_RSI */ - DR_REG_V7, /* DR_REG_RDI */ - DR_REG_V8, /* DR_REG_R8 */ - DR_REG_V9, /* DR_REG_R9 */ - DR_REG_V10, /* DR_REG_R10 */ - DR_REG_V11, /* DR_REG_R11 */ - DR_REG_V12, /* DR_REG_R12 */ - DR_REG_V13, /* DR_REG_R13 */ - DR_REG_V14, /* DR_REG_R14 */ - DR_REG_V15, /* DR_REG_R15 */ - DR_REG_V0, /* DR_REG_EAX */ - DR_REG_V1, /* DR_REG_ECX */ - DR_REG_V2, /* DR_REG_EDX */ - DR_REG_V3, /* DR_REG_EBX */ - DR_REG_V4, /* DR_REG_ESP */ - DR_REG_V5, /* DR_REG_EBP */ - DR_REG_V6, /* DR_REG_ESI */ - DR_REG_V7, /* DR_REG_EDI */ - DR_REG_V8, /* DR_REG_R8D */ - DR_REG_V9, /* DR_REG_R9D */ - DR_REG_V10, /* DR_REG_R10D */ - DR_REG_V11, /* DR_REG_R11D */ - DR_REG_V12, /* DR_REG_R12D */ - DR_REG_V13, /* DR_REG_R13D */ - DR_REG_V14, /* DR_REG_R14D */ - DR_REG_V15, /* DR_REG_R15D */ - DR_REG_V0, /* DR_REG_AX */ - DR_REG_V1, /* DR_REG_CX */ - DR_REG_V2, /* DR_REG_DX */ - DR_REG_V3, /* DR_REG_BX */ - DR_REG_V4, /* DR_REG_SP */ - DR_REG_V5, /* DR_REG_BP */ - DR_REG_V6, /* DR_REG_SI */ - DR_REG_V7, /* DR_REG_DI */ - DR_REG_V8, /* DR_REG_R8W */ - DR_REG_V9, /* DR_REG_R9W */ - DR_REG_V10, /* DR_REG_R10W */ - DR_REG_V11, /* DR_REG_R11W */ - DR_REG_V12, /* DR_REG_R12W */ - DR_REG_V13, /* DR_REG_R13W */ - DR_REG_V14, /* DR_REG_R14W */ - DR_REG_V15, /* DR_REG_R15W */ - DR_REG_V0, /* DR_REG_AL */ - DR_REG_V1, /* DR_REG_CL */ - DR_REG_V2, /* DR_REG_DL */ - DR_REG_V3, /* DR_REG_BL */ - DR_REG_V0, /* DR_REG_AH */ - DR_REG_V1, /* DR_REG_CH */ - DR_REG_V2, /* DR_REG_DH */ - DR_REG_V3, /* DR_REG_BH */ - DR_REG_V8, /* DR_REG_R8L */ - DR_REG_V9, /* DR_REG_R9L */ - DR_REG_V10, /* DR_REG_R10L */ - DR_REG_V11, /* DR_REG_R11L */ - DR_REG_V12, /* DR_REG_R12L */ - DR_REG_V13, /* DR_REG_R13L */ - DR_REG_V14, /* DR_REG_R14L */ - DR_REG_V15, /* DR_REG_R15L */ - DR_REG_V4, /* DR_REG_SPL */ - DR_REG_V5, /* DR_REG_BPL */ - DR_REG_V6, /* DR_REG_SIL */ - DR_REG_V7, /* DR_REG_DIL */ - DR_REG_V16, /* DR_REG_MM0 */ - DR_REG_V17, /* DR_REG_MM1 */ - DR_REG_V18, /* DR_REG_MM2 */ - DR_REG_V19, /* DR_REG_MM3 */ - DR_REG_V20, /* DR_REG_MM4 */ - DR_REG_V21, /* DR_REG_MM5 */ - DR_REG_V22, /* DR_REG_MM6 */ - DR_REG_V23, /* DR_REG_MM7 */ - DR_REG_V70, /* DR_REG_XMM0 */ - DR_REG_V71, /* DR_REG_XMM1 */ - DR_REG_V72, /* DR_REG_XMM2 */ - DR_REG_V73, /* DR_REG_XMM3 */ - DR_REG_V74, /* DR_REG_XMM4 */ - DR_REG_V75, /* DR_REG_XMM5 */ - DR_REG_V76, /* DR_REG_XMM6 */ - DR_REG_V77, /* DR_REG_XMM7 */ - DR_REG_V78, /* DR_REG_XMM8 */ - DR_REG_V79, /* DR_REG_XMM9 */ - DR_REG_V80, /* DR_REG_XMM10 */ - DR_REG_V81, /* DR_REG_XMM11 */ - DR_REG_V82, /* DR_REG_XMM12 */ - DR_REG_V83, /* DR_REG_XMM13 */ - DR_REG_V84, /* DR_REG_XMM14 */ - DR_REG_V85, /* DR_REG_XMM15 */ - DR_REG_V86, /* DR_REG_XMM16 */ - DR_REG_V87, /* DR_REG_XMM17 */ - DR_REG_V88, /* DR_REG_XMM18 */ - DR_REG_V89, /* DR_REG_XMM19 */ - DR_REG_V90, /* DR_REG_XMM20 */ - DR_REG_V91, /* DR_REG_XMM21 */ - DR_REG_V92, /* DR_REG_XMM22 */ - DR_REG_V93, /* DR_REG_XMM23 */ - DR_REG_V94, /* DR_REG_XMM24 */ - DR_REG_V95, /* DR_REG_XMM25 */ - DR_REG_V96, /* DR_REG_XMM26 */ - DR_REG_V97, /* DR_REG_XMM27 */ - DR_REG_V98, /* DR_REG_XMM28 */ - DR_REG_V99, /* DR_REG_XMM29 */ - DR_REG_V100, /* DR_REG_XMM30 */ - DR_REG_V101, /* DR_REG_XMM31 */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_VIRT0, /* DR_REG_RAX */ + DR_REG_VIRT1, /* DR_REG_RCX */ + DR_REG_VIRT2, /* DR_REG_RDX */ + DR_REG_VIRT3, /* DR_REG_RBX */ + DR_REG_VIRT4, /* DR_REG_RSP */ + DR_REG_VIRT5, /* DR_REG_RBP */ + DR_REG_VIRT6, /* DR_REG_RSI */ + DR_REG_VIRT7, /* DR_REG_RDI */ + DR_REG_VIRT8, /* DR_REG_R8 */ + DR_REG_VIRT9, /* DR_REG_R9 */ + DR_REG_VIRT10, /* DR_REG_R10 */ + DR_REG_VIRT11, /* DR_REG_R11 */ + DR_REG_VIRT12, /* DR_REG_R12 */ + DR_REG_VIRT13, /* DR_REG_R13 */ + DR_REG_VIRT14, /* DR_REG_R14 */ + DR_REG_VIRT15, /* DR_REG_R15 */ + DR_REG_VIRT0, /* DR_REG_EAX */ + DR_REG_VIRT1, /* DR_REG_ECX */ + DR_REG_VIRT2, /* DR_REG_EDX */ + DR_REG_VIRT3, /* DR_REG_EBX */ + DR_REG_VIRT4, /* DR_REG_ESP */ + DR_REG_VIRT5, /* DR_REG_EBP */ + DR_REG_VIRT6, /* DR_REG_ESI */ + DR_REG_VIRT7, /* DR_REG_EDI */ + DR_REG_VIRT8, /* DR_REG_R8D */ + DR_REG_VIRT9, /* DR_REG_R9D */ + DR_REG_VIRT10, /* DR_REG_R10D */ + DR_REG_VIRT11, /* DR_REG_R11D */ + DR_REG_VIRT12, /* DR_REG_R12D */ + DR_REG_VIRT13, /* DR_REG_R13D */ + DR_REG_VIRT14, /* DR_REG_R14D */ + DR_REG_VIRT15, /* DR_REG_R15D */ + DR_REG_VIRT0, /* DR_REG_AX */ + DR_REG_VIRT1, /* DR_REG_CX */ + DR_REG_VIRT2, /* DR_REG_DX */ + DR_REG_VIRT3, /* DR_REG_BX */ + DR_REG_VIRT4, /* DR_REG_SP */ + DR_REG_VIRT5, /* DR_REG_BP */ + DR_REG_VIRT6, /* DR_REG_SI */ + DR_REG_VIRT7, /* DR_REG_DI */ + DR_REG_VIRT8, /* DR_REG_R8W */ + DR_REG_VIRT9, /* DR_REG_R9W */ + DR_REG_VIRT10, /* DR_REG_R10W */ + DR_REG_VIRT11, /* DR_REG_R11W */ + DR_REG_VIRT12, /* DR_REG_R12W */ + DR_REG_VIRT13, /* DR_REG_R13W */ + DR_REG_VIRT14, /* DR_REG_R14W */ + DR_REG_VIRT15, /* DR_REG_R15W */ + DR_REG_VIRT0, /* DR_REG_AL */ + DR_REG_VIRT1, /* DR_REG_CL */ + DR_REG_VIRT2, /* DR_REG_DL */ + DR_REG_VIRT3, /* DR_REG_BL */ + DR_REG_VIRT0, /* DR_REG_AH */ + DR_REG_VIRT1, /* DR_REG_CH */ + DR_REG_VIRT2, /* DR_REG_DH */ + DR_REG_VIRT3, /* DR_REG_BH */ + DR_REG_VIRT8, /* DR_REG_R8L */ + DR_REG_VIRT9, /* DR_REG_R9L */ + DR_REG_VIRT10, /* DR_REG_R10L */ + DR_REG_VIRT11, /* DR_REG_R11L */ + DR_REG_VIRT12, /* DR_REG_R12L */ + DR_REG_VIRT13, /* DR_REG_R13L */ + DR_REG_VIRT14, /* DR_REG_R14L */ + DR_REG_VIRT15, /* DR_REG_R15L */ + DR_REG_VIRT4, /* DR_REG_SPL */ + DR_REG_VIRT5, /* DR_REG_BPL */ + DR_REG_VIRT6, /* DR_REG_SIL */ + DR_REG_VIRT7, /* DR_REG_DIL */ + DR_REG_VIRT16, /* DR_REG_MM0 */ + DR_REG_VIRT17, /* DR_REG_MM1 */ + DR_REG_VIRT18, /* DR_REG_MM2 */ + DR_REG_VIRT19, /* DR_REG_MM3 */ + DR_REG_VIRT20, /* DR_REG_MM4 */ + DR_REG_VIRT21, /* DR_REG_MM5 */ + DR_REG_VIRT22, /* DR_REG_MM6 */ + DR_REG_VIRT23, /* DR_REG_MM7 */ + DR_REG_VIRT70, /* DR_REG_XMM0 */ + DR_REG_VIRT71, /* DR_REG_XMM1 */ + DR_REG_VIRT72, /* DR_REG_XMM2 */ + DR_REG_VIRT73, /* DR_REG_XMM3 */ + DR_REG_VIRT74, /* DR_REG_XMM4 */ + DR_REG_VIRT75, /* DR_REG_XMM5 */ + DR_REG_VIRT76, /* DR_REG_XMM6 */ + DR_REG_VIRT77, /* DR_REG_XMM7 */ + DR_REG_VIRT78, /* DR_REG_XMM8 */ + DR_REG_VIRT79, /* DR_REG_XMM9 */ + DR_REG_VIRT80, /* DR_REG_XMM10 */ + DR_REG_VIRT81, /* DR_REG_XMM11 */ + DR_REG_VIRT82, /* DR_REG_XMM12 */ + DR_REG_VIRT83, /* DR_REG_XMM13 */ + DR_REG_VIRT84, /* DR_REG_XMM14 */ + DR_REG_VIRT85, /* DR_REG_XMM15 */ + DR_REG_VIRT86, /* DR_REG_XMM16 */ + DR_REG_VIRT87, /* DR_REG_XMM17 */ + DR_REG_VIRT88, /* DR_REG_XMM18 */ + DR_REG_VIRT89, /* DR_REG_XMM19 */ + DR_REG_VIRT90, /* DR_REG_XMM20 */ + DR_REG_VIRT91, /* DR_REG_XMM21 */ + DR_REG_VIRT92, /* DR_REG_XMM22 */ + DR_REG_VIRT93, /* DR_REG_XMM23 */ + DR_REG_VIRT94, /* DR_REG_XMM24 */ + DR_REG_VIRT95, /* DR_REG_XMM25 */ + DR_REG_VIRT96, /* DR_REG_XMM26 */ + DR_REG_VIRT97, /* DR_REG_XMM27 */ + DR_REG_VIRT98, /* DR_REG_XMM28 */ + DR_REG_VIRT99, /* DR_REG_XMM29 */ + DR_REG_VIRT100, /* DR_REG_XMM30 */ + DR_REG_VIRT101, /* DR_REG_XMM31 */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ + DR_REG_INVALID, /* DR_REG_INVALID */ DR_REG_INVALID, /* DR_REG_INVALID */ DR_REG_INVALID, /* DR_REG_INVALID */ DR_REG_INVALID, /* DR_REG_INVALID */ DR_REG_INVALID, /* DR_REG_INVALID */ DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_V24, /* DR_REG_ST0 */ - DR_REG_V25, /* DR_REG_ST1 */ - DR_REG_V26, /* DR_REG_ST2 */ - DR_REG_V27, /* DR_REG_ST3 */ - DR_REG_V28, /* DR_REG_ST4 */ - DR_REG_V29, /* DR_REG_ST5 */ - DR_REG_V30, /* DR_REG_ST6 */ - DR_REG_V31, /* DR_REG_ST7 */ - DR_REG_V32, /* DR_REG_ES */ - DR_REG_V33, /* DR_REG_CS */ - DR_REG_V34, /* DR_REG_SS */ - DR_REG_V35, /* DR_REG_DS */ - DR_REG_V36, /* DR_REG_FS */ - DR_REG_V37, /* DR_REG_GS */ - DR_REG_V38, /* DR_REG_DR0 */ - DR_REG_V39, /* DR_REG_DR1 */ - DR_REG_V40, /* DR_REG_DR2 */ - DR_REG_V41, /* DR_REG_DR3 */ - DR_REG_V42, /* DR_REG_DR4 */ - DR_REG_V43, /* DR_REG_DR5 */ - DR_REG_V44, /* DR_REG_DR6 */ - DR_REG_V45, /* DR_REG_DR7 */ - DR_REG_V46, /* DR_REG_DR8 */ - DR_REG_V47, /* DR_REG_DR9 */ - DR_REG_V48, /* DR_REG_DR10 */ - DR_REG_V49, /* DR_REG_DR11 */ - DR_REG_V50, /* DR_REG_DR12 */ - DR_REG_V51, /* DR_REG_DR13 */ - DR_REG_V52, /* DR_REG_DR14 */ - DR_REG_V53, /* DR_REG_DR15 */ - DR_REG_V54, /* DR_REG_CR0 */ - DR_REG_V55, /* DR_REG_CR1 */ - DR_REG_V56, /* DR_REG_CR2 */ - DR_REG_V57, /* DR_REG_CR3 */ - DR_REG_V58, /* DR_REG_CR4 */ - DR_REG_V59, /* DR_REG_CR5 */ - DR_REG_V60, /* DR_REG_CR6 */ - DR_REG_V61, /* DR_REG_CR7 */ - DR_REG_V62, /* DR_REG_CR8 */ - DR_REG_V63, /* DR_REG_CR9 */ - DR_REG_V64, /* DR_REG_CR10 */ - DR_REG_V65, /* DR_REG_CR11 */ - DR_REG_V66, /* DR_REG_CR12 */ - DR_REG_V67, /* DR_REG_CR13 */ - DR_REG_V68, /* DR_REG_CR14 */ - DR_REG_V69, /* DR_REG_CR15 */ + DR_REG_VIRT24, /* DR_REG_ST0 */ + DR_REG_VIRT25, /* DR_REG_ST1 */ + DR_REG_VIRT26, /* DR_REG_ST2 */ + DR_REG_VIRT27, /* DR_REG_ST3 */ + DR_REG_VIRT28, /* DR_REG_ST4 */ + DR_REG_VIRT29, /* DR_REG_ST5 */ + DR_REG_VIRT30, /* DR_REG_ST6 */ + DR_REG_VIRT31, /* DR_REG_ST7 */ + DR_REG_VIRT32, /* DR_REG_ES */ + DR_REG_VIRT33, /* DR_REG_CS */ + DR_REG_VIRT34, /* DR_REG_SS */ + DR_REG_VIRT35, /* DR_REG_DS */ + DR_REG_VIRT36, /* DR_REG_FS */ + DR_REG_VIRT37, /* DR_REG_GS */ + DR_REG_VIRT38, /* DR_REG_DR0 */ + DR_REG_VIRT39, /* DR_REG_DR1 */ + DR_REG_VIRT40, /* DR_REG_DR2 */ + DR_REG_VIRT41, /* DR_REG_DR3 */ + DR_REG_VIRT42, /* DR_REG_DR4 */ + DR_REG_VIRT43, /* DR_REG_DR5 */ + DR_REG_VIRT44, /* DR_REG_DR6 */ + DR_REG_VIRT45, /* DR_REG_DR7 */ + DR_REG_VIRT46, /* DR_REG_DR8 */ + DR_REG_VIRT47, /* DR_REG_DR9 */ + DR_REG_VIRT48, /* DR_REG_DR10 */ + DR_REG_VIRT49, /* DR_REG_DR11 */ + DR_REG_VIRT50, /* DR_REG_DR12 */ + DR_REG_VIRT51, /* DR_REG_DR13 */ + DR_REG_VIRT52, /* DR_REG_DR14 */ + DR_REG_VIRT53, /* DR_REG_DR15 */ + DR_REG_VIRT54, /* DR_REG_CR0 */ + DR_REG_VIRT55, /* DR_REG_CR1 */ + DR_REG_VIRT56, /* DR_REG_CR2 */ + DR_REG_VIRT57, /* DR_REG_CR3 */ + DR_REG_VIRT58, /* DR_REG_CR4 */ + DR_REG_VIRT59, /* DR_REG_CR5 */ + DR_REG_VIRT60, /* DR_REG_CR6 */ + DR_REG_VIRT61, /* DR_REG_CR7 */ + DR_REG_VIRT62, /* DR_REG_CR8 */ + DR_REG_VIRT63, /* DR_REG_CR9 */ + DR_REG_VIRT64, /* DR_REG_CR10 */ + DR_REG_VIRT65, /* DR_REG_CR11 */ + DR_REG_VIRT66, /* DR_REG_CR12 */ + DR_REG_VIRT67, /* DR_REG_CR13 */ + DR_REG_VIRT68, /* DR_REG_CR14 */ + DR_REG_VIRT69, /* DR_REG_CR15 */ DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_V70, /* DR_REG_YMM0 */ - DR_REG_V71, /* DR_REG_YMM1 */ - DR_REG_V72, /* DR_REG_YMM2 */ - DR_REG_V73, /* DR_REG_YMM3 */ - DR_REG_V74, /* DR_REG_YMM4 */ - DR_REG_V75, /* DR_REG_YMM5 */ - DR_REG_V76, /* DR_REG_YMM6 */ - DR_REG_V77, /* DR_REG_YMM7 */ - DR_REG_V78, /* DR_REG_YMM8 */ - DR_REG_V79, /* DR_REG_YMM9 */ - DR_REG_V80, /* DR_REG_YMM10 */ - DR_REG_V81, /* DR_REG_YMM11 */ - DR_REG_V82, /* DR_REG_YMM12 */ - DR_REG_V83, /* DR_REG_YMM13 */ - DR_REG_V84, /* DR_REG_YMM14 */ - DR_REG_V85, /* DR_REG_YMM15 */ - DR_REG_V86, /* DR_REG_YMM16 */ - DR_REG_V87, /* DR_REG_YMM17 */ - DR_REG_V88, /* DR_REG_YMM18 */ - DR_REG_V89, /* DR_REG_YMM19 */ - DR_REG_V90, /* DR_REG_YMM20 */ - DR_REG_V91, /* DR_REG_YMM21 */ - DR_REG_V92, /* DR_REG_YMM22 */ - DR_REG_V93, /* DR_REG_YMM23 */ - DR_REG_V94, /* DR_REG_YMM24 */ - DR_REG_V95, /* DR_REG_YMM25 */ - DR_REG_V96, /* DR_REG_YMM26 */ - DR_REG_V97, /* DR_REG_YMM27 */ - DR_REG_V98, /* DR_REG_YMM28 */ - DR_REG_V99, /* DR_REG_YMM29 */ - DR_REG_V100, /* DR_REG_YMM30 */ - DR_REG_V101, /* DR_REG_YMM31 */ + DR_REG_VIRT70, /* DR_REG_YMM0 */ + DR_REG_VIRT71, /* DR_REG_YMM1 */ + DR_REG_VIRT72, /* DR_REG_YMM2 */ + DR_REG_VIRT73, /* DR_REG_YMM3 */ + DR_REG_VIRT74, /* DR_REG_YMM4 */ + DR_REG_VIRT75, /* DR_REG_YMM5 */ + DR_REG_VIRT76, /* DR_REG_YMM6 */ + DR_REG_VIRT77, /* DR_REG_YMM7 */ + DR_REG_VIRT78, /* DR_REG_YMM8 */ + DR_REG_VIRT79, /* DR_REG_YMM9 */ + DR_REG_VIRT80, /* DR_REG_YMM10 */ + DR_REG_VIRT81, /* DR_REG_YMM11 */ + DR_REG_VIRT82, /* DR_REG_YMM12 */ + DR_REG_VIRT83, /* DR_REG_YMM13 */ + DR_REG_VIRT84, /* DR_REG_YMM14 */ + DR_REG_VIRT85, /* DR_REG_YMM15 */ + DR_REG_VIRT86, /* DR_REG_YMM16 */ + DR_REG_VIRT87, /* DR_REG_YMM17 */ + DR_REG_VIRT88, /* DR_REG_YMM18 */ + DR_REG_VIRT89, /* DR_REG_YMM19 */ + DR_REG_VIRT90, /* DR_REG_YMM20 */ + DR_REG_VIRT91, /* DR_REG_YMM21 */ + DR_REG_VIRT92, /* DR_REG_YMM22 */ + DR_REG_VIRT93, /* DR_REG_YMM23 */ + DR_REG_VIRT94, /* DR_REG_YMM24 */ + DR_REG_VIRT95, /* DR_REG_YMM25 */ + DR_REG_VIRT96, /* DR_REG_YMM26 */ + DR_REG_VIRT97, /* DR_REG_YMM27 */ + DR_REG_VIRT98, /* DR_REG_YMM28 */ + DR_REG_VIRT99, /* DR_REG_YMM29 */ + DR_REG_VIRT100, /* DR_REG_YMM30 */ + DR_REG_VIRT101, /* DR_REG_YMM31 */ DR_REG_INVALID, /* DR_REG_INVALID */ DR_REG_INVALID, /* DR_REG_INVALID */ DR_REG_INVALID, /* DR_REG_INVALID */ @@ -493,38 +493,38 @@ const reg_id_t d_r_reg_id_to_virtual[] = { DR_REG_INVALID, /* DR_REG_INVALID */ DR_REG_INVALID, /* DR_REG_INVALID */ DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_V70, /* DR_REG_ZMM0 */ - DR_REG_V71, /* DR_REG_ZMM1 */ - DR_REG_V72, /* DR_REG_ZMM2 */ - DR_REG_V73, /* DR_REG_ZMM3 */ - DR_REG_V74, /* DR_REG_ZMM4 */ - DR_REG_V75, /* DR_REG_ZMM5 */ - DR_REG_V76, /* DR_REG_ZMM6 */ - DR_REG_V77, /* DR_REG_ZMM7 */ - DR_REG_V78, /* DR_REG_ZMM8 */ - DR_REG_V79, /* DR_REG_ZMM9 */ - DR_REG_V80, /* DR_REG_ZMM10 */ - DR_REG_V81, /* DR_REG_ZMM11 */ - DR_REG_V82, /* DR_REG_ZMM12 */ - DR_REG_V83, /* DR_REG_ZMM13 */ - DR_REG_V84, /* DR_REG_ZMM14 */ - DR_REG_V85, /* DR_REG_ZMM15 */ - DR_REG_V86, /* DR_REG_ZMM16 */ - DR_REG_V87, /* DR_REG_ZMM17 */ - DR_REG_V88, /* DR_REG_ZMM18 */ - DR_REG_V89, /* DR_REG_ZMM19 */ - DR_REG_V90, /* DR_REG_ZMM20 */ - DR_REG_V91, /* DR_REG_ZMM21 */ - DR_REG_V92, /* DR_REG_ZMM22 */ - DR_REG_V93, /* DR_REG_ZMM23 */ - DR_REG_V94, /* DR_REG_ZMM24 */ - DR_REG_V95, /* DR_REG_ZMM25 */ - DR_REG_V96, /* DR_REG_ZMM26 */ - DR_REG_V97, /* DR_REG_ZMM27 */ - DR_REG_V98, /* DR_REG_ZMM28 */ - DR_REG_V99, /* DR_REG_ZMM29 */ - DR_REG_V100, /* DR_REG_ZMM30 */ - DR_REG_V101, /* DR_REG_ZMM31 */ + DR_REG_VIRT70, /* DR_REG_ZMM0 */ + DR_REG_VIRT71, /* DR_REG_ZMM1 */ + DR_REG_VIRT72, /* DR_REG_ZMM2 */ + DR_REG_VIRT73, /* DR_REG_ZMM3 */ + DR_REG_VIRT74, /* DR_REG_ZMM4 */ + DR_REG_VIRT75, /* DR_REG_ZMM5 */ + DR_REG_VIRT76, /* DR_REG_ZMM6 */ + DR_REG_VIRT77, /* DR_REG_ZMM7 */ + DR_REG_VIRT78, /* DR_REG_ZMM8 */ + DR_REG_VIRT79, /* DR_REG_ZMM9 */ + DR_REG_VIRT80, /* DR_REG_ZMM10 */ + DR_REG_VIRT81, /* DR_REG_ZMM11 */ + DR_REG_VIRT82, /* DR_REG_ZMM12 */ + DR_REG_VIRT83, /* DR_REG_ZMM13 */ + DR_REG_VIRT84, /* DR_REG_ZMM14 */ + DR_REG_VIRT85, /* DR_REG_ZMM15 */ + DR_REG_VIRT86, /* DR_REG_ZMM16 */ + DR_REG_VIRT87, /* DR_REG_ZMM17 */ + DR_REG_VIRT88, /* DR_REG_ZMM18 */ + DR_REG_VIRT89, /* DR_REG_ZMM19 */ + DR_REG_VIRT90, /* DR_REG_ZMM20 */ + DR_REG_VIRT91, /* DR_REG_ZMM21 */ + DR_REG_VIRT92, /* DR_REG_ZMM22 */ + DR_REG_VIRT93, /* DR_REG_ZMM23 */ + DR_REG_VIRT94, /* DR_REG_ZMM24 */ + DR_REG_VIRT95, /* DR_REG_ZMM25 */ + DR_REG_VIRT96, /* DR_REG_ZMM26 */ + DR_REG_VIRT97, /* DR_REG_ZMM27 */ + DR_REG_VIRT98, /* DR_REG_ZMM28 */ + DR_REG_VIRT99, /* DR_REG_ZMM29 */ + DR_REG_VIRT100, /* DR_REG_ZMM30 */ + DR_REG_VIRT101, /* DR_REG_ZMM31 */ DR_REG_INVALID, /* DR_REG_INVALID */ DR_REG_INVALID, /* DR_REG_INVALID */ DR_REG_INVALID, /* DR_REG_INVALID */ @@ -557,14 +557,14 @@ const reg_id_t d_r_reg_id_to_virtual[] = { DR_REG_INVALID, /* DR_REG_INVALID */ DR_REG_INVALID, /* DR_REG_INVALID */ DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_V102, /* DR_REG_K0 */ - DR_REG_V103, /* DR_REG_K1 */ - DR_REG_V104, /* DR_REG_K2 */ - DR_REG_V105, /* DR_REG_K3 */ - DR_REG_V106, /* DR_REG_K4 */ - DR_REG_V107, /* DR_REG_K5 */ - DR_REG_V108, /* DR_REG_K6 */ - DR_REG_V109, /* DR_REG_K7 */ + DR_REG_VIRT102, /* DR_REG_K0 */ + DR_REG_VIRT103, /* DR_REG_K1 */ + DR_REG_VIRT104, /* DR_REG_K2 */ + DR_REG_VIRT105, /* DR_REG_K3 */ + DR_REG_VIRT106, /* DR_REG_K4 */ + DR_REG_VIRT107, /* DR_REG_K5 */ + DR_REG_VIRT108, /* DR_REG_K6 */ + DR_REG_VIRT109, /* DR_REG_K7 */ DR_REG_INVALID, /* DR_REG_INVALID */ DR_REG_INVALID, /* DR_REG_INVALID */ DR_REG_INVALID, /* DR_REG_INVALID */ @@ -573,10 +573,10 @@ const reg_id_t d_r_reg_id_to_virtual[] = { DR_REG_INVALID, /* DR_REG_INVALID */ DR_REG_INVALID, /* DR_REG_INVALID */ DR_REG_INVALID, /* DR_REG_INVALID */ - DR_REG_V110, /* DR_REG_BND0 */ - DR_REG_V111, /* DR_REG_BND1 */ - DR_REG_V112, /* DR_REG_BND2 */ - DR_REG_V113, /* DR_REG_BND3 */ + DR_REG_VIRT110, /* DR_REG_BND0 */ + DR_REG_VIRT111, /* DR_REG_BND1 */ + DR_REG_VIRT112, /* DR_REG_BND2 */ + DR_REG_VIRT113, /* DR_REG_BND3 */ }; #ifdef DEBUG diff --git a/suite/tests/api/ir_regdeps.c b/suite/tests/api/ir_regdeps.c index 99a7ecd2bf7..739336840db 100644 --- a/suite/tests/api/ir_regdeps.c +++ b/suite/tests/api/ir_regdeps.c @@ -430,23 +430,23 @@ test_virtual_register_names(void *dc) dr_set_isa_mode(dc, DR_ISA_REGDEPS, &old_isa_mode); const char rv0[] = "rv0"; - ASSERT(strncmp(get_register_name(DR_REG_V0), rv0, sizeof(rv0)) == 0); + ASSERT(strncmp(get_register_name(DR_REG_VIRT0), rv0, sizeof(rv0)) == 0); const char rv1[] = "rv1"; - ASSERT(strncmp(get_register_name(DR_REG_V1), rv1, sizeof(rv1)) == 0); + ASSERT(strncmp(get_register_name(DR_REG_VIRT1), rv1, sizeof(rv1)) == 0); const char rv187[] = "rv187"; - ASSERT(strncmp(get_register_name(DR_REG_V187), rv187, sizeof(rv187)) == 0); + ASSERT(strncmp(get_register_name(DR_REG_VIRT187), rv187, sizeof(rv187)) == 0); const char rv252[] = "rv252"; - ASSERT(strncmp(get_register_name(DR_REG_V252), rv252, sizeof(rv252)) == 0); + ASSERT(strncmp(get_register_name(DR_REG_VIRT252), rv252, sizeof(rv252)) == 0); /* Restore previous ISA mode. */ dr_set_isa_mode(dc, old_isa_mode, NULL); } -/* We can't compare DR_REG_V and DR_REG_ enum values directly because they belong to +/* We can't compare DR_REG_VIRT and DR_REG_ enum values directly because they belong to * different enums and we build with -Werror=enum-compare. So we use scopes and the * temporary variable reg_virtual. */ @@ -456,263 +456,263 @@ test_virtual_register_names(void *dc) ASSERT((reg_virtual != DR_REG_NULL) && (reg_virtual != DR_REG_INVALID)); \ } while (0); -/* We can't loop through DR_REG_V enums because we have a gap for value 187 +/* We can't loop through DR_REG_VIRT enums because we have a gap for value 187 * (== DR_REG_INVALID for x86), so we unroll the loop and compare every enum manually. */ -#define CHECK_VIRTUAL_REGISTER_IDS \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V0) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V1) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V2) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V3) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V4) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V5) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V6) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V7) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V8) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V9) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V10) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V11) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V12) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V13) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V14) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V15) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V16) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V17) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V18) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V19) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V20) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V21) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V22) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V23) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V24) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V25) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V26) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V27) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V28) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V29) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V30) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V31) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V32) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V33) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V34) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V35) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V36) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V37) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V38) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V39) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V40) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V41) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V42) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V43) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V44) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V45) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V46) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V47) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V48) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V49) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V50) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V51) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V52) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V53) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V54) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V55) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V56) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V57) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V58) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V59) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V60) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V61) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V62) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V63) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V64) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V65) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V66) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V67) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V68) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V69) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V70) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V71) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V72) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V73) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V74) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V75) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V76) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V77) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V78) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V79) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V80) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V81) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V82) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V83) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V84) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V85) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V86) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V87) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V88) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V89) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V90) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V91) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V92) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V93) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V94) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V95) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V96) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V97) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V98) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V99) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V100) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V101) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V102) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V103) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V104) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V105) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V106) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V107) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V108) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V109) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V110) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V111) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V112) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V113) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V114) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V115) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V116) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V117) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V118) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V119) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V120) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V121) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V122) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V123) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V124) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V125) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V126) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V127) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V128) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V129) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V130) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V131) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V132) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V133) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V134) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V135) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V136) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V137) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V138) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V139) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V140) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V141) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V142) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V143) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V144) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V145) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V146) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V147) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V148) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V149) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V150) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V151) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V152) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V153) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V154) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V155) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V156) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V157) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V158) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V159) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V160) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V161) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V162) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V163) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V164) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V165) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V166) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V167) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V168) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V169) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V170) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V171) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V172) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V173) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V174) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V175) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V176) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V177) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V178) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V179) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V180) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V181) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V182) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V183) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V184) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V185) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V186) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V187) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V188) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V189) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V190) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V191) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V192) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V193) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V194) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V195) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V196) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V197) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V198) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V199) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V200) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V201) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V202) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V203) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V204) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V205) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V206) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V207) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V208) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V209) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V210) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V211) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V212) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V213) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V214) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V215) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V216) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V217) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V218) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V219) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V220) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V221) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V222) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V223) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V224) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V225) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V226) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V227) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V228) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V229) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V230) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V231) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V232) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V233) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V234) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V235) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V236) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V237) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V238) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V239) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V240) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V241) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V242) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V243) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V244) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V245) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V246) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V247) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V248) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V249) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V250) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V251) \ - ASSERT_NOT_NULL_OR_INVALID(DR_REG_V252) +#define CHECK_VIRTUAL_REGISTER_IDS \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT0) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT1) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT2) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT3) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT4) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT5) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT6) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT7) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT8) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT9) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT10) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT11) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT12) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT13) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT14) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT15) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT16) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT17) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT18) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT19) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT20) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT21) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT22) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT23) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT24) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT25) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT26) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT27) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT28) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT29) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT30) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT31) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT32) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT33) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT34) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT35) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT36) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT37) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT38) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT39) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT40) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT41) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT42) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT43) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT44) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT45) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT46) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT47) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT48) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT49) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT50) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT51) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT52) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT53) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT54) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT55) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT56) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT57) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT58) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT59) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT60) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT61) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT62) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT63) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT64) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT65) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT66) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT67) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT68) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT69) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT70) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT71) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT72) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT73) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT74) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT75) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT76) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT77) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT78) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT79) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT80) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT81) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT82) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT83) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT84) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT85) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT86) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT87) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT88) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT89) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT90) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT91) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT92) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT93) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT94) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT95) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT96) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT97) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT98) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT99) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT100) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT101) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT102) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT103) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT104) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT105) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT106) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT107) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT108) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT109) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT110) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT111) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT112) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT113) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT114) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT115) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT116) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT117) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT118) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT119) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT120) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT121) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT122) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT123) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT124) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT125) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT126) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT127) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT128) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT129) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT130) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT131) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT132) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT133) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT134) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT135) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT136) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT137) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT138) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT139) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT140) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT141) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT142) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT143) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT144) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT145) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT146) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT147) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT148) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT149) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT150) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT151) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT152) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT153) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT154) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT155) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT156) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT157) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT158) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT159) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT160) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT161) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT162) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT163) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT164) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT165) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT166) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT167) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT168) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT169) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT170) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT171) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT172) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT173) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT174) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT175) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT176) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT177) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT178) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT179) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT180) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT181) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT182) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT183) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT184) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT185) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT186) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT187) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT188) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT189) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT190) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT191) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT192) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT193) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT194) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT195) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT196) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT197) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT198) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT199) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT200) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT201) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT202) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT203) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT204) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT205) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT206) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT207) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT208) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT209) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT210) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT211) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT212) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT213) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT214) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT215) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT216) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT217) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT218) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT219) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT220) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT221) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT222) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT223) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT224) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT225) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT226) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT227) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT228) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT229) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT230) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT231) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT232) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT233) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT234) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT235) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT236) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT237) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT238) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT239) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT240) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT241) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT242) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT243) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT244) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT245) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT246) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT247) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT248) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT249) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT250) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT251) \ + ASSERT_NOT_NULL_OR_INVALID(DR_REG_VIRT252) void check_virtual_register_enum_values(void)