return RVAL_DECODED;
}
-/* The SH4 ABI does allow long longs in odd-numbered registers, but
- does not allow them to be split between registers and memory - and
- there are only four argument registers for normal functions. As a
- result pread takes an extra padding argument before the offset. This
- was changed late in the 2.4 series (around 2.4.20). */
-#if defined(SH)
-#define PREAD_OFFSET_ARG 4
-#else
-#define PREAD_OFFSET_ARG 3
-#endif
-
SYS_FUNC(pread)
{
if (entering(tcp)) {
else
printstr(tcp, tcp->u_arg[1], tcp->u_rval);
tprintf(", %lu, ", tcp->u_arg[2]);
- printllval(tcp, "%lld", PREAD_OFFSET_ARG);
+ printllval(tcp, "%lld", 3);
}
return 0;
}
tprints(", ");
printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
tprintf(", %lu, ", tcp->u_arg[2]);
- printllval(tcp, "%lld", PREAD_OFFSET_ARG);
+ printllval(tcp, "%lld", 3);
return RVAL_DECODED;
}
defined XTENSA
/* Align arg_no to the next even number. */
arg_no = (arg_no + 1) & 0xe;
-# endif
+# elif defined SH
+ /*
+ * The SH4 ABI does allow long longs in odd-numbered registers, but
+ * does not allow them to be split between registers and memory - and
+ * there are only four argument registers for normal functions. As a
+ * result, pread, for example, takes an extra padding argument before
+ * the offset. This was changed late in the 2.4 series (around 2.4.20).
+ */
+ if (arg_no == 3)
+ arg_no++;
+# endif /* __ARM_EABI__ || LINUX_MIPSO32 || POWERPC || XTENSA || SH */
*val = LONG_LONG(tcp->u_arg[arg_no], tcp->u_arg[arg_no + 1]);
arg_no += 2;
#endif