diff options
Diffstat (limited to 'isa/rv64si/sbreak.S')
-rw-r--r-- | isa/rv64si/sbreak.S | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/isa/rv64si/sbreak.S b/isa/rv64si/sbreak.S index 31efff8..8de8e15 100644 --- a/isa/rv64si/sbreak.S +++ b/isa/rv64si/sbreak.S @@ -35,6 +35,13 @@ do_break: stvec_handler: li t1, CAUSE_BREAKPOINT csrr t0, scause + # Check if CLIC mode + csrr t2, stvec + andi t2, t2, 2 + # Skip masking if non-CLIC mode + beqz t2, skip_mask + andi t0, t0, 255 +skip_mask: bne t0, t1, fail la t1, do_break csrr t0, sepc |