@@ -25,29 +25,19 @@ mapping clause assembly = RISCV_ZICBOM(cbop, rs1)
2525
2626val process_clean_inval : (xlenbits , xlenbits , bool , bool ) -> Retired effect {escape , rmem , rmemt , rreg , wmv , wmvt , wreg }
2727function process_clean_inval (vaddr , width , clean , inval ) = {
28- match ext_data_get_addr (zeros (), vaddr , Cbo (Data ), BYTE ) {
28+ match ext_data_get_addr (zeros (), vaddr , Read (Data ), BYTE ) {
2929 Ext_DataAddr_Error (e ) => { ext_handle_data_check_error (e ); RETIRE_FAIL },
3030 Ext_DataAddr_OK (vaddr ) => {
31- let data : option (ExceptionType ) = match translateAddr (vaddr , Cbo (Data )) {
32- TR_Address (paddr , _ ) => pmpCheck_xlen (paddr , width , Cbo (Data ), cur_privilege ),
31+ let data : option (ExceptionType ) = match translateAddr (vaddr , Read (Data )) {
32+ TR_Address (paddr , _ ) => pmpCheck_xlen (paddr , width , Read (Data ), cur_privilege ),
3333 TR_Failure (e , _ ) => Some (e )
3434 };
3535 match data {
3636 None () => RETIRE_SUCCESS ,
37- Some (de ) => {
38- let fetch : option (ExceptionType ) = match translateAddr (vaddr , Cbo (Fetch )) {
39- TR_Address (paddr , _ ) => pmpCheck_xlen (paddr , width , Cbo (Fetch ), cur_privilege ),
40- TR_Failure (e , _ ) => Some (e )
41- };
42- match fetch {
43- None () => RETIRE_SUCCESS ,
44- Some (fe ) =>
45- match (de , fe ) {
46- (E_SAMO_Access_Fault (), _ ) => { handle_mem_exception (vaddr , E_SAMO_Access_Fault ()); RETIRE_FAIL },
47- (_, E_SAMO_Access_Fault ()) => { handle_mem_exception (vaddr , E_SAMO_Access_Fault ()); RETIRE_FAIL },
48- (E_SAMO_Page_Fault (), _ ) => { handle_mem_exception (vaddr , E_SAMO_Page_Fault ()); RETIRE_FAIL },
49- (_, E_SAMO_Page_Fault ()) => { handle_mem_exception (vaddr , E_SAMO_Page_Fault ()); RETIRE_FAIL }
50- }
37+ Some (e ) => {
38+ match (e ) {
39+ E_Load_Access_Fault () => { handle_mem_exception (vaddr , E_SAMO_Access_Fault ()); RETIRE_FAIL },
40+ E_Load_Page_Fault () => { handle_mem_exception (vaddr , E_SAMO_Page_Fault ()); RETIRE_FAIL }
5141 }
5242 }
5343 }
0 commit comments