]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Followup to r13958: add reg-trash lists to inline assembly in
authorJulian Seward <jseward@acm.org>
Tue, 13 May 2014 16:15:56 +0000 (16:15 +0000)
committerJulian Seward <jseward@acm.org>
Tue, 13 May 2014 16:15:56 +0000 (16:15 +0000)
TESTINSTPCMISALIGNED TESTINSTPCMISALIGNED_DWORDOUT
TESTINSTPCMISALIGNED_2OUT and nice up the the indentation a bit.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13960

none/tests/arm/v6intThumb.c

index 811bbb3910ad26f7e73ff5075d545e5f5f43fc73..94336e612202f4e50d9f6af54dc126182cb52bcd 100644 (file)
@@ -224,29 +224,30 @@ static int gen_cvin(int cvin)
     unsigned int out; \
     unsigned int cpsr; \
     __asm__ volatile(\
-    ".align 4;" \
-    "msr cpsr_f, %2;" \
-    "mov " #RD ", #0;" \
-    ".align 2;" \
-    ".thumb;" \
-    ".syntax unified;" \
-    "nop;" \
-    instruction ";" \
-    "b .Lend" #label ";" \
-    ".align 4;" \
-    #label ": " \
-    ".word 0x8191881b;" \
-    ".word 0x18fe9c93;" \
-    ".word 0x00000000;" \
-    ".word 0x00000000;" \
-    ".Lend" #label ":" \
-    "mov %0, " #RD ";" \
-       "mrs %1,cpsr;" \
-  : "=&r" (out), "=&r" (cpsr) \
-  : "r" (gen_cvin(cvin)) \
-  ); \
-  printf("%s :: rd 0x%08x, cpsr 0x%08x %c%c%c%c\n", \
-        instruction, out, \
+      ".align 4;" \
+      "msr cpsr_f, %2;" \
+      "mov " #RD ", #0;" \
+      ".align 2;" \
+      ".thumb;" \
+      ".syntax unified;" \
+      "nop;" \
+      instruction ";" \
+      "b .Lend" #label ";" \
+      ".align 4;" \
+      #label ": " \
+      ".word 0x8191881b;" \
+      ".word 0x18fe9c93;" \
+      ".word 0x00000000;" \
+      ".word 0x00000000;" \
+      ".Lend" #label ":" \
+      "mov %0, " #RD ";" \
+      "mrs %1, cpsr;" \
+      : "=&r" (out), "=&r" (cpsr) \
+      : "r" (gen_cvin(cvin)) \
+      : #RD, "cc", "memory" \
+    ); \
+    printf("%s :: rd 0x%08x, cpsr 0x%08x %c%c%c%c\n", \
+          instruction, out, \
                cpsr & 0xffff0000, \
                ((1<<31) & cpsr) ? 'N' : ' ', \
                ((1<<30) & cpsr) ? 'Z' : ' ', \
@@ -256,34 +257,35 @@ static int gen_cvin(int cvin)
 }
 
 // this one uses d0, s0 and s2 (hardcoded)
