From 244b9f3802471ab7fdb962589491e52618bff230 Mon Sep 17 00:00:00 2001 From: Paul Mundt Date: Sat, 7 May 2005 20:10:07 +0000 Subject: Fix trapa value for _syscall6() to conform with new sh syscall ABI. The old sh system call interface used 0x00 - 0x0f for the trapa value (number of arguments), whereas the new ABI uses the 0x10 - 0x1f range. For some reason we were using an off-by-1 trapa immediate which ended up trashing r1 in the _syscall6() case, so we fix it up.. --- libc/sysdeps/linux/sh/bits/syscalls.h | 2 +- libc/sysdeps/linux/sh/syscall.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libc/sysdeps/linux/sh/bits/syscalls.h b/libc/sysdeps/linux/sh/bits/syscalls.h index db4648eb4..89607bc85 100644 --- a/libc/sysdeps/linux/sh/bits/syscalls.h +++ b/libc/sysdeps/linux/sh/bits/syscalls.h @@ -126,7 +126,7 @@ register long __sc6 __asm__ ("r6") = (long) arg3; \ register long __sc7 __asm__ ("r7") = (long) arg4; \ register long __sc0 __asm__ ("r0") = (long) arg5; \ register long __sc1 __asm__ ("r1") = (long) arg6; \ -__asm__ __volatile__ ("trapa #0x15" \ +__asm__ __volatile__ ("trapa #0x16" \ : "=z" (__sc0) \ : "0" (__sc0), "r" (__sc4), "r" (__sc5), "r" (__sc6), "r" (__sc7), \ "r" (__sc3), "r" (__sc1) \ diff --git a/libc/sysdeps/linux/sh/syscall.c b/libc/sysdeps/linux/sh/syscall.c index b4a6a88f4..5369cd5e4 100644 --- a/libc/sysdeps/linux/sh/syscall.c +++ b/libc/sysdeps/linux/sh/syscall.c @@ -16,7 +16,7 @@ register long __sc6 __asm__ ("r6") = (long) arg3; register long __sc7 __asm__ ("r7") = (long) arg4; register long __sc0 __asm__ ("r0") = (long) arg5; register long __sc1 __asm__ ("r1") = (long) arg6; -__asm__ __volatile__ ("trapa #0x15" \ +__asm__ __volatile__ ("trapa #0x16" \ : "=z" (__sc0) \ : "0" (__sc0), "r" (__sc4), "r" (__sc5), "r" (__sc6), "r" (__sc7), \ "r" (__sc3), "r" (__sc1) \ -- cgit v1.2.3