[Bug tapsets/18650] New: powerpc variant of longlong_arg() for uprobes swaps the byte order
mcermak at redhat dot com
sourceware-bugzilla@sourceware.org
Thu Jul 9 09:39:00 GMT 2015
https://sourceware.org/bugzilla/show_bug.cgi?id=18650
Bug ID: 18650
Summary: powerpc variant of longlong_arg() for uprobes swaps
the byte order
Product: systemtap
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: tapsets
Assignee: systemtap at sourceware dot org
Reporter: mcermak at redhat dot com
Target Milestone: ---
After some testing I came to a conclusion that following change should be done
in tapsets:
=======
$ git diff
diff --git a/tapset/powerpc/registers.stp b/tapset/powerpc/registers.stp
index 1daf5ba..3adcc73 100644
--- a/tapset/powerpc/registers.stp
+++ b/tapset/powerpc/registers.stp
@@ -186,8 +186,8 @@ function ulong_arg:long (argnum:long) {
function longlong_arg:long (argnum:long) {
if (probing_32bit_app()) {
- lowbits = _stp_arg2(argnum, 0, 1, 0)
- highbits = _stp_arg2(argnum+1, 0, 1, 0)
+ highbits = _stp_arg2(argnum, 0, 1, 0)
+ lowbits = _stp_arg2(argnum+1, 0, 1, 0)
return ((highbits << 32) | lowbits)
} else
return _stp_arg2(argnum, 0, 0, 1)
diff --git a/tapset/s390/registers.stp b/tapset/s390/registers.stp
index 3fd2560..3e33baa 100644
--- a/tapset/s390/registers.stp
+++ b/tapset/s390/registers.stp
@@ -272,7 +272,6 @@ function ulong_arg:long (argnum:long) {
function longlong_arg:long (argnum:long) {
if (probing_32bit_app()) {
- /* TODO verify if this is correct for 31bit apps */
highbits = _stp_arg2(argnum, 0, 1, 0)
lowbits = _stp_arg2(argnum+1, 0, 1, 0)
return ((highbits << 32) | lowbits)
$
=======
Does this look about correct?
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the Systemtap
mailing list