xref: /openbmc/qemu/tests/tcg/alpha/test-ovf.c (revision de44c044420d1139480fa50c2d5be19223391218)
1*4f2cbcfbSAlex Bennée #include <unistd.h>
2*4f2cbcfbSAlex Bennée 
test_subqv(long a,long b)3c09015ddSAnthony Liguori static long test_subqv (long a, long b)
4c09015ddSAnthony Liguori {
5c09015ddSAnthony Liguori   long res;
6c09015ddSAnthony Liguori 
7c09015ddSAnthony Liguori   asm ("subq/v %1,%2,%0"
8c09015ddSAnthony Liguori        : "=r" (res) : "r" (a), "r" (b));
9c09015ddSAnthony Liguori   return res;
10c09015ddSAnthony Liguori }
11c09015ddSAnthony Liguori static struct {
12c09015ddSAnthony Liguori   long (*func)(long, long);
13c09015ddSAnthony Liguori   long a;
14c09015ddSAnthony Liguori   long b;
15c09015ddSAnthony Liguori   long r;
16c09015ddSAnthony Liguori } vectors[] =
17c09015ddSAnthony Liguori   {
18c09015ddSAnthony Liguori     {test_subqv, 0, 0x7d54000, 0xfffffffff82ac000L}
19c09015ddSAnthony Liguori   };
20c09015ddSAnthony Liguori 
main(void)21c09015ddSAnthony Liguori int main (void)
22c09015ddSAnthony Liguori {
23c09015ddSAnthony Liguori   int i;
24c09015ddSAnthony Liguori 
25c09015ddSAnthony Liguori   for (i = 0; i < sizeof (vectors)/sizeof(vectors[0]); i++)
26c09015ddSAnthony Liguori     if ((*vectors[i].func)(vectors[i].a, vectors[i].b) != vectors[i].r) {
27c09015ddSAnthony Liguori       write(1, "Failed\n", 7);
28c09015ddSAnthony Liguori     }
29c09015ddSAnthony Liguori   write(1, "OK\n", 3);
30c09015ddSAnthony Liguori   return 0;
31c09015ddSAnthony Liguori }
32