@ -95,7 +95,7 @@ static RISCVException ctr(CPURISCVState *env, int csrno)
}
break ;
}
if ( riscv_cpu_is_32bit ( env ) ) {
if ( riscv_cpu_mxl ( env ) = = MXL_RV32 ) {
switch ( csrno ) {
case CSR_CYCLEH :
if ( ! get_field ( env - > hcounteren , COUNTEREN_CY ) & &
@ -130,7 +130,7 @@ static RISCVException ctr(CPURISCVState *env, int csrno)
static RISCVException ctr32 ( CPURISCVState * env , int csrno )
{
if ( ! riscv_cpu_is_32bit ( env ) ) {
if ( riscv_cpu_mxl ( env ) ! = MXL_RV32 ) {
return RISCV_EXCP_ILLEGAL_INST ;
}
@ -145,7 +145,7 @@ static RISCVException any(CPURISCVState *env, int csrno)
static RISCVException any32 ( CPURISCVState * env , int csrno )
{
if ( ! riscv_cpu_is_32bit ( env ) ) {
if ( riscv_cpu_mxl ( env ) ! = MXL_RV32 ) {
return RISCV_EXCP_ILLEGAL_INST ;
}
@ -180,7 +180,7 @@ static RISCVException hmode(CPURISCVState *env, int csrno)
static RISCVException hmode32 ( CPURISCVState * env , int csrno )
{
if ( ! riscv_cpu_is_32bit ( env ) ) {
if ( riscv_cpu_mxl ( env ) ! = MXL_RV32 ) {
if ( riscv_cpu_virt_enabled ( env ) ) {
return RISCV_EXCP_ILLEGAL_INST ;
} else {
@ -486,7 +486,7 @@ static RISCVException read_mstatus(CPURISCVState *env, int csrno,
static int validate_vm ( CPURISCVState * env , target_ulong vm )
{
if ( riscv_cpu_is_32bit ( env ) ) {
if ( riscv_cpu_mxl ( env ) = = MXL_RV32 ) {
return valid_vm_1_10_32 [ vm & 0xf ] ;
} else {
return valid_vm_1_10_64 [ vm & 0xf ] ;
@ -510,7 +510,7 @@ static RISCVException write_mstatus(CPURISCVState *env, int csrno,
MSTATUS_MPP | MSTATUS_MXR | MSTATUS_TVM | MSTATUS_TSR |
MSTATUS_TW ;
if ( ! riscv_cpu_is_32bit ( env ) ) {
if ( riscv_cpu_mxl ( env ) ! = MXL_RV32 ) {
/*
* RV32 : MPV and GVA are not in mstatus . The current plan is to
* add them to mstatush . For now , we just don ' t support it .
@ -522,7 +522,7 @@ static RISCVException write_mstatus(CPURISCVState *env, int csrno,
dirty = ( ( mstatus & MSTATUS_FS ) = = MSTATUS_FS ) |
( ( mstatus & MSTATUS_XS ) = = MSTATUS_XS ) ;
if ( riscv_cpu_is_32bit ( env ) ) {
if ( riscv_cpu_mxl ( env ) = = MXL_RV32 ) {
mstatus = set_field ( mstatus , MSTATUS32_SD , dirty ) ;
} else {
mstatus = set_field ( mstatus , MSTATUS64_SD , dirty ) ;
@ -795,7 +795,7 @@ static RISCVException read_sstatus(CPURISCVState *env, int csrno,
{
target_ulong mask = ( sstatus_v1_10_mask ) ;
if ( riscv_cpu_is_32bit ( env ) ) {
if ( riscv_cpu_mxl ( env ) = = MXL_RV32 ) {
mask | = SSTATUS32_SD ;
} else {
mask | = SSTATUS64_SD ;
@ -1006,7 +1006,7 @@ static RISCVException write_satp(CPURISCVState *env, int csrno,
return RISCV_EXCP_NONE ;
}
if ( riscv_cpu_is_32bit ( env ) ) {
if ( riscv_cpu_mxl ( env ) = = MXL_RV32 ) {
vm = validate_vm ( env , get_field ( val , SATP32_MODE ) ) ;
mask = ( val ^ env - > satp ) & ( SATP32_MODE | SATP32_ASID | SATP32_PPN ) ;
asid = ( val ^ env - > satp ) & SATP32_ASID ;
@ -1034,7 +1034,7 @@ static RISCVException read_hstatus(CPURISCVState *env, int csrno,
target_ulong * val )
{
* val = env - > hstatus ;
if ( ! riscv_cpu_is_32bit ( env ) ) {
if ( riscv_cpu_mxl ( env ) ! = MXL_RV32 ) {
/* We only support 64-bit VSXL */
* val = set_field ( * val , HSTATUS_VSXL , 2 ) ;
}
@ -1047,7 +1047,7 @@ static RISCVException write_hstatus(CPURISCVState *env, int csrno,
target_ulong val )
{
env - > hstatus = val ;
if ( ! riscv_cpu_is_32bit ( env ) & & get_field ( val , HSTATUS_VSXL ) ! = 2 ) {
if ( riscv_cpu_mxl ( env ) ! = MXL_RV32 & & get_field ( val , HSTATUS_VSXL ) ! = 2 ) {
qemu_log_mask ( LOG_UNIMP , " QEMU does not support mixed HSXLEN options. " ) ;
}
if ( get_field ( val , HSTATUS_VSBE ) ! = 0 ) {
@ -1215,7 +1215,7 @@ static RISCVException write_htimedelta(CPURISCVState *env, int csrno,
return RISCV_EXCP_ILLEGAL_INST ;
}
if ( riscv_cpu_is_32bit ( env ) ) {
if ( riscv_cpu_mxl ( env ) = = MXL_RV32 ) {
env - > htimedelta = deposit64 ( env - > htimedelta , 0 , 32 , ( uint64_t ) val ) ;
} else {
env - > htimedelta = val ;