source: branches/libc-0.6/testcase/optlink/tst1.c@ 2800

Last change on this file since 2800 was 678, checked in by bird, 22 years ago

Fixed testcase.

  • Property cvs2svn:cvs-rev set to 1.6
  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 2.4 KB
Line 
1/* $Id: tst1.c 678 2003-09-09 19:21:51Z bird $ */
2/** @file
3 *
4 * Optlink testcase no. 1.
5 * Passing stuff in all registers.
6 *
7 * InnoTek Systemberatung GmbH confidential
8 *
9 * Copyright (c) 2003 InnoTek Systemberatung GmbH
10 * Author: knut st. osmundsen <bird-srcspam@anduin.net>
11 *
12 * All Rights Reserved
13 *
14 */
15
16 #include <stdio.h>
17
18/** in asm */
19extern int _Optlink asmfoo (int i1, int i2, int i3, double rf1, double rf2, double rf3, double rf4);
20
21extern int _Optlink foo (int i1, int i2, int i3, double rf1, double rf2, double rf3, double rf4)
22{
23 if (i1 != 1)
24 return 1;
25 if (i2 != 2)
26 return 2;
27 if (i3 != 3)
28 return 3;
29 if (rf1 != 1.1)
30 return 4;
31 if (rf2 != 1.2)
32 return 5;
33 if (rf3 != 1.3)
34 return 6;
35 if (rf4 != 1.4)
36 return 7;
37 return 0;
38}
39
40int main()
41{
42 int i;
43 int rc;
44 int rcRet = 0;
45
46 /* calling vac generated code */
47 rc = asmfoo(1, 2, 3, 1.1, 1.2, 1.3, 1.4);
48 switch (rc)
49 {
50 case 0: printf("tst1: asmfoo: success.\n"); break;
51 case 1: printf("tst1: asmfoo: i1 check failed.\n"); break;
52 case 2: printf("tst1: asmfoo: i2 check failed.\n"); break;
53 case 3: printf("tst1: asmfoo: i3 check failed.\n"); break;
54 case 4: printf("tst1: asmfoo: rf1 check failed.\n"); break;
55 case 5: printf("tst1: asmfoo: rf2 check failed.\n"); break;
56 case 6: printf("tst1: asmfoo: rf3 check failed.\n"); break;
57 case 7: printf("tst1: asmfoo: rf4 check failed.\n"); break;
58 default:
59 printf("tst1: asmfoo: failed test %d - internal error\n", rc);
60 break;
61 }
62 if (rc && !rcRet)
63 rcRet = rc;
64
65 /* all gcc */
66 rc = foo(1, 2, 3, 1.1, 1.2, 1.3, 1.4);
67 switch (rc)
68 {
69 case 0: printf("tst1: foo: success.\n"); break;
70 case 1: printf("tst1: foo: i1 check failed.\n"); break;
71 case 2: printf("tst1: foo: i2 check failed.\n"); break;
72 case 3: printf("tst1: foo: i3 check failed.\n"); break;
73 case 4: printf("tst1: foo: rf1 check failed.\n"); break;
74 case 5: printf("tst1: foo: rf2 check failed.\n"); break;
75 case 6: printf("tst1: foo: rf3 check failed.\n"); break;
76 case 7: printf("tst1: foo: rf4 check failed.\n"); break;
77 default:
78 printf("tst1: foo: failed test %d - internal error\n", rc);
79 break;
80 }
81 if (rc && !rcRet)
82 rcRet = rc;
83
84 return rcRet;
85}
Note: See TracBrowser for help on using the repository browser.