summary refs log tree commit diff stats
path: root/tests/tcg/hexagon/preg_alias.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/tcg/hexagon/preg_alias.c')
-rw-r--r--tests/tcg/hexagon/preg_alias.c111
1 files changed, 53 insertions, 58 deletions
diff --git a/tests/tcg/hexagon/preg_alias.c b/tests/tcg/hexagon/preg_alias.c
index 8798fbcaf3..892ecbbdbf 100644
--- a/tests/tcg/hexagon/preg_alias.c
+++ b/tests/tcg/hexagon/preg_alias.c
@@ -16,10 +16,15 @@
  */
 
 #include <stdio.h>
+#include <stdint.h>
 
-static inline int preg_alias(int v0, int v1, int v2, int v3)
+int err;
+
+#include "hex_test.h"
+
+static uint32_t preg_alias(uint8_t v0, uint8_t v1, uint8_t v2, uint8_t v3)
 {
-  int ret;
+  uint32_t ret;
   asm volatile("p0 = %1\n\t"
                "p1 = %2\n\t"
                "p2 = %3\n\t"
@@ -31,9 +36,9 @@ static inline int preg_alias(int v0, int v1, int v2, int v3)
   return ret;
 }
 
-static inline int preg_alias_pair(int v0, int v1, int v2, int v3)
+static uint32_t preg_alias_pair(uint8_t v0, uint8_t v1, uint8_t v2, uint8_t v3)
 {
-  long long c54;
+  uint64_t c54;
   asm volatile("p0 = %1\n\t"
                "p1 = %2\n\t"
                "p2 = %3\n\t"
@@ -42,20 +47,20 @@ static inline int preg_alias_pair(int v0, int v1, int v2, int v3)
                : "=r"(c54)
                : "r"(v0), "r"(v1), "r"(v2), "r"(v3)
                : "p0", "p1", "p2", "p3");
-  return (int)c54;
+  return (uint32_t)c54;
 }
 
 typedef union {
-    int creg;
+    uint32_t creg;
     struct {
-      unsigned char p0;
-      unsigned char p1;
-      unsigned char p2;
-      unsigned char p3;
+      uint8_t p0;
+      uint8_t p1;
+      uint8_t p2;
+      uint8_t p3;
     } pregs;
 } PRegs;
 
-static inline void creg_alias(int cval, PRegs *pregs)
+static inline void creg_alias(uint32_t cval, PRegs *pregs)
 {
   asm("c4 = %4\n\t"
       "%0 = p0\n\t"
@@ -68,20 +73,10 @@ static inline void creg_alias(int cval, PRegs *pregs)
       : "c4", "p0", "p1", "p2", "p3");
 }
 
-int err;
-
-static void check(int val, int expect)
-{
-    if (val != expect) {
-        printf("ERROR: 0x%08x != 0x%08x\n", val, expect);
-        err++;
-    }
-}
-
-static inline void creg_alias_pair(unsigned int cval, PRegs *pregs)
+static inline void creg_alias_pair(uint32_t cval, PRegs *pregs)
 {
-  unsigned long long cval_pair = (0xdeadbeefULL << 32) | cval;
-  int c5;
+  uint64_t cval_pair = (0xdeadbeefULL << 32) | cval;
+  uint32_t c5;
 
   asm ("c5:4 = %5\n\t"
        "%0 = p0\n\t"
@@ -94,7 +89,7 @@ static inline void creg_alias_pair(unsigned int cval, PRegs *pregs)
        : "r"(cval_pair)
        : "c4", "c5", "p0", "p1", "p2", "p3");
 
-  check(c5, 0xdeadbeef);
+  check32(c5, 0xdeadbeef);
 }
 
 static void test_packet(void)
@@ -104,8 +99,8 @@ static void test_packet(void)
      * that are read during the packet.
      */
 
-    int result;
-    int old_val = 0x0000001c;
+    uint32_t result;
+    uint32_t old_val = 0x0000001c;
 
     /* Test a predicated register transfer */
     result = old_val;
@@ -118,7 +113,7 @@ static void test_packet(void)
          : "+r"(result)
          : "r"(0xffffffff), "r"(0xff00ffff), "r"(0x837ed653)
          : "c4", "p0", "p1", "p2", "p3");
-    check(result, old_val);
+    check32(result, old_val);
 
     /* Test a predicated store */
     result = 0xffffffff;
@@ -130,73 +125,73 @@ static void test_packet(void)
          :
          : "r"(0), "r"(0xffffffff), "r"(&result)
          : "c4", "p0", "p1", "p2", "p3", "memory");
