]> git.wh0rd.org Git - ICEs.git/blob - bfin-strcmp/test.i.ok
initial import
[ICEs.git] / bfin-strcmp / test.i.ok
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         }