]> git.proxmox.com Git - mirror_qemu.git/commitdiff
tests: cris: fix syscall inline asm
authorRabin Vincent <rabinv@axis.com>
Wed, 24 Aug 2016 07:08:21 +0000 (09:08 +0200)
committerEdgar E. Iglesias <edgar.iglesias@xilinx.com>
Wed, 28 Sep 2016 08:47:21 +0000 (10:47 +0200)
Add the appropriate register constraints for the inline asm for the
write and exit system calls.  Without the correct constraints for the
write() function, correct failure messages are not printed succesfully
on newer version of GCC.

Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Rabin Vincent <rabinv@axis.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
tests/tcg/cris/sys.c

index 551c5dd7cb9fa0623b7e02a091a12a6a78e02d1d..21f08c0747470e236e33fe1ab1b4e62b41a9c197 100644 (file)
@@ -33,19 +33,27 @@ void *memset (void *s, int c, size_t n) {
 }
 
 void exit (int status) {
-       asm volatile ("moveq 1, $r9\n" /* NR_exit.  */
-                     "break 13\n");
+       register unsigned int callno asm ("r9") = 1; /* NR_exit */
+
+       asm volatile ("break 13\n"
+                     :
+                     : "r" (callno)
+                     : "memory" );
        while(1)
                ;
 }
 
 ssize_t write (int fd, const void *buf, size_t count) {
-       int r;
-       asm ("move.d %0, $r10\n"
-            "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");
-       asm ("move.d $r10, %0\n" : "=r" (r));
+       register unsigned int callno asm ("r9") = 4; /* NR_write */
+       register unsigned int r10 asm ("r10") = fd;
+       register const void *r11 asm ("r11") = buf;
+       register size_t r12 asm ("r12") = count;
+       register unsigned int r asm ("r10");
+
+       asm volatile ("break 13\n"
+            : "=r" (r)
+            : "r" (callno), "0" (r10), "r" (r11), "r" (r12)
+            : "memory");
+
        return r;
 }