-    check(result, 0x0);
+    check32(result, 0x0);
 }
 
 int main()
 {
-    int c4;
+    uint32_t c4;
     PRegs pregs;
 
     c4 = preg_alias(0xff, 0x00, 0xff, 0x00);
-    check(c4, 0x00ff00ff);
+    check32(c4, 0x00ff00ff);
     c4 = preg_alias(0xff, 0x00, 0x00, 0x00);
-    check(c4, 0x000000ff);
+    check32(c4, 0x000000ff);
     c4 = preg_alias(0x00, 0xff, 0x00, 0x00);
-    check(c4, 0x0000ff00);
+    check32(c4, 0x0000ff00);
     c4 = preg_alias(0x00, 0x00, 0xff, 0x00);
-    check(c4, 0x00ff0000);
+    check32(c4, 0x00ff0000);
     c4 = preg_alias(0x00, 0x00, 0x00, 0xff);
-    check(c4, 0xff000000);
+    check32(c4, 0xff000000);
     c4 = preg_alias(0xff, 0xff, 0xff, 0xff);
-    check(c4, 0xffffffff);
+    check32(c4, 0xffffffff);
 
     c4 = preg_alias_pair(0xff, 0x00, 0xff, 0x00);
-    check(c4, 0x00ff00ff);
+    check32(c4, 0x00ff00ff);
       c4 = preg_alias_pair(0xff, 0x00, 0x00, 0x00);
-    check(c4, 0x000000ff);
+    check32(c4, 0x000000ff);
     c4 = preg_alias_pair(0x00, 0xff, 0x00, 0x00);
-    check(c4, 0x0000ff00);
+    check32(c4, 0x0000ff00);
     c4 = preg_alias_pair(0x00, 0x00, 0xff, 0x00);
-    check(c4, 0x00ff0000);
+    check32(c4, 0x00ff0000);
     c4 = preg_alias_pair(0x00, 0x00, 0x00, 0xff);
-    check(c4, 0xff000000);
+    check32(c4, 0xff000000);
     c4 = preg_alias_pair(0xff, 0xff, 0xff, 0xff);
-    check(c4, 0xffffffff);
+    check32(c4, 0xffffffff);
 
     creg_alias(0x00ff00ff, &pregs);
-    check(pregs.creg, 0x00ff00ff);
+    check32(pregs.creg, 0x00ff00ff);
     creg_alias(0x00ffff00, &pregs);
-    check(pregs.creg, 0x00ffff00);
+    check32(pregs.creg, 0x00ffff00);
     creg_alias(0x00000000, &pregs);
-    check(pregs.creg, 0x00000000);
+    check32(pregs.creg, 0x00000000);
     creg_alias(0xff000000, &pregs);
-    check(pregs.creg, 0xff000000);
+    check32(pregs.creg, 0xff000000);
     creg_alias(0x00ff0000, &pregs);
-    check(pregs.creg, 0x00ff0000);
+    check32(pregs.creg, 0x00ff0000);
     creg_alias(0x0000ff00, &pregs);
-    check(pregs.creg, 0x0000ff00);
+    check32(pregs.creg, 0x0000ff00);
     creg_alias(0x000000ff, &pregs);
-    check(pregs.creg, 0x000000ff);
+    check32(pregs.creg, 0x000000ff);
     creg_alias(0xffffffff, &pregs);
-    check(pregs.creg, 0xffffffff);
+    check32(pregs.creg, 0xffffffff);
 
     creg_alias_pair(0x00ff00ff, &pregs);
-    check(pregs.creg, 0x00ff00ff);
+    check32(pregs.creg, 0x00ff00ff);
     creg_alias_pair(0x00ffff00, &pregs);
-    check(pregs.creg, 0x00ffff00);
+    check32(pregs.creg, 0x00ffff00);
     creg_alias_pair(0x00000000, &pregs);
-    check(pregs.creg, 0x00000000);
+    check32(pregs.creg, 0x00000000);
     creg_alias_pair(0xff000000, &pregs);
-    check(pregs.creg, 0xff000000);
+    check32(pregs.creg, 0xff000000);
     creg_alias_pair(0x00ff0000, &pregs);
-    check(pregs.creg, 0x00ff0000);
+    check32(pregs.creg, 0x00ff0000);
     creg_alias_pair(0x0000ff00, &pregs);
-    check(pregs.creg, 0x0000ff00);
+    check32(pregs.creg, 0x0000ff00);
     creg_alias_pair(0x000000ff, &pregs);
-    check(pregs.creg, 0x000000ff);
+    check32(pregs.creg, 0x000000ff);
     creg_alias_pair(0xffffffff, &pregs);
-    check(pregs.creg, 0xffffffff);
+    check32(pregs.creg, 0xffffffff);
 
     test_packet();