1/* PR target/12898
2   0x8000 needs multiple instructions to be emitted on Alpha; the
3   fluff around it causes it to be emitted in a no_new_pseudos
4   context, which triggered a problem in alpha.c.  */
5
6void f (const char *, ...);
7int g (void);
8void *p (void);
9
10int isymBase, ilineBase, sym_hdr, want_line, proc_desc;
11char *lines;
12
13void print_file_desc (int *fdp)
14{
15  char *str_base = p ();
16  int symi, pdi = g ();
17
18  for (symi = 0; isymBase;)
19    {
20      int proc_ptr = proc_desc + pdi;
21      f("1", isymBase, proc_ptr + *fdp, str_base);
22      if (want_line && *fdp)
23	{
24	  int delta;
25	  long cur_line = proc_ptr;
26	  char *line_ptr = lines + proc_ptr;
27	  char *line_end = p ();
28
29	  f("2", sym_hdr);
30	  while (line_ptr < line_end)
31	    {
32	      delta = *line_ptr;
33	      if (delta)
34		line_ptr++;
35	      else
36		delta = line_ptr[1] ^ 0x8000;
37	      f("3", cur_line, delta);
38	    }
39	}
40    }
41}
42