Page MenuHomeFreeBSD

D59896.id.diff
No OneTemporary

D59896.id.diff

diff --git a/lib/libproc/proc_bkpt.c b/lib/libproc/proc_bkpt.c
--- a/lib/libproc/proc_bkpt.c
+++ b/lib/libproc/proc_bkpt.c
@@ -53,6 +53,9 @@
#elif defined(__arm__)
#define BREAKPOINT_INSTR 0xe7ffffff /* bkpt */
#define BREAKPOINT_INSTR_SZ 4
+#elif defined(__loongarch__)
+#define BREAKPOINT_INSTR 0x002a0004 /* break 0x4 (BRK_USERBP) */
+#define BREAKPOINT_INSTR_SZ 4
#elif defined(__powerpc__)
#define BREAKPOINT_INSTR 0x7fe00008 /* trap */
#define BREAKPOINT_INSTR_SZ 4
diff --git a/lib/libproc/proc_regs.c b/lib/libproc/proc_regs.c
--- a/lib/libproc/proc_regs.c
+++ b/lib/libproc/proc_regs.c
@@ -61,6 +61,8 @@
*regvalue = regs.r_pc;
#elif defined(__i386__)
*regvalue = regs.r_eip;
+#elif defined(__loongarch__)
+ *regvalue = regs.era;
#elif defined(__powerpc__)
*regvalue = regs.pc;
#elif defined(__riscv)
@@ -76,6 +78,8 @@
*regvalue = regs.r_sp;
#elif defined(__i386__)
*regvalue = regs.r_esp;
+#elif defined(__loongarch__)
+ *regvalue = regs.sp;
#elif defined(__powerpc__)
*regvalue = regs.fixreg[1];
#elif defined(__riscv)
@@ -112,6 +116,8 @@
regs.r_pc = regvalue;
#elif defined(__i386__)
regs.r_eip = regvalue;
+#elif defined(__loongarch__)
+ regs.era = regvalue;
#elif defined(__powerpc__)
regs.pc = regvalue;
#elif defined(__riscv)
@@ -127,6 +133,8 @@
regs.r_sp = regvalue;
#elif defined(__i386__)
regs.r_esp = regvalue;
+#elif defined(__loongarch__)
+ regs.sp = regvalue;
#elif defined(__powerpc__)
regs.fixreg[1] = regvalue;
#elif defined(__riscv)

File Metadata

Mime Type
text/plain
Expires
Thu, Oct 15, 8:59 PM (1 h, 29 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
40869787
Default Alt Text
D59896.id.diff (1 KB)

Event Timeline