*** empty log message ***
[deliverable/binutils-gdb.git] / gdb / config / pa / tm-hppa64.h
CommitLineData
adf40b2e 1/* Parameters for execution on any Hewlett-Packard PA-RISC machine.
b6ba6518
KB
2 Copyright 1986, 1987, 1989, 1990, 1991, 1992, 1993, 1995, 1999, 2000
3 Free Software Foundation, Inc.
adf40b2e
JM
4
5 Contributed by the Center for Software Science at the
6 University of Utah (pa-gdb-bugs@cs.utah.edu).
7
8This file is part of GDB.
9
10This program is free software; you can redistribute it and/or modify
11it under the terms of the GNU General Public License as published by
12the Free Software Foundation; either version 2 of the License, or
13(at your option) any later version.
14
15This program is distributed in the hope that it will be useful,
16but WITHOUT ANY WARRANTY; without even the implied warranty of
17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18GNU General Public License for more details.
19
20You should have received a copy of the GNU General Public License
21along with this program; if not, write to the Free Software
22Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
23
24/* PA 64-bit specific definitions. Override those which are in
25 tm-hppa.h */
26
adf40b2e
JM
27/* jimb: this must go. I'm just using it to disable code I haven't
28 gotten working yet. */
29#define GDB_TARGET_IS_HPPA_20W
30
a7e9a47e
AC
31/* NOTE: cagney/2003-07-27: Using CC='cc +DA2.0W -Ae' configure
32 hppa64-hp-hpux11.00; GDB managed to build / start / break main /
33 run with multi-arch enabled. Not sure about much else as there
34 appears to be an unrelated problem in the SOM symbol table reader
d84defb1 35 causing GDB to lose line number information. Since prior to this
a7e9a47e
AC
36 switch and a other recent tweaks, 64 bit PA hadn't been building
37 for some months, this is probably the lesser of several evils. */
61995b3b 38
7be570e7
JM
39#include "pa/tm-hppah.h"
40
adf40b2e 41#undef FP4_REGNUM
adf40b2e 42#define FP4_REGNUM 68
3ff7cf9e 43#define AP_REGNUM 29 /* Argument Pointer Register */
adf40b2e 44#define DP_REGNUM 27
adf40b2e 45#define FP5_REGNUM 70
adf40b2e
JM
46#define SR5_REGNUM 48
47
adf40b2e 48
adf40b2e
JM
49/* For a number of horrible reasons we may have to adjust the location
50 of variables on the stack. Ugh. jimb: why? */
51#define HPREAD_ADJUST_STACK_ADDRESS(ADDR) hpread_adjust_stack_address(ADDR)
52
a14ed312 53extern int hpread_adjust_stack_address (CORE_ADDR);
adf40b2e
JM
54
55
56/* jimb: omitted dynamic linking stuff here */
57
58/* This sequence of words is the instructions
59
60; Call stack frame has already been built by gdb. Since we could be calling
61; a varargs function, and we do not have the benefit of a stub to put things in
62; the right place, we load the first 8 word of arguments into both the general
63; and fp registers.
64call_dummy
53a5351d 65 nop
adf40b2e
JM
66 copy %r4,%r29
67 copy %r5,%r22
68 copy %r6,%r27
69 fldd -64(0,%r29),%fr4
70 fldd -56(0,%r29),%fr5
71 fldd -48(0,%r29),%fr6
72 fldd -40(0,%r29),%fr7
73 fldd -32(0,%r29),%fr8
74 fldd -24(0,%r29),%fr9
75 fldd -16(0,%r29),%fr10
76 fldd -8(0,%r29),%fr11
77 copy %r22,%r1
78 ldd -64(%r29), %r26
79 ldd -56(%r29), %r25
80 ldd -48(%r29), %r24
81 ldd -40(%r29), %r23
82 ldd -32(%r29), %r22
83 ldd -24(%r29), %r21
84 ldd -16(%r29), %r20
85 bve,l (%r1),%r2
86 ldd -8(%r29), %r19
87 break 4, 8
88 mtsp %r21, %sr0
89 ble 0(%sr0, %r22)
90 nop
91*/
92
53a5351d
JM
93/* Call dummys are sized and written out in word sized hunks. So we have
94 to pack the instructions into words. Ugh. */
adf40b2e 95#undef CALL_DUMMY
53a5351d
JM
96#define CALL_DUMMY {0x08000240349d0000LL, 0x34b6000034db0000LL, \
97 0x53a43f8353a53f93LL, 0x53a63fa353a73fb3LL,\
98 0x53a83fc353a93fd3LL, 0x2fa1100a2fb1100bLL,\
99 0x36c1000053ba3f81LL, 0x53b93f9153b83fa1LL,\
100 0x53b73fb153b63fc1LL, 0x53b53fd10fa110d4LL,\
101 0xe820f0000fb110d3LL, 0x0001000400151820LL,\
102 0xe6c0000008000240LL}
103
7be570e7
JM
104/* The PA64 ABI reserves 64 bytes of stack space for outgoing register
105 parameters. */
106#undef REG_PARM_STACK_SPACE
107#define REG_PARM_STACK_SPACE 64
108
c2c6d25f
JM
109/* Use the 64-bit calling conventions designed for the PA2.0 in wide mode. */
110#define PA20W_CALLING_CONVENTIONS
53a5351d 111
adf40b2e
JM
112#undef FUNC_LDIL_OFFSET
113#undef FUNC_LDO_OFFSET
114#undef SR4EXPORT_LDIL_OFFSET
115#undef SR4EXPORT_LDO_OFFSET
7be570e7 116
adf40b2e 117#undef FRAME_SAVED_PC_IN_SIGTRAMP
3ff7cf9e
JB
118extern void hppa64_hpux_frame_saved_pc_in_sigtramp (struct frame_info *fi,
119 CORE_ADDR *tmp);
adf40b2e 120#define FRAME_SAVED_PC_IN_SIGTRAMP(FRAME, TMP) \
3ff7cf9e 121 hppa64_hpux_frame_saved_pc_in_sigtramp (FRAME, TMP)
adf40b2e
JM
122
123#undef FRAME_BASE_BEFORE_SIGTRAMP
3ff7cf9e
JB
124extern void hppa64_hpux_frame_base_before_sigtramp (struct frame_info *fi,
125 CORE_ADDR *tmp);
adf40b2e 126#define FRAME_BASE_BEFORE_SIGTRAMP(FRAME, TMP) \
3ff7cf9e 127 hppa64_hpux_frame_base_before_sigtramp (FRAME, TMP)
adf40b2e
JM
128
129#undef FRAME_FIND_SAVED_REGS_IN_SIGTRAMP
3ff7cf9e
JB
130extern void hppa64_hpux_frame_find_saved_regs_in_sigtramp
131 (struct frame_info *fi, CORE_ADDR *fsr);
adf40b2e 132#define FRAME_FIND_SAVED_REGS_IN_SIGTRAMP(FRAME, FSR) \
3ff7cf9e 133 hppa64_hpux_frame_find_saved_regs_in_sigtramp (FRAME, FSR)
adf40b2e
JM
134
135/* jimb: omitted purify call support */
This page took 0.334138 seconds and 4 git commands to generate.