Fix asm in testsuite/gdb.arch/aarch64-fp.c
authorAlan Hayward <alan.hayward@arm.com>
Thu, 16 Aug 2018 14:21:15 +0000 (15:21 +0100)
committerAlan Hayward <alan.hayward@arm.com>
Fri, 17 Aug 2018 10:10:24 +0000 (11:10 +0100)
Cannot assume result of first and third ldr will go into x0.
Rewrite asm to be clearer.

gdb/testsuite/

PR gdb/18931:
* gdb.arch/aarch64-fp.c (main): Fix asm registers.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.arch/aarch64-fp.c

index 84ef82f36708e030ebdbcc334a8e9e434347ebbe..705e5f07b906a2e398c205a786ef715dce280917 100644 (file)
@@ -1,3 +1,8 @@
+2018-08-17  Alan Hayward  <alan.hayward@arm.com>
+
+       PR gdb/18931
+       * gdb.arch/aarch64-fp.c (main): Fix asm registers.
+
 2018-08-16  Keith Seitz  <keiths@redhat.com>
 
        * gdb.compile/compile.exp: Use gdb_test_no_output for "compile code"
index 0ff8e00bbd38281863ff56af040d1de352c6236a..7eb6df2a0401f2af71633312aa8ef620f643daf4 100644 (file)
@@ -26,12 +26,18 @@ main (void)
   void *addr;
     
   addr = &buf0[0];
-  __asm __volatile ("ldr %x0, [%1]" : "=r" (val) : "r" (&addr));
-  __asm __volatile ("ldr q0, [x0]");
-   
+  __asm __volatile ("ldr %x0, [%1]\n\t"
+                   "ldr q0, [%x0]"
+                   : "=r" (val)
+                   : "r" (&addr)
+                   : "q0" );
+
   addr = &buf1[0];
-  __asm __volatile ("ldr %x0, [%1]" : "=r" (val) : "r" (&addr));
-  __asm __volatile ("ldr q1, [x0]");
+  __asm __volatile ("ldr %x0, [%1]\n\t"
+                   "ldr q1, [%x0]"
+                   : "=r" (val)
+                   : "r" (&addr)
+                   : "q1" );
   
   return 1;
 }