The branch main has been updated by markj:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=75081b9ed8e67c8443551828f1b5ccf3d449b41b

commit 75081b9ed8e67c8443551828f1b5ccf3d449b41b
Author:     Christos Margiolis <[email protected]>
AuthorDate: 2023-04-20 16:24:03 +0000
Commit:     Mark Johnston <[email protected]>
CommitDate: 2023-04-20 17:35:57 +0000

    dtrace: use dtrace_instr_size() in the riscv dtrace_subr.c
    
    No functional change intended.
    
    Reviewed by:    mhorne, markj
    MFC after:      1 week
    Sponsored by:   The FreeBSD Foundation
    Differential Revision:  https://reviews.freebsd.org/D39652
---
 sys/cddl/dev/dtrace/riscv/dtrace_subr.c | 13 +++----------
 1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/sys/cddl/dev/dtrace/riscv/dtrace_subr.c 
b/sys/cddl/dev/dtrace/riscv/dtrace_subr.c
index 1717b118be7e..f42c073f94c9 100644
--- a/sys/cddl/dev/dtrace/riscv/dtrace_subr.c
+++ b/sys/cddl/dev/dtrace/riscv/dtrace_subr.c
@@ -190,8 +190,6 @@ dtrace_gethrestime(void)
 int
 dtrace_trap(struct trapframe *frame, u_int type)
 {
-       uint16_t insn;
-
        /*
         * A trap can occur while DTrace executes a probe. Before
         * executing the probe, DTrace blocks re-scheduling and sets
@@ -219,15 +217,10 @@ dtrace_trap(struct trapframe *frame, u_int type)
 
                        /*
                         * Offset the instruction pointer to the instruction
-                        * following the one causing the fault. Check if the
-                        * instruction is compressed or not. Standard
-                        * instructions always have bits [1:0] == 11.
+                        * following the one causing the fault.
                         */
-                       insn = *(uint16_t *)frame->tf_sepc;
-                       if (match_opcode(insn, 0x3, 0x3))
-                               frame->tf_sepc += INSN_SIZE;
-                       else
-                               frame->tf_sepc += INSN_C_SIZE;
+                       frame->tf_sepc +=
+                           dtrace_instr_size((uint8_t *)frame->tf_sepc);
 
                        return (1);
                default:

Reply via email to