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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [config/] [pa/] [pa64-linux.h] - Blame information for rev 849

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

Line No. Rev Author Line
1 709 jeremybenn
/* 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
/* This macro is similar to `INITIAL_FRAME_POINTER_OFFSET'.  It
32
   specifies the initial difference between the specified pair of
33
   registers.  This macro must be defined if `ELIMINABLE_REGS' is
34
   defined.  */
35
#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \
36
  do                                                            \
37
    {                                                           \
38
      int fsize;                                                \
39
                                                                \
40
      fsize = pa_compute_frame_size (get_frame_size (), 0);      \
41
      if ((TO) == FRAME_POINTER_REGNUM                          \
42
          && (FROM) == ARG_POINTER_REGNUM)                      \
43
        {                                                       \
44
          (OFFSET) = -16;                                       \
45
          break;                                                \
46
        }                                                       \
47
                                                                \
48
      gcc_assert ((TO) == STACK_POINTER_REGNUM);                \
49
                                                                \
50
      switch (FROM)                                             \
51
        {                                                       \
52
        case FRAME_POINTER_REGNUM:                              \
53
          (OFFSET) = - fsize;                                   \
54
          break;                                                \
55
                                                                \
56
        case ARG_POINTER_REGNUM:                                \
57
          (OFFSET) = - fsize - 16;                              \
58
          break;                                                \
59
                                                                \
60
        default:                                                \
61
          gcc_unreachable ();                                   \
62
        }                                                       \
63
    } while (0)
64
#endif

powered by: WebSVN 2.1.0

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