Home | History | Annotate | Download | only in tests
      1 
      2 #include <pthread.h>
      3 #include <assert.h>
      4 #include <stdlib.h>
      5 #include <stdio.h>
      6 
      7 #include "helgrind/helgrind.h"
      8 
      9 typedef
     10    struct {
     11       void* (*child)(void*);
     12       char* arr;
     13       int firstoff;
     14       int lastoff;
     15       int skipoff;
     16    }
     17    Info;
     18 
     19 pthread_mutex_t mx;
     20 
     21 void* child8 ( void* infoV )
     22 {
     23    int r, i, firstoff, lastoff, skipoff;
     24    char* arr;
     25    Info* info = (Info*)infoV;
     26    firstoff = info->firstoff;
     27    lastoff  = info->lastoff;
     28    skipoff  = info->skipoff;
     29    arr      = info->arr;
     30    assert( sizeof(char) == 1 );
     31    assert( info->child == &child8 );
     32    { char* ptr = (char*)&arr[skipoff];
     33      *ptr = 0; }
     34    for (i = firstoff; i <= lastoff; i += 1) {
     35       char* ptr = (char*)&arr[i];
     36       if (i != skipoff) {
     37          r= pthread_mutex_lock( &mx ); assert(!r);
     38          *ptr = 0;
     39          r= pthread_mutex_unlock( &mx ); assert(!r);
     40       }
     41    }
     42    return NULL;
     43 }
     44 
     45 void* child16 ( void* infoV )
     46 {
     47    int r, i, firstoff, lastoff, skipoff;
     48    char* arr;
     49    Info* info = (Info*)infoV;
     50    firstoff = info->firstoff;
     51    lastoff  = info->lastoff;
     52    skipoff  = info->skipoff;
     53    arr      = info->arr;
     54    assert( sizeof(short) == 2 );
     55    assert( info->child == &child16 );
     56    { short* ptr = (short*)&arr[skipoff];
     57      *ptr = 0; }
     58    for (i = firstoff; i <= lastoff; i += 2) {
     59       short* ptr = (short*)&arr[i];
     60       if (i != skipoff) {
     61          r= pthread_mutex_lock( &mx ); assert(!r);
     62          *ptr = 0;
     63          r= pthread_mutex_unlock( &mx ); assert(!r);
     64       }
     65    }
     66    return NULL;
     67 }
     68 
     69 void* child32 ( void* infoV )
     70 {
     71    int r, i, firstoff, lastoff, skipoff;
     72    char* arr;
     73    Info* info = (Info*)infoV;
     74    firstoff = info->firstoff;
     75    lastoff  = info->lastoff;
     76    skipoff  = info->skipoff;
     77    arr      = info->arr;
     78    assert( sizeof(int) == 4 );
     79    assert( info->child == &child32 );
     80    { int* ptr = (int*)&arr[skipoff];
     81      *ptr = 0; }
     82    for (i = firstoff; i <= lastoff; i += 4) {
     83       int* ptr = (int*)&arr[i];
     84       if (i != skipoff) {
     85          r= pthread_mutex_lock( &mx ); assert(!r);
     86          *ptr = 0;
     87          r= pthread_mutex_unlock( &mx ); assert(!r);
     88       }
     89    }
     90    return NULL;
     91 }
     92 
     93 void* child64 ( void* infoV )
     94 {
     95    int r, i, firstoff, lastoff, skipoff;
     96    char* arr;
     97    Info* info = (Info*)infoV;
     98    firstoff = info->firstoff;
     99    lastoff  = info->lastoff;
    100    skipoff  = info->skipoff;
    101    arr      = info->arr;
    102    assert( sizeof(double) == 8 );
    103    assert( info->child == &child64 );
    104    { double* ptr = (double*)&arr[skipoff];
    105      *ptr = 0.0; }
    106    for (i = firstoff; i <= lastoff; i += 8) {
    107       double* ptr = (double*)&arr[i];
    108       if (i != skipoff) {
    109          r= pthread_mutex_lock( &mx ); assert(!r);
    110          *ptr = 0.0;
    111          r= pthread_mutex_unlock( &mx ); assert(!r);
    112       }
    113    }
    114    return NULL;
    115 }
    116 
    117 
    118 void* steer ( void* infoV );
    119 
    120 #define MAXXX 100   /* re 100: should cover at least 2 cycles
    121 of length 1 << N_LINE_BITS */
    122 /* This is all a bit subtle.  First, after every inner loop over the
    123    data, we have to VALGRIND_TC_CLEAN_MEMORY it to get it back to a
    124    decent starting state.  Because info.arr is 8-aligned (is asserted
    125    for), the address range painter will paint at top level granularity
    126    (8-byte), which means we are guaranteed to see any errors from the
    127    next iteration at the maximum granularity that their alignment
    128    allows.
    129 
    130    Also, the pthread_joins cause the shadow mem cache to be flushed
    131    each iteration.  Given that all trees are pulled up to 64-bit by
    132    the abovementioned VALGRIND_TC_CLEAN_MEMORY, I think this
    133    irrelevant.
    134 */
    135 
    136 int main ( void )
    137 {
    138   pthread_t t1, t2;
    139   Info info;
    140   int off;
    141 
    142   pthread_mutex_init( &mx, NULL );
    143 
    144   info.arr = malloc(MAXXX);
    145   assert(info.arr);
    146 
    147   /* ensure array is 8-aligned.  this is important, as per comment
    148   above. */
    149   assert(0 == (7 & (unsigned long)info.arr));
    150 
    151 #if 1
    152   /* Test 8 bit granularity */
    153 
    154   fprintf(stderr, "\n");
    155   fprintf(stderr,
    156           "===========================================================\n");
    157   fprintf(stderr,
    158           "=== 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 ===\n");
    159   fprintf(stderr,
    160           "===========================================================\n");
    161   fprintf(stderr, "\n");
    162   for (off = 0; off < MAXXX-1; off++) {
    163 
    164      info.firstoff = off & 0;
    165      info.lastoff  = MAXXX - 1;
    166      info.skipoff  = off;
    167      info.child    = child8;
    168 
    169      fprintf(stderr, "---------- char gran, %d .. %d, skip %d ----------\n",
    170              info.firstoff, info.lastoff, info.skipoff );
    171 
    172      pthread_create( &t1, NULL, steer, (void*)&info );
    173      pthread_create( &t2, NULL, steer, (void*)&info );
    174 
    175      pthread_join( t1, NULL );
    176      pthread_join( t2, NULL );
    177 
    178      VALGRIND_HG_CLEAN_MEMORY(&info.arr[0], MAXXX);
    179 
    180   }
    181 #endif
    182 #if 1
    183   /* Test 16 bit granularity */
    184 
    185   fprintf(stderr, "\n");
    186   fprintf(stderr,
    187           "==========================================================\n");
    188   fprintf(stderr,
    189           "=== 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 ===\n");
    190   fprintf(stderr,
    191           "==========================================================\n");
    192   fprintf(stderr, "\n");
    193   for (off = 0; off < MAXXX-2; off++) {
    194 
    195      info.firstoff = off & 1;
    196      info.lastoff  = MAXXX - 2;
    197      info.skipoff  = off;
    198      info.child    = child16;
    199 
    200      fprintf(stderr, "---------- short gran, %d .. %d, skip %d ----------\n",
    201              info.firstoff, info.lastoff, info.skipoff );
    202 
    203      pthread_create( &t1, NULL, steer, (void*)&info );
    204      pthread_create( &t2, NULL, steer, (void*)&info );
    205 
    206      pthread_join( t1, NULL );
    207      pthread_join( t2, NULL );
    208 
    209      VALGRIND_HG_CLEAN_MEMORY(&info.arr[0], MAXXX);
    210 
    211   }
    212 #endif
    213 #if 1
    214   /* Test 32 bit granularity */
    215 
    216   fprintf(stderr, "\n");
    217   fprintf(stderr,
    218           "==========================================================\n");
    219   fprintf(stderr,
    220           "=== 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 ===\n");
    221   fprintf(stderr,
    222           "==========================================================\n");
    223   fprintf(stderr, "\n");
    224   for (off = 0; off < MAXXX-4; off++) {
    225 
    226      info.firstoff = off & 3;
    227      info.lastoff  = MAXXX - 4;
    228      info.skipoff  = off;
    229      info.child    = child32;
    230 
    231      fprintf(stderr, "---------- int gran, %d .. %d, skip %d ----------\n",
    232              info.firstoff, info.lastoff, info.skipoff );
    233 
    234      pthread_create( &t1, NULL, steer, (void*)&info );
    235      pthread_create( &t2, NULL, steer, (void*)&info );
    236 
    237      pthread_join( t1, NULL );
    238      pthread_join( t2, NULL );
    239 
    240      VALGRIND_HG_CLEAN_MEMORY(&info.arr[0], MAXXX);
    241 
    242   }
    243 #endif
    244 #if 1
    245   /* Test 64 bit granularity */
    246 
    247   fprintf(stderr, "\n");
    248   fprintf(stderr,
    249           "==========================================================\n");
    250   fprintf(stderr,
    251           "=== 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 ===\n");
    252   fprintf(stderr,
    253           "==========================================================\n");
    254   fprintf(stderr, "\n");
    255   for (off = 0; off < MAXXX-8; off++) {
    256 
    257      info.firstoff = off & 7;
    258      info.lastoff  = MAXXX - 8;
    259      info.skipoff  = off;
    260      info.child    = child64;
    261 
    262      fprintf(stderr, "---------- double gran, %d .. %d, skip %d ----------\n",
    263              info.firstoff, info.lastoff, info.skipoff );
    264 
    265      pthread_create( &t1, NULL, steer, (void*)&info );
    266      pthread_create( &t2, NULL, steer, (void*)&info );
    267 
    268      pthread_join( t1, NULL );
    269      pthread_join( t2, NULL );
    270 
    271      VALGRIND_HG_CLEAN_MEMORY(&info.arr[0], MAXXX);
    272 
    273   }
    274 #endif
    275   free(info.arr);
    276 
    277   return 0;
    278 }
    279 
    280 void* steer ( void* infoV )
    281 {
    282    Info* info = (Info*)infoV;
    283    int   wot  = info->skipoff;
    284    void*(*fn)(void*) = info->child;
    285    if (wot >= 500) goto halfway;
    286 
    287    __asm__ __volatile__("");
    288    if (wot == 0) return fn(info);
    289    __asm__ __volatile__("");
    290    if (wot == 1) return fn(info);
    291    __asm__ __volatile__("");
    292    if (wot == 2) return fn(info);
    293    __asm__ __volatile__("");
    294    if (wot == 3) return fn(info);
    295    __asm__ __volatile__("");
    296    if (wot == 4) return fn(info);
    297    __asm__ __volatile__("");
    298    if (wot == 5) return fn(info);
    299    __asm__ __volatile__("");
    300    if (wot == 6) return fn(info);
    301    __asm__ __volatile__("");
    302    if (wot == 7) return fn(info);
    303    __asm__ __volatile__("");
    304    if (wot == 8) return fn(info);
    305    __asm__ __volatile__("");
    306    if (wot == 9) return fn(info);
    307    __asm__ __volatile__("");
    308    if (wot == 10) return fn(info);
    309    __asm__ __volatile__("");
    310    if (wot == 11) return fn(info);
    311    __asm__ __volatile__("");
    312    if (wot == 12) return fn(info);
    313    __asm__ __volatile__("");
    314    if (wot == 13) return fn(info);
    315    __asm__ __volatile__("");
    316    if (wot == 14) return fn(info);
    317    __asm__ __volatile__("");
    318    if (wot == 15) return fn(info);
    319    __asm__ __volatile__("");
    320    if (wot == 16) return fn(info);
    321    __asm__ __volatile__("");
    322    if (wot == 17) return fn(info);
    323    __asm__ __volatile__("");
    324    if (wot == 18) return fn(info);
    325    __asm__ __volatile__("");
    326    if (wot == 19) return fn(info);
    327    __asm__ __volatile__("");
    328    if (wot == 20) return fn(info);
    329    __asm__ __volatile__("");
    330    if (wot == 21) return fn(info);
    331    __asm__ __volatile__("");
    332    if (wot == 22) return fn(info);
    333    __asm__ __volatile__("");
    334    if (wot == 23) return fn(info);
    335    __asm__ __volatile__("");
    336    if (wot == 24) return fn(info);
    337    __asm__ __volatile__("");
    338    if (wot == 25) return fn(info);
    339    __asm__ __volatile__("");
    340    if (wot == 26) return fn(info);
    341    __asm__ __volatile__("");
    342    if (wot == 27) return fn(info);
    343    __asm__ __volatile__("");
    344    if (wot == 28) return fn(info);
    345    __asm__ __volatile__("");
    346    if (wot == 29) return fn(info);
    347    __asm__ __volatile__("");
    348    if (wot == 30) return fn(info);
    349    __asm__ __volatile__("");
    350    if (wot == 31) return fn(info);
    351    __asm__ __volatile__("");
    352    if (wot == 32) return fn(info);
    353    __asm__ __volatile__("");
    354    if (wot == 33) return fn(info);
    355    __asm__ __volatile__("");
    356    if (wot == 34) return fn(info);
    357    __asm__ __volatile__("");
    358    if (wot == 35) return fn(info);
    359    __asm__ __volatile__("");
    360    if (wot == 36) return fn(info);
    361    __asm__ __volatile__("");
    362    if (wot == 37) return fn(info);
    363    __asm__ __volatile__("");
    364    if (wot == 38) return fn(info);
    365    __asm__ __volatile__("");
    366    if (wot == 39) return fn(info);
    367    __asm__ __volatile__("");
    368    if (wot == 40) return fn(info);
    369    __asm__ __volatile__("");
    370    if (wot == 41) return fn(info);
    371    __asm__ __volatile__("");
    372    if (wot == 42) return fn(info);
    373    __asm__ __volatile__("");
    374    if (wot == 43) return fn(info);
    375    __asm__ __volatile__("");
    376    if (wot == 44) return fn(info);
    377    __asm__ __volatile__("");
    378    if (wot == 45) return fn(info);
    379    __asm__ __volatile__("");
    380    if (wot == 46) return fn(info);
    381    __asm__ __volatile__("");
    382    if (wot == 47) return fn(info);
    383    __asm__ __volatile__("");
    384    if (wot == 48) return fn(info);
    385    __asm__ __volatile__("");
    386    if (wot == 49) return fn(info);
    387    __asm__ __volatile__("");
    388    if (wot == 50) return fn(info);
    389    __asm__ __volatile__("");
    390    if (wot == 51) return fn(info);
    391    __asm__ __volatile__("");
    392    if (wot == 52) return fn(info);
    393    __asm__ __volatile__("");
    394    if (wot == 53) return fn(info);
    395    __asm__ __volatile__("");
    396    if (wot == 54) return fn(info);
    397    __asm__ __volatile__("");
    398    if (wot == 55) return fn(info);
    399    __asm__ __volatile__("");
    400    if (wot == 56) return fn(info);
    401    __asm__ __volatile__("");
    402    if (wot == 57) return fn(info);
    403    __asm__ __volatile__("");
    404    if (wot == 58) return fn(info);
    405    __asm__ __volatile__("");
    406    if (wot == 59) return fn(info);
    407    __asm__ __volatile__("");
    408    if (wot == 60) return fn(info);
    409    __asm__ __volatile__("");
    410    if (wot == 61) return fn(info);
    411    __asm__ __volatile__("");
    412    if (wot == 62) return fn(info);
    413    __asm__ __volatile__("");
    414    if (wot == 63) return fn(info);
    415    __asm__ __volatile__("");
    416    if (wot == 64) return fn(info);
    417    __asm__ __volatile__("");
    418    if (wot == 65) return fn(info);
    419    __asm__ __volatile__("");
    420    if (wot == 66) return fn(info);
    421    __asm__ __volatile__("");
    422    if (wot == 67) return fn(info);
    423    __asm__ __volatile__("");
    424    if (wot == 68) return fn(info);
    425    __asm__ __volatile__("");
    426    if (wot == 69) return fn(info);
    427    __asm__ __volatile__("");
    428    if (wot == 70) return fn(info);
    429    __asm__ __volatile__("");
    430    if (wot == 71) return fn(info);
    431    __asm__ __volatile__("");
    432    if (wot == 72) return fn(info);
    433    __asm__ __volatile__("");
    434    if (wot == 73) return fn(info);
    435    __asm__ __volatile__("");
    436    if (wot == 74) return fn(info);
    437    __asm__ __volatile__("");
    438    if (wot == 75) return fn(info);
    439    __asm__ __volatile__("");
    440    if (wot == 76) return fn(info);
    441    __asm__ __volatile__("");
    442    if (wot == 77) return fn(info);
    443    __asm__ __volatile__("");
    444    if (wot == 78) return fn(info);
    445    __asm__ __volatile__("");
    446    if (wot == 79) return fn(info);
    447    __asm__ __volatile__("");
    448    if (wot == 80) return fn(info);
    449    __asm__ __volatile__("");
    450    if (wot == 81) return fn(info);
    451    __asm__ __volatile__("");
    452    if (wot == 82) return fn(info);
    453    __asm__ __volatile__("");
    454    if (wot == 83) return fn(info);
    455    __asm__ __volatile__("");
    456    if (wot == 84) return fn(info);
    457    __asm__ __volatile__("");
    458    if (wot == 85) return fn(info);
    459    __asm__ __volatile__("");
    460    if (wot == 86) return fn(info);
    461    __asm__ __volatile__("");
    462    if (wot == 87) return fn(info);
    463    __asm__ __volatile__("");
    464    if (wot == 88) return fn(info);
    465    __asm__ __volatile__("");
    466    if (wot == 89) return fn(info);
    467    __asm__ __volatile__("");
    468    if (wot == 90) return fn(info);
    469    __asm__ __volatile__("");
    470    if (wot == 91) return fn(info);
    471    __asm__ __volatile__("");
    472    if (wot == 92) return fn(info);
    473    __asm__ __volatile__("");
    474    if (wot == 93) return fn(info);
    475    __asm__ __volatile__("");
    476    if (wot == 94) return fn(info);
    477    __asm__ __volatile__("");
    478    if (wot == 95) return fn(info);
    479    __asm__ __volatile__("");
    480    if (wot == 96) return fn(info);
    481    __asm__ __volatile__("");
    482    if (wot == 97) return fn(info);
    483    __asm__ __volatile__("");
    484    if (wot == 98) return fn(info);
    485    __asm__ __volatile__("");
    486    if (wot == 99) return fn(info);
    487    __asm__ __volatile__("");
    488    if (wot == 100) return fn(info);
    489    __asm__ __volatile__("");
    490    if (wot == 101) return fn(info);
    491    __asm__ __volatile__("");
    492    if (wot == 102) return fn(info);
    493    __asm__ __volatile__("");
    494    if (wot == 103) return fn(info);
    495    __asm__ __volatile__("");
    496    if (wot == 104) return fn(info);
    497    __asm__ __volatile__("");
    498    if (wot == 105) return fn(info);
    499    __asm__ __volatile__("");
    500    if (wot == 106) return fn(info);
    501    __asm__ __volatile__("");
    502    if (wot == 107) return fn(info);
    503    __asm__ __volatile__("");
    504    if (wot == 108) return fn(info);
    505    __asm__ __volatile__("");
    506    if (wot == 109) return fn(info);
    507    __asm__ __volatile__("");
    508    if (wot == 110) return fn(info);
    509    __asm__ __volatile__("");
    510    if (wot == 111) return fn(info);
    511    __asm__ __volatile__("");
    512    if (wot == 112) return fn(info);
    513    __asm__ __volatile__("");
    514    if (wot == 113) return fn(info);
    515    __asm__ __volatile__("");
    516    if (wot == 114) return fn(info);
    517    __asm__ __volatile__("");
    518    if (wot == 115) return fn(info);
    519    __asm__ __volatile__("");
    520    if (wot == 116) return fn(info);
    521    __asm__ __volatile__("");
    522    if (wot == 117) return fn(info);
    523    __asm__ __volatile__("");
    524    if (wot == 118) return fn(info);
    525    __asm__ __volatile__("");
    526    if (wot == 119) return fn(info);
    527    __asm__ __volatile__("");
    528    if (wot == 120) return fn(info);
    529    __asm__ __volatile__("");
    530    if (wot == 121) return fn(info);
    531    __asm__ __volatile__("");
    532    if (wot == 122) return fn(info);
    533    __asm__ __volatile__("");
    534    if (wot == 123) return fn(info);
    535    __asm__ __volatile__("");
    536    if (wot == 124) return fn(info);
    537    __asm__ __volatile__("");
    538    if (wot == 125) return fn(info);
    539    __asm__ __volatile__("");
    540    if (wot == 126) return fn(info);
    541    __asm__ __volatile__("");
    542    if (wot == 127) return fn(info);
    543    __asm__ __volatile__("");
    544    if (wot == 128) return fn(info);
    545    __asm__ __volatile__("");
    546    if (wot == 129) return fn(info);
    547    __asm__ __volatile__("");
    548    if (wot == 130) return fn(info);
    549    __asm__ __volatile__("");
    550    if (wot == 131) return fn(info);
    551    __asm__ __volatile__("");
    552    if (wot == 132) return fn(info);
    553    __asm__ __volatile__("");
    554    if (wot == 133) return fn(info);
    555    __asm__ __volatile__("");
    556    if (wot == 134) return fn(info);
    557    __asm__ __volatile__("");
    558    if (wot == 135) return fn(info);
    559    __asm__ __volatile__("");
    560    if (wot == 136) return fn(info);
    561    __asm__ __volatile__("");
    562    if (wot == 137) return fn(info);
    563    __asm__ __volatile__("");
    564    if (wot == 138) return fn(info);
    565    __asm__ __volatile__("");
    566    if (wot == 139) return fn(info);
    567    __asm__ __volatile__("");
    568    if (wot == 140) return fn(info);
    569    __asm__ __volatile__("");
    570    if (wot == 141) return fn(info);
    571    __asm__ __volatile__("");
    572    if (wot == 142) return fn(info);
    573    __asm__ __volatile__("");
    574    if (wot == 143) return fn(info);
    575    __asm__ __volatile__("");
    576    if (wot == 144) return fn(info);
    577    __asm__ __volatile__("");
    578    if (wot == 145) return fn(info);
    579    __asm__ __volatile__("");
    580    if (wot == 146) return fn(info);
    581    __asm__ __volatile__("");
    582    if (wot == 147) return fn(info);
    583    __asm__ __volatile__("");
    584    if (wot == 148) return fn(info);
    585    __asm__ __volatile__("");
    586    if (wot == 149) return fn(info);
    587    __asm__ __volatile__("");
    588    if (wot == 150) return fn(info);
    589    __asm__ __volatile__("");
    590    if (wot == 151) return fn(info);
    591    __asm__ __volatile__("");
    592    if (wot == 152) return fn(info);
    593    __asm__ __volatile__("");
    594    if (wot == 153) return fn(info);
    595    __asm__ __volatile__("");
    596    if (wot == 154) return fn(info);
    597    __asm__ __volatile__("");
    598    if (wot == 155) return fn(info);
    599    __asm__ __volatile__("");
    600    if (wot == 156) return fn(info);
    601    __asm__ __volatile__("");
    602    if (wot == 157) return fn(info);
    603    __asm__ __volatile__("");
    604    if (wot == 158) return fn(info);
    605    __asm__ __volatile__("");
    606    if (wot == 159) return fn(info);
    607    __asm__ __volatile__("");
    608    if (wot == 160) return fn(info);
    609    __asm__ __volatile__("");
    610    if (wot == 161) return fn(info);
    611    __asm__ __volatile__("");
    612    if (wot == 162) return fn(info);
    613    __asm__ __volatile__("");
    614    if (wot == 163) return fn(info);
    615    __asm__ __volatile__("");
    616    if (wot == 164) return fn(info);
    617    __asm__ __volatile__("");
    618    if (wot == 165) return fn(info);
    619    __asm__ __volatile__("");
    620    if (wot == 166) return fn(info);
    621    __asm__ __volatile__("");
    622    if (wot == 167) return fn(info);
    623    __asm__ __volatile__("");
    624    if (wot == 168) return fn(info);
    625    __asm__ __volatile__("");
    626    if (wot == 169) return fn(info);
    627    __asm__ __volatile__("");
    628    if (wot == 170) return fn(info);
    629    __asm__ __volatile__("");
    630    if (wot == 171) return fn(info);
    631    __asm__ __volatile__("");
    632    if (wot == 172) return fn(info);
    633    __asm__ __volatile__("");
    634    if (wot == 173) return fn(info);
    635    __asm__ __volatile__("");
    636    if (wot == 174) return fn(info);
    637    __asm__ __volatile__("");
    638    if (wot == 175) return fn(info);
    639    __asm__ __volatile__("");
    640    if (wot == 176) return fn(info);
    641    __asm__ __volatile__("");
    642    if (wot == 177) return fn(info);
    643    __asm__ __volatile__("");
    644    if (wot == 178) return fn(info);
    645    __asm__ __volatile__("");
    646    if (wot == 179) return fn(info);
    647    __asm__ __volatile__("");
    648    if (wot == 180) return fn(info);
    649    __asm__ __volatile__("");
    650    if (wot == 181) return fn(info);
    651    __asm__ __volatile__("");
    652    if (wot == 182) return fn(info);
    653    __asm__ __volatile__("");
    654    if (wot == 183) return fn(info);
    655    __asm__ __volatile__("");
    656    if (wot == 184) return fn(info);
    657    __asm__ __volatile__("");
    658    if (wot == 185) return fn(info);
    659    __asm__ __volatile__("");
    660    if (wot == 186) return fn(info);
    661    __asm__ __volatile__("");
    662    if (wot == 187) return fn(info);
    663    __asm__ __volatile__("");
    664    if (wot == 188) return fn(info);
    665    __asm__ __volatile__("");
    666    if (wot == 189) return fn(info);
    667    __asm__ __volatile__("");
    668    if (wot == 190) return fn(info);
    669    __asm__ __volatile__("");
    670    if (wot == 191) return fn(info);
    671    __asm__ __volatile__("");
    672    if (wot == 192) return fn(info);
    673    __asm__ __volatile__("");
    674    if (wot == 193) return fn(info);
    675    __asm__ __volatile__("");
    676    if (wot == 194) return fn(info);
    677    __asm__ __volatile__("");
    678    if (wot == 195) return fn(info);
    679    __asm__ __volatile__("");
    680    if (wot == 196) return fn(info);
    681    __asm__ __volatile__("");
    682    if (wot == 197) return fn(info);
    683    __asm__ __volatile__("");
    684    if (wot == 198) return fn(info);
    685    __asm__ __volatile__("");
    686    if (wot == 199) return fn(info);
    687    __asm__ __volatile__("");
    688    if (wot == 200) return fn(info);
    689    __asm__ __volatile__("");
    690    if (wot == 201) return fn(info);
    691    __asm__ __volatile__("");
    692    if (wot == 202) return fn(info);
    693    __asm__ __volatile__("");
    694    if (wot == 203) return fn(info);
    695    __asm__ __volatile__("");
    696    if (wot == 204) return fn(info);
    697    __asm__ __volatile__("");
    698    if (wot == 205) return fn(info);
    699    __asm__ __volatile__("");
    700    if (wot == 206) return fn(info);
    701    __asm__ __volatile__("");
    702    if (wot == 207) return fn(info);
    703    __asm__ __volatile__("");
    704    if (wot == 208) return fn(info);
    705    __asm__ __volatile__("");
    706    if (wot == 209) return fn(info);
    707    __asm__ __volatile__("");
    708    if (wot == 210) return fn(info);
    709    __asm__ __volatile__("");
    710    if (wot == 211) return fn(info);
    711    __asm__ __volatile__("");
    712    if (wot == 212) return fn(info);
    713    __asm__ __volatile__("");
    714    if (wot == 213) return fn(info);
    715    __asm__ __volatile__("");
    716    if (wot == 214) return fn(info);
    717    __asm__ __volatile__("");
    718    if (wot == 215) return fn(info);
    719    __asm__ __volatile__("");
    720    if (wot == 216) return fn(info);
    721    __asm__ __volatile__("");
    722    if (wot == 217) return fn(info);
    723    __asm__ __volatile__("");
    724    if (wot == 218) return fn(info);
    725    __asm__ __volatile__("");
    726    if (wot == 219) return fn(info);
    727    __asm__ __volatile__("");
    728    if (wot == 220) return fn(info);
    729    __asm__ __volatile__("");
    730    if (wot == 221) return fn(info);
    731    __asm__ __volatile__("");
    732    if (wot == 222) return fn(info);
    733    __asm__ __volatile__("");
    734    if (wot == 223) return fn(info);
    735    __asm__ __volatile__("");
    736    if (wot == 224) return fn(info);
    737    __asm__ __volatile__("");
    738    if (wot == 225) return fn(info);
    739    __asm__ __volatile__("");
    740    if (wot == 226) return fn(info);
    741    __asm__ __volatile__("");
    742    if (wot == 227) return fn(info);
    743    __asm__ __volatile__("");
    744    if (wot == 228) return fn(info);
    745    __asm__ __volatile__("");
    746    if (wot == 229) return fn(info);
    747    __asm__ __volatile__("");
    748    if (wot == 230) return fn(info);
    749    __asm__ __volatile__("");
    750    if (wot == 231) return fn(info);
    751    __asm__ __volatile__("");
    752    if (wot == 232) return fn(info);
    753    __asm__ __volatile__("");
    754    if (wot == 233) return fn(info);
    755    __asm__ __volatile__("");
    756    if (wot == 234) return fn(info);
    757    __asm__ __volatile__("");
    758    if (wot == 235) return fn(info);
    759    __asm__ __volatile__("");
    760    if (wot == 236) return fn(info);
    761    __asm__ __volatile__("");
    762    if (wot == 237) return fn(info);
    763    __asm__ __volatile__("");
    764    if (wot == 238) return fn(info);
    765    __asm__ __volatile__("");
    766    if (wot == 239) return fn(info);
    767    __asm__ __volatile__("");
    768    if (wot == 240) return fn(info);
    769    __asm__ __volatile__("");
    770    if (wot == 241) return fn(info);
    771    __asm__ __volatile__("");
    772    if (wot == 242) return fn(info);
    773    __asm__ __volatile__("");
    774    if (wot == 243) return fn(info);
    775    __asm__ __volatile__("");
    776    if (wot == 244) return fn(info);
    777    __asm__ __volatile__("");
    778    if (wot == 245) return fn(info);
    779    __asm__ __volatile__("");
    780    if (wot == 246) return fn(info);
    781    __asm__ __volatile__("");
    782    if (wot == 247) return fn(info);
    783    __asm__ __volatile__("");
    784    if (wot == 248) return fn(info);
    785    __asm__ __volatile__("");
    786    if (wot == 249) return fn(info);
    787    __asm__ __volatile__("");
    788    if (wot == 250) return fn(info);
    789    __asm__ __volatile__("");
    790    if (wot == 251) return fn(info);
    791    __asm__ __volatile__("");
    792    if (wot == 252) return fn(info);
    793    __asm__ __volatile__("");
    794    if (wot == 253) return fn(info);
    795    __asm__ __volatile__("");
    796    if (wot == 254) return fn(info);
    797    __asm__ __volatile__("");
    798    if (wot == 255) return fn(info);
    799    __asm__ __volatile__("");
    800    if (wot == 256) return fn(info);
    801    __asm__ __volatile__("");
    802    if (wot == 257) return fn(info);
    803    __asm__ __volatile__("");
    804    if (wot == 258) return fn(info);
    805    __asm__ __volatile__("");
    806    if (wot == 259) return fn(info);
    807    __asm__ __volatile__("");
    808    if (wot == 260) return fn(info);
    809    __asm__ __volatile__("");
    810    if (wot == 261) return fn(info);
    811    __asm__ __volatile__("");
    812    if (wot == 262) return fn(info);
    813    __asm__ __volatile__("");
    814    if (wot == 263) return fn(info);
    815    __asm__ __volatile__("");
    816    if (wot == 264) return fn(info);
    817    __asm__ __volatile__("");
    818    if (wot == 265) return fn(info);
    819    __asm__ __volatile__("");
    820    if (wot == 266) return fn(info);
    821    __asm__ __volatile__("");
    822    if (wot == 267) return fn(info);
    823    __asm__ __volatile__("");
    824    if (wot == 268) return fn(info);
    825    __asm__ __volatile__("");
    826    if (wot == 269) return fn(info);
    827    __asm__ __volatile__("");
    828    if (wot == 270) return fn(info);
    829    __asm__ __volatile__("");
    830    if (wot == 271) return fn(info);
    831    __asm__ __volatile__("");
    832    if (wot == 272) return fn(info);
    833    __asm__ __volatile__("");
    834    if (wot == 273) return fn(info);
    835    __asm__ __volatile__("");
    836    if (wot == 274) return fn(info);
    837    __asm__ __volatile__("");
    838    if (wot == 275) return fn(info);
    839    __asm__ __volatile__("");
    840    if (wot == 276) return fn(info);
    841    __asm__ __volatile__("");
    842    if (wot == 277) return fn(info);
    843    __asm__ __volatile__("");
    844    if (wot == 278) return fn(info);
    845    __asm__ __volatile__("");
    846    if (wot == 279) return fn(info);
    847    __asm__ __volatile__("");
    848    if (wot == 280) return fn(info);
    849    __asm__ __volatile__("");
    850    if (wot == 281) return fn(info);
    851    __asm__ __volatile__("");
    852    if (wot == 282) return fn(info);
    853    __asm__ __volatile__("");
    854    if (wot == 283) return fn(info);
    855    __asm__ __volatile__("");
    856    if (wot == 284) return fn(info);
    857    __asm__ __volatile__("");
    858    if (wot == 285) return fn(info);
    859    __asm__ __volatile__("");
    860    if (wot == 286) return fn(info);
    861    __asm__ __volatile__("");
    862    if (wot == 287) return fn(info);
    863    __asm__ __volatile__("");
    864    if (wot == 288) return fn(info);
    865    __asm__ __volatile__("");
    866    if (wot == 289) return fn(info);
    867    __asm__ __volatile__("");
    868    if (wot == 290) return fn(info);
    869    __asm__ __volatile__("");
    870    if (wot == 291) return fn(info);
    871    __asm__ __volatile__("");
    872    if (wot == 292) return fn(info);
    873    __asm__ __volatile__("");
    874    if (wot == 293) return fn(info);
    875    __asm__ __volatile__("");
    876    if (wot == 294) return fn(info);
    877    __asm__ __volatile__("");
    878    if (wot == 295) return fn(info);
    879    __asm__ __volatile__("");
    880    if (wot == 296) return fn(info);
    881    __asm__ __volatile__("");
    882    if (wot == 297) return fn(info);
    883    __asm__ __volatile__("");
    884    if (wot == 298) return fn(info);
    885    __asm__ __volatile__("");
    886    if (wot == 299) return fn(info);
    887    __asm__ __volatile__("");
    888    if (wot == 300) return fn(info);
    889    __asm__ __volatile__("");
    890    if (wot == 301) return fn(info);
    891    __asm__ __volatile__("");
    892    if (wot == 302) return fn(info);
    893    __asm__ __volatile__("");
    894    if (wot == 303) return fn(info);
    895    __asm__ __volatile__("");
    896    if (wot == 304) return fn(info);
    897    __asm__ __volatile__("");
    898    if (wot == 305) return fn(info);
    899    __asm__ __volatile__("");
    900    if (wot == 306) return fn(info);
    901    __asm__ __volatile__("");
    902    if (wot == 307) return fn(info);
    903    __asm__ __volatile__("");
    904    if (wot == 308) return fn(info);
    905    __asm__ __volatile__("");
    906    if (wot == 309) return fn(info);
    907    __asm__ __volatile__("");
    908    if (wot == 310) return fn(info);
    909    __asm__ __volatile__("");
    910    if (wot == 311) return fn(info);
    911    __asm__ __volatile__("");
    912    if (wot == 312) return fn(info);
    913    __asm__ __volatile__("");
    914    if (wot == 313) return fn(info);
    915    __asm__ __volatile__("");
    916    if (wot == 314) return fn(info);
    917    __asm__ __volatile__("");
    918    if (wot == 315) return fn(info);
    919    __asm__ __volatile__("");
    920    if (wot == 316) return fn(info);
    921    __asm__ __volatile__("");
    922    if (wot == 317) return fn(info);
    923    __asm__ __volatile__("");
    924    if (wot == 318) return fn(info);
    925    __asm__ __volatile__("");
    926    if (wot == 319) return fn(info);
    927    __asm__ __volatile__("");
    928    if (wot == 320) return fn(info);
    929    __asm__ __volatile__("");
    930    if (wot == 321) return fn(info);
    931    __asm__ __volatile__("");
    932    if (wot == 322) return fn(info);
    933    __asm__ __volatile__("");
    934    if (wot == 323) return fn(info);
    935    __asm__ __volatile__("");
    936    if (wot == 324) return fn(info);
    937    __asm__ __volatile__("");
    938    if (wot == 325) return fn(info);
    939    __asm__ __volatile__("");
    940    if (wot == 326) return fn(info);
    941    __asm__ __volatile__("");
    942    if (wot == 327) return fn(info);
    943    __asm__ __volatile__("");
    944    if (wot == 328) return fn(info);
    945    __asm__ __volatile__("");
    946    if (wot == 329) return fn(info);
    947    __asm__ __volatile__("");
    948    if (wot == 330) return fn(info);
    949    __asm__ __volatile__("");
    950    if (wot == 331) return fn(info);
    951    __asm__ __volatile__("");
    952    if (wot == 332) return fn(info);
    953    __asm__ __volatile__("");
    954    if (wot == 333) return fn(info);
    955    __asm__ __volatile__("");
    956    if (wot == 334) return fn(info);
    957    __asm__ __volatile__("");
    958    if (wot == 335) return fn(info);
    959    __asm__ __volatile__("");
    960    if (wot == 336) return fn(info);
    961    __asm__ __volatile__("");
    962    if (wot == 337) return fn(info);
    963    __asm__ __volatile__("");
    964    if (wot == 338) return fn(info);
    965    __asm__ __volatile__("");
    966    if (wot == 339) return fn(info);
    967    __asm__ __volatile__("");
    968    if (wot == 340) return fn(info);
    969    __asm__ __volatile__("");
    970    if (wot == 341) return fn(info);
    971    __asm__ __volatile__("");
    972    if (wot == 342) return fn(info);
    973    __asm__ __volatile__("");
    974    if (wot == 343) return fn(info);
    975    __asm__ __volatile__("");
    976    if (wot == 344) return fn(info);
    977    __asm__ __volatile__("");
    978    if (wot == 345) return fn(info);
    979    __asm__ __volatile__("");
    980    if (wot == 346) return fn(info);
    981    __asm__ __volatile__("");
    982    if (wot == 347) return fn(info);
    983    __asm__ __volatile__("");
    984    if (wot == 348) return fn(info);
    985    __asm__ __volatile__("");
    986    if (wot == 349) return fn(info);
    987    __asm__ __volatile__("");
    988    if (wot == 350) return fn(info);
    989    __asm__ __volatile__("");
    990    if (wot == 351) return fn(info);
    991    __asm__ __volatile__("");
    992    if (wot == 352) return fn(info);
    993    __asm__ __volatile__("");
    994    if (wot == 353) return fn(info);
    995    __asm__ __volatile__("");
    996    if (wot == 354) return fn(info);
    997    __asm__ __volatile__("");
    998    if (wot == 355) return fn(info);
    999    __asm__ __volatile__("");
   1000    if (wot == 356) return fn(info);
   1001    __asm__ __volatile__("");
   1002    if (wot == 357) return fn(info);
   1003    __asm__ __volatile__("");
   1004    if (wot == 358) return fn(info);
   1005    __asm__ __volatile__("");
   1006    if (wot == 359) return fn(info);
   1007    __asm__ __volatile__("");
   1008    if (wot == 360) return fn(info);
   1009    __asm__ __volatile__("");
   1010    if (wot == 361) return fn(info);
   1011    __asm__ __volatile__("");
   1012    if (wot == 362) return fn(info);
   1013    __asm__ __volatile__("");
   1014    if (wot == 363) return fn(info);
   1015    __asm__ __volatile__("");
   1016    if (wot == 364) return fn(info);
   1017    __asm__ __volatile__("");
   1018    if (wot == 365) return fn(info);
   1019    __asm__ __volatile__("");
   1020    if (wot == 366) return fn(info);
   1021    __asm__ __volatile__("");
   1022    if (wot == 367) return fn(info);
   1023    __asm__ __volatile__("");
   1024    if (wot == 368) return fn(info);
   1025    __asm__ __volatile__("");
   1026    if (wot == 369) return fn(info);
   1027    __asm__ __volatile__("");
   1028    if (wot == 370) return fn(info);
   1029    __asm__ __volatile__("");
   1030    if (wot == 371) return fn(info);
   1031    __asm__ __volatile__("");
   1032    if (wot == 372) return fn(info);
   1033    __asm__ __volatile__("");
   1034    if (wot == 373) return fn(info);
   1035    __asm__ __volatile__("");
   1036    if (wot == 374) return fn(info);
   1037    __asm__ __volatile__("");
   1038    if (wot == 375) return fn(info);
   1039    __asm__ __volatile__("");
   1040    if (wot == 376) return fn(info);
   1041    __asm__ __volatile__("");
   1042    if (wot == 377) return fn(info);
   1043    __asm__ __volatile__("");
   1044    if (wot == 378) return fn(info);
   1045    __asm__ __volatile__("");
   1046    if (wot == 379) return fn(info);
   1047    __asm__ __volatile__("");
   1048    if (wot == 380) return fn(info);
   1049    __asm__ __volatile__("");
   1050    if (wot == 381) return fn(info);
   1051    __asm__ __volatile__("");
   1052    if (wot == 382) return fn(info);
   1053    __asm__ __volatile__("");
   1054    if (wot == 383) return fn(info);
   1055    __asm__ __volatile__("");
   1056    if (wot == 384) return fn(info);
   1057    __asm__ __volatile__("");
   1058    if (wot == 385) return fn(info);
   1059    __asm__ __volatile__("");
   1060    if (wot == 386) return fn(info);
   1061    __asm__ __volatile__("");
   1062    if (wot == 387) return fn(info);
   1063    __asm__ __volatile__("");
   1064    if (wot == 388) return fn(info);
   1065    __asm__ __volatile__("");
   1066    if (wot == 389) return fn(info);
   1067    __asm__ __volatile__("");
   1068    if (wot == 390) return fn(info);
   1069    __asm__ __volatile__("");
   1070    if (wot == 391) return fn(info);
   1071    __asm__ __volatile__("");
   1072    if (wot == 392) return fn(info);
   1073    __asm__ __volatile__("");
   1074    if (wot == 393) return fn(info);
   1075    __asm__ __volatile__("");
   1076    if (wot == 394) return fn(info);
   1077    __asm__ __volatile__("");
   1078    if (wot == 395) return fn(info);
   1079    __asm__ __volatile__("");
   1080    if (wot == 396) return fn(info);
   1081    __asm__ __volatile__("");
   1082    if (wot == 397) return fn(info);
   1083    __asm__ __volatile__("");
   1084    if (wot == 398) return fn(info);
   1085    __asm__ __volatile__("");
   1086    if (wot == 399) return fn(info);
   1087    __asm__ __volatile__("");
   1088    if (wot == 400) return fn(info);
   1089    __asm__ __volatile__("");
   1090    if (wot == 401) return fn(info);
   1091    __asm__ __volatile__("");
   1092    if (wot == 402) return fn(info);
   1093    __asm__ __volatile__("");
   1094    if (wot == 403) return fn(info);
   1095    __asm__ __volatile__("");
   1096    if (wot == 404) return fn(info);
   1097    __asm__ __volatile__("");
   1098    if (wot == 405) return fn(info);
   1099    __asm__ __volatile__("");
   1100    if (wot == 406) return fn(info);
   1101    __asm__ __volatile__("");
   1102    if (wot == 407) return fn(info);
   1103    __asm__ __volatile__("");
   1104    if (wot == 408) return fn(info);
   1105    __asm__ __volatile__("");
   1106    if (wot == 409) return fn(info);
   1107    __asm__ __volatile__("");
   1108    if (wot == 410) return fn(info);
   1109    __asm__ __volatile__("");
   1110    if (wot == 411) return fn(info);
   1111    __asm__ __volatile__("");
   1112    if (wot == 412) return fn(info);
   1113    __asm__ __volatile__("");
   1114    if (wot == 413) return fn(info);
   1115    __asm__ __volatile__("");
   1116    if (wot == 414) return fn(info);
   1117    __asm__ __volatile__("");
   1118    if (wot == 415) return fn(info);
   1119    __asm__ __volatile__("");
   1120    if (wot == 416) return fn(info);
   1121    __asm__ __volatile__("");
   1122    if (wot == 417) return fn(info);
   1123    __asm__ __volatile__("");
   1124    if (wot == 418) return fn(info);
   1125    __asm__ __volatile__("");
   1126    if (wot == 419) return fn(info);
   1127    __asm__ __volatile__("");
   1128    if (wot == 420) return fn(info);
   1129    __asm__ __volatile__("");
   1130    if (wot == 421) return fn(info);
   1131    __asm__ __volatile__("");
   1132    if (wot == 422) return fn(info);
   1133    __asm__ __volatile__("");
   1134    if (wot == 423) return fn(info);
   1135    __asm__ __volatile__("");
   1136    if (wot == 424) return fn(info);
   1137    __asm__ __volatile__("");
   1138    if (wot == 425) return fn(info);
   1139    __asm__ __volatile__("");
   1140    if (wot == 426) return fn(info);
   1141    __asm__ __volatile__("");
   1142    if (wot == 427) return fn(info);
   1143    __asm__ __volatile__("");
   1144    if (wot == 428) return fn(info);
   1145    __asm__ __volatile__("");
   1146    if (wot == 429) return fn(info);
   1147    __asm__ __volatile__("");
   1148    if (wot == 430) return fn(info);
   1149    __asm__ __volatile__("");
   1150    if (wot == 431) return fn(info);
   1151    __asm__ __volatile__("");
   1152    if (wot == 432) return fn(info);
   1153    __asm__ __volatile__("");
   1154    if (wot == 433) return fn(info);
   1155    __asm__ __volatile__("");
   1156    if (wot == 434) return fn(info);
   1157    __asm__ __volatile__("");
   1158    if (wot == 435) return fn(info);
   1159    __asm__ __volatile__("");
   1160    if (wot == 436) return fn(info);
   1161    __asm__ __volatile__("");
   1162    if (wot == 437) return fn(info);
   1163    __asm__ __volatile__("");
   1164    if (wot == 438) return fn(info);
   1165    __asm__ __volatile__("");
   1166    if (wot == 439) return fn(info);
   1167    __asm__ __volatile__("");
   1168    if (wot == 440) return fn(info);
   1169    __asm__ __volatile__("");
   1170    if (wot == 441) return fn(info);
   1171    __asm__ __volatile__("");
   1172    if (wot == 442) return fn(info);
   1173    __asm__ __volatile__("");
   1174    if (wot == 443) return fn(info);
   1175    __asm__ __volatile__("");
   1176    if (wot == 444) return fn(info);
   1177    __asm__ __volatile__("");
   1178    if (wot == 445) return fn(info);
   1179    __asm__ __volatile__("");
   1180    if (wot == 446) return fn(info);
   1181    __asm__ __volatile__("");
   1182    if (wot == 447) return fn(info);
   1183    __asm__ __volatile__("");
   1184    if (wot == 448) return fn(info);
   1185    __asm__ __volatile__("");
   1186    if (wot == 449) return fn(info);
   1187    __asm__ __volatile__("");
   1188    if (wot == 450) return fn(info);
   1189    __asm__ __volatile__("");
   1190    if (wot == 451) return fn(info);
   1191    __asm__ __volatile__("");
   1192    if (wot == 452) return fn(info);
   1193    __asm__ __volatile__("");
   1194    if (wot == 453) return fn(info);
   1195    __asm__ __volatile__("");
   1196    if (wot == 454) return fn(info);
   1197    __asm__ __volatile__("");
   1198    if (wot == 455) return fn(info);
   1199    __asm__ __volatile__("");
   1200    if (wot == 456) return fn(info);
   1201    __asm__ __volatile__("");
   1202    if (wot == 457) return fn(info);
   1203    __asm__ __volatile__("");
   1204    if (wot == 458) return fn(info);
   1205    __asm__ __volatile__("");
   1206    if (wot == 459) return fn(info);
   1207    __asm__ __volatile__("");
   1208    if (wot == 460) return fn(info);
   1209    __asm__ __volatile__("");
   1210    if (wot == 461) return fn(info);
   1211    __asm__ __volatile__("");
   1212    if (wot == 462) return fn(info);
   1213    __asm__ __volatile__("");
   1214    if (wot == 463) return fn(info);
   1215    __asm__ __volatile__("");
   1216    if (wot == 464) return fn(info);
   1217    __asm__ __volatile__("");
   1218    if (wot == 465) return fn(info);
   1219    __asm__ __volatile__("");
   1220    if (wot == 466) return fn(info);
   1221    __asm__ __volatile__("");
   1222    if (wot == 467) return fn(info);
   1223    __asm__ __volatile__("");
   1224    if (wot == 468) return fn(info);
   1225    __asm__ __volatile__("");
   1226    if (wot == 469) return fn(info);
   1227    __asm__ __volatile__("");
   1228    if (wot == 470) return fn(info);
   1229    __asm__ __volatile__("");
   1230    if (wot == 471) return fn(info);
   1231    __asm__ __volatile__("");
   1232    if (wot == 472) return fn(info);
   1233    __asm__ __volatile__("");
   1234    if (wot == 473) return fn(info);
   1235    __asm__ __volatile__("");
   1236    if (wot == 474) return fn(info);
   1237    __asm__ __volatile__("");
   1238    if (wot == 475) return fn(info);
   1239    __asm__ __volatile__("");
   1240    if (wot == 476) return fn(info);
   1241    __asm__ __volatile__("");
   1242    if (wot == 477) return fn(info);
   1243    __asm__ __volatile__("");
   1244    if (wot == 478) return fn(info);
   1245    __asm__ __volatile__("");
   1246    if (wot == 479) return fn(info);
   1247    __asm__ __volatile__("");
   1248    if (wot == 480) return fn(info);
   1249    __asm__ __volatile__("");
   1250    if (wot == 481) return fn(info);
   1251    __asm__ __volatile__("");
   1252    if (wot == 482) return fn(info);
   1253    __asm__ __volatile__("");
   1254    if (wot == 483) return fn(info);
   1255    __asm__ __volatile__("");
   1256    if (wot == 484) return fn(info);
   1257    __asm__ __volatile__("");
   1258    if (wot == 485) return fn(info);
   1259    __asm__ __volatile__("");
   1260    if (wot == 486) return fn(info);
   1261    __asm__ __volatile__("");
   1262    if (wot == 487) return fn(info);
   1263    __asm__ __volatile__("");
   1264    if (wot == 488) return fn(info);
   1265    __asm__ __volatile__("");
   1266    if (wot == 489) return fn(info);
   1267    __asm__ __volatile__("");
   1268    if (wot == 490) return fn(info);
   1269    __asm__ __volatile__("");
   1270    if (wot == 491) return fn(info);
   1271    __asm__ __volatile__("");
   1272    if (wot == 492) return fn(info);
   1273    __asm__ __volatile__("");
   1274    if (wot == 493) return fn(info);
   1275    __asm__ __volatile__("");
   1276    if (wot == 494) return fn(info);
   1277    __asm__ __volatile__("");
   1278    if (wot == 495) return fn(info);
   1279    __asm__ __volatile__("");
   1280    if (wot == 496) return fn(info);
   1281    __asm__ __volatile__("");
   1282    if (wot == 497) return fn(info);
   1283    __asm__ __volatile__("");
   1284    if (wot == 498) return fn(info);
   1285    __asm__ __volatile__("");
   1286    if (wot == 499) return fn(info);
   1287    __asm__ __volatile__("");
   1288   halfway:
   1289    if (wot == 500) return fn(info);
   1290    __asm__ __volatile__("");
   1291    if (wot == 501) return fn(info);
   1292    __asm__ __volatile__("");
   1293    if (wot == 502) return fn(info);
   1294    __asm__ __volatile__("");
   1295    if (wot == 503) return fn(info);
   1296    __asm__ __volatile__("");
   1297    if (wot == 504) return fn(info);
   1298    __asm__ __volatile__("");
   1299    if (wot == 505) return fn(info);
   1300    __asm__ __volatile__("");
   1301    if (wot == 506) return fn(info);
   1302    __asm__ __volatile__("");
   1303    if (wot == 507) return fn(info);
   1304    __asm__ __volatile__("");
   1305    if (wot == 508) return fn(info);
   1306    __asm__ __volatile__("");
   1307    if (wot == 509) return fn(info);
   1308    __asm__ __volatile__("");
   1309    if (wot == 510) return fn(info);
   1310    __asm__ __volatile__("");
   1311    if (wot == 511) return fn(info);
   1312    __asm__ __volatile__("");
   1313    if (wot == 512) return fn(info);
   1314    __asm__ __volatile__("");
   1315    if (wot == 513) return fn(info);
   1316    __asm__ __volatile__("");
   1317    if (wot == 514) return fn(info);
   1318    __asm__ __volatile__("");
   1319    if (wot == 515) return fn(info);
   1320    __asm__ __volatile__("");
   1321    if (wot == 516) return fn(info);
   1322    __asm__ __volatile__("");
   1323    if (wot == 517) return fn(info);
   1324    __asm__ __volatile__("");
   1325    if (wot == 518) return fn(info);
   1326    __asm__ __volatile__("");
   1327    if (wot == 519) return fn(info);
   1328    __asm__ __volatile__("");
   1329    if (wot == 520) return fn(info);
   1330    __asm__ __volatile__("");
   1331    if (wot == 521) return fn(info);
   1332    __asm__ __volatile__("");
   1333    if (wot == 522) return fn(info);
   1334    __asm__ __volatile__("");
   1335    if (wot == 523) return fn(info);
   1336    __asm__ __volatile__("");
   1337    if (wot == 524) return fn(info);
   1338    __asm__ __volatile__("");
   1339    if (wot == 525) return fn(info);
   1340    __asm__ __volatile__("");
   1341    if (wot == 526) return fn(info);
   1342    __asm__ __volatile__("");
   1343    if (wot == 527) return fn(info);
   1344    __asm__ __volatile__("");
   1345    if (wot == 528) return fn(info);
   1346    __asm__ __volatile__("");
   1347    if (wot == 529) return fn(info);
   1348    __asm__ __volatile__("");
   1349    if (wot == 530) return fn(info);
   1350    __asm__ __volatile__("");
   1351    if (wot == 531) return fn(info);
   1352    __asm__ __volatile__("");
   1353    if (wot == 532) return fn(info);
   1354    __asm__ __volatile__("");
   1355    if (wot == 533) return fn(info);
   1356    __asm__ __volatile__("");
   1357    if (wot == 534) return fn(info);
   1358    __asm__ __volatile__("");
   1359    if (wot == 535) return fn(info);
   1360    __asm__ __volatile__("");
   1361    if (wot == 536) return fn(info);
   1362    __asm__ __volatile__("");
   1363    if (wot == 537) return fn(info);
   1364    __asm__ __volatile__("");
   1365    if (wot == 538) return fn(info);
   1366    __asm__ __volatile__("");
   1367    if (wot == 539) return fn(info);
   1368    __asm__ __volatile__("");
   1369    if (wot == 540) return fn(info);
   1370    __asm__ __volatile__("");
   1371    if (wot == 541) return fn(info);
   1372    __asm__ __volatile__("");
   1373    if (wot == 542) return fn(info);
   1374    __asm__ __volatile__("");
   1375    if (wot == 543) return fn(info);
   1376    __asm__ __volatile__("");
   1377    if (wot == 544) return fn(info);
   1378    __asm__ __volatile__("");
   1379    if (wot == 545) return fn(info);
   1380    __asm__ __volatile__("");
   1381    if (wot == 546) return fn(info);
   1382    __asm__ __volatile__("");
   1383    if (wot == 547) return fn(info);
   1384    __asm__ __volatile__("");
   1385    if (wot == 548) return fn(info);
   1386    __asm__ __volatile__("");
   1387    if (wot == 549) return fn(info);
   1388    __asm__ __volatile__("");
   1389    if (wot == 550) return fn(info);
   1390    __asm__ __volatile__("");
   1391    if (wot == 551) return fn(info);
   1392    __asm__ __volatile__("");
   1393    if (wot == 552) return fn(info);
   1394    __asm__ __volatile__("");
   1395    if (wot == 553) return fn(info);
   1396    __asm__ __volatile__("");
   1397    if (wot == 554) return fn(info);
   1398    __asm__ __volatile__("");
   1399    if (wot == 555) return fn(info);
   1400    __asm__ __volatile__("");
   1401    if (wot == 556) return fn(info);
   1402    __asm__ __volatile__("");
   1403    if (wot == 557) return fn(info);
   1404    __asm__ __volatile__("");
   1405    if (wot == 558) return fn(info);
   1406    __asm__ __volatile__("");
   1407    if (wot == 559) return fn(info);
   1408    __asm__ __volatile__("");
   1409    if (wot == 560) return fn(info);
   1410    __asm__ __volatile__("");
   1411    if (wot == 561) return fn(info);
   1412    __asm__ __volatile__("");
   1413    if (wot == 562) return fn(info);
   1414    __asm__ __volatile__("");
   1415    if (wot == 563) return fn(info);
   1416    __asm__ __volatile__("");
   1417    if (wot == 564) return fn(info);
   1418    __asm__ __volatile__("");
   1419    if (wot == 565) return fn(info);
   1420    __asm__ __volatile__("");
   1421    if (wot == 566) return fn(info);
   1422    __asm__ __volatile__("");
   1423    if (wot == 567) return fn(info);
   1424    __asm__ __volatile__("");
   1425    if (wot == 568) return fn(info);
   1426    __asm__ __volatile__("");
   1427    if (wot == 569) return fn(info);
   1428    __asm__ __volatile__("");
   1429    if (wot == 570) return fn(info);
   1430    __asm__ __volatile__("");
   1431    if (wot == 571) return fn(info);
   1432    __asm__ __volatile__("");
   1433    if (wot == 572) return fn(info);
   1434    __asm__ __volatile__("");
   1435    if (wot == 573) return fn(info);
   1436    __asm__ __volatile__("");
   1437    if (wot == 574) return fn(info);
   1438    __asm__ __volatile__("");
   1439    if (wot == 575) return fn(info);
   1440    __asm__ __volatile__("");
   1441    if (wot == 576) return fn(info);
   1442    __asm__ __volatile__("");
   1443    if (wot == 577) return fn(info);
   1444    __asm__ __volatile__("");
   1445    if (wot == 578) return fn(info);
   1446    __asm__ __volatile__("");
   1447    if (wot == 579) return fn(info);
   1448    __asm__ __volatile__("");
   1449    if (wot == 580) return fn(info);
   1450    __asm__ __volatile__("");
   1451    if (wot == 581) return fn(info);
   1452    __asm__ __volatile__("");
   1453    if (wot == 582) return fn(info);
   1454    __asm__ __volatile__("");
   1455    if (wot == 583) return fn(info);
   1456    __asm__ __volatile__("");
   1457    if (wot == 584) return fn(info);
   1458    __asm__ __volatile__("");
   1459    if (wot == 585) return fn(info);
   1460    __asm__ __volatile__("");
   1461    if (wot == 586) return fn(info);
   1462    __asm__ __volatile__("");
   1463    if (wot == 587) return fn(info);
   1464    __asm__ __volatile__("");
   1465    if (wot == 588) return fn(info);
   1466    __asm__ __volatile__("");
   1467    if (wot == 589) return fn(info);
   1468    __asm__ __volatile__("");
   1469    if (wot == 590) return fn(info);
   1470    __asm__ __volatile__("");
   1471    if (wot == 591) return fn(info);
   1472    __asm__ __volatile__("");
   1473    if (wot == 592) return fn(info);
   1474    __asm__ __volatile__("");
   1475    if (wot == 593) return fn(info);
   1476    __asm__ __volatile__("");
   1477    if (wot == 594) return fn(info);
   1478    __asm__ __volatile__("");
   1479    if (wot == 595) return fn(info);
   1480    __asm__ __volatile__("");
   1481    if (wot == 596) return fn(info);
   1482    __asm__ __volatile__("");
   1483    if (wot == 597) return fn(info);
   1484    __asm__ __volatile__("");
   1485    if (wot == 598) return fn(info);
   1486    __asm__ __volatile__("");
   1487    if (wot == 599) return fn(info);
   1488    __asm__ __volatile__("");
   1489    if (wot == 600) return fn(info);
   1490    __asm__ __volatile__("");
   1491    if (wot == 601) return fn(info);
   1492    __asm__ __volatile__("");
   1493    if (wot == 602) return fn(info);
   1494    __asm__ __volatile__("");
   1495    if (wot == 603) return fn(info);
   1496    __asm__ __volatile__("");
   1497    if (wot == 604) return fn(info);
   1498    __asm__ __volatile__("");
   1499    if (wot == 605) return fn(info);
   1500    __asm__ __volatile__("");
   1501    if (wot == 606) return fn(info);
   1502    __asm__ __volatile__("");
   1503    if (wot == 607) return fn(info);
   1504    __asm__ __volatile__("");
   1505    if (wot == 608) return fn(info);
   1506    __asm__ __volatile__("");
   1507    if (wot == 609) return fn(info);
   1508    __asm__ __volatile__("");
   1509    if (wot == 610) return fn(info);
   1510    __asm__ __volatile__("");
   1511    if (wot == 611) return fn(info);
   1512    __asm__ __volatile__("");
   1513    if (wot == 612) return fn(info);
   1514    __asm__ __volatile__("");
   1515    if (wot == 613) return fn(info);
   1516    __asm__ __volatile__("");
   1517    if (wot == 614) return fn(info);
   1518    __asm__ __volatile__("");
   1519    if (wot == 615) return fn(info);
   1520    __asm__ __volatile__("");
   1521    if (wot == 616) return fn(info);
   1522    __asm__ __volatile__("");
   1523    if (wot == 617) return fn(info);
   1524    __asm__ __volatile__("");
   1525    if (wot == 618) return fn(info);
   1526    __asm__ __volatile__("");
   1527    if (wot == 619) return fn(info);
   1528    __asm__ __volatile__("");
   1529    if (wot == 620) return fn(info);
   1530    __asm__ __volatile__("");
   1531    if (wot == 621) return fn(info);
   1532    __asm__ __volatile__("");
   1533    if (wot == 622) return fn(info);
   1534    __asm__ __volatile__("");
   1535    if (wot == 623) return fn(info);
   1536    __asm__ __volatile__("");
   1537    if (wot == 624) return fn(info);
   1538    __asm__ __volatile__("");
   1539    if (wot == 625) return fn(info);
   1540    __asm__ __volatile__("");
   1541    if (wot == 626) return fn(info);
   1542    __asm__ __volatile__("");
   1543    if (wot == 627) return fn(info);
   1544    __asm__ __volatile__("");
   1545    if (wot == 628) return fn(info);
   1546    __asm__ __volatile__("");
   1547    if (wot == 629) return fn(info);
   1548    __asm__ __volatile__("");
   1549    if (wot == 630) return fn(info);
   1550    __asm__ __volatile__("");
   1551    if (wot == 631) return fn(info);
   1552    __asm__ __volatile__("");
   1553    if (wot == 632) return fn(info);
   1554    __asm__ __volatile__("");
   1555    if (wot == 633) return fn(info);
   1556    __asm__ __volatile__("");
   1557    if (wot == 634) return fn(info);
   1558    __asm__ __volatile__("");
   1559    if (wot == 635) return fn(info);
   1560    __asm__ __volatile__("");
   1561    if (wot == 636) return fn(info);
   1562    __asm__ __volatile__("");
   1563    if (wot == 637) return fn(info);
   1564    __asm__ __volatile__("");
   1565    if (wot == 638) return fn(info);
   1566    __asm__ __volatile__("");
   1567    if (wot == 639) return fn(info);
   1568    __asm__ __volatile__("");
   1569    if (wot == 640) return fn(info);
   1570    __asm__ __volatile__("");
   1571    if (wot == 641) return fn(info);
   1572    __asm__ __volatile__("");
   1573    if (wot == 642) return fn(info);
   1574    __asm__ __volatile__("");
   1575    if (wot == 643) return fn(info);
   1576    __asm__ __volatile__("");
   1577    if (wot == 644) return fn(info);
   1578    __asm__ __volatile__("");
   1579    if (wot == 645) return fn(info);
   1580    __asm__ __volatile__("");
   1581    if (wot == 646) return fn(info);
   1582    __asm__ __volatile__("");
   1583    if (wot == 647) return fn(info);
   1584    __asm__ __volatile__("");
   1585    if (wot == 648) return fn(info);
   1586    __asm__ __volatile__("");
   1587    if (wot == 649) return fn(info);
   1588    __asm__ __volatile__("");
   1589    if (wot == 650) return fn(info);
   1590    __asm__ __volatile__("");
   1591    if (wot == 651) return fn(info);
   1592    __asm__ __volatile__("");
   1593    if (wot == 652) return fn(info);
   1594    __asm__ __volatile__("");
   1595    if (wot == 653) return fn(info);
   1596    __asm__ __volatile__("");
   1597    if (wot == 654) return fn(info);
   1598    __asm__ __volatile__("");
   1599    if (wot == 655) return fn(info);
   1600    __asm__ __volatile__("");
   1601    if (wot == 656) return fn(info);
   1602    __asm__ __volatile__("");
   1603    if (wot == 657) return fn(info);
   1604    __asm__ __volatile__("");
   1605    if (wot == 658) return fn(info);
   1606    __asm__ __volatile__("");
   1607    if (wot == 659) return fn(info);
   1608    __asm__ __volatile__("");
   1609    if (wot == 660) return fn(info);
   1610    __asm__ __volatile__("");
   1611    if (wot == 661) return fn(info);
   1612    __asm__ __volatile__("");
   1613    if (wot == 662) return fn(info);
   1614    __asm__ __volatile__("");
   1615    if (wot == 663) return fn(info);
   1616    __asm__ __volatile__("");
   1617    if (wot == 664) return fn(info);
   1618    __asm__ __volatile__("");
   1619    if (wot == 665) return fn(info);
   1620    __asm__ __volatile__("");
   1621    if (wot == 666) return fn(info);
   1622    __asm__ __volatile__("");
   1623    if (wot == 667) return fn(info);
   1624    __asm__ __volatile__("");
   1625    if (wot == 668) return fn(info);
   1626    __asm__ __volatile__("");
   1627    if (wot == 669) return fn(info);
   1628    __asm__ __volatile__("");
   1629    if (wot == 670) return fn(info);
   1630    __asm__ __volatile__("");
   1631    if (wot == 671) return fn(info);
   1632    __asm__ __volatile__("");
   1633    if (wot == 672) return fn(info);
   1634    __asm__ __volatile__("");
   1635    if (wot == 673) return fn(info);
   1636    __asm__ __volatile__("");
   1637    if (wot == 674) return fn(info);
   1638    __asm__ __volatile__("");
   1639    if (wot == 675) return fn(info);
   1640    __asm__ __volatile__("");
   1641    if (wot == 676) return fn(info);
   1642    __asm__ __volatile__("");
   1643    if (wot == 677) return fn(info);
   1644    __asm__ __volatile__("");
   1645    if (wot == 678) return fn(info);
   1646    __asm__ __volatile__("");
   1647    if (wot == 679) return fn(info);
   1648    __asm__ __volatile__("");
   1649    if (wot == 680) return fn(info);
   1650    __asm__ __volatile__("");
   1651    if (wot == 681) return fn(info);
   1652    __asm__ __volatile__("");
   1653    if (wot == 682) return fn(info);
   1654    __asm__ __volatile__("");
   1655    if (wot == 683) return fn(info);
   1656    __asm__ __volatile__("");
   1657    if (wot == 684) return fn(info);
   1658    __asm__ __volatile__("");
   1659    if (wot == 685) return fn(info);
   1660    __asm__ __volatile__("");
   1661    if (wot == 686) return fn(info);
   1662    __asm__ __volatile__("");
   1663    if (wot == 687) return fn(info);
   1664    __asm__ __volatile__("");
   1665    if (wot == 688) return fn(info);
   1666    __asm__ __volatile__("");
   1667    if (wot == 689) return fn(info);
   1668    __asm__ __volatile__("");
   1669    if (wot == 690) return fn(info);
   1670    __asm__ __volatile__("");
   1671    if (wot == 691) return fn(info);
   1672    __asm__ __volatile__("");
   1673    if (wot == 692) return fn(info);
   1674    __asm__ __volatile__("");
   1675    if (wot == 693) return fn(info);
   1676    __asm__ __volatile__("");
   1677    if (wot == 694) return fn(info);
   1678    __asm__ __volatile__("");
   1679    if (wot == 695) return fn(info);
   1680    __asm__ __volatile__("");
   1681    if (wot == 696) return fn(info);
   1682    __asm__ __volatile__("");
   1683    if (wot == 697) return fn(info);
   1684    __asm__ __volatile__("");
   1685    if (wot == 698) return fn(info);
   1686    __asm__ __volatile__("");
   1687    if (wot == 699) return fn(info);
   1688    __asm__ __volatile__("");
   1689    if (wot == 700) return fn(info);
   1690    __asm__ __volatile__("");
   1691    if (wot == 701) return fn(info);
   1692    __asm__ __volatile__("");
   1693    if (wot == 702) return fn(info);
   1694    __asm__ __volatile__("");
   1695    if (wot == 703) return fn(info);
   1696    __asm__ __volatile__("");
   1697    if (wot == 704) return fn(info);
   1698    __asm__ __volatile__("");
   1699    if (wot == 705) return fn(info);
   1700    __asm__ __volatile__("");
   1701    if (wot == 706) return fn(info);
   1702    __asm__ __volatile__("");
   1703    if (wot == 707) return fn(info);
   1704    __asm__ __volatile__("");
   1705    if (wot == 708) return fn(info);
   1706    __asm__ __volatile__("");
   1707    if (wot == 709) return fn(info);
   1708    __asm__ __volatile__("");
   1709    if (wot == 710) return fn(info);
   1710    __asm__ __volatile__("");
   1711    if (wot == 711) return fn(info);
   1712    __asm__ __volatile__("");
   1713    if (wot == 712) return fn(info);
   1714    __asm__ __volatile__("");
   1715    if (wot == 713) return fn(info);
   1716    __asm__ __volatile__("");
   1717    if (wot == 714) return fn(info);
   1718    __asm__ __volatile__("");
   1719    if (wot == 715) return fn(info);
   1720    __asm__ __volatile__("");
   1721    if (wot == 716) return fn(info);
   1722    __asm__ __volatile__("");
   1723    if (wot == 717) return fn(info);
   1724    __asm__ __volatile__("");
   1725    if (wot == 718) return fn(info);
   1726    __asm__ __volatile__("");
   1727    if (wot == 719) return fn(info);
   1728    __asm__ __volatile__("");
   1729    if (wot == 720) return fn(info);
   1730    __asm__ __volatile__("");
   1731    if (wot == 721) return fn(info);
   1732    __asm__ __volatile__("");
   1733    if (wot == 722) return fn(info);
   1734    __asm__ __volatile__("");
   1735    if (wot == 723) return fn(info);
   1736    __asm__ __volatile__("");
   1737    if (wot == 724) return fn(info);
   1738    __asm__ __volatile__("");
   1739    if (wot == 725) return fn(info);
   1740    __asm__ __volatile__("");
   1741    if (wot == 726) return fn(info);
   1742    __asm__ __volatile__("");
   1743    if (wot == 727) return fn(info);
   1744    __asm__ __volatile__("");
   1745    if (wot == 728) return fn(info);
   1746    __asm__ __volatile__("");
   1747    if (wot == 729) return fn(info);
   1748    __asm__ __volatile__("");
   1749    if (wot == 730) return fn(info);
   1750    __asm__ __volatile__("");
   1751    if (wot == 731) return fn(info);
   1752    __asm__ __volatile__("");
   1753    if (wot == 732) return fn(info);
   1754    __asm__ __volatile__("");
   1755    if (wot == 733) return fn(info);
   1756    __asm__ __volatile__("");
   1757    if (wot == 734) return fn(info);
   1758    __asm__ __volatile__("");
   1759    if (wot == 735) return fn(info);
   1760    __asm__ __volatile__("");
   1761    if (wot == 736) return fn(info);
   1762    __asm__ __volatile__("");
   1763    if (wot == 737) return fn(info);
   1764    __asm__ __volatile__("");
   1765    if (wot == 738) return fn(info);
   1766    __asm__ __volatile__("");
   1767    if (wot == 739) return fn(info);
   1768    __asm__ __volatile__("");
   1769    if (wot == 740) return fn(info);
   1770    __asm__ __volatile__("");
   1771    if (wot == 741) return fn(info);
   1772    __asm__ __volatile__("");
   1773    if (wot == 742) return fn(info);
   1774    __asm__ __volatile__("");
   1775    if (wot == 743) return fn(info);
   1776    __asm__ __volatile__("");
   1777    if (wot == 744) return fn(info);
   1778    __asm__ __volatile__("");
   1779    if (wot == 745) return fn(info);
   1780    __asm__ __volatile__("");
   1781    if (wot == 746) return fn(info);
   1782    __asm__ __volatile__("");
   1783    if (wot == 747) return fn(info);
   1784    __asm__ __volatile__("");
   1785    if (wot == 748) return fn(info);
   1786    __asm__ __volatile__("");
   1787    if (wot == 749) return fn(info);
   1788    __asm__ __volatile__("");
   1789    if (wot == 750) return fn(info);
   1790    __asm__ __volatile__("");
   1791    if (wot == 751) return fn(info);
   1792    __asm__ __volatile__("");
   1793    if (wot == 752) return fn(info);
   1794    __asm__ __volatile__("");
   1795    if (wot == 753) return fn(info);
   1796    __asm__ __volatile__("");
   1797    if (wot == 754) return fn(info);
   1798    __asm__ __volatile__("");
   1799    if (wot == 755) return fn(info);
   1800    __asm__ __volatile__("");
   1801    if (wot == 756) return fn(info);
   1802    __asm__ __volatile__("");
   1803    if (wot == 757) return fn(info);
   1804    __asm__ __volatile__("");
   1805    if (wot == 758) return fn(info);
   1806    __asm__ __volatile__("");
   1807    if (wot == 759) return fn(info);
   1808    __asm__ __volatile__("");
   1809    if (wot == 760) return fn(info);
   1810    __asm__ __volatile__("");
   1811    if (wot == 761) return fn(info);
   1812    __asm__ __volatile__("");
   1813    if (wot == 762) return fn(info);
   1814    __asm__ __volatile__("");
   1815    if (wot == 763) return fn(info);
   1816    __asm__ __volatile__("");
   1817    if (wot == 764) return fn(info);
   1818    __asm__ __volatile__("");
   1819    if (wot == 765) return fn(info);
   1820    __asm__ __volatile__("");
   1821    if (wot == 766) return fn(info);
   1822    __asm__ __volatile__("");
   1823    if (wot == 767) return fn(info);
   1824    __asm__ __volatile__("");
   1825    if (wot == 768) return fn(info);
   1826    __asm__ __volatile__("");
   1827    if (wot == 769) return fn(info);
   1828    __asm__ __volatile__("");
   1829    if (wot == 770) return fn(info);
   1830    __asm__ __volatile__("");
   1831    if (wot == 771) return fn(info);
   1832    __asm__ __volatile__("");
   1833    if (wot == 772) return fn(info);
   1834    __asm__ __volatile__("");
   1835    if (wot == 773) return fn(info);
   1836    __asm__ __volatile__("");
   1837    if (wot == 774) return fn(info);
   1838    __asm__ __volatile__("");
   1839    if (wot == 775) return fn(info);
   1840    __asm__ __volatile__("");
   1841    if (wot == 776) return fn(info);
   1842    __asm__ __volatile__("");
   1843    if (wot == 777) return fn(info);
   1844    __asm__ __volatile__("");
   1845    if (wot == 778) return fn(info);
   1846    __asm__ __volatile__("");
   1847    if (wot == 779) return fn(info);
   1848    __asm__ __volatile__("");
   1849    if (wot == 780) return fn(info);
   1850    __asm__ __volatile__("");
   1851    if (wot == 781) return fn(info);
   1852    __asm__ __volatile__("");
   1853    if (wot == 782) return fn(info);
   1854    __asm__ __volatile__("");
   1855    if (wot == 783) return fn(info);
   1856    __asm__ __volatile__("");
   1857    if (wot == 784) return fn(info);
   1858    __asm__ __volatile__("");
   1859    if (wot == 785) return fn(info);
   1860    __asm__ __volatile__("");
   1861    if (wot == 786) return fn(info);
   1862    __asm__ __volatile__("");
   1863    if (wot == 787) return fn(info);
   1864    __asm__ __volatile__("");
   1865    if (wot == 788) return fn(info);
   1866    __asm__ __volatile__("");
   1867    if (wot == 789) return fn(info);
   1868    __asm__ __volatile__("");
   1869    if (wot == 790) return fn(info);
   1870    __asm__ __volatile__("");
   1871    if (wot == 791) return fn(info);
   1872    __asm__ __volatile__("");
   1873    if (wot == 792) return fn(info);
   1874    __asm__ __volatile__("");
   1875    if (wot == 793) return fn(info);
   1876    __asm__ __volatile__("");
   1877    if (wot == 794) return fn(info);
   1878    __asm__ __volatile__("");
   1879    if (wot == 795) return fn(info);
   1880    __asm__ __volatile__("");
   1881    if (wot == 796) return fn(info);
   1882    __asm__ __volatile__("");
   1883    if (wot == 797) return fn(info);
   1884    __asm__ __volatile__("");
   1885    if (wot == 798) return fn(info);
   1886    __asm__ __volatile__("");
   1887    if (wot == 799) return fn(info);
   1888    __asm__ __volatile__("");
   1889    if (wot == 800) return fn(info);
   1890    __asm__ __volatile__("");
   1891    if (wot == 801) return fn(info);
   1892    __asm__ __volatile__("");
   1893    if (wot == 802) return fn(info);
   1894    __asm__ __volatile__("");
   1895    if (wot == 803) return fn(info);
   1896    __asm__ __volatile__("");
   1897    if (wot == 804) return fn(info);
   1898    __asm__ __volatile__("");
   1899    if (wot == 805) return fn(info);
   1900    __asm__ __volatile__("");
   1901    if (wot == 806) return fn(info);
   1902    __asm__ __volatile__("");
   1903    if (wot == 807) return fn(info);
   1904    __asm__ __volatile__("");
   1905    if (wot == 808) return fn(info);
   1906    __asm__ __volatile__("");
   1907    if (wot == 809) return fn(info);
   1908    __asm__ __volatile__("");
   1909    if (wot == 810) return fn(info);
   1910    __asm__ __volatile__("");
   1911    if (wot == 811) return fn(info);
   1912    __asm__ __volatile__("");
   1913    if (wot == 812) return fn(info);
   1914    __asm__ __volatile__("");
   1915    if (wot == 813) return fn(info);
   1916    __asm__ __volatile__("");
   1917    if (wot == 814) return fn(info);
   1918    __asm__ __volatile__("");
   1919    if (wot == 815) return fn(info);
   1920    __asm__ __volatile__("");
   1921    if (wot == 816) return fn(info);
   1922    __asm__ __volatile__("");
   1923    if (wot == 817) return fn(info);
   1924    __asm__ __volatile__("");
   1925    if (wot == 818) return fn(info);
   1926    __asm__ __volatile__("");
   1927    if (wot == 819) return fn(info);
   1928    __asm__ __volatile__("");
   1929    if (wot == 820) return fn(info);
   1930    __asm__ __volatile__("");
   1931    if (wot == 821) return fn(info);
   1932    __asm__ __volatile__("");
   1933    if (wot == 822) return fn(info);
   1934    __asm__ __volatile__("");
   1935    if (wot == 823) return fn(info);
   1936    __asm__ __volatile__("");
   1937    if (wot == 824) return fn(info);
   1938    __asm__ __volatile__("");
   1939    if (wot == 825) return fn(info);
   1940    __asm__ __volatile__("");
   1941    if (wot == 826) return fn(info);
   1942    __asm__ __volatile__("");
   1943    if (wot == 827) return fn(info);
   1944    __asm__ __volatile__("");
   1945    if (wot == 828) return fn(info);
   1946    __asm__ __volatile__("");
   1947    if (wot == 829) return fn(info);
   1948    __asm__ __volatile__("");
   1949    if (wot == 830) return fn(info);
   1950    __asm__ __volatile__("");
   1951    if (wot == 831) return fn(info);
   1952    __asm__ __volatile__("");
   1953    if (wot == 832) return fn(info);
   1954    __asm__ __volatile__("");
   1955    if (wot == 833) return fn(info);
   1956    __asm__ __volatile__("");
   1957    if (wot == 834) return fn(info);
   1958    __asm__ __volatile__("");
   1959    if (wot == 835) return fn(info);
   1960    __asm__ __volatile__("");
   1961    if (wot == 836) return fn(info);
   1962    __asm__ __volatile__("");
   1963    if (wot == 837) return fn(info);
   1964    __asm__ __volatile__("");
   1965    if (wot == 838) return fn(info);
   1966    __asm__ __volatile__("");
   1967    if (wot == 839) return fn(info);
   1968    __asm__ __volatile__("");
   1969    if (wot == 840) return fn(info);
   1970    __asm__ __volatile__("");
   1971    if (wot == 841) return fn(info);
   1972    __asm__ __volatile__("");
   1973    if (wot == 842) return fn(info);
   1974    __asm__ __volatile__("");
   1975    if (wot == 843) return fn(info);
   1976    __asm__ __volatile__("");
   1977    if (wot == 844) return fn(info);
   1978    __asm__ __volatile__("");
   1979    if (wot == 845) return fn(info);
   1980    __asm__ __volatile__("");
   1981    if (wot == 846) return fn(info);
   1982    __asm__ __volatile__("");
   1983    if (wot == 847) return fn(info);
   1984    __asm__ __volatile__("");
   1985    if (wot == 848) return fn(info);
   1986    __asm__ __volatile__("");
   1987    if (wot == 849) return fn(info);
   1988    __asm__ __volatile__("");
   1989    if (wot == 850) return fn(info);
   1990    __asm__ __volatile__("");
   1991    if (wot == 851) return fn(info);
   1992    __asm__ __volatile__("");
   1993    if (wot == 852) return fn(info);
   1994    __asm__ __volatile__("");
   1995    if (wot == 853) return fn(info);
   1996    __asm__ __volatile__("");
   1997    if (wot == 854) return fn(info);
   1998    __asm__ __volatile__("");
   1999    if (wot == 855) return fn(info);
   2000    __asm__ __volatile__("");
   2001    if (wot == 856) return fn(info);
   2002    __asm__ __volatile__("");
   2003    if (wot == 857) return fn(info);
   2004    __asm__ __volatile__("");
   2005    if (wot == 858) return fn(info);
   2006    __asm__ __volatile__("");
   2007    if (wot == 859) return fn(info);
   2008    __asm__ __volatile__("");
   2009    if (wot == 860) return fn(info);
   2010    __asm__ __volatile__("");
   2011    if (wot == 861) return fn(info);
   2012    __asm__ __volatile__("");
   2013    if (wot == 862) return fn(info);
   2014    __asm__ __volatile__("");
   2015    if (wot == 863) return fn(info);
   2016    __asm__ __volatile__("");
   2017    if (wot == 864) return fn(info);
   2018    __asm__ __volatile__("");
   2019    if (wot == 865) return fn(info);
   2020    __asm__ __volatile__("");
   2021    if (wot == 866) return fn(info);
   2022    __asm__ __volatile__("");
   2023    if (wot == 867) return fn(info);
   2024    __asm__ __volatile__("");
   2025    if (wot == 868) return fn(info);
   2026    __asm__ __volatile__("");
   2027    if (wot == 869) return fn(info);
   2028    __asm__ __volatile__("");
   2029    if (wot == 870) return fn(info);
   2030    __asm__ __volatile__("");
   2031    if (wot == 871) return fn(info);
   2032    __asm__ __volatile__("");
   2033    if (wot == 872) return fn(info);
   2034    __asm__ __volatile__("");
   2035    if (wot == 873) return fn(info);
   2036    __asm__ __volatile__("");
   2037    if (wot == 874) return fn(info);
   2038    __asm__ __volatile__("");
   2039    if (wot == 875) return fn(info);
   2040    __asm__ __volatile__("");
   2041    if (wot == 876) return fn(info);
   2042    __asm__ __volatile__("");
   2043    if (wot == 877) return fn(info);
   2044    __asm__ __volatile__("");
   2045    if (wot == 878) return fn(info);
   2046    __asm__ __volatile__("");
   2047    if (wot == 879) return fn(info);
   2048    __asm__ __volatile__("");
   2049    if (wot == 880) return fn(info);
   2050    __asm__ __volatile__("");
   2051    if (wot == 881) return fn(info);
   2052    __asm__ __volatile__("");
   2053    if (wot == 882) return fn(info);
   2054    __asm__ __volatile__("");
   2055    if (wot == 883) return fn(info);
   2056    __asm__ __volatile__("");
   2057    if (wot == 884) return fn(info);
   2058    __asm__ __volatile__("");
   2059    if (wot == 885) return fn(info);
   2060    __asm__ __volatile__("");
   2061    if (wot == 886) return fn(info);
   2062    __asm__ __volatile__("");
   2063    if (wot == 887) return fn(info);
   2064    __asm__ __volatile__("");
   2065    if (wot == 888) return fn(info);
   2066    __asm__ __volatile__("");
   2067    if (wot == 889) return fn(info);
   2068    __asm__ __volatile__("");
   2069    if (wot == 890) return fn(info);
   2070    __asm__ __volatile__("");
   2071    if (wot == 891) return fn(info);
   2072    __asm__ __volatile__("");
   2073    if (wot == 892) return fn(info);
   2074    __asm__ __volatile__("");
   2075    if (wot == 893) return fn(info);
   2076    __asm__ __volatile__("");
   2077    if (wot == 894) return fn(info);
   2078    __asm__ __volatile__("");
   2079    if (wot == 895) return fn(info);
   2080    __asm__ __volatile__("");
   2081    if (wot == 896) return fn(info);
   2082    __asm__ __volatile__("");
   2083    if (wot == 897) return fn(info);
   2084    __asm__ __volatile__("");
   2085    if (wot == 898) return fn(info);
   2086    __asm__ __volatile__("");
   2087    if (wot == 899) return fn(info);
   2088    __asm__ __volatile__("");
   2089    if (wot == 900) return fn(info);
   2090    __asm__ __volatile__("");
   2091    if (wot == 901) return fn(info);
   2092    __asm__ __volatile__("");
   2093    if (wot == 902) return fn(info);
   2094    __asm__ __volatile__("");
   2095    if (wot == 903) return fn(info);
   2096    __asm__ __volatile__("");
   2097    if (wot == 904) return fn(info);
   2098    __asm__ __volatile__("");
   2099    if (wot == 905) return fn(info);
   2100    __asm__ __volatile__("");
   2101    if (wot == 906) return fn(info);
   2102    __asm__ __volatile__("");
   2103    if (wot == 907) return fn(info);
   2104    __asm__ __volatile__("");
   2105    if (wot == 908) return fn(info);
   2106    __asm__ __volatile__("");
   2107    if (wot == 909) return fn(info);
   2108    __asm__ __volatile__("");
   2109    if (wot == 910) return fn(info);
   2110    __asm__ __volatile__("");
   2111    if (wot == 911) return fn(info);
   2112    __asm__ __volatile__("");
   2113    if (wot == 912) return fn(info);
   2114    __asm__ __volatile__("");
   2115    if (wot == 913) return fn(info);
   2116    __asm__ __volatile__("");
   2117    if (wot == 914) return fn(info);
   2118    __asm__ __volatile__("");
   2119    if (wot == 915) return fn(info);
   2120    __asm__ __volatile__("");
   2121    if (wot == 916) return fn(info);
   2122    __asm__ __volatile__("");
   2123    if (wot == 917) return fn(info);
   2124    __asm__ __volatile__("");
   2125    if (wot == 918) return fn(info);
   2126    __asm__ __volatile__("");
   2127    if (wot == 919) return fn(info);
   2128    __asm__ __volatile__("");
   2129    if (wot == 920) return fn(info);
   2130    __asm__ __volatile__("");
   2131    if (wot == 921) return fn(info);
   2132    __asm__ __volatile__("");
   2133    if (wot == 922) return fn(info);
   2134    __asm__ __volatile__("");
   2135    if (wot == 923) return fn(info);
   2136    __asm__ __volatile__("");
   2137    if (wot == 924) return fn(info);
   2138    __asm__ __volatile__("");
   2139    if (wot == 925) return fn(info);
   2140    __asm__ __volatile__("");
   2141    if (wot == 926) return fn(info);
   2142    __asm__ __volatile__("");
   2143    if (wot == 927) return fn(info);
   2144    __asm__ __volatile__("");
   2145    if (wot == 928) return fn(info);
   2146    __asm__ __volatile__("");
   2147    if (wot == 929) return fn(info);
   2148    __asm__ __volatile__("");
   2149    if (wot == 930) return fn(info);
   2150    __asm__ __volatile__("");
   2151    if (wot == 931) return fn(info);
   2152    __asm__ __volatile__("");
   2153    if (wot == 932) return fn(info);
   2154    __asm__ __volatile__("");
   2155    if (wot == 933) return fn(info);
   2156    __asm__ __volatile__("");
   2157    if (wot == 934) return fn(info);
   2158    __asm__ __volatile__("");
   2159    if (wot == 935) return fn(info);
   2160    __asm__ __volatile__("");
   2161    if (wot == 936) return fn(info);
   2162    __asm__ __volatile__("");
   2163    if (wot == 937) return fn(info);
   2164    __asm__ __volatile__("");
   2165    if (wot == 938) return fn(info);
   2166    __asm__ __volatile__("");
   2167    if (wot == 939) return fn(info);
   2168    __asm__ __volatile__("");
   2169    if (wot == 940) return fn(info);
   2170    __asm__ __volatile__("");
   2171    if (wot == 941) return fn(info);
   2172    __asm__ __volatile__("");
   2173    if (wot == 942) return fn(info);
   2174    __asm__ __volatile__("");
   2175    if (wot == 943) return fn(info);
   2176    __asm__ __volatile__("");
   2177    if (wot == 944) return fn(info);
   2178    __asm__ __volatile__("");
   2179    if (wot == 945) return fn(info);
   2180    __asm__ __volatile__("");
   2181    if (wot == 946) return fn(info);
   2182    __asm__ __volatile__("");
   2183    if (wot == 947) return fn(info);
   2184    __asm__ __volatile__("");
   2185    if (wot == 948) return fn(info);
   2186    __asm__ __volatile__("");
   2187    if (wot == 949) return fn(info);
   2188    __asm__ __volatile__("");
   2189    if (wot == 950) return fn(info);
   2190    __asm__ __volatile__("");
   2191    if (wot == 951) return fn(info);
   2192    __asm__ __volatile__("");
   2193    if (wot == 952) return fn(info);
   2194    __asm__ __volatile__("");
   2195    if (wot == 953) return fn(info);
   2196    __asm__ __volatile__("");
   2197    if (wot == 954) return fn(info);
   2198    __asm__ __volatile__("");
   2199    if (wot == 955) return fn(info);
   2200    __asm__ __volatile__("");
   2201    if (wot == 956) return fn(info);
   2202    __asm__ __volatile__("");
   2203    if (wot == 957) return fn(info);
   2204    __asm__ __volatile__("");
   2205    if (wot == 958) return fn(info);
   2206    __asm__ __volatile__("");
   2207    if (wot == 959) return fn(info);
   2208    __asm__ __volatile__("");
   2209    if (wot == 960) return fn(info);
   2210    __asm__ __volatile__("");
   2211    if (wot == 961) return fn(info);
   2212    __asm__ __volatile__("");
   2213    if (wot == 962) return fn(info);
   2214    __asm__ __volatile__("");
   2215    if (wot == 963) return fn(info);
   2216    __asm__ __volatile__("");
   2217    if (wot == 964) return fn(info);
   2218    __asm__ __volatile__("");
   2219    if (wot == 965) return fn(info);
   2220    __asm__ __volatile__("");
   2221    if (wot == 966) return fn(info);
   2222    __asm__ __volatile__("");
   2223    if (wot == 967) return fn(info);
   2224    __asm__ __volatile__("");
   2225    if (wot == 968) return fn(info);
   2226    __asm__ __volatile__("");
   2227    if (wot == 969) return fn(info);
   2228    __asm__ __volatile__("");
   2229    if (wot == 970) return fn(info);
   2230    __asm__ __volatile__("");
   2231    if (wot == 971) return fn(info);
   2232    __asm__ __volatile__("");
   2233    if (wot == 972) return fn(info);
   2234    __asm__ __volatile__("");
   2235    if (wot == 973) return fn(info);
   2236    __asm__ __volatile__("");
   2237    if (wot == 974) return fn(info);
   2238    __asm__ __volatile__("");
   2239    if (wot == 975) return fn(info);
   2240    __asm__ __volatile__("");
   2241    if (wot == 976) return fn(info);
   2242    __asm__ __volatile__("");
   2243    if (wot == 977) return fn(info);
   2244    __asm__ __volatile__("");
   2245    if (wot == 978) return fn(info);
   2246    __asm__ __volatile__("");
   2247    if (wot == 979) return fn(info);
   2248    __asm__ __volatile__("");
   2249    if (wot == 980) return fn(info);
   2250    __asm__ __volatile__("");
   2251    if (wot == 981) return fn(info);
   2252    __asm__ __volatile__("");
   2253    if (wot == 982) return fn(info);
   2254    __asm__ __volatile__("");
   2255    if (wot == 983) return fn(info);
   2256    __asm__ __volatile__("");
   2257    if (wot == 984) return fn(info);
   2258    __asm__ __volatile__("");
   2259    if (wot == 985) return fn(info);
   2260    __asm__ __volatile__("");
   2261    if (wot == 986) return fn(info);
   2262    __asm__ __volatile__("");
   2263    if (wot == 987) return fn(info);
   2264    __asm__ __volatile__("");
   2265    if (wot == 988) return fn(info);
   2266    __asm__ __volatile__("");
   2267    if (wot == 989) return fn(info);
   2268    __asm__ __volatile__("");
   2269    if (wot == 990) return fn(info);
   2270    __asm__ __volatile__("");
   2271    if (wot == 991) return fn(info);
   2272    __asm__ __volatile__("");
   2273    if (wot == 992) return fn(info);
   2274    __asm__ __volatile__("");
   2275    if (wot == 993) return fn(info);
   2276    __asm__ __volatile__("");
   2277    if (wot == 994) return fn(info);
   2278    __asm__ __volatile__("");
   2279    if (wot == 995) return fn(info);
   2280    __asm__ __volatile__("");
   2281    if (wot == 996) return fn(info);
   2282    __asm__ __volatile__("");
   2283    if (wot == 997) return fn(info);
   2284    __asm__ __volatile__("");
   2285    if (wot == 998) return fn(info);
   2286    __asm__ __volatile__("");
   2287    if (wot == 999) return fn(info);
   2288    __asm__ __volatile__("");
   2289    assert(0);
   2290    /*NOTREACHED*/return 0;
   2291 }
   2292