]> git.wh0rd.org Git - ICEs.git/blob - bfin-strcmp/test.i.bak
initial import
[ICEs.git] / bfin-strcmp / test.i.bak
1 typedef long unsigned int size_t;
2          extern int printf (__const char *__restrict __format, ...);
3          size_t errors = 0;
4          static void check (int thing, int number) {
5          if (!thing)     {
6            ++errors;
7          }
8        }
9          int _strcmp(const char *cs, const char *ct) {
10         int __res1, __res2;
11         __asm__        ("1:\t%2 = B[%0++] (Z);\n\t"   "%3 = B[%1++] (Z);\n\t"   "CC = %2 == %3;\n\t"   "if ! cc jump 2f;\n\t"   "CC = %2;\n\t"   "if cc jump 1b (bp);\n\t"   "jump.s 3f;\n"   "2:\t%2 = %2 - %3;\n"         "3:\n"  : "+&a" (cs), "+&a" (ct), "=&d" (__res1), "=&d" (__res2)       : : "CC");
12         return __res1;
13        }
14          void test_strcmp (void) {
15          {
16          char buf1[0x40], buf2[0x40];
17          int i, j;
18       {
19         {
20           check (_strcmp (buf1+i,buf2+j) > 0, 2);
21         }
22     }
23        }
24        }
25          int main(int argc, char *argv[]) {
26          test_strcmp ();
27          if (errors == 0)     {
28          }
29          else     {
30            printf("TEST FAIL.\n");
31          }
32        }