Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F144460502
D39611.id120433.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D39611.id120433.diff
View Options
diff --git a/cddl/lib/libdtrace/Makefile b/cddl/lib/libdtrace/Makefile
--- a/cddl/lib/libdtrace/Makefile
+++ b/cddl/lib/libdtrace/Makefile
@@ -128,6 +128,7 @@
.if ${MACHINE_CPUARCH} == "riscv"
SRCS+= instr_size.c
+DSRCS+= regs_riscv.d
.endif
YFLAGS+=-d
diff --git a/sys/cddl/dev/dtrace/riscv/dtrace_isa.c b/sys/cddl/dev/dtrace/riscv/dtrace_isa.c
--- a/sys/cddl/dev/dtrace/riscv/dtrace_isa.c
+++ b/sys/cddl/dev/dtrace/riscv/dtrace_isa.c
@@ -311,8 +311,33 @@
ulong_t
dtrace_getreg(struct trapframe *rp, uint_t reg)
{
-
- printf("IMPLEMENT ME: %s\n", __func__);
+ switch (reg) {
+ case REG_ZERO:
+ return (0);
+ case REG_RA:
+ return (rp->tf_ra);
+ case REG_SP:
+ return (rp->tf_sp);
+ case REG_GP:
+ return (rp->tf_gp);
+ case REG_TP:
+ return (rp->tf_tp);
+ case REG_T0 ... REG_T2:
+ return (rp->tf_t[reg - REG_T0]);
+ case REG_S0 ... REG_S1:
+ return (rp->tf_s[reg - REG_S0]);
+ case REG_A0 ... REG_A7:
+ return (rp->tf_a[reg - REG_A0]);
+ case REG_S2 ... REG_S11:
+ return (rp->tf_s[reg - REG_S2 + 2]);
+ case REG_T3 ... REG_T6:
+ return (rp->tf_t[reg - REG_T3 + 3]);
+ case REG_PC:
+ return (rp->tf_sepc);
+ default:
+ DTRACE_CPUFLAG_SET(CPU_DTRACE_ILLOP);
+ return (0);
+ }
return (0);
}
diff --git a/sys/cddl/dev/dtrace/riscv/regset.h b/sys/cddl/dev/dtrace/riscv/regset.h
--- a/sys/cddl/dev/dtrace/riscv/regset.h
+++ b/sys/cddl/dev/dtrace/riscv/regset.h
@@ -42,7 +42,39 @@
extern "C" {
#endif
-/* Place here */
+#define REG_ZERO 0
+#define REG_RA 1
+#define REG_SP 2
+#define REG_GP 3
+#define REG_TP 4
+#define REG_T0 5
+#define REG_T1 6
+#define REG_T2 7
+#define REG_S0 8
+#define REG_S1 9
+#define REG_A0 10
+#define REG_A1 11
+#define REG_A2 12
+#define REG_A3 13
+#define REG_A4 14
+#define REG_A5 15
+#define REG_A6 16
+#define REG_A7 17
+#define REG_S2 18
+#define REG_S3 19
+#define REG_S4 20
+#define REG_S5 21
+#define REG_S6 22
+#define REG_S7 23
+#define REG_S8 24
+#define REG_S9 25
+#define REG_S10 26
+#define REG_S11 27
+#define REG_T3 28
+#define REG_T4 29
+#define REG_T5 30
+#define REG_T6 31
+#define REG_PC 32
#ifdef __cplusplus
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Feb 9, 1:38 PM (43 m, 39 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28585105
Default Alt Text
D39611.id120433.diff (2 KB)
Attached To
Mode
D39611: dtrace: add register bindings for RISC-V
Attached
Detach File
Event Timeline
Log In to Comment