Home | History | Annotate | Download | only in gtrace
      1 #include "../macros.h"
      2 
      3 int foo1();
      4 int foo2();
      5 void bar();
      6 int child1();
      7 int child2();
      8 int child3();
      9 int child4();
     10 int child5();
     11 
     12 int global;
     13 
     14 void start()
     15 {
     16   // Set the stack pointer
     17   asm("  mov r13,#0x200000");
     18   PRINT_STR("hello\n");
     19   TRACE_INIT_NAME(701, "proc_foo");
     20   TRACE_INIT_NAME(702, "proc_bar");
     21   TRACE_SWITCH(701);
     22   if (global++ > 0)
     23       global++;
     24   foo1();
     25   TRACE_SWITCH(702);
     26   if (global++ > 0)
     27       global++;
     28   bar();
     29   TRACE_SWITCH(701);
     30   if (global++ > 0)
     31       global++;
     32   foo2();
     33   TRACE_SWITCH(703);
     34   if (global++ > 0)
     35       global++;
     36   foo1();
     37   TRACE_SWITCH(701);
     38   if (global++ > 0)
     39       global++;
     40   foo1();
     41 
     42   TRACE_SWITCH(704);
     43   if (global++ > 0)
     44       global++;
     45   foo1();
     46 
     47   TRACE_SWITCH(701);
     48   if (global++ > 0)
     49       global++;
     50   foo1();
     51 
     52   TRACE_SWITCH(705);
     53   if (global++ > 0)
     54       global++;
     55   foo1();
     56 
     57   TRACE_SWITCH(701);
     58   if (global++ > 0)
     59       global++;
     60   foo1();
     61 
     62   TRACE_SWITCH(706);
     63   if (global++ > 0)
     64       global++;
     65   foo1();
     66 
     67   TRACE_SWITCH(701);
     68   if (global++ > 0)
     69       global++;
     70   foo1();
     71 
     72   TRACE_SWITCH(707);
     73   if (global++ > 0)
     74       global++;
     75   foo1();
     76 
     77   TRACE_SWITCH(701);
     78   if (global++ > 0)
     79       global++;
     80   foo1();
     81 
     82   TRACE_SWITCH(708);
     83   if (global++ > 0)
     84       global++;
     85   foo1();
     86 
     87   TRACE_SWITCH(701);
     88   if (global++ > 0)
     89       global++;
     90   foo1();
     91 
     92   TRACE_SWITCH(709);
     93   if (global++ > 0)
     94       global++;
     95   foo1();
     96 
     97   TRACE_SWITCH(701);
     98   if (global++ > 0)
     99       global++;
    100   foo1();
    101 
    102   TRACE_SWITCH(710);
    103   if (global++ > 0)
    104       global++;
    105   foo1();
    106 
    107   TRACE_STOP_EMU();
    108 }
    109 
    110 int foo1()
    111 {
    112   int a = 0;
    113 
    114   int ii;
    115   for (ii = 0; ii < 3; ++ii) {
    116     a += child1();
    117     a += child2();
    118     a += child3();
    119   }
    120   return a;
    121 }
    122 
    123 int foo2()
    124 {
    125   int a = 0;
    126 
    127   int ii;
    128   for (ii = 0; ii < 2; ++ii) {
    129     a += child3();
    130     a += child4();
    131     a += child5();
    132   }
    133   return a;
    134 }
    135 
    136 #define kStride 64
    137 void bar()
    138 {
    139   int a = 0;
    140 
    141   static char mem[1000 * kStride];
    142 
    143   int ii, jj;
    144 
    145   for (ii = 0; ii < 4; ++ii) {
    146     for (jj = 0; jj < 10; ++jj)
    147       a += mem[jj * kStride];
    148     foo1();
    149     foo2();
    150   }
    151 }
    152 
    153 int child1()
    154 {
    155   int a = 0;
    156 
    157   int ii;
    158   for (ii = 0; ii < 2; ++ii)
    159     a += ii;
    160   return a;
    161 }
    162 
    163 int child2()
    164 {
    165   int a = 0;
    166 
    167   int ii;
    168   for (ii = 0; ii < 4; ++ii)
    169     a += ii;
    170   return a;
    171 }
    172 
    173 int child3()
    174 {
    175   int a = 0;
    176 
    177   int ii;
    178   for (ii = 0; ii < 6; ++ii)
    179     a += ii;
    180   return a;
    181 }
    182 
    183 int child4()
    184 {
    185   int a = 0;
    186 
    187   int ii;
    188   for (ii = 0; ii < 8; ++ii)
    189     a += ii;
    190   return a;
    191 }
    192 
    193 int child5()
    194 {
    195   int a = 0;
    196 
    197   int ii;
    198   for (ii = 0; ii < 10; ++ii)
    199     a += ii;
    200   return a;
    201 }
    202