root / tests / alpha / test-ovf.c @ ecbb5ea1
History | View | Annotate | Download (523 Bytes)
1 | ecbb5ea1 | aurel32 | static long test_subqv (long a, long b) |
---|---|---|---|
2 | ecbb5ea1 | aurel32 | { |
3 | ecbb5ea1 | aurel32 | long res;
|
4 | ecbb5ea1 | aurel32 | |
5 | ecbb5ea1 | aurel32 | asm ("subq/v %1,%2,%0" |
6 | ecbb5ea1 | aurel32 | : "=r" (res) : "r" (a), "r" (b)); |
7 | ecbb5ea1 | aurel32 | return res;
|
8 | ecbb5ea1 | aurel32 | } |
9 | ecbb5ea1 | aurel32 | static struct { |
10 | ecbb5ea1 | aurel32 | long (*func)(long, long); |
11 | ecbb5ea1 | aurel32 | long a;
|
12 | ecbb5ea1 | aurel32 | long b;
|
13 | ecbb5ea1 | aurel32 | long r;
|
14 | ecbb5ea1 | aurel32 | } vectors[] = |
15 | ecbb5ea1 | aurel32 | { |
16 | ecbb5ea1 | aurel32 | {test_subqv, 0, 0x7d54000, 0xfffffffff82ac000L} |
17 | ecbb5ea1 | aurel32 | }; |
18 | ecbb5ea1 | aurel32 | |
19 | ecbb5ea1 | aurel32 | int main (void) |
20 | ecbb5ea1 | aurel32 | { |
21 | ecbb5ea1 | aurel32 | int i;
|
22 | ecbb5ea1 | aurel32 | |
23 | ecbb5ea1 | aurel32 | for (i = 0; i < sizeof (vectors)/sizeof(vectors[0]); i++) |
24 | ecbb5ea1 | aurel32 | if ((*vectors[i].func)(vectors[i].a, vectors[i].b) != vectors[i].r) {
|
25 | ecbb5ea1 | aurel32 | write(1, "Failed\n", 7); |
26 | ecbb5ea1 | aurel32 | } |
27 | ecbb5ea1 | aurel32 | write(1, "OK\n", 3); |
28 | ecbb5ea1 | aurel32 | return 0; |
29 | ecbb5ea1 | aurel32 | } |