diff options
Diffstat (limited to 'usr/src/uts/intel/dtrace/sdt.c')
-rw-r--r-- | usr/src/uts/intel/dtrace/sdt.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/usr/src/uts/intel/dtrace/sdt.c b/usr/src/uts/intel/dtrace/sdt.c index 20422246a4..e5ac9e8d3d 100644 --- a/usr/src/uts/intel/dtrace/sdt.c +++ b/usr/src/uts/intel/dtrace/sdt.c @@ -335,13 +335,14 @@ sdt_getarg(void *arg, dtrace_id_t id, void *parg, int argno, int aframes) * we're seeking is passed in regsiters, we can just * load it directly. */ - struct regs *rp = (struct regs *)&fp[1]; + struct regs *rp = (struct regs *)((uintptr_t)&fp[1] + + sizeof (uintptr_t)); if (argno <= inreg) { stack = (uintptr_t *)&rp->r_rdi; } else { stack = (uintptr_t *)(rp->r_rsp); - argno -= inreg; + argno -= (inreg + 1); } #endif goto load; |