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 }