aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Hibbits <jhibbits@FreeBSD.org>2015-05-10 04:33:01 +0000
committerJustin Hibbits <jhibbits@FreeBSD.org>2015-05-10 04:33:01 +0000
commit45bf6d59de1dd1b051d0f6e5998a4a1fc0abab64 (patch)
tree54a9a568d991267e564d5b0fa63ff7cabe10bdea
parent1b53f6c5a30d05e5499bd97d4a4c01154937bcf5 (diff)
downloadsrc-45bf6d59de1dd1b051d0f6e5998a4a1fc0abab64.tar.gz
src-45bf6d59de1dd1b051d0f6e5998a4a1fc0abab64.zip
Fix a couple bugs in 64-bit powerpc fasttrap argument retrieval.
Found by code inspection.
Notes
Notes: svn path=/head/; revision=282703
-rw-r--r--sys/cddl/contrib/opensolaris/uts/powerpc/dtrace/fasttrap_isa.c6
1 files changed, 3 insertions, 3 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 f076f5d8040e..ea01d5f44616 100644
--- a/sys/cddl/contrib/opensolaris/uts/powerpc/dtrace/fasttrap_isa.c
+++ b/sys/cddl/contrib/opensolaris/uts/powerpc/dtrace/fasttrap_isa.c
@@ -244,8 +244,8 @@ fasttrap_anarg(struct reg *rp, int argno)
DTRACE_CPUFLAG_CLEAR(CPU_DTRACE_NOFAULT | CPU_DTRACE_BADADDR);
} else {
DTRACE_CPUFLAG_SET(CPU_DTRACE_NOFAULT);
- value = dtrace_fuword64((void *)(rp->fixreg[1] + 16 +
- ((argno - 8) * sizeof(uint32_t))));
+ value = dtrace_fuword64((void *)(rp->fixreg[1] + 48 +
+ ((argno - 8) * sizeof(uint64_t))));
DTRACE_CPUFLAG_CLEAR(CPU_DTRACE_NOFAULT | CPU_DTRACE_BADADDR);
}
return value;
@@ -289,7 +289,7 @@ fasttrap_usdt_args(fasttrap_probe_t *probe, struct reg *rp, int argc,
argv[i] = fuword32((void *)(rp->fixreg[1] + 8 +
(x * sizeof(uint32_t))));
else
- argv[i] = fuword32((void *)(rp->fixreg[1] + 16 +
+ argv[i] = fuword64((void *)(rp->fixreg[1] + 48 +
(x * sizeof(uint64_t))));
}