From: Mike Frysinger Date: Sun, 5 May 2013 22:30:21 +0000 (-0400) Subject: printllval: fix 64bit unpacking on mips/o32 and xtensa X-Git-Tag: v4.8~43 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a32b6837044c54957b9b90954e246a56c9bef403;p=strace printllval: fix 64bit unpacking on mips/o32 and xtensa The mips/o32 ABI and xtensa arch also do 64bit aligning, so add it to the printllval list for this. Normally for sys_fadvise64_64 we'd handle the same list of arches, but mips/o32 ABI is funky and doesn't shift -- it has 7 args. So just add xtensa to it. * file.c (sys_fadvise64_64): Add XTENSA to the shifted list. * util.c (printllval): Add LINUX_MIPSO32 and XTENSA to the shifted list. --- diff --git a/file.c b/file.c index e5fc259d..07f1ad95 100644 --- a/file.c +++ b/file.c @@ -2677,7 +2677,7 @@ sys_fadvise64_64(struct tcb *tcp) printfd(tcp, tcp->u_arg[0]); argn = printllval(tcp, ", %lld, ", 1); argn = printllval(tcp, "%lld, ", argn); -#if defined ARM || defined AARCH64 || defined POWERPC +#if defined ARM || defined AARCH64 || defined POWERPC || defined XTENSA printxval(advise, tcp->u_arg[1], "POSIX_FADV_???"); #else printxval(advise, tcp->u_arg[argn], "POSIX_FADV_???"); diff --git a/util.c b/util.c index 970faa44..77e939b2 100644 --- a/util.c +++ b/util.c @@ -207,7 +207,7 @@ printllval(struct tcb *tcp, const char *format, int arg_no) arg_no += 2; } #else -# if defined(ARM) || defined(POWERPC) +# if defined(ARM) || defined(POWERPC) || defined(LINUX_MIPSO32) || defined(XTENSA) /* Align arg_no to the next even number. */ arg_no = (arg_no + 1) & 0xe; # endif