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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gdb-7.1/] [gdb/] [amd64-tdep.h] - Blame information for rev 227

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 227 jeremybenn
/* Target-dependent definitions for AMD64.
2
 
3
   Copyright (C) 2001, 2003, 2004, 2007, 2008, 2009, 2010
4
   Free Software Foundation, Inc.
5
   Contributed by Jiri Smid, SuSE Labs.
6
 
7
   This file is part of GDB.
8
 
9
   This program is free software; you can redistribute it and/or modify
10
   it under the terms of the GNU General Public License as published by
11
   the Free Software Foundation; either version 3 of the License, or
12
   (at your option) any later version.
13
 
14
   This program is distributed in the hope that it will be useful,
15
   but WITHOUT ANY WARRANTY; without even the implied warranty of
16
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
   GNU General Public License for more details.
18
 
19
   You should have received a copy of the GNU General Public License
20
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
21
 
22
#ifndef AMD64_TDEP_H
23
#define AMD64_TDEP_H
24
 
25
struct gdbarch;
26
struct frame_info;
27
struct regcache;
28
 
29
#include "i386-tdep.h"
30
 
31
/* Register numbers of various important registers.  */
32
 
33
enum amd64_regnum
34
{
35
  AMD64_RAX_REGNUM,             /* %rax */
36
  AMD64_RBX_REGNUM,             /* %rbx */
37
  AMD64_RCX_REGNUM,             /* %rcx */
38
  AMD64_RDX_REGNUM,             /* %rdx */
39
  AMD64_RSI_REGNUM,             /* %rsi */
40
  AMD64_RDI_REGNUM,             /* %rdi */
41
  AMD64_RBP_REGNUM,             /* %rbp */
42
  AMD64_RSP_REGNUM,             /* %rsp */
43
  AMD64_R8_REGNUM,              /* %r8 */
44
  AMD64_R9_REGNUM,              /* %r9 */
45
  AMD64_R10_REGNUM,             /* %r10 */
46
  AMD64_R11_REGNUM,             /* %r11 */
47
  AMD64_R12_REGNUM,             /* %r12 */
48
  AMD64_R13_REGNUM,             /* %r13 */
49
  AMD64_R14_REGNUM,             /* %r14 */
50
  AMD64_R15_REGNUM,             /* %r15 */
51
  AMD64_RIP_REGNUM,             /* %rip */
52
  AMD64_EFLAGS_REGNUM,          /* %eflags */
53
  AMD64_CS_REGNUM,              /* %cs */
54
  AMD64_SS_REGNUM,              /* %ss */
55
  AMD64_DS_REGNUM,              /* %ds */
56
  AMD64_ES_REGNUM,              /* %es */
57
  AMD64_FS_REGNUM,              /* %fs */
58
  AMD64_GS_REGNUM,              /* %gs */
59
  AMD64_ST0_REGNUM = 24,        /* %st0 */
60
  AMD64_FCTRL_REGNUM = AMD64_ST0_REGNUM + 8,
61
  AMD64_FSTAT_REGNUM = AMD64_ST0_REGNUM + 9,
62
  AMD64_XMM0_REGNUM = 40,       /* %xmm0 */
63
  AMD64_XMM1_REGNUM,            /* %xmm1 */
64
  AMD64_MXCSR_REGNUM = AMD64_XMM0_REGNUM + 16
65
};
66
 
67
/* Number of general purpose registers.  */
68
#define AMD64_NUM_GREGS         24
69
 
70
extern struct displaced_step_closure *amd64_displaced_step_copy_insn
71
  (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to,
72
   struct regcache *regs);
73
extern void amd64_displaced_step_fixup (struct gdbarch *gdbarch,
74
                                        struct displaced_step_closure *closure,
75
                                        CORE_ADDR from, CORE_ADDR to,
76
                                        struct regcache *regs);
77
 
78
extern void amd64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch);
79
 
80
/* Functions from amd64-tdep.c which may be needed on architectures
81
   with extra registers.  */
82
 
83
extern const char *amd64_register_name (struct gdbarch *gdbarch, int regnum);
84
extern struct type *amd64_register_type (struct gdbarch *gdbarch, int regnum);
85
 
86
/* Fill register REGNUM in REGCACHE with the appropriate
87
   floating-point or SSE register value from *FXSAVE.  If REGNUM is
88
   -1, do this for all registers.  This function masks off any of the
89
   reserved bits in *FXSAVE.  */
90
 
91
extern void amd64_supply_fxsave (struct regcache *regcache, int regnum,
92
                                 const void *fxsave);
93
 
94
/* Fill register REGNUM (if it is a floating-point or SSE register) in
95
   *FXSAVE with the value from REGCACHE.  If REGNUM is -1, do this for
96
   all registers.  This function doesn't touch any of the reserved
97
   bits in *FXSAVE.  */
98
 
99
extern void amd64_collect_fxsave (const struct regcache *regcache, int regnum,
100
                                  void *fxsave);
101
 
102
void amd64_classify (struct type *type, enum amd64_reg_class class[2]);
103
 
104
 
105
 
106
/* Variables exported from amd64nbsd-tdep.c.  */
107
extern int amd64nbsd_r_reg_offset[];
108
 
109
/* Variables exported from amd64obsd-tdep.c.  */
110
extern int amd64obsd_r_reg_offset[];
111
 
112
/* Variables exported from amd64fbsd-tdep.c.  */
113
extern CORE_ADDR amd64fbsd_sigtramp_start_addr;
114
extern CORE_ADDR amd64fbsd_sigtramp_end_addr;
115
extern int amd64fbsd_sc_reg_offset[];
116
 
117
#endif /* amd64-tdep.h */

powered by: WebSVN 2.1.0

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