Mercurial > hg > CbC > CbC_gcc
annotate gcc/vmsdbg.h @ 90:99e7b6776dd1
implemeted __rectype expression. add CbC-exanples/fact-rectype.s
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 25 Dec 2011 04:04:42 +0900 |
parents | f6334be47118 |
children | 04ced10e8804 |
rev | line source |
---|---|
0 | 1 /* Definitions for the data structures and codes used in VMS debugging. |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
2 Copyright (C) 2001, 2007, 2010 Free Software Foundation, Inc. |
0 | 3 |
4 This file is part of GCC. | |
5 | |
6 GCC is free software; you can redistribute it and/or modify it under | |
7 the terms of the GNU General Public License as published by the Free | |
8 Software Foundation; either version 3, or (at your option) any later | |
9 version. | |
10 | |
11 GCC is distributed in the hope that it will be useful, but WITHOUT ANY | |
12 WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
14 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 #ifndef GCC_VMSDBG_H | |
21 #define GCC_VMSDBG_H 1 | |
22 | |
23 /* We define types and constants used in VMS Debug output. Note that the | |
24 structs only approximate the output that is written. We write the output | |
25 explicitly, field by field. This output would only agree with the | |
26 structs in this file if no padding were done. The sizes after each | |
27 struct are the size actually written, which is usually smaller than the | |
28 size of the struct. */ | |
29 | |
30 /* Header type codes. */ | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
31 typedef enum _DST_TYPE {DST_K_TBG = 0x17, |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
32 DST_K_SOURCE = 155, DST_K_PROLOG = 162, |
0 | 33 DST_K_BLKBEG = 176, DST_K_BLKEND = 177, |
34 DST_K_LINE_NUM = 185, DST_K_MODBEG = 188, | |
35 DST_K_MODEND = 189, DST_K_RTNBEG = 190, | |
36 DST_K_RTNEND = 191} DST_DTYPE; | |
37 | |
38 /* Header. */ | |
39 | |
40 typedef struct _DST_HEADER | |
41 { | |
42 union | |
43 { | |
44 unsigned short int dst_w_length; | |
45 unsigned short int dst_x_length; | |
46 } dst__header_length; | |
47 union | |
48 { | |
49 ENUM_BITFIELD (_DST_TYPE) dst_w_type : 16; | |
50 ENUM_BITFIELD (_DST_TYPE) dst_x_type : 16; | |
51 } dst__header_type; | |
52 } DST_HEADER; | |
53 #define DST_K_DST_HEADER_SIZE sizeof 4 | |
54 | |
55 /* Language type codes. */ | |
56 typedef enum _DST_LANGUAGE {DST_K_FORTRAN = 1, DST_K_C = 7, DST_K_ADA = 9, | |
57 DST_K_UNKNOWN = 10, DST_K_CXX = 15} DST_LANGUAGE; | |
58 | |
59 /* Module header (a module is the result of a single compilation). */ | |
60 | |
61 typedef struct _DST_MODULE_BEGIN | |
62 { | |
63 DST_HEADER dst_a_modbeg_header; | |
64 struct | |
65 { | |
66 unsigned dst_v_modbeg_hide : 1; | |
67 unsigned dst_v_modbeg_version : 1; | |
68 unsigned dst_v_modbeg_unused : 6; | |
69 } dst_b_modbeg_flags; | |
70 unsigned char dst_b_modbeg_unused; | |
71 DST_LANGUAGE dst_l_modbeg_language; | |
72 unsigned short int dst_w_version_major; | |
73 unsigned short int dst_w_version_minor; | |
74 unsigned char dst_b_modbeg_name; | |
75 } DST_MODULE_BEGIN; | |
76 #define DST_K_MODBEG_SIZE 15 | |
77 | |
78 /* Module trailer. */ | |
79 | |
80 typedef struct _DST_MB_TRLR | |
81 { | |
82 unsigned char dst_b_compiler; | |
83 } DST_MB_TRLR; | |
84 | |
85 #define DST_K_MB_TRLR_SIZE 1 | |
86 | |
87 #define DST_K_VERSION_MAJOR 1 | |
88 #define DST_K_VERSION_MINOR 13 | |
89 | |
90 typedef struct _DST_MODULE_END | |
91 { | |
92 DST_HEADER dst_a_modend_header; | |
93 } DST_MODULE_END; | |
94 #define DST_K_MODEND_SIZE sizeof 4 | |
95 | |
96 /* Routine header. */ | |
97 | |
98 typedef struct _DST_ROUTINE_BEGIN | |
99 { | |
100 DST_HEADER dst_a_rtnbeg_header; | |
101 struct | |
102 { | |
103 unsigned dst_v_rtnbeg_unused : 4; | |
104 unsigned dst_v_rtnbeg_unalloc : 1; | |
105 unsigned dst_v_rtnbeg_prototype : 1; | |
106 unsigned dst_v_rtnbeg_inlined : 1; | |
107 unsigned dst_v_rtnbeg_no_call : 1; | |
108 } dst_b_rtnbeg_flags; | |
109 int *dst_l_rtnbeg_address; | |
110 int *dst_l_rtnbeg_pd_address; | |
111 unsigned char dst_b_rtnbeg_name; | |
112 } DST_ROUTINE_BEGIN; | |
113 #define DST_K_RTNBEG_SIZE 14 | |
114 | |
115 /* Routine trailer */ | |
116 | |
117 typedef struct _DST_ROUTINE_END | |
118 { | |
119 DST_HEADER dst_a_rtnend_header; | |
120 char dst_b_rtnend_unused; | |
121 unsigned int dst_l_rtnend_size; | |
122 } DST_ROUTINE_END; | |
123 #define DST_K_RTNEND_SIZE 9 | |
124 | |
125 /* Block header. */ | |
126 | |
127 typedef struct _DST_BLOCK_BEGIN | |
128 { | |
129 DST_HEADER dst_a_blkbeg_header; | |
130 unsigned char dst_b_blkbeg_unused; | |
131 int *dst_l_blkbeg_address; | |
132 unsigned char dst_b_blkbeg_name; | |
133 } DST_BLOCK_BEGIN; | |
134 #define DST_K_BLKBEG_SIZE 10 | |
135 | |
136 /* Block trailer. */ | |
137 | |
138 typedef struct _DST_BLOCK_END | |
139 { | |
140 DST_HEADER dst_a_blkend_header; | |
141 unsigned char dst_b_blkend_unused; | |
142 unsigned int dst_l_blkend_size; | |
143 } DST_BLOCK_END; | |
144 #define DST_K_BLKEND_SIZE 9 | |
145 | |
146 /* Line number header. */ | |
147 | |
148 typedef struct _DST_LINE_NUM_HEADER | |
149 { | |
150 DST_HEADER dst_a_line_num_header; | |
151 } DST_LINE_NUM_HEADER; | |
152 #define DST_K_LINE_NUM_HEADER_SIZE 4 | |
153 | |
154 /* PC to Line number correlation. */ | |
155 | |
156 typedef struct _DST_PCLINE_COMMANDS | |
157 { | |
158 char dst_b_pcline_command; | |
159 union | |
160 { | |
161 unsigned int dst_l_pcline_unslong; | |
162 unsigned short int dst_w_pcline_unsword; | |
163 unsigned char dst_b_pcline_unsbyte; | |
164 } dst_a_pcline_access_fields; | |
165 } DST_PCLINE_COMMANDS; | |
166 | |
167 /* PC and Line number correlation codes. */ | |
168 | |
169 #define DST_K_PCLINE_COMMANDS_SIZE 5 | |
170 #define DST_K_PCLINE_COMMANDS_SIZE_MIN 2 | |
171 #define DST_K_PCLINE_COMMANDS_SIZE_MAX 5 | |
172 #define DST_K_DELTA_PC_LOW -128 | |
173 #define DST_K_DELTA_PC_HIGH 0 | |
174 #define DST_K_DELTA_PC_W 1 | |
175 #define DST_K_INCR_LINUM 2 | |
176 #define DST_K_INCR_LINUM_W 3 | |
177 #define DST_K_SET_LINUM 9 | |
178 #define DST_K_SET_ABS_PC 16 | |
179 #define DST_K_DELTA_PC_L 17 | |
180 #define DST_K_INCR_LINUM_L 18 | |
181 #define DST_K_SET_LINUM_B 19 | |
182 #define DST_K_SET_LINUM_L 20 | |
183 | |
184 /* Source file correlation header. */ | |
185 | |
186 typedef struct _DST_SOURCE_CORR | |
187 { | |
188 DST_HEADER dst_a_source_corr_header; | |
189 } DST_SOURCE_CORR; | |
190 #define DST_K_SOURCE_CORR_HEADER_SIZE 4 | |
191 | |
192 /* Source file correlation codes. */ | |
193 | |
194 #define DST_K_SRC_DECLFILE 1 | |
195 #define DST_K_SRC_SETFILE 2 | |
196 #define DST_K_SRC_SETREC_L 3 | |
197 #define DST_K_SRC_SETREC_W 4 | |
198 #define DST_K_SRC_SETLNUM_L 5 | |
199 #define DST_K_SRC_SETLNUM_W 6 | |
200 #define DST_K_SRC_INCRLNUM_B 7 | |
201 #define DST_K_SRC_DEFLINES_W 10 | |
202 #define DST_K_SRC_DEFLINES_B 11 | |
203 #define DST_K_SRC_FORMFEED 16 | |
204 #define DST_K_SRC_MIN_CMD 1 | |
205 #define DST_K_SRC_MAX_CMD 16 | |
206 | |
207 /* Source file header. */ | |
208 | |
209 typedef struct _DST_SRC_COMMAND | |
210 { | |
211 unsigned char dst_b_src_command; | |
212 union | |
213 { | |
214 struct | |
215 { | |
216 unsigned char dst_b_src_df_length; | |
217 unsigned char dst_b_src_df_flags; | |
218 unsigned short int dst_w_src_df_fileid; | |
219 #ifdef HAVE_LONG_LONG | |
220 long long dst_q_src_df_rms_cdt; | |
221 #else | |
222 #ifdef HAVE___INT64 | |
223 __int64 dst_q_src_df_rms_cdt; | |
224 #endif | |
225 #endif | |
226 unsigned int dst_l_src_df_rms_ebk; | |
227 unsigned short int dst_w_src_df_rms_ffb; | |
228 unsigned char dst_b_src_df_rms_rfo; | |
229 unsigned char dst_b_src_df_filename; | |
230 } dst_a_src_decl_src; | |
231 unsigned int dst_l_src_unslong; | |
232 unsigned short int dst_w_src_unsword; | |
233 unsigned char dst_b_src_unsbyte; | |
234 } dst_a_src_cmd_fields; | |
235 } DST_SRC_COMMAND; | |
236 #define DST_K_SRC_COMMAND_SIZE 21 | |
237 | |
238 /* Source file trailer. */ | |
239 | |
240 typedef struct _DST_SRC_CMDTRLR | |
241 { | |
242 unsigned char dst_b_src_df_libmodname; | |
243 } DST_SRC_CMDTRLR; | |
244 #define DST_K_SRC_CMDTRLR_SIZE 1 | |
245 | |
246 /* Prolog header. */ | |
247 | |
248 typedef struct _DST_PROLOG | |
249 { | |
250 DST_HEADER dst_a_prolog_header; | |
251 unsigned int dst_l_prolog_bkpt_addr; | |
252 } DST_PROLOG; | |
253 #define DST_K_PROLOG_SIZE 8 | |
254 | |
255 #endif /* GCC_VMSDBG_H */ |