aboutsummaryrefslogtreecommitdiff
path: root/sys/cddl/contrib/opensolaris/uts/powerpc/dtrace/fasttrap_isa.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/cddl/contrib/opensolaris/uts/powerpc/dtrace/fasttrap_isa.c')
-rw-r--r--sys/cddl/contrib/opensolaris/uts/powerpc/dtrace/fasttrap_isa.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/powerpc/dtrace/fasttrap_isa.c b/sys/cddl/contrib/opensolaris/uts/powerpc/dtrace/fasttrap_isa.c
index 69ba0f3c64d0..8f370ba6a186 100644
--- a/sys/cddl/contrib/opensolaris/uts/powerpc/dtrace/fasttrap_isa.c
+++ b/sys/cddl/contrib/opensolaris/uts/powerpc/dtrace/fasttrap_isa.c
@@ -246,12 +246,16 @@ fasttrap_usdt_args(fasttrap_probe_t *probe, struct reg *rp, int argc,
if (x < 8)
argv[i] = rp->fixreg[x];
else
+#ifdef __powerpc64__
if (SV_PROC_FLAG(curproc, SV_ILP32))
+#endif
argv[i] = fuword32((void *)(rp->fixreg[1] + 8 +
(x * sizeof(uint32_t))));
+#ifdef __powerpc64__
else
argv[i] = fuword64((void *)(rp->fixreg[1] + 48 +
(x * sizeof(uint64_t))));
+#endif
}
for (; i < argc; i++) {
@@ -486,6 +490,10 @@ fasttrap_pid_probe(struct trapframe *frame)
rp->lr = rp->pc + 4;
break;
case FASTTRAP_T_COMMON:
+ curthread->t_dtrace_pc = pc;
+ curthread->t_dtrace_npc = pc + 4;
+ curthread->t_dtrace_on = 1;
+ new_pc = pc;
break;
};
done: