- if (entering(tcp)) {
- tprintf("%ld, ", tcp->u_arg[0]);
- printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
- ALIGN64 (tcp, PREAD_OFFSET_ARG); /* PowerPC alignment restriction */
- tprintf(", %lu, %llu", tcp->u_arg[2],
- *(unsigned long long *)&tcp->u_arg[PREAD_OFFSET_ARG]);
+ printfd(tcp, tcp->u_arg[0]);
+ tprints(", ");
+ printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
+ tprintf(", %lu, ", tcp->u_arg[2]);
+ printllval(tcp, "%lld", PREAD_OFFSET_ARG);
+
+ return RVAL_DECODED;
+}
+
+static void
+print_lld_from_low_high_val(struct tcb *tcp, int arg)
+{
+#if SIZEOF_LONG > 4 && SIZEOF_LONG == SIZEOF_LONG_LONG
+# if SUPPORTED_PERSONALITIES > 1
+# ifdef X86_64
+ if (current_personality != 1)
+# else
+ if (current_wordsize == sizeof(long))
+# endif
+# endif
+ tprintf("%ld", tcp->u_arg[arg]);
+# if SUPPORTED_PERSONALITIES > 1
+ else
+ tprintf("%ld",
+ ((unsigned long) tcp->u_arg[arg + 1] << current_wordsize * 8)
+ | (unsigned long) tcp->u_arg[arg]);
+# endif
+#elif SIZEOF_LONG > 4
+# error Unsupported configuration: SIZEOF_LONG > 4 && SIZEOF_LONG_LONG > SIZEOF_LONG
+#elif HAVE_STRUCT_TCB_EXT_ARG
+# if SUPPORTED_PERSONALITIES > 1
+ if (current_personality == 1) {
+ tprintf("%lld",
+ (widen_to_ull(tcp->u_arg[arg + 1]) << sizeof(long) * 8)
+ | widen_to_ull(tcp->u_arg[arg]));
+ } else
+# endif
+ {
+ tprintf("%lld", tcp->ext_arg[arg]);