test_block_size.c revision 436e89c602e787e7a27dd6624b09beed41a0da8a
1#include <stdio.h>
2
3__attribute__((noinline)) int test_block_size1 ()
4{
5   int result = 1;
6   __asm__ __volatile__(
7         ".set  noreorder"  "\n\t"
8         ".set  nomacro"    "\n\t"
9         "b     begin1"     "\n\t"
10         "nop"              "\n\t"
11         "begin1:"          "\n\t"
12         ".rept 56"         "\n\t"
13         ".word 0"          "\n\t"
14         ".endr"            "\n\t"
15         "li    $a0, 0"     "\n\t"
16         "j     end1"       "\n\t"
17         "nop"              "\n\t"
18         "b     label1"     "\n\t"
19         "nop"              "\n\t"
20         "label1:"          "\n\t"
21         "li    $a0, 1"     "\n\t"
22         "end1:"            "\n\t"
23         "move  %0, $a0"    "\n\t"
24         ".set  reorder"    "\n\t"
25         ".set  macro"      "\n\t"
26         : /* out */ "=r" (result)
27         : /* in */
28         : /* trash */ "a0");
29   return result;
30}
31
32__attribute__((noinline)) int test_block_size2 ()
33{
34   int result = 1;
35   __asm__ __volatile__(
36         ".set  noreorder"  "\n\t"
37         ".set  nomacro"    "\n\t"
38         "b     begin2"     "\n\t"
39         "nop"              "\n\t"
40         "begin2:"          "\n\t"
41         ".rept 58"         "\n\t"
42         ".word 0"          "\n\t"
43         ".endr"            "\n\t"
44         "li    $a0, 1"     "\n\t"
45         "j     end2"       "\n\t"
46         "li    $a0, 0"     "\n\t"
47         "end2:"            "\n\t"
48         "move  %0, $a0"    "\n\t"
49         ".set  reorder"    "\n\t"
50         ".set  macro"      "\n\t"
51         : /* out */ "=r" (result)
52         : /* in */
53         : /* trash */ "a0");
54   return result;
55}
56
57int main ()
58{
59   /*******************TEST1*******************/
60   if (test_block_size1() == 0)
61      printf("test1 - PASS\n");
62   else
63      printf("test1 - FAIL\n");
64
65   /*******************TEST2*******************/
66   if (test_block_size2() == 0)
67      printf("test2 - PASS\n");
68   else
69      printf("test2 - FAIL\n");
70   return 0;
71}
72