]>
Commit | Line | Data |
---|---|---|
45516216 | 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 | } |