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.
This commit is contained in:
parent
c7b2f0c74e
commit
a32b683704
2
file.c
2
file.c
@ -2677,7 +2677,7 @@ sys_fadvise64_64(struct tcb *tcp)
|
|||||||
printfd(tcp, tcp->u_arg[0]);
|
printfd(tcp, tcp->u_arg[0]);
|
||||||
argn = printllval(tcp, ", %lld, ", 1);
|
argn = printllval(tcp, ", %lld, ", 1);
|
||||||
argn = printllval(tcp, "%lld, ", argn);
|
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_???");
|
printxval(advise, tcp->u_arg[1], "POSIX_FADV_???");
|
||||||
#else
|
#else
|
||||||
printxval(advise, tcp->u_arg[argn], "POSIX_FADV_???");
|
printxval(advise, tcp->u_arg[argn], "POSIX_FADV_???");
|
||||||
|
2
util.c
2
util.c
@ -207,7 +207,7 @@ printllval(struct tcb *tcp, const char *format, int arg_no)
|
|||||||
arg_no += 2;
|
arg_no += 2;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
# if defined(ARM) || defined(POWERPC)
|
# if defined(ARM) || defined(POWERPC) || defined(LINUX_MIPSO32) || defined(XTENSA)
|
||||||
/* Align arg_no to the next even number. */
|
/* Align arg_no to the next even number. */
|
||||||
arg_no = (arg_no + 1) & 0xe;
|
arg_no = (arg_no + 1) & 0xe;
|
||||||
# endif
|
# endif
|
||||||
|
Loading…
Reference in New Issue
Block a user