source: trunk/third/gcc/frame.h @ 11288

Revision 11288, 1.8 KB checked in by ghudson, 26 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r11287, which included commits to RCS files with non-trunk default branches.
Line 
1/* Copyright (C) 1997 Free Software Foundation, Inc.
2   This file is part of GNU CC.  */
3
4typedef struct frame_state
5{
6  void *cfa;
7  void *eh_ptr;
8  long cfa_offset;
9  long args_size;
10  long reg_or_offset[FIRST_PSEUDO_REGISTER+1];
11  unsigned short cfa_reg;
12  unsigned short retaddr_column;
13  char saved[FIRST_PSEUDO_REGISTER+1];
14} frame_state;
15
16/* Values for 'saved' above.  */
17#define REG_UNSAVED 0
18#define REG_SAVED_OFFSET 1
19#define REG_SAVED_REG 2
20
21/* The representation for an "object" to be searched for frame unwind info.
22   For targets with named sections, one object is an executable or shared
23   library; for other targets, one object is one translation unit.
24
25   A copy of this structure declaration is printed by collect2.c;
26   keep the copies synchronized!  */
27
28struct object {
29  void *pc_begin;
30  void *pc_end;
31  struct dwarf_fde *fde_begin;
32  struct dwarf_fde **fde_array;
33  size_t count;
34  struct object *next;
35};
36
37/* Called either from crtbegin.o or a static constructor to register the
38   unwind info for an object or translation unit, respectively.  */
39
40extern void __register_frame_info (void *, struct object *);
41
42/* Similar, but BEGIN is actually a pointer to a table of unwind entries
43   for different translation units.  Called from the file generated by
44   collect2.  */
45extern void __register_frame_info_table (void *, struct object *);
46
47/* Called from crtend.o to deregister the unwind info for an object.  */
48
49extern void __deregister_frame_info (void *);
50
51/* Called from __throw to find the registers to restore for a given
52   PC_TARGET.  The caller should allocate a local variable of `struct
53   frame_state' (declared in frame.h) and pass its address to STATE_IN.
54   Returns NULL on failure, otherwise returns STATE_IN.  */
55
56extern struct frame_state *__frame_state_for (void *, struct frame_state *);
Note: See TracBrowser for help on using the repository browser.