OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [config/] [pa/] [pa64-linux.h] - Blame information for rev 827

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 38 julius
/* Definitions for PA_RISC with ELF format on 64-bit Linux
2
   Copyright (C) 1999, 2000, 2002, 2007 Free Software Foundation, Inc.
3
 
4
This file is part of GCC.
5
 
6
GCC 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 3, or (at your option)
9
any later version.
10
 
11
GCC 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 GCC; see the file COPYING3.  If not see
18
<http://www.gnu.org/licenses/>.  */
19
 
20
#if 0 /* needs some work :-( */
21
/* If defined, this macro specifies a table of register pairs used to
22
   eliminate unneeded registers that point into the stack frame.  */
23
 
24
#define ELIMINABLE_REGS                                                 \
25
{                                                                       \
26
  {FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM},                         \
27
  {ARG_POINTER_REGNUM,   STACK_POINTER_REGNUM},                         \
28
  {ARG_POINTER_REGNUM,   FRAME_POINTER_REGNUM},                         \
29
}
30
 
31
/* A C expression that returns nonzero if the compiler is allowed to try to
32
   replace register number FROM with register number TO.  The frame pointer
33
   is automatically handled.  */
34
 
35
#define CAN_ELIMINATE(FROM, TO) 1
36
 
37
/* This macro is similar to `INITIAL_FRAME_POINTER_OFFSET'.  It
38
   specifies the initial difference between the specified pair of
39
   registers.  This macro must be defined if `ELIMINABLE_REGS' is
40
   defined.  */
41
#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \
42
  do                                                            \
43
    {                                                           \
44
      int fsize;                                                \
45
                                                                \
46
      fsize = compute_frame_size (get_frame_size (), 0); \
47
      if ((TO) == FRAME_POINTER_REGNUM                          \
48
          && (FROM) == ARG_POINTER_REGNUM)                      \
49
        {                                                       \
50
          (OFFSET) = -16;                                       \
51
          break;                                                \
52
        }                                                       \
53
                                                                \
54
      gcc_assert ((TO) == STACK_POINTER_REGNUM);                \
55
                                                                \
56
      switch (FROM)                                             \
57
        {                                                       \
58
        case FRAME_POINTER_REGNUM:                              \
59
          (OFFSET) = - fsize;                                   \
60
          break;                                                \
61
                                                                \
62
        case ARG_POINTER_REGNUM:                                \
63
          (OFFSET) = - fsize - 16;                              \
64
          break;                                                \
65
                                                                \
66
        default:                                                \
67
          gcc_unreachable ();                                   \
68
        }                                                       \
69
    } while (0)
70
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.