From 54316090f1fdb145bf939e85589d3c8fe264865e Mon Sep 17 00:00:00 2001 From: Andreas Jaeger Date: Mon, 28 Mar 2005 07:48:26 +0000 Subject: [PATCH] (internal_syscall5): Use register operands instead of non-lvalue memory operands. (internal_syscall6): Likewise. (internal_syscall7): Likewise. --- sysdeps/unix/sysv/linux/mips/mips32/sysdep.h | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h index 5eaf7a2..682ec3d 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h +++ b/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h @@ -194,16 +194,15 @@ register long __a3 asm("$7") = (long) arg4; \ __asm__ volatile ( \ ".set\tnoreorder\n\t" \ - "lw\t$2, %6\n\t" \ "subu\t$29, 32\n\t" \ - "sw\t$2, 16($29)\n\t" \ + "sw\t%6, 16($29)\n\t" \ "li\t$2, %5\t\t\t# " #name "\n\t" \ "syscall\n\t" \ "addiu\t$29, 32\n\t" \ ".set\treorder" \ : "=r" (__v0), "+r" (__a3) \ : "r" (__a0), "r" (__a1), "r" (__a2), "i" (SYS_ify(name)), \ - "m" ((long)arg5) \ + "r" ((long)arg5) \ : __SYSCALL_CLOBBERS); \ err = __a3; \ _sys_result = __v0; \ @@ -223,18 +222,16 @@ register long __a3 asm("$7") = (long) arg4; \ __asm__ volatile ( \ ".set\tnoreorder\n\t" \ - "lw\t$2, %6\n\t" \ - "lw\t$8, %7\n\t" \ "subu\t$29, 32\n\t" \ - "sw\t$2, 16($29)\n\t" \ - "sw\t$8, 20($29)\n\t" \ + "sw\t%6, 16($29)\n\t" \ + "sw\t%7, 20($29)\n\t" \ "li\t$2, %5\t\t\t# " #name "\n\t" \ "syscall\n\t" \ "addiu\t$29, 32\n\t" \ ".set\treorder" \ : "=r" (__v0), "+r" (__a3) \ : "r" (__a0), "r" (__a1), "r" (__a2), "i" (SYS_ify(name)), \ - "m" ((long)arg5), "m" ((long)arg6) \ + "r" ((long)arg5), "r" ((long)arg6) \ : __SYSCALL_CLOBBERS); \ err = __a3; \ _sys_result = __v0; \ @@ -254,20 +251,17 @@ register long __a3 asm("$7") = (long) arg4; \ __asm__ volatile ( \ ".set\tnoreorder\n\t" \ - "lw\t$2, %6\n\t" \ - "lw\t$8, %7\n\t" \ - "lw\t$9, %8\n\t" \ "subu\t$29, 32\n\t" \ - "sw\t$2, 16($29)\n\t" \ - "sw\t$8, 20($29)\n\t" \ - "sw\t$9, 24($29)\n\t" \ + "sw\t%6, 16($29)\n\t" \ + "sw\t%7, 20($29)\n\t" \ + "sw\t%8, 24($29)\n\t" \ "li\t$2, %5\t\t\t# " #name "\n\t" \ "syscall\n\t" \ "addiu\t$29, 32\n\t" \ ".set\treorder" \ : "=r" (__v0), "+r" (__a3) \ : "r" (__a0), "r" (__a1), "r" (__a2), "i" (SYS_ify(name)), \ - "m" ((long)arg5), "m" ((long)arg6), "m" ((long)arg7) \ + "r" ((long)arg5), "r" ((long)arg6), "r" ((long)arg7) \ : __SYSCALL_CLOBBERS); \ err = __a3; \ _sys_result = __v0; \ -- 2.7.4