From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33343) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bgsTr-0000xY-BS for qemu-devel@nongnu.org; Mon, 05 Sep 2016 07:54:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bgsTi-0001VX-7e for qemu-devel@nongnu.org; Mon, 05 Sep 2016 07:54:26 -0400 Received: from bes.se.axis.com ([195.60.68.10]:43719) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bgsTi-0001VI-0e for qemu-devel@nongnu.org; Mon, 05 Sep 2016 07:54:18 -0400 From: Rabin Vincent Date: Mon, 5 Sep 2016 13:54:05 +0200 Message-Id: <1473076452-19795-2-git-send-email-rabin.vincent@axis.com> In-Reply-To: <1473076452-19795-1-git-send-email-rabin.vincent@axis.com> References: <1473076452-19795-1-git-send-email-rabin.vincent@axis.com> Subject: [Qemu-devel] [PATCH 2/9] tests: cris: fix syscall inline asm List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: edgar.iglesias@gmail.com Cc: qemu-devel@nongnu.org, Rabin Vincent From: Rabin Vincent Add the clobbered registeres to the inline asm for the write and exit system calls. Without the correct clobbers for the write() function, correct failure messages are not printed succesfully on newer version of GCC. Signed-off-by: Rabin Vincent --- tests/tcg/cris/sys.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tests/tcg/cris/sys.c b/tests/tcg/cris/sys.c index 551c5dd..dfa5e1c 100644 --- a/tests/tcg/cris/sys.c +++ b/tests/tcg/cris/sys.c @@ -34,7 +34,10 @@ void *memset (void *s, int c, size_t n) { void exit (int status) { asm volatile ("moveq 1, $r9\n" /* NR_exit. */ - "break 13\n"); + "break 13\n" + : + : + : "r9", "memory" ); while(1) ; } @@ -45,7 +48,10 @@ ssize_t write (int fd, const void *buf, size_t count) { "move.d %1, $r11\n" "move.d %2, $r12\n" "moveq 4, $r9\n" /* NR_write. */ - "break 13\n" : : "r" (fd), "r" (buf), "r" (count) : "memory"); + "break 13\n" + : + : "r" (fd), "r" (buf), "r" (count) + : "r9", "r10", "r11", "r12", "memory"); asm ("move.d $r10, %0\n" : "=r" (r)); return r; } -- 2.1.4