From 14410156b2d796dad0e439b9535057f1e4c5a13c Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Thu, 6 Oct 2022 14:31:07 -0700 Subject: Move uncommon-case fetch functionality into fetch_slow_path --- riscv/mmu.h | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) (limited to 'riscv/mmu.h') diff --git a/riscv/mmu.h b/riscv/mmu.h index 137b306..74c9a71 100644 --- a/riscv/mmu.h +++ b/riscv/mmu.h @@ -391,23 +391,7 @@ private: reg_t vpn = addr >> PGSHIFT; if (likely(tlb_insn_tag[vpn % TLB_ENTRIES] == vpn)) return tlb_data[vpn % TLB_ENTRIES]; - triggers::action_t action; - auto match = proc->TM.memory_access_match(&action, triggers::OPERATION_EXECUTE, addr, false); - if (match != triggers::MATCH_NONE) { - throw triggers::matched_t(triggers::OPERATION_EXECUTE, addr, 0, action); - } - tlb_entry_t result; - if (unlikely(tlb_insn_tag[vpn % TLB_ENTRIES] != (vpn | TLB_CHECK_TRIGGERS))) { - result = fetch_slow_path(addr); - } else { - result = tlb_data[vpn % TLB_ENTRIES]; - } - target_endian* ptr = (target_endian*)(result.host_offset + addr); - match = proc->TM.memory_access_match(&action, triggers::OPERATION_EXECUTE, addr, true, from_target(*ptr)); - if (match != triggers::MATCH_NONE) { - throw triggers::matched_t(triggers::OPERATION_EXECUTE, addr, from_target(*ptr), action); - } - return result; + return fetch_slow_path(addr); } inline const uint16_t* translate_insn_addr_to_host(reg_t addr) { -- cgit v1.1