1 void add_unwind_adjustsp (long);
2 void abort (void);
3 
4 unsigned char bytes[5];
5 
6 int flag;
7 
8 void
add_unwind_adjustsp(long offset)9 add_unwind_adjustsp (long offset)
10 {
11   int n;
12   unsigned long o;
13 
14   o = (long) ((offset - 0x204) >> 2);
15 
16   n = 0;
17   do
18     {
19 a:
20       bytes[n] = o & 0x7f;
21       o >>= 7;
22       if (o)
23         {
24 	  bytes[n] |= 0x80;
25 	  if (flag)
26 	    goto a;
27 	}
28       n++;
29     }
30   while (o);
31 }
32 
main(void)33 int main(void)
34 {
35   add_unwind_adjustsp (4132);
36   if (bytes[0] != 0x88 || bytes[1] != 0x07)
37     abort ();
38   return 0;
39 }
40