@ -1232,9 +1232,10 @@ dcsr_csr_t::dcsr_csr_t(processor_t* const proc, const reg_t addr):
prv ( 0 ) ,
prv ( 0 ) ,
step ( false ) ,
step ( false ) ,
ebreakm ( false ) ,
ebreakm ( false ) ,
ebreakh ( false ) ,
ebreaks ( false ) ,
ebreaks ( false ) ,
ebreaku ( false ) ,
ebreaku ( false ) ,
ebreakvs ( false ) ,
ebreakvu ( false ) ,
halt ( false ) ,
halt ( false ) ,
v ( false ) ,
v ( false ) ,
cause ( 0 ) {
cause ( 0 ) {
@ -1250,9 +1251,10 @@ reg_t dcsr_csr_t::read() const noexcept {
reg_t result = 0 ;
reg_t result = 0 ;
result = set_field ( result , DCSR_XDEBUGVER , 1 ) ;
result = set_field ( result , DCSR_XDEBUGVER , 1 ) ;
result = set_field ( result , DCSR_EBREAKM , ebreakm ) ;
result = set_field ( result , DCSR_EBREAKM , ebreakm ) ;
result = set_field ( result , DCSR_EBREAKH , ebreakh ) ;
result = set_field ( result , DCSR_EBREAKS , ebreaks ) ;
result = set_field ( result , DCSR_EBREAKS , ebreaks ) ;
result = set_field ( result , DCSR_EBREAKU , ebreaku ) ;
result = set_field ( result , DCSR_EBREAKU , ebreaku ) ;
result = set_field ( result , CSR_DCSR_EBREAKVS , ebreakvs ) ;
result = set_field ( result , CSR_DCSR_EBREAKVU , ebreakvu ) ;
result = set_field ( result , DCSR_STOPCYCLE , 0 ) ;
result = set_field ( result , DCSR_STOPCYCLE , 0 ) ;
result = set_field ( result , DCSR_STOPTIME , 0 ) ;
result = set_field ( result , DCSR_STOPTIME , 0 ) ;
result = set_field ( result , DCSR_CAUSE , cause ) ;
result = set_field ( result , DCSR_CAUSE , cause ) ;
@ -1267,9 +1269,10 @@ bool dcsr_csr_t::unlogged_write(const reg_t val) noexcept {
step = get_field ( val , DCSR_STEP ) ;
step = get_field ( val , DCSR_STEP ) ;
// TODO: ndreset and fullreset
// TODO: ndreset and fullreset
ebreakm = get_field ( val , DCSR_EBREAKM ) ;
ebreakm = get_field ( val , DCSR_EBREAKM ) ;
ebreakh = get_field ( val , DCSR_EBREAKH ) ;
ebreaks = get_field ( val , DCSR_EBREAKS ) ;
ebreaks = get_field ( val , DCSR_EBREAKS ) ;
ebreaku = get_field ( val , DCSR_EBREAKU ) ;
ebreaku = get_field ( val , DCSR_EBREAKU ) ;
ebreakvs = get_field ( val , CSR_DCSR_EBREAKVS ) ;
ebreakvu = get_field ( val , CSR_DCSR_EBREAKVU ) ;
halt = get_field ( val , DCSR_HALT ) ;
halt = get_field ( val , DCSR_HALT ) ;
v = proc - > extension_enabled ( ' H ' ) ? get_field ( val , CSR_DCSR_V ) : false ;
v = proc - > extension_enabled ( ' H ' ) ? get_field ( val , CSR_DCSR_V ) : false ;
return true ;
return true ;