-#define TESTINSTPCMISALIGNED_DWORDOUT(instruction, label, cvin) \
+#define TESTINSTPCMISALIGNED_DWORDOUT(instruction, label, cvin, extratrash) \
 { \
     unsigned int out; \
     unsigned int out2; \
     unsigned int cpsr; \
     __asm__ volatile(\
-    ".align 4;" \
-    "msr cpsr_f, %3;" \
-    ".align 2;" \
-    ".thumb;" \
-    ".syntax unified;" \
-    "nop;" \
-    instruction ";" \
-    "b .Lend" #label ";" \
-    ".align 4;" \
-    #label ": " \
-    ".word 0x8191881b;" \
-    ".word 0x18fe9c93;" \
-    ".word 0x00000000;" \
-    ".word 0x00000000;" \
-    ".Lend" #label ":" \
-    "vmov %0, s0;" \
-    "vmov %1, s1;" \
-       "mrs %2,cpsr;" \
-  : "=&r" (out), "=&r" (out2), "=&r" (cpsr) \
-  : "r" (gen_cvin(cvin)) \
-  ); \
-  printf("%s :: s0 0x%08x s1 0x%08x, cpsr 0x%08x %c%c%c%c\n", \
+      ".align 4;" \
+      "msr cpsr_f, %3;" \
+      ".align 2;" \
+      ".thumb;" \
+      ".syntax unified;" \
+      "nop;" \
+      instruction ";" \
+      "b .Lend" #label ";" \
+      ".align 4;" \
+      #label ": " \
+      ".word 0x8191881b;" \
+      ".word 0x18fe9c93;" \
+      ".word 0x00000000;" \
+      ".word 0x00000000;" \
+      ".Lend" #label ":" \
+      "vmov %0, s0;" \
+      "vmov %1, s1;" \
+      "mrs %2, cpsr;" \
+      : "=&r" (out), "=&r" (out2), "=&r" (cpsr) \
+      : "r" (gen_cvin(cvin)) \
+      : "cc", "memory", "s0", "s1", extratrash \
+    ); \
+    printf("%s :: s0 0x%08x s1 0x%08x, cpsr 0x%08x %c%c%c%c\n", \
         instruction, out, out2, \
                cpsr & 0xffff0000, \
                ((1<<31) & cpsr) ? 'N' : ' ', \
@@ -299,30 +301,31 @@ static int gen_cvin(int cvin)
     unsigned int out2; \
     unsigned int cpsr; \
     __asm__ volatile(\
-    ".align 4;" \
-    "msr cpsr_f, %3;" \
-    "mov " #RD ", #0;" \
-    "mov " #RD2 ", #0;" \
-    ".align 2;" \
-    ".thumb;" \
-    ".syntax unified;" \
-    "nop;" \
-    instruction ";" \
-    "b .Lend" #label ";" \
-    ".align 4;" \
-    #label ": " \
-    ".word 0x8191881b;" \
-    ".word 0x18fe9c93;" \
-    ".word 0x00000000;" \
-    ".word 0x00000000;" \
-    ".Lend" #label ":" \
-    "mov %0, " #RD ";" \
-    "mov %1, " #RD2 ";" \
-       "mrs %2,cpsr;" \
-  : "=&r" (out), "=&r" (out2), "=&r" (cpsr) \
-  : "r" (gen_cvin(cvin)) \
-  ); \
-  printf("%s :: rd 0x%08x rd2 0x%08x, cpsr 0x%08x %c%c%c%c\n", \
+      ".align 4;" \
+      "msr cpsr_f, %3;" \
+      "mov " #RD ", #0;" \
+      "mov " #RD2 ", #0;" \
+      ".align 2;" \
+      ".thumb;" \
+      ".syntax unified;" \
+      "nop;" \
+      instruction ";" \
+      "b .Lend" #label ";" \
+      ".align 4;" \
+      #label ": " \
+      ".word 0x8191881b;" \
+      ".word 0x18fe9c93;" \
+      ".word 0x00000000;" \
+      ".word 0x00000000;" \
+      ".Lend" #label ":" \
+      "mov %0, " #RD ";" \
+      "mov %1, " #RD2 ";" \
+      "mrs %2, cpsr;" \
+      : "=&r" (out), "=&r" (out2), "=&r" (cpsr) \
+      : "r" (gen_cvin(cvin)) \
+      : #RD, #RD2, "cc", "memory" \
+    ); \
+    printf("%s :: rd 0x%08x rd2 0x%08x, cpsr 0x%08x %c%c%c%c\n", \
         instruction, out, out2, \
                cpsr & 0xffff0000, \
                ((1<<31) & cpsr) ? 'N' : ' ', \
@@ -642,7 +645,7 @@ static int old_main(void)
                          r1, label_magic_ldrsh, cv);
     // omitting PLD/PLI
     TESTINSTPCMISALIGNED_DWORDOUT("vldr d0, label_magic_vldr",
-                                  label_magic_vldr, cv);
+                                  label_magic_vldr, cv, "d0");
 
     TESTCARRYEND