OSDN Git Service

(output_function_{pro,epi}logue): Use lea instead of add.w when
[pf3gnuchains/gcc-fork.git] / gcc / bi-reverse.c
1 /* Reverse order of definitions obtained from bytecode definition file.
2    Copyright (C) 1993 Free Software Foundation, Inc.
3
4 This file is part of GNU CC.
5
6 GNU CC is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 GNU CC is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with GNU CC; see the file COPYING.  If not, write to
18 the Free Software Foundation, 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA.  */
20
21
22 #include "hconfig.h"
23 #include "bi-defs.h"
24
25 void
26 reverse()
27 {
28   struct def *dp, *d, *dn;
29   struct variation *vp, *v, *vn;
30
31   dp = defs;
32   if (dp)
33     {
34       vp = dp->variations;
35       if (vp)
36         {
37           for (v = vp->next, vp->next = 0; v; vp = v, v = vn)
38             {
39               vn = v->next;
40               v->next = vp;
41             }
42           dp->variations = vp;
43         }
44       for (d = dp->next, dp->next = 0; d; dp = d, d = dn)
45         {
46           vp = d->variations;
47           if (vp)
48             {
49               for (v = vp->next, vp->next = 0; v; vp = v, v = vn)
50                 {
51                   vn = v->next;
52                   v->next = vp;
53                 }
54               d->variations = vp;
55             }
56           dn = d->next;
57           d->next = dp;
58         }
59       defs = dp;
60     }
61 }