2004-02-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
[deliverable/binutils-gdb.git] / gdb / gdbarch.c
CommitLineData
59233f88
AC
1/* *INDENT-OFF* */ /* THIS FILE IS GENERATED */
2
adf40b2e 3/* Dynamic architecture support for GDB, the GNU debugger.
79d45cd4
AC
4
5 Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free
6 Software Foundation, Inc.
c906108c 7
96baa820
JM
8 This file is part of GDB.
9
10 This program is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation; either version 2 of the License, or
13 (at your option) any later version.
c906108c 14
96baa820
JM
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
c906108c 19
96baa820
JM
20 You should have received a copy of the GNU General Public License
21 along with this program; if not, write to the Free Software
22 Foundation, Inc., 59 Temple Place - Suite 330,
23 Boston, MA 02111-1307, USA. */
adf40b2e 24
104c1213
JM
25/* This file was created with the aid of ``gdbarch.sh''.
26
52204a0b 27 The Bourne shell script ``gdbarch.sh'' creates the files
104c1213
JM
28 ``new-gdbarch.c'' and ``new-gdbarch.h and then compares them
29 against the existing ``gdbarch.[hc]''. Any differences found
30 being reported.
31
32 If editing this file, please also run gdbarch.sh and merge any
52204a0b 33 changes into that script. Conversely, when making sweeping changes
104c1213
JM
34 to this file, modifying gdbarch.sh and using its output may prove
35 easier. */
c906108c 36
c906108c
SS
37
38#include "defs.h"
1ad03bde 39#include "arch-utils.h"
c906108c 40
0f71a2f6 41#include "gdbcmd.h"
adf40b2e 42#include "inferior.h" /* enum CALL_DUMMY_LOCATION et.al. */
7a292a7a 43#include "symcat.h"
c906108c 44
f0d4cc9e 45#include "floatformat.h"
c906108c 46
95160752 47#include "gdb_assert.h"
b66d6d2e 48#include "gdb_string.h"
67c2c32c 49#include "gdb-events.h"
b59ff9d5 50#include "reggroups.h"
4be87837 51#include "osabi.h"
aebd7893 52#include "gdb_obstack.h"
95160752 53
104c1213
JM
54/* Static function declarations */
55
b3cc3077 56static void alloc_gdbarch_data (struct gdbarch *);
104c1213 57
0f71a2f6
JM
58/* Non-zero if we want to trace architecture code. */
59
60#ifndef GDBARCH_DEBUG
61#define GDBARCH_DEBUG 0
62#endif
63int gdbarch_debug = GDBARCH_DEBUG;
64
65
66/* Maintain the struct gdbarch object */
67
68struct gdbarch
adf40b2e 69{
76860b5f
AC
70 /* Has this architecture been fully initialized? */
71 int initialized_p;
aebd7893
AC
72
73 /* An obstack bound to the lifetime of the architecture. */
74 struct obstack *obstack;
75
adf40b2e
JM
76 /* basic architectural information */
77 const struct bfd_arch_info * bfd_arch_info;
78 int byte_order;
4be87837 79 enum gdb_osabi osabi;
0f71a2f6 80
adf40b2e
JM
81 /* target specific vector. */
82 struct gdbarch_tdep *tdep;
4b9b3959 83 gdbarch_dump_tdep_ftype *dump_tdep;
0f71a2f6 84
adf40b2e 85 /* per-architecture data-pointers */
95160752 86 unsigned nr_data;
adf40b2e 87 void **data;
0f71a2f6 88
adf40b2e
JM
89 /* per-architecture swap-regions */
90 struct gdbarch_swap *swap;
0f71a2f6 91
adf40b2e 92 /* Multi-arch values.
0f71a2f6 93
adf40b2e 94 When extending this structure you must:
0f71a2f6 95
adf40b2e 96 Add the field below.
0f71a2f6 97
adf40b2e
JM
98 Declare set/get functions and define the corresponding
99 macro in gdbarch.h.
0f71a2f6 100
adf40b2e
JM
101 gdbarch_alloc(): If zero/NULL is not a suitable default,
102 initialize the new field.
0f71a2f6 103
adf40b2e
JM
104 verify_gdbarch(): Confirm that the target updated the field
105 correctly.
0f71a2f6 106
7e73cedf 107 gdbarch_dump(): Add a fprintf_unfiltered call so that the new
adf40b2e 108 field is dumped out
0f71a2f6 109
c0e8c252 110 ``startup_gdbarch()'': Append an initial value to the static
adf40b2e 111 variable (base values on the host's c-type system).
0f71a2f6 112
adf40b2e
JM
113 get_gdbarch(): Implement the set/get functions (probably using
114 the macro's as shortcuts).
0f71a2f6
JM
115
116 */
117
adf40b2e
JM
118 int short_bit;
119 int int_bit;
120 int long_bit;
121 int long_long_bit;
122 int float_bit;
123 int double_bit;
124 int long_double_bit;
66b43ecb 125 int ptr_bit;
52204a0b 126 int addr_bit;
66b43ecb 127 int bfd_vma_bit;
4e409299 128 int char_signed;
adf40b2e
JM
129 gdbarch_read_pc_ftype *read_pc;
130 gdbarch_write_pc_ftype *write_pc;
adf40b2e 131 gdbarch_read_sp_ftype *read_sp;
39d4ef09 132 gdbarch_virtual_frame_pointer_ftype *virtual_frame_pointer;
d8124050
AC
133 gdbarch_pseudo_register_read_ftype *pseudo_register_read;
134 gdbarch_pseudo_register_write_ftype *pseudo_register_write;
adf40b2e 135 int num_regs;
0aba1244 136 int num_pseudo_regs;
adf40b2e 137 int sp_regnum;
adf40b2e 138 int pc_regnum;
c2169756 139 int ps_regnum;
60054393 140 int fp0_regnum;
88c72b7d
AC
141 gdbarch_stab_reg_to_regnum_ftype *stab_reg_to_regnum;
142 gdbarch_ecoff_reg_to_regnum_ftype *ecoff_reg_to_regnum;
143 gdbarch_dwarf_reg_to_regnum_ftype *dwarf_reg_to_regnum;
144 gdbarch_sdb_reg_to_regnum_ftype *sdb_reg_to_regnum;
145 gdbarch_dwarf2_reg_to_regnum_ftype *dwarf2_reg_to_regnum;
adf40b2e 146 gdbarch_register_name_ftype *register_name;
9c04cab7
AC
147 gdbarch_register_type_ftype *register_type;
148 gdbarch_deprecated_register_virtual_type_ftype *deprecated_register_virtual_type;
b8b527c5 149 int deprecated_register_bytes;
9c04cab7
AC
150 gdbarch_deprecated_register_byte_ftype *deprecated_register_byte;
151 gdbarch_deprecated_register_raw_size_ftype *deprecated_register_raw_size;
152 gdbarch_deprecated_register_virtual_size_ftype *deprecated_register_virtual_size;
a0ed5532 153 int deprecated_max_register_raw_size;
a0ed5532 154 int deprecated_max_register_virtual_size;
f3be58bc 155 gdbarch_unwind_dummy_id_ftype *unwind_dummy_id;
a59fe496 156 gdbarch_deprecated_save_dummy_frame_tos_ftype *deprecated_save_dummy_frame_tos;
f3be58bc
AC
157 int deprecated_fp_regnum;
158 gdbarch_deprecated_target_read_fp_ftype *deprecated_target_read_fp;
b8de8283
AC
159 gdbarch_push_dummy_call_ftype *push_dummy_call;
160 gdbarch_deprecated_push_arguments_ftype *deprecated_push_arguments;
07555a72 161 int deprecated_use_generic_dummy_frames;
b8de8283
AC
162 gdbarch_deprecated_push_return_address_ftype *deprecated_push_return_address;
163 gdbarch_deprecated_dummy_write_sp_ftype *deprecated_dummy_write_sp;
164 int deprecated_register_size;
adf40b2e 165 int call_dummy_location;
b1e29e33
AC
166 CORE_ADDR deprecated_call_dummy_start_offset;
167 CORE_ADDR deprecated_call_dummy_breakpoint_offset;
168 int deprecated_call_dummy_length;
b1e29e33
AC
169 LONGEST * deprecated_call_dummy_words;
170 int deprecated_sizeof_call_dummy_words;
b1e29e33 171 gdbarch_deprecated_fix_call_dummy_ftype *deprecated_fix_call_dummy;
7043d8dc 172 gdbarch_push_dummy_code_ftype *push_dummy_code;
b8de8283 173 gdbarch_deprecated_push_dummy_frame_ftype *deprecated_push_dummy_frame;
b8de8283
AC
174 gdbarch_deprecated_do_registers_info_ftype *deprecated_do_registers_info;
175 gdbarch_print_registers_info_ftype *print_registers_info;
176 gdbarch_print_float_info_ftype *print_float_info;
177 gdbarch_print_vector_info_ftype *print_vector_info;
178 gdbarch_register_sim_regno_ftype *register_sim_regno;
179 gdbarch_register_bytes_ok_ftype *register_bytes_ok;
180 gdbarch_cannot_fetch_register_ftype *cannot_fetch_register;
181 gdbarch_cannot_store_register_ftype *cannot_store_register;
182 gdbarch_get_longjmp_target_ftype *get_longjmp_target;
183 gdbarch_deprecated_pc_in_call_dummy_ftype *deprecated_pc_in_call_dummy;
2ca6c561 184 gdbarch_deprecated_init_frame_pc_first_ftype *deprecated_init_frame_pc_first;
a5afb99f 185 gdbarch_deprecated_init_frame_pc_ftype *deprecated_init_frame_pc;
adf40b2e
JM
186 int believe_pcc_promotion;
187 int believe_pcc_promotion_type;
129c1cd6 188 gdbarch_deprecated_get_saved_register_ftype *deprecated_get_saved_register;
781a750d
AC
189 gdbarch_deprecated_register_convertible_ftype *deprecated_register_convertible;
190 gdbarch_deprecated_register_convert_to_virtual_ftype *deprecated_register_convert_to_virtual;
191 gdbarch_deprecated_register_convert_to_raw_ftype *deprecated_register_convert_to_raw;
13d01224
AC
192 gdbarch_convert_register_p_ftype *convert_register_p;
193 gdbarch_register_to_value_ftype *register_to_value;
194 gdbarch_value_to_register_ftype *value_to_register;
4478b372
JB
195 gdbarch_pointer_to_address_ftype *pointer_to_address;
196 gdbarch_address_to_pointer_ftype *address_to_pointer;
fc0c74b1 197 gdbarch_integer_to_address_ftype *integer_to_address;
749b82f6 198 gdbarch_deprecated_pop_frame_ftype *deprecated_pop_frame;
4183d812 199 gdbarch_deprecated_store_struct_return_ftype *deprecated_store_struct_return;
92ad9cd9
AC
200 gdbarch_return_value_ftype *return_value;
201 gdbarch_return_value_on_stack_ftype *return_value_on_stack;
ebba8386 202 gdbarch_extract_return_value_ftype *extract_return_value;
adf40b2e 203 gdbarch_store_return_value_ftype *store_return_value;
ebba8386
AC
204 gdbarch_deprecated_extract_return_value_ftype *deprecated_extract_return_value;
205 gdbarch_deprecated_store_return_value_ftype *deprecated_store_return_value;
92ad9cd9 206 gdbarch_use_struct_convention_ftype *use_struct_convention;
74055713 207 gdbarch_deprecated_extract_struct_value_address_ftype *deprecated_extract_struct_value_address;
f30ee0bc 208 gdbarch_deprecated_frame_init_saved_regs_ftype *deprecated_frame_init_saved_regs;
e9582e71 209 gdbarch_deprecated_init_extra_frame_info_ftype *deprecated_init_extra_frame_info;
adf40b2e
JM
210 gdbarch_skip_prologue_ftype *skip_prologue;
211 gdbarch_inner_than_ftype *inner_than;
212 gdbarch_breakpoint_from_pc_ftype *breakpoint_from_pc;
a1131521 213 gdbarch_adjust_breakpoint_address_ftype *adjust_breakpoint_address;
917317f4
JM
214 gdbarch_memory_insert_breakpoint_ftype *memory_insert_breakpoint;
215 gdbarch_memory_remove_breakpoint_ftype *memory_remove_breakpoint;
adf40b2e
JM
216 CORE_ADDR decr_pc_after_break;
217 CORE_ADDR function_start_offset;
218 gdbarch_remote_translate_xfer_address_ftype *remote_translate_xfer_address;
219 CORE_ADDR frame_args_skip;
19772a2c 220 gdbarch_deprecated_frameless_function_invocation_ftype *deprecated_frameless_function_invocation;
618ce49f
AC
221 gdbarch_deprecated_frame_chain_ftype *deprecated_frame_chain;
222 gdbarch_deprecated_frame_chain_valid_ftype *deprecated_frame_chain_valid;
8bedc050 223 gdbarch_deprecated_frame_saved_pc_ftype *deprecated_frame_saved_pc;
12cc2063 224 gdbarch_unwind_pc_ftype *unwind_pc;
a9e5fdc2 225 gdbarch_unwind_sp_ftype *unwind_sp;
42efa47a
AC
226 gdbarch_deprecated_frame_args_address_ftype *deprecated_frame_args_address;
227 gdbarch_deprecated_frame_locals_address_ftype *deprecated_frame_locals_address;
6913c89a 228 gdbarch_deprecated_saved_pc_after_call_ftype *deprecated_saved_pc_after_call;
adf40b2e 229 gdbarch_frame_num_args_ftype *frame_num_args;
f27dd7fd 230 gdbarch_deprecated_stack_align_ftype *deprecated_stack_align;
dc604539 231 gdbarch_frame_align_ftype *frame_align;
88d89dbb 232 gdbarch_deprecated_reg_struct_has_addr_ftype *deprecated_reg_struct_has_addr;
192cb3d4 233 gdbarch_stabs_argument_has_addr_ftype *stabs_argument_has_addr;
8b148df9 234 int frame_red_zone_size;
58d5518e 235 int parm_boundary;
f0d4cc9e
AC
236 const struct floatformat * float_format;
237 const struct floatformat * double_format;
238 const struct floatformat * long_double_format;
f517ea4e 239 gdbarch_convert_from_func_ptr_addr_ftype *convert_from_func_ptr_addr;
875e1767 240 gdbarch_addr_bits_remove_ftype *addr_bits_remove;
181c1381 241 gdbarch_smash_text_address_ftype *smash_text_address;
64c4637f 242 gdbarch_software_single_step_ftype *software_single_step;
2bf0cb65 243 gdbarch_print_insn_ftype *print_insn;
bdcd319a 244 gdbarch_skip_trampoline_code_ftype *skip_trampoline_code;
dea0c52f 245 gdbarch_skip_solib_resolver_ftype *skip_solib_resolver;
68e9cc94 246 gdbarch_in_solib_call_trampoline_ftype *in_solib_call_trampoline;
d50355b6 247 gdbarch_in_solib_return_trampoline_ftype *in_solib_return_trampoline;
d7bd68ca 248 gdbarch_pc_in_sigtramp_ftype *pc_in_sigtramp;
43156d82
MK
249 gdbarch_sigtramp_start_ftype *sigtramp_start;
250 gdbarch_sigtramp_end_ftype *sigtramp_end;
c12260ac 251 gdbarch_in_function_epilogue_p_ftype *in_function_epilogue_p;
552c04a7 252 gdbarch_construct_inferior_arguments_ftype *construct_inferior_arguments;
a2cf933a
EZ
253 gdbarch_elf_make_msymbol_special_ftype *elf_make_msymbol_special;
254 gdbarch_coff_make_msymbol_special_ftype *coff_make_msymbol_special;
5720643c 255 const char * name_of_malloc;
c4ed33b9 256 int cannot_step_breakpoint;
f74fa174 257 int have_nonsteppable_watchpoint;
8b2dbe47
KB
258 gdbarch_address_class_type_flags_ftype *address_class_type_flags;
259 gdbarch_address_class_type_flags_to_name_ftype *address_class_type_flags_to_name;
260 gdbarch_address_class_name_to_type_flags_ftype *address_class_name_to_type_flags;
b59ff9d5 261 gdbarch_register_reggroup_p_ftype *register_reggroup_p;
143985b7 262 gdbarch_fetch_pointer_argument_ftype *fetch_pointer_argument;
6ce6d90f 263 gdbarch_regset_from_core_section_ftype *regset_from_core_section;
adf40b2e 264};
0f71a2f6
JM
265
266
267/* The default architecture uses host values (for want of a better
268 choice). */
269
270extern const struct bfd_arch_info bfd_default_arch_struct;
271
4b9b3959
AC
272struct gdbarch startup_gdbarch =
273{
76860b5f 274 1, /* Always initialized. */
aebd7893 275 NULL, /* The obstack. */
0f71a2f6 276 /* basic architecture information */
ec5cbaec
AC
277 &bfd_default_arch_struct, /* bfd_arch_info */
278 BFD_ENDIAN_BIG, /* byte_order */
279 GDB_OSABI_UNKNOWN, /* osabi */
4b9b3959
AC
280 /* target specific vector and its dump routine */
281 NULL, NULL,
0f71a2f6
JM
282 /*per-architecture data-pointers and swap regions */
283 0, NULL, NULL,
284 /* Multi-arch values */
ec5cbaec
AC
285 8 * sizeof (short), /* short_bit */
286 8 * sizeof (int), /* int_bit */
287 8 * sizeof (long), /* long_bit */
288 8 * sizeof (LONGEST), /* long_long_bit */
289 8 * sizeof (float), /* float_bit */
290 8 * sizeof (double), /* double_bit */
291 8 * sizeof (long double), /* long_double_bit */
292 8 * sizeof (void*), /* ptr_bit */
293 8 * sizeof (void*), /* addr_bit */
294 8 * sizeof (void*), /* bfd_vma_bit */
295 1, /* char_signed */
296 0, /* read_pc */
297 0, /* write_pc */
ec5cbaec 298 0, /* read_sp */
ec5cbaec
AC
299 0, /* virtual_frame_pointer */
300 0, /* pseudo_register_read */
301 0, /* pseudo_register_write */
302 0, /* num_regs */
303 0, /* num_pseudo_regs */
304 -1, /* sp_regnum */
ec5cbaec
AC
305 -1, /* pc_regnum */
306 -1, /* ps_regnum */
307 0, /* fp0_regnum */
ec5cbaec
AC
308 0, /* stab_reg_to_regnum */
309 0, /* ecoff_reg_to_regnum */
310 0, /* dwarf_reg_to_regnum */
311 0, /* sdb_reg_to_regnum */
312 0, /* dwarf2_reg_to_regnum */
313 0, /* register_name */
9c04cab7
AC
314 0, /* register_type */
315 0, /* deprecated_register_virtual_type */
ec5cbaec 316 0, /* deprecated_register_bytes */
9c04cab7
AC
317 generic_register_byte, /* deprecated_register_byte */
318 generic_register_size, /* deprecated_register_raw_size */
319 generic_register_size, /* deprecated_register_virtual_size */
ec5cbaec 320 0, /* deprecated_max_register_raw_size */
ec5cbaec 321 0, /* deprecated_max_register_virtual_size */
f3be58bc 322 0, /* unwind_dummy_id */
a59fe496 323 0, /* deprecated_save_dummy_frame_tos */
f3be58bc
AC
324 -1, /* deprecated_fp_regnum */
325 0, /* deprecated_target_read_fp */
b8de8283
AC
326 0, /* push_dummy_call */
327 0, /* deprecated_push_arguments */
ec5cbaec 328 0, /* deprecated_use_generic_dummy_frames */
b8de8283
AC
329 0, /* deprecated_push_return_address */
330 0, /* deprecated_dummy_write_sp */
331 0, /* deprecated_register_size */
ec5cbaec 332 0, /* call_dummy_location */
ec5cbaec
AC
333 0, /* deprecated_call_dummy_start_offset */
334 0, /* deprecated_call_dummy_breakpoint_offset */
335 0, /* deprecated_call_dummy_length */
ec5cbaec
AC
336 0, /* deprecated_call_dummy_words */
337 0, /* deprecated_sizeof_call_dummy_words */
ec5cbaec
AC
338 0, /* deprecated_fix_call_dummy */
339 0, /* push_dummy_code */
b8de8283 340 0, /* deprecated_push_dummy_frame */
b8de8283
AC
341 0, /* deprecated_do_registers_info */
342 default_print_registers_info, /* print_registers_info */
343 0, /* print_float_info */
344 0, /* print_vector_info */
345 0, /* register_sim_regno */
346 0, /* register_bytes_ok */
347 0, /* cannot_fetch_register */
348 0, /* cannot_store_register */
349 0, /* get_longjmp_target */
350 generic_pc_in_call_dummy, /* deprecated_pc_in_call_dummy */
ec5cbaec
AC
351 0, /* deprecated_init_frame_pc_first */
352 0, /* deprecated_init_frame_pc */
353 0, /* believe_pcc_promotion */
354 0, /* believe_pcc_promotion_type */
355 0, /* deprecated_get_saved_register */
781a750d
AC
356 0, /* deprecated_register_convertible */
357 0, /* deprecated_register_convert_to_virtual */
358 0, /* deprecated_register_convert_to_raw */
ec5cbaec
AC
359 0, /* convert_register_p */
360 0, /* register_to_value */
361 0, /* value_to_register */
362 0, /* pointer_to_address */
363 0, /* address_to_pointer */
364 0, /* integer_to_address */
ec5cbaec
AC
365 0, /* deprecated_pop_frame */
366 0, /* deprecated_store_struct_return */
92ad9cd9
AC
367 0, /* return_value */
368 0, /* return_value_on_stack */
ec5cbaec
AC
369 0, /* extract_return_value */
370 0, /* store_return_value */
371 0, /* deprecated_extract_return_value */
372 0, /* deprecated_store_return_value */
92ad9cd9 373 0, /* use_struct_convention */
74055713 374 0, /* deprecated_extract_struct_value_address */
ec5cbaec
AC
375 0, /* deprecated_frame_init_saved_regs */
376 0, /* deprecated_init_extra_frame_info */
377 0, /* skip_prologue */
ec5cbaec
AC
378 0, /* inner_than */
379 0, /* breakpoint_from_pc */
a1131521 380 0, /* adjust_breakpoint_address */
ec5cbaec
AC
381 0, /* memory_insert_breakpoint */
382 0, /* memory_remove_breakpoint */
383 0, /* decr_pc_after_break */
ec5cbaec
AC
384 0, /* function_start_offset */
385 generic_remote_translate_xfer_address, /* remote_translate_xfer_address */
386 0, /* frame_args_skip */
19772a2c 387 0, /* deprecated_frameless_function_invocation */
ec5cbaec
AC
388 0, /* deprecated_frame_chain */
389 0, /* deprecated_frame_chain_valid */
390 0, /* deprecated_frame_saved_pc */
391 0, /* unwind_pc */
a9e5fdc2 392 0, /* unwind_sp */
42efa47a
AC
393 get_frame_base, /* deprecated_frame_args_address */
394 get_frame_base, /* deprecated_frame_locals_address */
ec5cbaec
AC
395 0, /* deprecated_saved_pc_after_call */
396 0, /* frame_num_args */
f27dd7fd 397 0, /* deprecated_stack_align */
ec5cbaec 398 0, /* frame_align */
88d89dbb 399 0, /* deprecated_reg_struct_has_addr */
192cb3d4 400 default_stabs_argument_has_addr, /* stabs_argument_has_addr */
8b148df9 401 0, /* frame_red_zone_size */
ec5cbaec
AC
402 0, /* parm_boundary */
403 0, /* float_format */
404 0, /* double_format */
405 0, /* long_double_format */
e2d0e7eb 406 convert_from_func_ptr_addr_identity, /* convert_from_func_ptr_addr */
ec5cbaec
AC
407 0, /* addr_bits_remove */
408 0, /* smash_text_address */
409 0, /* software_single_step */
410 0, /* print_insn */
411 0, /* skip_trampoline_code */
4c8c40e6 412 generic_skip_solib_resolver, /* skip_solib_resolver */
ec5cbaec
AC
413 0, /* in_solib_call_trampoline */
414 0, /* in_solib_return_trampoline */
415 0, /* pc_in_sigtramp */
416 0, /* sigtramp_start */
417 0, /* sigtramp_end */
418 generic_in_function_epilogue_p, /* in_function_epilogue_p */
419 construct_inferior_arguments, /* construct_inferior_arguments */
ec5cbaec
AC
420 0, /* elf_make_msymbol_special */
421 0, /* coff_make_msymbol_special */
422 "malloc", /* name_of_malloc */
423 0, /* cannot_step_breakpoint */
424 0, /* have_nonsteppable_watchpoint */
425 0, /* address_class_type_flags */
426 0, /* address_class_type_flags_to_name */
427 0, /* address_class_name_to_type_flags */
428 default_register_reggroup_p, /* register_reggroup_p */
429 0, /* fetch_pointer_argument */
6ce6d90f 430 0, /* regset_from_core_section */
c0e8c252 431 /* startup_gdbarch() */
0f71a2f6 432};
4b9b3959 433
c0e8c252 434struct gdbarch *current_gdbarch = &startup_gdbarch;
0f71a2f6 435
66b43ecb 436/* Create a new ``struct gdbarch'' based on information provided by
0f71a2f6
JM
437 ``struct gdbarch_info''. */
438
439struct gdbarch *
104c1213
JM
440gdbarch_alloc (const struct gdbarch_info *info,
441 struct gdbarch_tdep *tdep)
0f71a2f6 442{
85de9627
AC
443 /* NOTE: The new architecture variable is named ``current_gdbarch''
444 so that macros such as TARGET_DOUBLE_BIT, when expanded, refer to
445 the current local architecture and not the previous global
446 architecture. This ensures that the new architectures initial
447 values are not influenced by the previous architecture. Once
448 everything is parameterised with gdbarch, this will go away. */
aebd7893
AC
449 struct gdbarch *current_gdbarch;
450
451 /* Create an obstack for allocating all the per-architecture memory,
452 then use that to allocate the architecture vector. */
453 struct obstack *obstack = XMALLOC (struct obstack);
454 obstack_init (obstack);
455 current_gdbarch = obstack_alloc (obstack, sizeof (*current_gdbarch));
85de9627 456 memset (current_gdbarch, 0, sizeof (*current_gdbarch));
aebd7893 457 current_gdbarch->obstack = obstack;
0f71a2f6 458
85de9627 459 alloc_gdbarch_data (current_gdbarch);
b3cc3077 460
85de9627 461 current_gdbarch->tdep = tdep;
0f71a2f6 462
85de9627
AC
463 current_gdbarch->bfd_arch_info = info->bfd_arch_info;
464 current_gdbarch->byte_order = info->byte_order;
4be87837 465 current_gdbarch->osabi = info->osabi;
0f71a2f6
JM
466
467 /* Force the explicit initialization of these. */
85de9627
AC
468 current_gdbarch->short_bit = 2*TARGET_CHAR_BIT;
469 current_gdbarch->int_bit = 4*TARGET_CHAR_BIT;
470 current_gdbarch->long_bit = 4*TARGET_CHAR_BIT;
471 current_gdbarch->long_long_bit = 2*TARGET_LONG_BIT;
472 current_gdbarch->float_bit = 4*TARGET_CHAR_BIT;
473 current_gdbarch->double_bit = 8*TARGET_CHAR_BIT;
17ef5d92 474 current_gdbarch->long_double_bit = 8*TARGET_CHAR_BIT;
85de9627
AC
475 current_gdbarch->ptr_bit = TARGET_INT_BIT;
476 current_gdbarch->bfd_vma_bit = TARGET_ARCHITECTURE->bits_per_address;
4e409299 477 current_gdbarch->char_signed = -1;
85de9627 478 current_gdbarch->write_pc = generic_target_write_pc;
85de9627
AC
479 current_gdbarch->virtual_frame_pointer = legacy_virtual_frame_pointer;
480 current_gdbarch->num_regs = -1;
481 current_gdbarch->sp_regnum = -1;
85de9627 482 current_gdbarch->pc_regnum = -1;
c2169756 483 current_gdbarch->ps_regnum = -1;
85de9627 484 current_gdbarch->fp0_regnum = -1;
85de9627
AC
485 current_gdbarch->stab_reg_to_regnum = no_op_reg_to_regnum;
486 current_gdbarch->ecoff_reg_to_regnum = no_op_reg_to_regnum;
487 current_gdbarch->dwarf_reg_to_regnum = no_op_reg_to_regnum;
488 current_gdbarch->sdb_reg_to_regnum = no_op_reg_to_regnum;
489 current_gdbarch->dwarf2_reg_to_regnum = no_op_reg_to_regnum;
9c04cab7
AC
490 current_gdbarch->deprecated_register_byte = generic_register_byte;
491 current_gdbarch->deprecated_register_raw_size = generic_register_size;
492 current_gdbarch->deprecated_register_virtual_size = generic_register_size;
f3be58bc 493 current_gdbarch->deprecated_fp_regnum = -1;
07555a72 494 current_gdbarch->deprecated_use_generic_dummy_frames = 1;
b99fa2d2 495 current_gdbarch->call_dummy_location = AT_ENTRY_POINT;
b1e29e33
AC
496 current_gdbarch->deprecated_call_dummy_words = legacy_call_dummy_words;
497 current_gdbarch->deprecated_sizeof_call_dummy_words = legacy_sizeof_call_dummy_words;
b8de8283
AC
498 current_gdbarch->print_registers_info = default_print_registers_info;
499 current_gdbarch->register_sim_regno = legacy_register_sim_regno;
500 current_gdbarch->cannot_fetch_register = cannot_register_not;
501 current_gdbarch->cannot_store_register = cannot_register_not;
502 current_gdbarch->deprecated_pc_in_call_dummy = generic_pc_in_call_dummy;
13d01224
AC
503 current_gdbarch->convert_register_p = legacy_convert_register_p;
504 current_gdbarch->register_to_value = legacy_register_to_value;
505 current_gdbarch->value_to_register = legacy_value_to_register;
85de9627
AC
506 current_gdbarch->pointer_to_address = unsigned_pointer_to_address;
507 current_gdbarch->address_to_pointer = unsigned_address_to_pointer;
508 current_gdbarch->return_value_on_stack = generic_return_value_on_stack_not;
ebba8386
AC
509 current_gdbarch->extract_return_value = legacy_extract_return_value;
510 current_gdbarch->store_return_value = legacy_store_return_value;
56f12751 511 current_gdbarch->use_struct_convention = generic_use_struct_convention;
85de9627
AC
512 current_gdbarch->memory_insert_breakpoint = default_memory_insert_breakpoint;
513 current_gdbarch->memory_remove_breakpoint = default_memory_remove_breakpoint;
85de9627 514 current_gdbarch->remote_translate_xfer_address = generic_remote_translate_xfer_address;
42efa47a
AC
515 current_gdbarch->deprecated_frame_args_address = get_frame_base;
516 current_gdbarch->deprecated_frame_locals_address = get_frame_base;
192cb3d4 517 current_gdbarch->stabs_argument_has_addr = default_stabs_argument_has_addr;
e2d0e7eb 518 current_gdbarch->convert_from_func_ptr_addr = convert_from_func_ptr_addr_identity;
85de9627 519 current_gdbarch->addr_bits_remove = core_addr_identity;
181c1381 520 current_gdbarch->smash_text_address = core_addr_identity;
85de9627 521 current_gdbarch->skip_trampoline_code = generic_skip_trampoline_code;
dea0c52f 522 current_gdbarch->skip_solib_resolver = generic_skip_solib_resolver;
68e9cc94 523 current_gdbarch->in_solib_call_trampoline = generic_in_solib_call_trampoline;
d50355b6 524 current_gdbarch->in_solib_return_trampoline = generic_in_solib_return_trampoline;
d7bd68ca 525 current_gdbarch->pc_in_sigtramp = legacy_pc_in_sigtramp;
c12260ac 526 current_gdbarch->in_function_epilogue_p = generic_in_function_epilogue_p;
552c04a7 527 current_gdbarch->construct_inferior_arguments = construct_inferior_arguments;
a2cf933a
EZ
528 current_gdbarch->elf_make_msymbol_special = default_elf_make_msymbol_special;
529 current_gdbarch->coff_make_msymbol_special = default_coff_make_msymbol_special;
5720643c 530 current_gdbarch->name_of_malloc = "malloc";
b59ff9d5 531 current_gdbarch->register_reggroup_p = default_register_reggroup_p;
0f71a2f6
JM
532 /* gdbarch_alloc() */
533
85de9627 534 return current_gdbarch;
0f71a2f6
JM
535}
536
537
aebd7893
AC
538/* Allocate extra space using the per-architecture obstack. */
539
540void *
541gdbarch_obstack_zalloc (struct gdbarch *arch, long size)
542{
543 void *data = obstack_alloc (arch->obstack, size);
544 memset (data, 0, size);
545 return data;
546}
547
548
058f20d5
JB
549/* Free a gdbarch struct. This should never happen in normal
550 operation --- once you've created a gdbarch, you keep it around.
551 However, if an architecture's init function encounters an error
552 building the structure, it may need to clean up a partially
553 constructed gdbarch. */
4b9b3959 554
058f20d5
JB
555void
556gdbarch_free (struct gdbarch *arch)
557{
aebd7893 558 struct obstack *obstack;
95160752 559 gdb_assert (arch != NULL);
aebd7893
AC
560 gdb_assert (!arch->initialized_p);
561 obstack = arch->obstack;
562 obstack_free (obstack, 0); /* Includes the ARCH. */
563 xfree (obstack);
058f20d5
JB
564}
565
566
db446970
AC
567/* Ensure that all values in a GDBARCH are reasonable. */
568
569/* NOTE/WARNING: The parameter is called ``current_gdbarch'' so that it
570 just happens to match the global variable ``current_gdbarch''. That
571 way macros refering to that variable get the local and not the global
572 version - ulgh. Once everything is parameterised with gdbarch, this
573 will go away. */
0f71a2f6 574
0f71a2f6 575static void
db446970 576verify_gdbarch (struct gdbarch *current_gdbarch)
0f71a2f6 577{
f16a1923
AC
578 struct ui_file *log;
579 struct cleanup *cleanups;
580 long dummy;
581 char *buf;
f16a1923
AC
582 log = mem_fileopen ();
583 cleanups = make_cleanup_ui_file_delete (log);
0f71a2f6 584 /* fundamental */
db446970 585 if (current_gdbarch->byte_order == BFD_ENDIAN_UNKNOWN)
f16a1923 586 fprintf_unfiltered (log, "\n\tbyte-order");
db446970 587 if (current_gdbarch->bfd_arch_info == NULL)
f16a1923 588 fprintf_unfiltered (log, "\n\tbfd_arch_info");
0f71a2f6 589 /* Check those that need to be defined for the given multi-arch level. */
66b43ecb
AC
590 /* Skip verify of short_bit, invalid_p == 0 */
591 /* Skip verify of int_bit, invalid_p == 0 */
592 /* Skip verify of long_bit, invalid_p == 0 */
593 /* Skip verify of long_long_bit, invalid_p == 0 */
594 /* Skip verify of float_bit, invalid_p == 0 */
595 /* Skip verify of double_bit, invalid_p == 0 */
596 /* Skip verify of long_double_bit, invalid_p == 0 */
597 /* Skip verify of ptr_bit, invalid_p == 0 */
db446970
AC
598 if (current_gdbarch->addr_bit == 0)
599 current_gdbarch->addr_bit = TARGET_PTR_BIT;
c0e8c252 600 /* Skip verify of bfd_vma_bit, invalid_p == 0 */
db446970
AC
601 if (current_gdbarch->char_signed == -1)
602 current_gdbarch->char_signed = 1;
cde9ea48 603 /* Skip verify of read_pc, has predicate */
be8dfb87 604 /* Skip verify of write_pc, invalid_p == 0 */
bd1ce8ba 605 /* Skip verify of read_sp, has predicate */
39d4ef09 606 /* Skip verify of virtual_frame_pointer, invalid_p == 0 */
d8124050
AC
607 /* Skip verify of pseudo_register_read, has predicate */
608 /* Skip verify of pseudo_register_write, has predicate */
50248794 609 if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
db446970 610 && (current_gdbarch->num_regs == -1))
f16a1923 611 fprintf_unfiltered (log, "\n\tnum_regs");
0aba1244 612 /* Skip verify of num_pseudo_regs, invalid_p == 0 */
1200cd6e 613 /* Skip verify of sp_regnum, invalid_p == 0 */
1200cd6e 614 /* Skip verify of pc_regnum, invalid_p == 0 */
c2169756 615 /* Skip verify of ps_regnum, invalid_p == 0 */
60054393 616 /* Skip verify of fp0_regnum, invalid_p == 0 */
88c72b7d
AC
617 /* Skip verify of stab_reg_to_regnum, invalid_p == 0 */
618 /* Skip verify of ecoff_reg_to_regnum, invalid_p == 0 */
619 /* Skip verify of dwarf_reg_to_regnum, invalid_p == 0 */
620 /* Skip verify of sdb_reg_to_regnum, invalid_p == 0 */
621 /* Skip verify of dwarf2_reg_to_regnum, invalid_p == 0 */
9c04cab7
AC
622 /* Skip verify of register_type, has predicate */
623 /* Skip verify of deprecated_register_virtual_type, has predicate */
624 /* Skip verify of deprecated_register_byte, has predicate */
dadd712e
AC
625 /* Skip verify of deprecated_register_raw_size, has predicate */
626 /* Skip verify of deprecated_register_virtual_size, has predicate */
a0ed5532 627 /* Skip verify of deprecated_max_register_raw_size, has predicate */
a0ed5532 628 /* Skip verify of deprecated_max_register_virtual_size, has predicate */
f3be58bc 629 /* Skip verify of unwind_dummy_id, has predicate */
a59fe496 630 /* Skip verify of deprecated_save_dummy_frame_tos, has predicate */
f3be58bc
AC
631 /* Skip verify of deprecated_fp_regnum, invalid_p == 0 */
632 /* Skip verify of deprecated_target_read_fp, has predicate */
b8de8283
AC
633 /* Skip verify of push_dummy_call, has predicate */
634 /* Skip verify of deprecated_push_arguments, has predicate */
635 /* Skip verify of deprecated_use_generic_dummy_frames, invalid_p == 0 */
636 /* Skip verify of deprecated_push_return_address, has predicate */
637 /* Skip verify of deprecated_dummy_write_sp, has predicate */
638 /* Skip verify of call_dummy_location, invalid_p == 0 */
b8de8283
AC
639 /* Skip verify of deprecated_call_dummy_words, invalid_p == 0 */
640 /* Skip verify of deprecated_sizeof_call_dummy_words, invalid_p == 0 */
b8de8283
AC
641 /* Skip verify of deprecated_fix_call_dummy, has predicate */
642 /* Skip verify of push_dummy_code, has predicate */
643 /* Skip verify of deprecated_push_dummy_frame, has predicate */
903ad3a6 644 /* Skip verify of deprecated_do_registers_info, has predicate */
0ab7a791 645 /* Skip verify of print_registers_info, invalid_p == 0 */
23e3a7ac 646 /* Skip verify of print_float_info, has predicate */
e76f1f2e 647 /* Skip verify of print_vector_info, has predicate */
7c7651b2 648 /* Skip verify of register_sim_regno, invalid_p == 0 */
2649061d 649 /* Skip verify of register_bytes_ok, has predicate */
01fb7433
AC
650 /* Skip verify of cannot_fetch_register, invalid_p == 0 */
651 /* Skip verify of cannot_store_register, invalid_p == 0 */
9df628e0 652 /* Skip verify of get_longjmp_target, has predicate */
ae45cd16 653 /* Skip verify of deprecated_pc_in_call_dummy, has predicate */
2ca6c561 654 /* Skip verify of deprecated_init_frame_pc_first, has predicate */
a5afb99f 655 /* Skip verify of deprecated_init_frame_pc, has predicate */
129c1cd6 656 /* Skip verify of deprecated_get_saved_register, has predicate */
cd0bfa36 657 /* Skip verify of deprecated_register_convertible, has predicate */
781a750d
AC
658 /* Skip verify of deprecated_register_convert_to_virtual, invalid_p == 0 */
659 /* Skip verify of deprecated_register_convert_to_raw, invalid_p == 0 */
13d01224
AC
660 /* Skip verify of convert_register_p, invalid_p == 0 */
661 /* Skip verify of register_to_value, invalid_p == 0 */
662 /* Skip verify of value_to_register, invalid_p == 0 */
4478b372
JB
663 /* Skip verify of pointer_to_address, invalid_p == 0 */
664 /* Skip verify of address_to_pointer, invalid_p == 0 */
fc0c74b1 665 /* Skip verify of integer_to_address, has predicate */
749b82f6 666 /* Skip verify of deprecated_pop_frame, has predicate */
4183d812 667 /* Skip verify of deprecated_store_struct_return, has predicate */
92ad9cd9
AC
668 /* Skip verify of return_value, has predicate */
669 /* Skip verify of return_value_on_stack, invalid_p == 0 */
ebba8386
AC
670 /* Skip verify of extract_return_value, invalid_p == 0 */
671 /* Skip verify of store_return_value, invalid_p == 0 */
92ad9cd9 672 /* Skip verify of use_struct_convention, invalid_p == 0 */
74055713 673 /* Skip verify of deprecated_extract_struct_value_address, has predicate */
f30ee0bc 674 /* Skip verify of deprecated_frame_init_saved_regs, has predicate */
e9582e71 675 /* Skip verify of deprecated_init_extra_frame_info, has predicate */
50248794 676 if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
db446970 677 && (current_gdbarch->skip_prologue == 0))
f16a1923 678 fprintf_unfiltered (log, "\n\tskip_prologue");
50248794 679 if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
db446970 680 && (current_gdbarch->inner_than == 0))
f16a1923 681 fprintf_unfiltered (log, "\n\tinner_than");
aaab4dba 682 if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
db446970 683 && (current_gdbarch->breakpoint_from_pc == 0))
aaab4dba 684 fprintf_unfiltered (log, "\n\tbreakpoint_from_pc");
a1131521 685 /* Skip verify of adjust_breakpoint_address, has predicate */
c0e8c252
AC
686 /* Skip verify of memory_insert_breakpoint, invalid_p == 0 */
687 /* Skip verify of memory_remove_breakpoint, invalid_p == 0 */
71bd6bd4 688 /* Skip verify of decr_pc_after_break, invalid_p == 0 */
6503b91e 689 /* Skip verify of function_start_offset, invalid_p == 0 */
c0e8c252 690 /* Skip verify of remote_translate_xfer_address, invalid_p == 0 */
5867a2fb 691 /* Skip verify of frame_args_skip, invalid_p == 0 */
19772a2c 692 /* Skip verify of deprecated_frameless_function_invocation, has predicate */
618ce49f
AC
693 /* Skip verify of deprecated_frame_chain, has predicate */
694 /* Skip verify of deprecated_frame_chain_valid, has predicate */
8bedc050 695 /* Skip verify of deprecated_frame_saved_pc, has predicate */
12cc2063 696 /* Skip verify of unwind_pc, has predicate */
a9e5fdc2 697 /* Skip verify of unwind_sp, has predicate */
42efa47a
AC
698 /* Skip verify of deprecated_frame_args_address, has predicate */
699 /* Skip verify of deprecated_frame_locals_address, has predicate */
6913c89a 700 /* Skip verify of deprecated_saved_pc_after_call, has predicate */
983a287a 701 /* Skip verify of frame_num_args, has predicate */
f27dd7fd 702 /* Skip verify of deprecated_stack_align, has predicate */
dc604539 703 /* Skip verify of frame_align, has predicate */
88d89dbb 704 /* Skip verify of deprecated_reg_struct_has_addr, has predicate */
192cb3d4 705 /* Skip verify of stabs_argument_has_addr, invalid_p == 0 */
db446970
AC
706 if (current_gdbarch->float_format == 0)
707 current_gdbarch->float_format = default_float_format (current_gdbarch);
708 if (current_gdbarch->double_format == 0)
709 current_gdbarch->double_format = default_double_format (current_gdbarch);
710 if (current_gdbarch->long_double_format == 0)
711 current_gdbarch->long_double_format = default_double_format (current_gdbarch);
f517ea4e 712 /* Skip verify of convert_from_func_ptr_addr, invalid_p == 0 */
875e1767 713 /* Skip verify of addr_bits_remove, invalid_p == 0 */
181c1381 714 /* Skip verify of smash_text_address, invalid_p == 0 */
64c4637f 715 /* Skip verify of software_single_step, has predicate */
f6c40618 716 if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
db446970 717 && (current_gdbarch->print_insn == 0))
f6c40618 718 fprintf_unfiltered (log, "\n\tprint_insn");
bdcd319a 719 /* Skip verify of skip_trampoline_code, invalid_p == 0 */
dea0c52f 720 /* Skip verify of skip_solib_resolver, invalid_p == 0 */
68e9cc94 721 /* Skip verify of in_solib_call_trampoline, invalid_p == 0 */
d50355b6 722 /* Skip verify of in_solib_return_trampoline, invalid_p == 0 */
d7bd68ca 723 /* Skip verify of pc_in_sigtramp, invalid_p == 0 */
43156d82 724 /* Skip verify of sigtramp_start, has predicate */
e76cff22 725 /* Skip verify of sigtramp_end, has predicate */
c12260ac 726 /* Skip verify of in_function_epilogue_p, invalid_p == 0 */
552c04a7 727 /* Skip verify of construct_inferior_arguments, invalid_p == 0 */
a2cf933a
EZ
728 /* Skip verify of elf_make_msymbol_special, invalid_p == 0 */
729 /* Skip verify of coff_make_msymbol_special, invalid_p == 0 */
5720643c 730 /* Skip verify of name_of_malloc, invalid_p == 0 */
c4ed33b9 731 /* Skip verify of cannot_step_breakpoint, invalid_p == 0 */
f74fa174 732 /* Skip verify of have_nonsteppable_watchpoint, invalid_p == 0 */
8b2dbe47
KB
733 /* Skip verify of address_class_type_flags, has predicate */
734 /* Skip verify of address_class_type_flags_to_name, has predicate */
735 /* Skip verify of address_class_name_to_type_flags, has predicate */
7e20f3fb 736 /* Skip verify of register_reggroup_p, invalid_p == 0 */
143985b7 737 /* Skip verify of fetch_pointer_argument, has predicate */
6ce6d90f 738 /* Skip verify of regset_from_core_section, has predicate */
f16a1923
AC
739 buf = ui_file_xstrdup (log, &dummy);
740 make_cleanup (xfree, buf);
741 if (strlen (buf) > 0)
742 internal_error (__FILE__, __LINE__,
743 "verify_gdbarch: the following are invalid ...%s",
744 buf);
745 do_cleanups (cleanups);
0f71a2f6
JM
746}
747
748
749/* Print out the details of the current architecture. */
750
4b9b3959
AC
751/* NOTE/WARNING: The parameter is called ``current_gdbarch'' so that it
752 just happens to match the global variable ``current_gdbarch''. That
753 way macros refering to that variable get the local and not the global
754 version - ulgh. Once everything is parameterised with gdbarch, this
755 will go away. */
756
0f71a2f6 757void
db446970 758gdbarch_dump (struct gdbarch *current_gdbarch, struct ui_file *file)
0f71a2f6 759{
4b9b3959
AC
760 fprintf_unfiltered (file,
761 "gdbarch_dump: GDB_MULTI_ARCH = %d\n",
762 GDB_MULTI_ARCH);
e2d0e7eb
AC
763 fprintf_unfiltered (file,
764 "gdbarch_dump: convert_from_func_ptr_addr = 0x%08lx\n",
765 (long) current_gdbarch->convert_from_func_ptr_addr);
7996bcec
AC
766 fprintf_unfiltered (file,
767 "gdbarch_dump: gdbarch_frame_align_p() = %d\n",
768 gdbarch_frame_align_p (current_gdbarch));
769 fprintf_unfiltered (file,
770 "gdbarch_dump: frame_align = 0x%08lx\n",
771 (long) current_gdbarch->frame_align);
6ce6d90f
MK
772 fprintf_unfiltered (file,
773 "gdbarch_dump: gdbarch_regset_from_core_section_p() = %d\n",
774 gdbarch_regset_from_core_section_p (current_gdbarch));
775 fprintf_unfiltered (file,
776 "gdbarch_dump: regset_from_core_section = 0x%08lx\n",
777 (long) current_gdbarch->regset_from_core_section);
92ad9cd9
AC
778 fprintf_unfiltered (file,
779 "gdbarch_dump: gdbarch_return_value_p() = %d\n",
780 gdbarch_return_value_p (current_gdbarch));
781 fprintf_unfiltered (file,
782 "gdbarch_dump: return_value = 0x%08lx\n",
783 (long) current_gdbarch->return_value);
7996bcec
AC
784 fprintf_unfiltered (file,
785 "gdbarch_dump: in_function_epilogue_p = 0x%08lx\n",
786 (long) current_gdbarch->in_function_epilogue_p);
787 fprintf_unfiltered (file,
788 "gdbarch_dump: register_reggroup_p = 0x%08lx\n",
789 (long) current_gdbarch->register_reggroup_p);
192cb3d4
MK
790 fprintf_unfiltered (file,
791 "gdbarch_dump: stabs_argument_has_addr = 0x%08lx\n",
792 (long) current_gdbarch->stabs_argument_has_addr);
7996bcec
AC
793 fprintf_unfiltered (file,
794 "gdbarch_dump: gdbarch_pseudo_register_read_p() = %d\n",
795 gdbarch_pseudo_register_read_p (current_gdbarch));
796 fprintf_unfiltered (file,
797 "gdbarch_dump: pseudo_register_read = 0x%08lx\n",
798 (long) current_gdbarch->pseudo_register_read);
799 fprintf_unfiltered (file,
800 "gdbarch_dump: gdbarch_pseudo_register_write_p() = %d\n",
801 gdbarch_pseudo_register_write_p (current_gdbarch));
802 fprintf_unfiltered (file,
803 "gdbarch_dump: pseudo_register_write = 0x%08lx\n",
804 (long) current_gdbarch->pseudo_register_write);
805 fprintf_unfiltered (file,
806 "gdbarch_dump: gdbarch_address_class_name_to_type_flags_p() = %d\n",
807 gdbarch_address_class_name_to_type_flags_p (current_gdbarch));
808 fprintf_unfiltered (file,
809 "gdbarch_dump: address_class_name_to_type_flags = 0x%08lx\n",
810 (long) current_gdbarch->address_class_name_to_type_flags);
1e9f55d0
AC
811#ifdef ADDRESS_CLASS_TYPE_FLAGS_P
812 fprintf_unfiltered (file,
813 "gdbarch_dump: %s # %s\n",
814 "ADDRESS_CLASS_TYPE_FLAGS_P()",
815 XSTRING (ADDRESS_CLASS_TYPE_FLAGS_P ()));
816 fprintf_unfiltered (file,
817 "gdbarch_dump: ADDRESS_CLASS_TYPE_FLAGS_P() = %d\n",
818 ADDRESS_CLASS_TYPE_FLAGS_P ());
819#endif
8b2dbe47
KB
820#ifdef ADDRESS_CLASS_TYPE_FLAGS
821 fprintf_unfiltered (file,
822 "gdbarch_dump: %s # %s\n",
823 "ADDRESS_CLASS_TYPE_FLAGS(byte_size, dwarf2_addr_class)",
824 XSTRING (ADDRESS_CLASS_TYPE_FLAGS (byte_size, dwarf2_addr_class)));
7996bcec
AC
825 fprintf_unfiltered (file,
826 "gdbarch_dump: ADDRESS_CLASS_TYPE_FLAGS = <0x%08lx>\n",
827 (long) current_gdbarch->address_class_type_flags
828 /*ADDRESS_CLASS_TYPE_FLAGS ()*/);
8b2dbe47 829#endif
7996bcec
AC
830 fprintf_unfiltered (file,
831 "gdbarch_dump: gdbarch_address_class_type_flags_to_name_p() = %d\n",
832 gdbarch_address_class_type_flags_to_name_p (current_gdbarch));
833 fprintf_unfiltered (file,
834 "gdbarch_dump: address_class_type_flags_to_name = 0x%08lx\n",
835 (long) current_gdbarch->address_class_type_flags_to_name);
08e45a40 836#ifdef ADDRESS_TO_POINTER
4b9b3959 837 fprintf_unfiltered (file,
08e45a40
AC
838 "gdbarch_dump: %s # %s\n",
839 "ADDRESS_TO_POINTER(type, buf, addr)",
840 XSTRING (ADDRESS_TO_POINTER (type, buf, addr)));
7996bcec
AC
841 fprintf_unfiltered (file,
842 "gdbarch_dump: ADDRESS_TO_POINTER = <0x%08lx>\n",
843 (long) current_gdbarch->address_to_pointer
844 /*ADDRESS_TO_POINTER ()*/);
4b9b3959 845#endif
5e74b15c
RE
846#ifdef ADDR_BITS_REMOVE
847 fprintf_unfiltered (file,
848 "gdbarch_dump: %s # %s\n",
849 "ADDR_BITS_REMOVE(addr)",
850 XSTRING (ADDR_BITS_REMOVE (addr)));
7996bcec
AC
851 fprintf_unfiltered (file,
852 "gdbarch_dump: ADDR_BITS_REMOVE = <0x%08lx>\n",
853 (long) current_gdbarch->addr_bits_remove
854 /*ADDR_BITS_REMOVE ()*/);
5e74b15c 855#endif
a1131521
KB
856 fprintf_unfiltered (file,
857 "gdbarch_dump: gdbarch_adjust_breakpoint_address_p() = %d\n",
858 gdbarch_adjust_breakpoint_address_p (current_gdbarch));
859 fprintf_unfiltered (file,
860 "gdbarch_dump: adjust_breakpoint_address = 0x%08lx\n",
861 (long) current_gdbarch->adjust_breakpoint_address);
08e45a40 862#ifdef BELIEVE_PCC_PROMOTION
4b9b3959 863 fprintf_unfiltered (file,
08e45a40
AC
864 "gdbarch_dump: BELIEVE_PCC_PROMOTION # %s\n",
865 XSTRING (BELIEVE_PCC_PROMOTION));
866 fprintf_unfiltered (file,
06b25f14
AC
867 "gdbarch_dump: BELIEVE_PCC_PROMOTION = %d\n",
868 BELIEVE_PCC_PROMOTION);
4b9b3959 869#endif
08e45a40 870#ifdef BELIEVE_PCC_PROMOTION_TYPE
4b9b3959 871 fprintf_unfiltered (file,
08e45a40
AC
872 "gdbarch_dump: BELIEVE_PCC_PROMOTION_TYPE # %s\n",
873 XSTRING (BELIEVE_PCC_PROMOTION_TYPE));
874 fprintf_unfiltered (file,
06b25f14
AC
875 "gdbarch_dump: BELIEVE_PCC_PROMOTION_TYPE = %d\n",
876 BELIEVE_PCC_PROMOTION_TYPE);
4b9b3959 877#endif
08e45a40 878#ifdef BREAKPOINT_FROM_PC
4b9b3959 879 fprintf_unfiltered (file,
08e45a40
AC
880 "gdbarch_dump: %s # %s\n",
881 "BREAKPOINT_FROM_PC(pcptr, lenptr)",
882 XSTRING (BREAKPOINT_FROM_PC (pcptr, lenptr)));
7996bcec
AC
883 fprintf_unfiltered (file,
884 "gdbarch_dump: BREAKPOINT_FROM_PC = <0x%08lx>\n",
885 (long) current_gdbarch->breakpoint_from_pc
886 /*BREAKPOINT_FROM_PC ()*/);
4b9b3959 887#endif
08e45a40 888#ifdef CALL_DUMMY_LOCATION
52204a0b 889 fprintf_unfiltered (file,
08e45a40
AC
890 "gdbarch_dump: CALL_DUMMY_LOCATION # %s\n",
891 XSTRING (CALL_DUMMY_LOCATION));
892 fprintf_unfiltered (file,
06b25f14
AC
893 "gdbarch_dump: CALL_DUMMY_LOCATION = %d\n",
894 CALL_DUMMY_LOCATION);
52204a0b 895#endif
08e45a40 896#ifdef CANNOT_FETCH_REGISTER
4b9b3959
AC
897 fprintf_unfiltered (file,
898 "gdbarch_dump: %s # %s\n",
08e45a40
AC
899 "CANNOT_FETCH_REGISTER(regnum)",
900 XSTRING (CANNOT_FETCH_REGISTER (regnum)));
7996bcec
AC
901 fprintf_unfiltered (file,
902 "gdbarch_dump: CANNOT_FETCH_REGISTER = <0x%08lx>\n",
903 (long) current_gdbarch->cannot_fetch_register
904 /*CANNOT_FETCH_REGISTER ()*/);
4b9b3959 905#endif
c4ed33b9
AC
906#ifdef CANNOT_STEP_BREAKPOINT
907 fprintf_unfiltered (file,
908 "gdbarch_dump: CANNOT_STEP_BREAKPOINT # %s\n",
909 XSTRING (CANNOT_STEP_BREAKPOINT));
910 fprintf_unfiltered (file,
911 "gdbarch_dump: CANNOT_STEP_BREAKPOINT = %d\n",
912 CANNOT_STEP_BREAKPOINT);
913#endif
08e45a40 914#ifdef CANNOT_STORE_REGISTER
4b9b3959
AC
915 fprintf_unfiltered (file,
916 "gdbarch_dump: %s # %s\n",
08e45a40
AC
917 "CANNOT_STORE_REGISTER(regnum)",
918 XSTRING (CANNOT_STORE_REGISTER (regnum)));
7996bcec
AC
919 fprintf_unfiltered (file,
920 "gdbarch_dump: CANNOT_STORE_REGISTER = <0x%08lx>\n",
921 (long) current_gdbarch->cannot_store_register
922 /*CANNOT_STORE_REGISTER ()*/);
4b9b3959 923#endif
a2cf933a 924#ifdef COFF_MAKE_MSYMBOL_SPECIAL
a2cf933a
EZ
925 fprintf_unfiltered (file,
926 "gdbarch_dump: %s # %s\n",
927 "COFF_MAKE_MSYMBOL_SPECIAL(val, msym)",
928 XSTRING (COFF_MAKE_MSYMBOL_SPECIAL (val, msym)));
7996bcec
AC
929 fprintf_unfiltered (file,
930 "gdbarch_dump: COFF_MAKE_MSYMBOL_SPECIAL = <0x%08lx>\n",
931 (long) current_gdbarch->coff_make_msymbol_special
932 /*COFF_MAKE_MSYMBOL_SPECIAL ()*/);
a2cf933a 933#endif
7996bcec
AC
934 fprintf_unfiltered (file,
935 "gdbarch_dump: construct_inferior_arguments = 0x%08lx\n",
936 (long) current_gdbarch->construct_inferior_arguments);
13d01224
AC
937#ifdef CONVERT_REGISTER_P
938 fprintf_unfiltered (file,
939 "gdbarch_dump: %s # %s\n",
ff2e87ac
AC
940 "CONVERT_REGISTER_P(regnum, type)",
941 XSTRING (CONVERT_REGISTER_P (regnum, type)));
7996bcec
AC
942 fprintf_unfiltered (file,
943 "gdbarch_dump: CONVERT_REGISTER_P = <0x%08lx>\n",
944 (long) current_gdbarch->convert_register_p
945 /*CONVERT_REGISTER_P ()*/);
13d01224 946#endif
08e45a40 947#ifdef DECR_PC_AFTER_BREAK
4b9b3959 948 fprintf_unfiltered (file,
08e45a40
AC
949 "gdbarch_dump: DECR_PC_AFTER_BREAK # %s\n",
950 XSTRING (DECR_PC_AFTER_BREAK));
0aba1244 951 fprintf_unfiltered (file,
08e45a40
AC
952 "gdbarch_dump: DECR_PC_AFTER_BREAK = %ld\n",
953 (long) DECR_PC_AFTER_BREAK);
0aba1244 954#endif
b1e29e33
AC
955#ifdef DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET
956 fprintf_unfiltered (file,
957 "gdbarch_dump: DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET # %s\n",
958 XSTRING (DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET));
959 fprintf_unfiltered (file,
960 "gdbarch_dump: DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET = %ld\n",
961 (long) DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET);
962#endif
963#ifdef DEPRECATED_CALL_DUMMY_LENGTH
964 fprintf_unfiltered (file,
965 "gdbarch_dump: DEPRECATED_CALL_DUMMY_LENGTH # %s\n",
966 XSTRING (DEPRECATED_CALL_DUMMY_LENGTH));
967 fprintf_unfiltered (file,
968 "gdbarch_dump: DEPRECATED_CALL_DUMMY_LENGTH = %d\n",
969 DEPRECATED_CALL_DUMMY_LENGTH);
970#endif
b1e29e33
AC
971#ifdef DEPRECATED_CALL_DUMMY_START_OFFSET
972 fprintf_unfiltered (file,
973 "gdbarch_dump: DEPRECATED_CALL_DUMMY_START_OFFSET # %s\n",
974 XSTRING (DEPRECATED_CALL_DUMMY_START_OFFSET));
975 fprintf_unfiltered (file,
976 "gdbarch_dump: DEPRECATED_CALL_DUMMY_START_OFFSET = %ld\n",
977 (long) DEPRECATED_CALL_DUMMY_START_OFFSET);
978#endif
979#ifdef DEPRECATED_CALL_DUMMY_WORDS
980 fprintf_unfiltered (file,
981 "gdbarch_dump: DEPRECATED_CALL_DUMMY_WORDS # %s\n",
982 XSTRING (DEPRECATED_CALL_DUMMY_WORDS));
983 fprintf_unfiltered (file,
984 "gdbarch_dump: DEPRECATED_CALL_DUMMY_WORDS = 0x%08lx\n",
985 (long) DEPRECATED_CALL_DUMMY_WORDS);
986#endif
1e9f55d0
AC
987#ifdef DEPRECATED_DO_REGISTERS_INFO_P
988 fprintf_unfiltered (file,
989 "gdbarch_dump: %s # %s\n",
990 "DEPRECATED_DO_REGISTERS_INFO_P()",
991 XSTRING (DEPRECATED_DO_REGISTERS_INFO_P ()));
992 fprintf_unfiltered (file,
993 "gdbarch_dump: DEPRECATED_DO_REGISTERS_INFO_P() = %d\n",
994 DEPRECATED_DO_REGISTERS_INFO_P ());
995#endif
903ad3a6 996#ifdef DEPRECATED_DO_REGISTERS_INFO
903ad3a6
AC
997 fprintf_unfiltered (file,
998 "gdbarch_dump: %s # %s\n",
999 "DEPRECATED_DO_REGISTERS_INFO(reg_nr, fpregs)",
1000 XSTRING (DEPRECATED_DO_REGISTERS_INFO (reg_nr, fpregs)));
7996bcec
AC
1001 fprintf_unfiltered (file,
1002 "gdbarch_dump: DEPRECATED_DO_REGISTERS_INFO = <0x%08lx>\n",
1003 (long) current_gdbarch->deprecated_do_registers_info
1004 /*DEPRECATED_DO_REGISTERS_INFO ()*/);
903ad3a6 1005#endif
6c0e89ed
AC
1006#ifdef DEPRECATED_DUMMY_WRITE_SP_P
1007 fprintf_unfiltered (file,
1008 "gdbarch_dump: %s # %s\n",
1009 "DEPRECATED_DUMMY_WRITE_SP_P()",
1010 XSTRING (DEPRECATED_DUMMY_WRITE_SP_P ()));
1011 fprintf_unfiltered (file,
1012 "gdbarch_dump: DEPRECATED_DUMMY_WRITE_SP_P() = %d\n",
1013 DEPRECATED_DUMMY_WRITE_SP_P ());
1014#endif
1015#ifdef DEPRECATED_DUMMY_WRITE_SP
6c0e89ed
AC
1016 fprintf_unfiltered (file,
1017 "gdbarch_dump: %s # %s\n",
1018 "DEPRECATED_DUMMY_WRITE_SP(val)",
1019 XSTRING (DEPRECATED_DUMMY_WRITE_SP (val)));
7996bcec
AC
1020 fprintf_unfiltered (file,
1021 "gdbarch_dump: DEPRECATED_DUMMY_WRITE_SP = <0x%08lx>\n",
1022 (long) current_gdbarch->deprecated_dummy_write_sp
1023 /*DEPRECATED_DUMMY_WRITE_SP ()*/);
6c0e89ed 1024#endif
26e9b323 1025#ifdef DEPRECATED_EXTRACT_RETURN_VALUE
26e9b323
AC
1026 fprintf_unfiltered (file,
1027 "gdbarch_dump: %s # %s\n",
1028 "DEPRECATED_EXTRACT_RETURN_VALUE(type, regbuf, valbuf)",
1029 XSTRING (DEPRECATED_EXTRACT_RETURN_VALUE (type, regbuf, valbuf)));
7996bcec
AC
1030 fprintf_unfiltered (file,
1031 "gdbarch_dump: DEPRECATED_EXTRACT_RETURN_VALUE = <0x%08lx>\n",
1032 (long) current_gdbarch->deprecated_extract_return_value
1033 /*DEPRECATED_EXTRACT_RETURN_VALUE ()*/);
26e9b323 1034#endif
74055713
AC
1035#ifdef DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P
1036 fprintf_unfiltered (file,
1037 "gdbarch_dump: %s # %s\n",
1038 "DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P()",
1039 XSTRING (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P ()));
1040 fprintf_unfiltered (file,
1041 "gdbarch_dump: DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P() = %d\n",
1042 DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P ());
1043#endif
1044#ifdef DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS
1045 fprintf_unfiltered (file,
1046 "gdbarch_dump: %s # %s\n",
1047 "DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS(regcache)",
1048 XSTRING (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS (regcache)));
1049 fprintf_unfiltered (file,
1050 "gdbarch_dump: DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS = <0x%08lx>\n",
1051 (long) current_gdbarch->deprecated_extract_struct_value_address
1052 /*DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS ()*/);
1053#endif
b1e29e33
AC
1054#ifdef DEPRECATED_FIX_CALL_DUMMY_P
1055 fprintf_unfiltered (file,
1056 "gdbarch_dump: %s # %s\n",
1057 "DEPRECATED_FIX_CALL_DUMMY_P()",
1058 XSTRING (DEPRECATED_FIX_CALL_DUMMY_P ()));
1059 fprintf_unfiltered (file,
1060 "gdbarch_dump: DEPRECATED_FIX_CALL_DUMMY_P() = %d\n",
1061 DEPRECATED_FIX_CALL_DUMMY_P ());
1062#endif
1063#ifdef DEPRECATED_FIX_CALL_DUMMY
b1e29e33
AC
1064 fprintf_unfiltered (file,
1065 "gdbarch_dump: %s # %s\n",
1066 "DEPRECATED_FIX_CALL_DUMMY(dummy, pc, fun, nargs, args, type, gcc_p)",
1067 XSTRING (DEPRECATED_FIX_CALL_DUMMY (dummy, pc, fun, nargs, args, type, gcc_p)));
7996bcec
AC
1068 fprintf_unfiltered (file,
1069 "gdbarch_dump: DEPRECATED_FIX_CALL_DUMMY = <0x%08lx>\n",
1070 (long) current_gdbarch->deprecated_fix_call_dummy
1071 /*DEPRECATED_FIX_CALL_DUMMY ()*/);
b1e29e33 1072#endif
0ba6dca9
AC
1073#ifdef DEPRECATED_FP_REGNUM
1074 fprintf_unfiltered (file,
1075 "gdbarch_dump: DEPRECATED_FP_REGNUM # %s\n",
1076 XSTRING (DEPRECATED_FP_REGNUM));
1077 fprintf_unfiltered (file,
1078 "gdbarch_dump: DEPRECATED_FP_REGNUM = %d\n",
1079 DEPRECATED_FP_REGNUM);
1080#endif
19772a2c
AC
1081#ifdef DEPRECATED_FRAMELESS_FUNCTION_INVOCATION_P
1082 fprintf_unfiltered (file,
1083 "gdbarch_dump: %s # %s\n",
1084 "DEPRECATED_FRAMELESS_FUNCTION_INVOCATION_P()",
1085 XSTRING (DEPRECATED_FRAMELESS_FUNCTION_INVOCATION_P ()));
1086 fprintf_unfiltered (file,
1087 "gdbarch_dump: DEPRECATED_FRAMELESS_FUNCTION_INVOCATION_P() = %d\n",
1088 DEPRECATED_FRAMELESS_FUNCTION_INVOCATION_P ());
1089#endif
1090#ifdef DEPRECATED_FRAMELESS_FUNCTION_INVOCATION
1091 fprintf_unfiltered (file,
1092 "gdbarch_dump: %s # %s\n",
1093 "DEPRECATED_FRAMELESS_FUNCTION_INVOCATION(fi)",
1094 XSTRING (DEPRECATED_FRAMELESS_FUNCTION_INVOCATION (fi)));
1095 fprintf_unfiltered (file,
1096 "gdbarch_dump: DEPRECATED_FRAMELESS_FUNCTION_INVOCATION = <0x%08lx>\n",
1097 (long) current_gdbarch->deprecated_frameless_function_invocation
1098 /*DEPRECATED_FRAMELESS_FUNCTION_INVOCATION ()*/);
1099#endif
42efa47a
AC
1100#ifdef DEPRECATED_FRAME_ARGS_ADDRESS_P
1101 fprintf_unfiltered (file,
1102 "gdbarch_dump: %s # %s\n",
1103 "DEPRECATED_FRAME_ARGS_ADDRESS_P()",
1104 XSTRING (DEPRECATED_FRAME_ARGS_ADDRESS_P ()));
1105 fprintf_unfiltered (file,
1106 "gdbarch_dump: DEPRECATED_FRAME_ARGS_ADDRESS_P() = %d\n",
1107 DEPRECATED_FRAME_ARGS_ADDRESS_P ());
1108#endif
1109#ifdef DEPRECATED_FRAME_ARGS_ADDRESS
1110 fprintf_unfiltered (file,
1111 "gdbarch_dump: %s # %s\n",
1112 "DEPRECATED_FRAME_ARGS_ADDRESS(fi)",
1113 XSTRING (DEPRECATED_FRAME_ARGS_ADDRESS (fi)));
7996bcec
AC
1114 fprintf_unfiltered (file,
1115 "gdbarch_dump: DEPRECATED_FRAME_ARGS_ADDRESS = <0x%08lx>\n",
1116 (long) current_gdbarch->deprecated_frame_args_address
1117 /*DEPRECATED_FRAME_ARGS_ADDRESS ()*/);
42efa47a 1118#endif
618ce49f
AC
1119#ifdef DEPRECATED_FRAME_CHAIN_P
1120 fprintf_unfiltered (file,
1121 "gdbarch_dump: %s # %s\n",
1122 "DEPRECATED_FRAME_CHAIN_P()",
1123 XSTRING (DEPRECATED_FRAME_CHAIN_P ()));
1124 fprintf_unfiltered (file,
1125 "gdbarch_dump: DEPRECATED_FRAME_CHAIN_P() = %d\n",
1126 DEPRECATED_FRAME_CHAIN_P ());
1127#endif
1128#ifdef DEPRECATED_FRAME_CHAIN
1129 fprintf_unfiltered (file,
1130 "gdbarch_dump: %s # %s\n",
1131 "DEPRECATED_FRAME_CHAIN(frame)",
1132 XSTRING (DEPRECATED_FRAME_CHAIN (frame)));
7996bcec
AC
1133 fprintf_unfiltered (file,
1134 "gdbarch_dump: DEPRECATED_FRAME_CHAIN = <0x%08lx>\n",
1135 (long) current_gdbarch->deprecated_frame_chain
1136 /*DEPRECATED_FRAME_CHAIN ()*/);
618ce49f
AC
1137#endif
1138#ifdef DEPRECATED_FRAME_CHAIN_VALID_P
1139 fprintf_unfiltered (file,
1140 "gdbarch_dump: %s # %s\n",
1141 "DEPRECATED_FRAME_CHAIN_VALID_P()",
1142 XSTRING (DEPRECATED_FRAME_CHAIN_VALID_P ()));
1143 fprintf_unfiltered (file,
1144 "gdbarch_dump: DEPRECATED_FRAME_CHAIN_VALID_P() = %d\n",
1145 DEPRECATED_FRAME_CHAIN_VALID_P ());
1146#endif
1147#ifdef DEPRECATED_FRAME_CHAIN_VALID
1148 fprintf_unfiltered (file,
1149 "gdbarch_dump: %s # %s\n",
1150 "DEPRECATED_FRAME_CHAIN_VALID(chain, thisframe)",
1151 XSTRING (DEPRECATED_FRAME_CHAIN_VALID (chain, thisframe)));
7996bcec
AC
1152 fprintf_unfiltered (file,
1153 "gdbarch_dump: DEPRECATED_FRAME_CHAIN_VALID = <0x%08lx>\n",
1154 (long) current_gdbarch->deprecated_frame_chain_valid
1155 /*DEPRECATED_FRAME_CHAIN_VALID ()*/);
618ce49f 1156#endif
f30ee0bc
AC
1157#ifdef DEPRECATED_FRAME_INIT_SAVED_REGS_P
1158 fprintf_unfiltered (file,
1159 "gdbarch_dump: %s # %s\n",
1160 "DEPRECATED_FRAME_INIT_SAVED_REGS_P()",
1161 XSTRING (DEPRECATED_FRAME_INIT_SAVED_REGS_P ()));
1162 fprintf_unfiltered (file,
1163 "gdbarch_dump: DEPRECATED_FRAME_INIT_SAVED_REGS_P() = %d\n",
1164 DEPRECATED_FRAME_INIT_SAVED_REGS_P ());
1165#endif
1166#ifdef DEPRECATED_FRAME_INIT_SAVED_REGS
f30ee0bc
AC
1167 fprintf_unfiltered (file,
1168 "gdbarch_dump: %s # %s\n",
1169 "DEPRECATED_FRAME_INIT_SAVED_REGS(frame)",
1170 XSTRING (DEPRECATED_FRAME_INIT_SAVED_REGS (frame)));
7996bcec
AC
1171 fprintf_unfiltered (file,
1172 "gdbarch_dump: DEPRECATED_FRAME_INIT_SAVED_REGS = <0x%08lx>\n",
1173 (long) current_gdbarch->deprecated_frame_init_saved_regs
1174 /*DEPRECATED_FRAME_INIT_SAVED_REGS ()*/);
f30ee0bc 1175#endif
42efa47a
AC
1176#ifdef DEPRECATED_FRAME_LOCALS_ADDRESS_P
1177 fprintf_unfiltered (file,
1178 "gdbarch_dump: %s # %s\n",
1179 "DEPRECATED_FRAME_LOCALS_ADDRESS_P()",
1180 XSTRING (DEPRECATED_FRAME_LOCALS_ADDRESS_P ()));
1181 fprintf_unfiltered (file,
1182 "gdbarch_dump: DEPRECATED_FRAME_LOCALS_ADDRESS_P() = %d\n",
1183 DEPRECATED_FRAME_LOCALS_ADDRESS_P ());
1184#endif
1185#ifdef DEPRECATED_FRAME_LOCALS_ADDRESS
1186 fprintf_unfiltered (file,
1187 "gdbarch_dump: %s # %s\n",
1188 "DEPRECATED_FRAME_LOCALS_ADDRESS(fi)",
1189 XSTRING (DEPRECATED_FRAME_LOCALS_ADDRESS (fi)));
7996bcec
AC
1190 fprintf_unfiltered (file,
1191 "gdbarch_dump: DEPRECATED_FRAME_LOCALS_ADDRESS = <0x%08lx>\n",
1192 (long) current_gdbarch->deprecated_frame_locals_address
1193 /*DEPRECATED_FRAME_LOCALS_ADDRESS ()*/);
42efa47a 1194#endif
8bedc050
AC
1195#ifdef DEPRECATED_FRAME_SAVED_PC_P
1196 fprintf_unfiltered (file,
1197 "gdbarch_dump: %s # %s\n",
1198 "DEPRECATED_FRAME_SAVED_PC_P()",
1199 XSTRING (DEPRECATED_FRAME_SAVED_PC_P ()));
1200 fprintf_unfiltered (file,
1201 "gdbarch_dump: DEPRECATED_FRAME_SAVED_PC_P() = %d\n",
1202 DEPRECATED_FRAME_SAVED_PC_P ());
1203#endif
1204#ifdef DEPRECATED_FRAME_SAVED_PC
1205 fprintf_unfiltered (file,
1206 "gdbarch_dump: %s # %s\n",
1207 "DEPRECATED_FRAME_SAVED_PC(fi)",
1208 XSTRING (DEPRECATED_FRAME_SAVED_PC (fi)));
7996bcec
AC
1209 fprintf_unfiltered (file,
1210 "gdbarch_dump: DEPRECATED_FRAME_SAVED_PC = <0x%08lx>\n",
1211 (long) current_gdbarch->deprecated_frame_saved_pc
1212 /*DEPRECATED_FRAME_SAVED_PC ()*/);
8bedc050 1213#endif
129c1cd6
AC
1214#ifdef DEPRECATED_GET_SAVED_REGISTER_P
1215 fprintf_unfiltered (file,
1216 "gdbarch_dump: %s # %s\n",
1217 "DEPRECATED_GET_SAVED_REGISTER_P()",
1218 XSTRING (DEPRECATED_GET_SAVED_REGISTER_P ()));
1219 fprintf_unfiltered (file,
1220 "gdbarch_dump: DEPRECATED_GET_SAVED_REGISTER_P() = %d\n",
1221 DEPRECATED_GET_SAVED_REGISTER_P ());
1222#endif
1223#ifdef DEPRECATED_GET_SAVED_REGISTER
129c1cd6
AC
1224 fprintf_unfiltered (file,
1225 "gdbarch_dump: %s # %s\n",
1226 "DEPRECATED_GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval)",
1227 XSTRING (DEPRECATED_GET_SAVED_REGISTER (raw_buffer, optimized, addrp, frame, regnum, lval)));
7996bcec
AC
1228 fprintf_unfiltered (file,
1229 "gdbarch_dump: DEPRECATED_GET_SAVED_REGISTER = <0x%08lx>\n",
1230 (long) current_gdbarch->deprecated_get_saved_register
1231 /*DEPRECATED_GET_SAVED_REGISTER ()*/);
129c1cd6 1232#endif
e9582e71
AC
1233#ifdef DEPRECATED_INIT_EXTRA_FRAME_INFO_P
1234 fprintf_unfiltered (file,
1235 "gdbarch_dump: %s # %s\n",
1236 "DEPRECATED_INIT_EXTRA_FRAME_INFO_P()",
1237 XSTRING (DEPRECATED_INIT_EXTRA_FRAME_INFO_P ()));
1238 fprintf_unfiltered (file,
1239 "gdbarch_dump: DEPRECATED_INIT_EXTRA_FRAME_INFO_P() = %d\n",
1240 DEPRECATED_INIT_EXTRA_FRAME_INFO_P ());
1241#endif
1242#ifdef DEPRECATED_INIT_EXTRA_FRAME_INFO
e9582e71
AC
1243 fprintf_unfiltered (file,
1244 "gdbarch_dump: %s # %s\n",
1245 "DEPRECATED_INIT_EXTRA_FRAME_INFO(fromleaf, frame)",
1246 XSTRING (DEPRECATED_INIT_EXTRA_FRAME_INFO (fromleaf, frame)));
7996bcec
AC
1247 fprintf_unfiltered (file,
1248 "gdbarch_dump: DEPRECATED_INIT_EXTRA_FRAME_INFO = <0x%08lx>\n",
1249 (long) current_gdbarch->deprecated_init_extra_frame_info
1250 /*DEPRECATED_INIT_EXTRA_FRAME_INFO ()*/);
e9582e71 1251#endif
a5afb99f
AC
1252#ifdef DEPRECATED_INIT_FRAME_PC_P
1253 fprintf_unfiltered (file,
1254 "gdbarch_dump: %s # %s\n",
1255 "DEPRECATED_INIT_FRAME_PC_P()",
1256 XSTRING (DEPRECATED_INIT_FRAME_PC_P ()));
1257 fprintf_unfiltered (file,
1258 "gdbarch_dump: DEPRECATED_INIT_FRAME_PC_P() = %d\n",
1259 DEPRECATED_INIT_FRAME_PC_P ());
1260#endif
1261#ifdef DEPRECATED_INIT_FRAME_PC
1262 fprintf_unfiltered (file,
1263 "gdbarch_dump: %s # %s\n",
1264 "DEPRECATED_INIT_FRAME_PC(fromleaf, prev)",
1265 XSTRING (DEPRECATED_INIT_FRAME_PC (fromleaf, prev)));
7996bcec
AC
1266 fprintf_unfiltered (file,
1267 "gdbarch_dump: DEPRECATED_INIT_FRAME_PC = <0x%08lx>\n",
1268 (long) current_gdbarch->deprecated_init_frame_pc
1269 /*DEPRECATED_INIT_FRAME_PC ()*/);
a5afb99f 1270#endif
2ca6c561
AC
1271#ifdef DEPRECATED_INIT_FRAME_PC_FIRST_P
1272 fprintf_unfiltered (file,
1273 "gdbarch_dump: %s # %s\n",
1274 "DEPRECATED_INIT_FRAME_PC_FIRST_P()",
1275 XSTRING (DEPRECATED_INIT_FRAME_PC_FIRST_P ()));
1276 fprintf_unfiltered (file,
1277 "gdbarch_dump: DEPRECATED_INIT_FRAME_PC_FIRST_P() = %d\n",
1278 DEPRECATED_INIT_FRAME_PC_FIRST_P ());
1279#endif
1280#ifdef DEPRECATED_INIT_FRAME_PC_FIRST
2ca6c561
AC
1281 fprintf_unfiltered (file,
1282 "gdbarch_dump: %s # %s\n",
1283 "DEPRECATED_INIT_FRAME_PC_FIRST(fromleaf, prev)",
1284 XSTRING (DEPRECATED_INIT_FRAME_PC_FIRST (fromleaf, prev)));
7996bcec
AC
1285 fprintf_unfiltered (file,
1286 "gdbarch_dump: DEPRECATED_INIT_FRAME_PC_FIRST = <0x%08lx>\n",
1287 (long) current_gdbarch->deprecated_init_frame_pc_first
1288 /*DEPRECATED_INIT_FRAME_PC_FIRST ()*/);
2ca6c561 1289#endif
a0ed5532
AC
1290#ifdef DEPRECATED_MAX_REGISTER_RAW_SIZE_P
1291 fprintf_unfiltered (file,
1292 "gdbarch_dump: %s # %s\n",
1293 "DEPRECATED_MAX_REGISTER_RAW_SIZE_P()",
1294 XSTRING (DEPRECATED_MAX_REGISTER_RAW_SIZE_P ()));
1295 fprintf_unfiltered (file,
1296 "gdbarch_dump: DEPRECATED_MAX_REGISTER_RAW_SIZE_P() = %d\n",
1297 DEPRECATED_MAX_REGISTER_RAW_SIZE_P ());
1298#endif
1299#ifdef DEPRECATED_MAX_REGISTER_RAW_SIZE
1300 fprintf_unfiltered (file,
1301 "gdbarch_dump: DEPRECATED_MAX_REGISTER_RAW_SIZE # %s\n",
1302 XSTRING (DEPRECATED_MAX_REGISTER_RAW_SIZE));
1303 fprintf_unfiltered (file,
1304 "gdbarch_dump: DEPRECATED_MAX_REGISTER_RAW_SIZE = %d\n",
1305 DEPRECATED_MAX_REGISTER_RAW_SIZE);
1306#endif
1307#ifdef DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE_P
1308 fprintf_unfiltered (file,
1309 "gdbarch_dump: %s # %s\n",
1310 "DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE_P()",
1311 XSTRING (DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE_P ()));
1312 fprintf_unfiltered (file,
1313 "gdbarch_dump: DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE_P() = %d\n",
1314 DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE_P ());
1315#endif
1316#ifdef DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE
1317 fprintf_unfiltered (file,
1318 "gdbarch_dump: DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE # %s\n",
1319 XSTRING (DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE));
1320 fprintf_unfiltered (file,
1321 "gdbarch_dump: DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE = %d\n",
1322 DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE);
1323#endif
1e9f55d0
AC
1324#ifdef DEPRECATED_PC_IN_CALL_DUMMY_P
1325 fprintf_unfiltered (file,
1326 "gdbarch_dump: %s # %s\n",
1327 "DEPRECATED_PC_IN_CALL_DUMMY_P()",
1328 XSTRING (DEPRECATED_PC_IN_CALL_DUMMY_P ()));
1329 fprintf_unfiltered (file,
1330 "gdbarch_dump: DEPRECATED_PC_IN_CALL_DUMMY_P() = %d\n",
1331 DEPRECATED_PC_IN_CALL_DUMMY_P ());
1332#endif
ae45cd16
AC
1333#ifdef DEPRECATED_PC_IN_CALL_DUMMY
1334 fprintf_unfiltered (file,
1335 "gdbarch_dump: %s # %s\n",
1336 "DEPRECATED_PC_IN_CALL_DUMMY(pc, sp, frame_address)",
1337 XSTRING (DEPRECATED_PC_IN_CALL_DUMMY (pc, sp, frame_address)));
7996bcec
AC
1338 fprintf_unfiltered (file,
1339 "gdbarch_dump: DEPRECATED_PC_IN_CALL_DUMMY = <0x%08lx>\n",
1340 (long) current_gdbarch->deprecated_pc_in_call_dummy
1341 /*DEPRECATED_PC_IN_CALL_DUMMY ()*/);
ae45cd16 1342#endif
749b82f6
AC
1343#ifdef DEPRECATED_POP_FRAME_P
1344 fprintf_unfiltered (file,
1345 "gdbarch_dump: %s # %s\n",
1346 "DEPRECATED_POP_FRAME_P()",
1347 XSTRING (DEPRECATED_POP_FRAME_P ()));
1348 fprintf_unfiltered (file,
1349 "gdbarch_dump: DEPRECATED_POP_FRAME_P() = %d\n",
1350 DEPRECATED_POP_FRAME_P ());
1351#endif
1352#ifdef DEPRECATED_POP_FRAME
749b82f6
AC
1353 fprintf_unfiltered (file,
1354 "gdbarch_dump: %s # %s\n",
1355 "DEPRECATED_POP_FRAME(-)",
1356 XSTRING (DEPRECATED_POP_FRAME (-)));
7996bcec
AC
1357 fprintf_unfiltered (file,
1358 "gdbarch_dump: DEPRECATED_POP_FRAME = <0x%08lx>\n",
1359 (long) current_gdbarch->deprecated_pop_frame
1360 /*DEPRECATED_POP_FRAME ()*/);
749b82f6 1361#endif
b81774d8
AC
1362#ifdef DEPRECATED_PUSH_ARGUMENTS_P
1363 fprintf_unfiltered (file,
1364 "gdbarch_dump: %s # %s\n",
1365 "DEPRECATED_PUSH_ARGUMENTS_P()",
1366 XSTRING (DEPRECATED_PUSH_ARGUMENTS_P ()));
1367 fprintf_unfiltered (file,
1368 "gdbarch_dump: DEPRECATED_PUSH_ARGUMENTS_P() = %d\n",
1369 DEPRECATED_PUSH_ARGUMENTS_P ());
1370#endif
1371#ifdef DEPRECATED_PUSH_ARGUMENTS
1372 fprintf_unfiltered (file,
1373 "gdbarch_dump: %s # %s\n",
1374 "DEPRECATED_PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr)",
1375 XSTRING (DEPRECATED_PUSH_ARGUMENTS (nargs, args, sp, struct_return, struct_addr)));
7996bcec
AC
1376 fprintf_unfiltered (file,
1377 "gdbarch_dump: DEPRECATED_PUSH_ARGUMENTS = <0x%08lx>\n",
1378 (long) current_gdbarch->deprecated_push_arguments
1379 /*DEPRECATED_PUSH_ARGUMENTS ()*/);
b81774d8 1380#endif
f3824013
AC
1381#ifdef DEPRECATED_PUSH_DUMMY_FRAME_P
1382 fprintf_unfiltered (file,
1383 "gdbarch_dump: %s # %s\n",
1384 "DEPRECATED_PUSH_DUMMY_FRAME_P()",
1385 XSTRING (DEPRECATED_PUSH_DUMMY_FRAME_P ()));
1386 fprintf_unfiltered (file,
1387 "gdbarch_dump: DEPRECATED_PUSH_DUMMY_FRAME_P() = %d\n",
1388 DEPRECATED_PUSH_DUMMY_FRAME_P ());
1389#endif
1390#ifdef DEPRECATED_PUSH_DUMMY_FRAME
f3824013
AC
1391 fprintf_unfiltered (file,
1392 "gdbarch_dump: %s # %s\n",
1393 "DEPRECATED_PUSH_DUMMY_FRAME(-)",
1394 XSTRING (DEPRECATED_PUSH_DUMMY_FRAME (-)));
7996bcec
AC
1395 fprintf_unfiltered (file,
1396 "gdbarch_dump: DEPRECATED_PUSH_DUMMY_FRAME = <0x%08lx>\n",
1397 (long) current_gdbarch->deprecated_push_dummy_frame
1398 /*DEPRECATED_PUSH_DUMMY_FRAME ()*/);
f3824013 1399#endif
28f617b3
AC
1400#ifdef DEPRECATED_PUSH_RETURN_ADDRESS_P
1401 fprintf_unfiltered (file,
1402 "gdbarch_dump: %s # %s\n",
1403 "DEPRECATED_PUSH_RETURN_ADDRESS_P()",
1404 XSTRING (DEPRECATED_PUSH_RETURN_ADDRESS_P ()));
1405 fprintf_unfiltered (file,
1406 "gdbarch_dump: DEPRECATED_PUSH_RETURN_ADDRESS_P() = %d\n",
1407 DEPRECATED_PUSH_RETURN_ADDRESS_P ());
1408#endif
1409#ifdef DEPRECATED_PUSH_RETURN_ADDRESS
1410 fprintf_unfiltered (file,
1411 "gdbarch_dump: %s # %s\n",
1412 "DEPRECATED_PUSH_RETURN_ADDRESS(pc, sp)",
1413 XSTRING (DEPRECATED_PUSH_RETURN_ADDRESS (pc, sp)));
7996bcec
AC
1414 fprintf_unfiltered (file,
1415 "gdbarch_dump: DEPRECATED_PUSH_RETURN_ADDRESS = <0x%08lx>\n",
1416 (long) current_gdbarch->deprecated_push_return_address
1417 /*DEPRECATED_PUSH_RETURN_ADDRESS ()*/);
28f617b3 1418#endif
62700349
AC
1419#ifdef DEPRECATED_REGISTER_BYTE_P
1420 fprintf_unfiltered (file,
1421 "gdbarch_dump: %s # %s\n",
1422 "DEPRECATED_REGISTER_BYTE_P()",
1423 XSTRING (DEPRECATED_REGISTER_BYTE_P ()));
1424 fprintf_unfiltered (file,
1425 "gdbarch_dump: DEPRECATED_REGISTER_BYTE_P() = %d\n",
1426 DEPRECATED_REGISTER_BYTE_P ());
1427#endif
1428#ifdef DEPRECATED_REGISTER_BYTE
1429 fprintf_unfiltered (file,
1430 "gdbarch_dump: %s # %s\n",
1431 "DEPRECATED_REGISTER_BYTE(reg_nr)",
1432 XSTRING (DEPRECATED_REGISTER_BYTE (reg_nr)));
1433 fprintf_unfiltered (file,
1434 "gdbarch_dump: DEPRECATED_REGISTER_BYTE = <0x%08lx>\n",
1435 (long) current_gdbarch->deprecated_register_byte
1436 /*DEPRECATED_REGISTER_BYTE ()*/);
1437#endif
b8b527c5
AC
1438#ifdef DEPRECATED_REGISTER_BYTES
1439 fprintf_unfiltered (file,
1440 "gdbarch_dump: DEPRECATED_REGISTER_BYTES # %s\n",
1441 XSTRING (DEPRECATED_REGISTER_BYTES));
1442 fprintf_unfiltered (file,
1443 "gdbarch_dump: DEPRECATED_REGISTER_BYTES = %d\n",
1444 DEPRECATED_REGISTER_BYTES);
1445#endif
cd0bfa36
AC
1446#ifdef DEPRECATED_REGISTER_CONVERTIBLE_P
1447 fprintf_unfiltered (file,
1448 "gdbarch_dump: %s # %s\n",
1449 "DEPRECATED_REGISTER_CONVERTIBLE_P()",
1450 XSTRING (DEPRECATED_REGISTER_CONVERTIBLE_P ()));
1451 fprintf_unfiltered (file,
1452 "gdbarch_dump: DEPRECATED_REGISTER_CONVERTIBLE_P() = %d\n",
1453 DEPRECATED_REGISTER_CONVERTIBLE_P ());
1454#endif
781a750d
AC
1455#ifdef DEPRECATED_REGISTER_CONVERTIBLE
1456 fprintf_unfiltered (file,
1457 "gdbarch_dump: %s # %s\n",
1458 "DEPRECATED_REGISTER_CONVERTIBLE(nr)",
1459 XSTRING (DEPRECATED_REGISTER_CONVERTIBLE (nr)));
7996bcec
AC
1460 fprintf_unfiltered (file,
1461 "gdbarch_dump: DEPRECATED_REGISTER_CONVERTIBLE = <0x%08lx>\n",
1462 (long) current_gdbarch->deprecated_register_convertible
1463 /*DEPRECATED_REGISTER_CONVERTIBLE ()*/);
781a750d
AC
1464#endif
1465#ifdef DEPRECATED_REGISTER_CONVERT_TO_RAW
781a750d
AC
1466 fprintf_unfiltered (file,
1467 "gdbarch_dump: %s # %s\n",
1468 "DEPRECATED_REGISTER_CONVERT_TO_RAW(type, regnum, from, to)",
1469 XSTRING (DEPRECATED_REGISTER_CONVERT_TO_RAW (type, regnum, from, to)));
7996bcec
AC
1470 fprintf_unfiltered (file,
1471 "gdbarch_dump: DEPRECATED_REGISTER_CONVERT_TO_RAW = <0x%08lx>\n",
1472 (long) current_gdbarch->deprecated_register_convert_to_raw
1473 /*DEPRECATED_REGISTER_CONVERT_TO_RAW ()*/);
781a750d
AC
1474#endif
1475#ifdef DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL
781a750d
AC
1476 fprintf_unfiltered (file,
1477 "gdbarch_dump: %s # %s\n",
1478 "DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL(regnum, type, from, to)",
1479 XSTRING (DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL (regnum, type, from, to)));
7996bcec
AC
1480 fprintf_unfiltered (file,
1481 "gdbarch_dump: DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL = <0x%08lx>\n",
1482 (long) current_gdbarch->deprecated_register_convert_to_virtual
1483 /*DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL ()*/);
781a750d 1484#endif
12c266ea
AC
1485#ifdef DEPRECATED_REGISTER_RAW_SIZE_P
1486 fprintf_unfiltered (file,
1487 "gdbarch_dump: %s # %s\n",
1488 "DEPRECATED_REGISTER_RAW_SIZE_P()",
1489 XSTRING (DEPRECATED_REGISTER_RAW_SIZE_P ()));
1490 fprintf_unfiltered (file,
1491 "gdbarch_dump: DEPRECATED_REGISTER_RAW_SIZE_P() = %d\n",
1492 DEPRECATED_REGISTER_RAW_SIZE_P ());
1493#endif
1494#ifdef DEPRECATED_REGISTER_RAW_SIZE
1495 fprintf_unfiltered (file,
1496 "gdbarch_dump: %s # %s\n",
1497 "DEPRECATED_REGISTER_RAW_SIZE(reg_nr)",
1498 XSTRING (DEPRECATED_REGISTER_RAW_SIZE (reg_nr)));
1499 fprintf_unfiltered (file,
1500 "gdbarch_dump: DEPRECATED_REGISTER_RAW_SIZE = <0x%08lx>\n",
1501 (long) current_gdbarch->deprecated_register_raw_size
1502 /*DEPRECATED_REGISTER_RAW_SIZE ()*/);
1503#endif
b1e29e33
AC
1504#ifdef DEPRECATED_REGISTER_SIZE
1505 fprintf_unfiltered (file,
1506 "gdbarch_dump: DEPRECATED_REGISTER_SIZE # %s\n",
1507 XSTRING (DEPRECATED_REGISTER_SIZE));
1508 fprintf_unfiltered (file,
1509 "gdbarch_dump: DEPRECATED_REGISTER_SIZE = %d\n",
1510 DEPRECATED_REGISTER_SIZE);
1511#endif
f30992d4
AC
1512#ifdef DEPRECATED_REGISTER_VIRTUAL_SIZE_P
1513 fprintf_unfiltered (file,
1514 "gdbarch_dump: %s # %s\n",
1515 "DEPRECATED_REGISTER_VIRTUAL_SIZE_P()",
1516 XSTRING (DEPRECATED_REGISTER_VIRTUAL_SIZE_P ()));
1517 fprintf_unfiltered (file,
1518 "gdbarch_dump: DEPRECATED_REGISTER_VIRTUAL_SIZE_P() = %d\n",
1519 DEPRECATED_REGISTER_VIRTUAL_SIZE_P ());
1520#endif
1521#ifdef DEPRECATED_REGISTER_VIRTUAL_SIZE
1522 fprintf_unfiltered (file,
1523 "gdbarch_dump: %s # %s\n",
1524 "DEPRECATED_REGISTER_VIRTUAL_SIZE(reg_nr)",
1525 XSTRING (DEPRECATED_REGISTER_VIRTUAL_SIZE (reg_nr)));
1526 fprintf_unfiltered (file,
1527 "gdbarch_dump: DEPRECATED_REGISTER_VIRTUAL_SIZE = <0x%08lx>\n",
1528 (long) current_gdbarch->deprecated_register_virtual_size
1529 /*DEPRECATED_REGISTER_VIRTUAL_SIZE ()*/);
1530#endif
2e092625
AC
1531#ifdef DEPRECATED_REGISTER_VIRTUAL_TYPE_P
1532 fprintf_unfiltered (file,
1533 "gdbarch_dump: %s # %s\n",
1534 "DEPRECATED_REGISTER_VIRTUAL_TYPE_P()",
1535 XSTRING (DEPRECATED_REGISTER_VIRTUAL_TYPE_P ()));
1536 fprintf_unfiltered (file,
1537 "gdbarch_dump: DEPRECATED_REGISTER_VIRTUAL_TYPE_P() = %d\n",
1538 DEPRECATED_REGISTER_VIRTUAL_TYPE_P ());
1539#endif
1540#ifdef DEPRECATED_REGISTER_VIRTUAL_TYPE
1541 fprintf_unfiltered (file,
1542 "gdbarch_dump: %s # %s\n",
1543 "DEPRECATED_REGISTER_VIRTUAL_TYPE(reg_nr)",
1544 XSTRING (DEPRECATED_REGISTER_VIRTUAL_TYPE (reg_nr)));
1545 fprintf_unfiltered (file,
1546 "gdbarch_dump: DEPRECATED_REGISTER_VIRTUAL_TYPE = <0x%08lx>\n",
1547 (long) current_gdbarch->deprecated_register_virtual_type
1548 /*DEPRECATED_REGISTER_VIRTUAL_TYPE ()*/);
1549#endif
88d89dbb
MK
1550#ifdef DEPRECATED_REG_STRUCT_HAS_ADDR_P
1551 fprintf_unfiltered (file,
1552 "gdbarch_dump: %s # %s\n",
1553 "DEPRECATED_REG_STRUCT_HAS_ADDR_P()",
1554 XSTRING (DEPRECATED_REG_STRUCT_HAS_ADDR_P ()));
1555 fprintf_unfiltered (file,
1556 "gdbarch_dump: DEPRECATED_REG_STRUCT_HAS_ADDR_P() = %d\n",
1557 DEPRECATED_REG_STRUCT_HAS_ADDR_P ());
1558#endif
1559#ifdef DEPRECATED_REG_STRUCT_HAS_ADDR
1560 fprintf_unfiltered (file,
1561 "gdbarch_dump: %s # %s\n",
1562 "DEPRECATED_REG_STRUCT_HAS_ADDR(gcc_p, type)",
1563 XSTRING (DEPRECATED_REG_STRUCT_HAS_ADDR (gcc_p, type)));
1564 fprintf_unfiltered (file,
1565 "gdbarch_dump: DEPRECATED_REG_STRUCT_HAS_ADDR = <0x%08lx>\n",
1566 (long) current_gdbarch->deprecated_reg_struct_has_addr
1567 /*DEPRECATED_REG_STRUCT_HAS_ADDR ()*/);
1568#endif
6913c89a
AC
1569#ifdef DEPRECATED_SAVED_PC_AFTER_CALL_P
1570 fprintf_unfiltered (file,
1571 "gdbarch_dump: %s # %s\n",
1572 "DEPRECATED_SAVED_PC_AFTER_CALL_P()",
1573 XSTRING (DEPRECATED_SAVED_PC_AFTER_CALL_P ()));
1574 fprintf_unfiltered (file,
1575 "gdbarch_dump: DEPRECATED_SAVED_PC_AFTER_CALL_P() = %d\n",
1576 DEPRECATED_SAVED_PC_AFTER_CALL_P ());
1577#endif
1578#ifdef DEPRECATED_SAVED_PC_AFTER_CALL
1579 fprintf_unfiltered (file,
1580 "gdbarch_dump: %s # %s\n",
1581 "DEPRECATED_SAVED_PC_AFTER_CALL(frame)",
1582 XSTRING (DEPRECATED_SAVED_PC_AFTER_CALL (frame)));
7996bcec
AC
1583 fprintf_unfiltered (file,
1584 "gdbarch_dump: DEPRECATED_SAVED_PC_AFTER_CALL = <0x%08lx>\n",
1585 (long) current_gdbarch->deprecated_saved_pc_after_call
1586 /*DEPRECATED_SAVED_PC_AFTER_CALL ()*/);
6913c89a 1587#endif
a59fe496
AC
1588#ifdef DEPRECATED_SAVE_DUMMY_FRAME_TOS_P
1589 fprintf_unfiltered (file,
1590 "gdbarch_dump: %s # %s\n",
1591 "DEPRECATED_SAVE_DUMMY_FRAME_TOS_P()",
1592 XSTRING (DEPRECATED_SAVE_DUMMY_FRAME_TOS_P ()));
1593 fprintf_unfiltered (file,
1594 "gdbarch_dump: DEPRECATED_SAVE_DUMMY_FRAME_TOS_P() = %d\n",
1595 DEPRECATED_SAVE_DUMMY_FRAME_TOS_P ());
1596#endif
1597#ifdef DEPRECATED_SAVE_DUMMY_FRAME_TOS
a59fe496
AC
1598 fprintf_unfiltered (file,
1599 "gdbarch_dump: %s # %s\n",
1600 "DEPRECATED_SAVE_DUMMY_FRAME_TOS(sp)",
1601 XSTRING (DEPRECATED_SAVE_DUMMY_FRAME_TOS (sp)));
7996bcec
AC
1602 fprintf_unfiltered (file,
1603 "gdbarch_dump: DEPRECATED_SAVE_DUMMY_FRAME_TOS = <0x%08lx>\n",
1604 (long) current_gdbarch->deprecated_save_dummy_frame_tos
1605 /*DEPRECATED_SAVE_DUMMY_FRAME_TOS ()*/);
a59fe496 1606#endif
b1e29e33
AC
1607#ifdef DEPRECATED_SIZEOF_CALL_DUMMY_WORDS
1608 fprintf_unfiltered (file,
1609 "gdbarch_dump: DEPRECATED_SIZEOF_CALL_DUMMY_WORDS # %s\n",
1610 XSTRING (DEPRECATED_SIZEOF_CALL_DUMMY_WORDS));
1611 fprintf_unfiltered (file,
1612 "gdbarch_dump: DEPRECATED_SIZEOF_CALL_DUMMY_WORDS = %d\n",
1613 DEPRECATED_SIZEOF_CALL_DUMMY_WORDS);
1614#endif
f27dd7fd
AC
1615#ifdef DEPRECATED_STACK_ALIGN_P
1616 fprintf_unfiltered (file,
1617 "gdbarch_dump: %s # %s\n",
1618 "DEPRECATED_STACK_ALIGN_P()",
1619 XSTRING (DEPRECATED_STACK_ALIGN_P ()));
1620 fprintf_unfiltered (file,
1621 "gdbarch_dump: DEPRECATED_STACK_ALIGN_P() = %d\n",
1622 DEPRECATED_STACK_ALIGN_P ());
1623#endif
1624#ifdef DEPRECATED_STACK_ALIGN
1625 fprintf_unfiltered (file,
1626 "gdbarch_dump: %s # %s\n",
1627 "DEPRECATED_STACK_ALIGN(sp)",
1628 XSTRING (DEPRECATED_STACK_ALIGN (sp)));
1629 fprintf_unfiltered (file,
1630 "gdbarch_dump: DEPRECATED_STACK_ALIGN = <0x%08lx>\n",
1631 (long) current_gdbarch->deprecated_stack_align
1632 /*DEPRECATED_STACK_ALIGN ()*/);
1633#endif
ebba8386 1634#ifdef DEPRECATED_STORE_RETURN_VALUE
ebba8386
AC
1635 fprintf_unfiltered (file,
1636 "gdbarch_dump: %s # %s\n",
1637 "DEPRECATED_STORE_RETURN_VALUE(type, valbuf)",
1638 XSTRING (DEPRECATED_STORE_RETURN_VALUE (type, valbuf)));
7996bcec
AC
1639 fprintf_unfiltered (file,
1640 "gdbarch_dump: DEPRECATED_STORE_RETURN_VALUE = <0x%08lx>\n",
1641 (long) current_gdbarch->deprecated_store_return_value
1642 /*DEPRECATED_STORE_RETURN_VALUE ()*/);
ebba8386 1643#endif
4183d812
AC
1644#ifdef DEPRECATED_STORE_STRUCT_RETURN_P
1645 fprintf_unfiltered (file,
1646 "gdbarch_dump: %s # %s\n",
1647 "DEPRECATED_STORE_STRUCT_RETURN_P()",
1648 XSTRING (DEPRECATED_STORE_STRUCT_RETURN_P ()));
1649 fprintf_unfiltered (file,
1650 "gdbarch_dump: DEPRECATED_STORE_STRUCT_RETURN_P() = %d\n",
1651 DEPRECATED_STORE_STRUCT_RETURN_P ());
1652#endif
1653#ifdef DEPRECATED_STORE_STRUCT_RETURN
4183d812
AC
1654 fprintf_unfiltered (file,
1655 "gdbarch_dump: %s # %s\n",
1656 "DEPRECATED_STORE_STRUCT_RETURN(addr, sp)",
1657 XSTRING (DEPRECATED_STORE_STRUCT_RETURN (addr, sp)));
7996bcec
AC
1658 fprintf_unfiltered (file,
1659 "gdbarch_dump: DEPRECATED_STORE_STRUCT_RETURN = <0x%08lx>\n",
1660 (long) current_gdbarch->deprecated_store_struct_return
1661 /*DEPRECATED_STORE_STRUCT_RETURN ()*/);
4183d812 1662#endif
0ba6dca9
AC
1663#ifdef DEPRECATED_TARGET_READ_FP_P
1664 fprintf_unfiltered (file,
1665 "gdbarch_dump: %s # %s\n",
1666 "DEPRECATED_TARGET_READ_FP_P()",
1667 XSTRING (DEPRECATED_TARGET_READ_FP_P ()));
1668 fprintf_unfiltered (file,
1669 "gdbarch_dump: DEPRECATED_TARGET_READ_FP_P() = %d\n",
1670 DEPRECATED_TARGET_READ_FP_P ());
1671#endif
1672#ifdef DEPRECATED_TARGET_READ_FP
1673 fprintf_unfiltered (file,
1674 "gdbarch_dump: %s # %s\n",
1675 "DEPRECATED_TARGET_READ_FP()",
1676 XSTRING (DEPRECATED_TARGET_READ_FP ()));
7996bcec
AC
1677 fprintf_unfiltered (file,
1678 "gdbarch_dump: DEPRECATED_TARGET_READ_FP = <0x%08lx>\n",
1679 (long) current_gdbarch->deprecated_target_read_fp
1680 /*DEPRECATED_TARGET_READ_FP ()*/);
0ba6dca9 1681#endif
07555a72
AC
1682#ifdef DEPRECATED_USE_GENERIC_DUMMY_FRAMES
1683 fprintf_unfiltered (file,
1684 "gdbarch_dump: DEPRECATED_USE_GENERIC_DUMMY_FRAMES # %s\n",
1685 XSTRING (DEPRECATED_USE_GENERIC_DUMMY_FRAMES));
1686 fprintf_unfiltered (file,
1687 "gdbarch_dump: DEPRECATED_USE_GENERIC_DUMMY_FRAMES = %d\n",
1688 DEPRECATED_USE_GENERIC_DUMMY_FRAMES);
1689#endif
08e45a40 1690#ifdef DWARF2_REG_TO_REGNUM
4b9b3959 1691 fprintf_unfiltered (file,
08e45a40
AC
1692 "gdbarch_dump: %s # %s\n",
1693 "DWARF2_REG_TO_REGNUM(dwarf2_regnr)",
1694 XSTRING (DWARF2_REG_TO_REGNUM (dwarf2_regnr)));
7996bcec
AC
1695 fprintf_unfiltered (file,
1696 "gdbarch_dump: DWARF2_REG_TO_REGNUM = <0x%08lx>\n",
1697 (long) current_gdbarch->dwarf2_reg_to_regnum
1698 /*DWARF2_REG_TO_REGNUM ()*/);
4b9b3959 1699#endif
08e45a40 1700#ifdef DWARF_REG_TO_REGNUM
88c72b7d
AC
1701 fprintf_unfiltered (file,
1702 "gdbarch_dump: %s # %s\n",
08e45a40
AC
1703 "DWARF_REG_TO_REGNUM(dwarf_regnr)",
1704 XSTRING (DWARF_REG_TO_REGNUM (dwarf_regnr)));
7996bcec
AC
1705 fprintf_unfiltered (file,
1706 "gdbarch_dump: DWARF_REG_TO_REGNUM = <0x%08lx>\n",
1707 (long) current_gdbarch->dwarf_reg_to_regnum
1708 /*DWARF_REG_TO_REGNUM ()*/);
88c72b7d
AC
1709#endif
1710#ifdef ECOFF_REG_TO_REGNUM
1711 fprintf_unfiltered (file,
1712 "gdbarch_dump: %s # %s\n",
1713 "ECOFF_REG_TO_REGNUM(ecoff_regnr)",
1714 XSTRING (ECOFF_REG_TO_REGNUM (ecoff_regnr)));
7996bcec
AC
1715 fprintf_unfiltered (file,
1716 "gdbarch_dump: ECOFF_REG_TO_REGNUM = <0x%08lx>\n",
1717 (long) current_gdbarch->ecoff_reg_to_regnum
1718 /*ECOFF_REG_TO_REGNUM ()*/);
88c72b7d 1719#endif
a2cf933a 1720#ifdef ELF_MAKE_MSYMBOL_SPECIAL
a2cf933a
EZ
1721 fprintf_unfiltered (file,
1722 "gdbarch_dump: %s # %s\n",
1723 "ELF_MAKE_MSYMBOL_SPECIAL(sym, msym)",
1724 XSTRING (ELF_MAKE_MSYMBOL_SPECIAL (sym, msym)));
7996bcec
AC
1725 fprintf_unfiltered (file,
1726 "gdbarch_dump: ELF_MAKE_MSYMBOL_SPECIAL = <0x%08lx>\n",
1727 (long) current_gdbarch->elf_make_msymbol_special
1728 /*ELF_MAKE_MSYMBOL_SPECIAL ()*/);
a2cf933a 1729#endif
049ee0e4 1730#ifdef EXTRACT_RETURN_VALUE
049ee0e4
AC
1731 fprintf_unfiltered (file,
1732 "gdbarch_dump: %s # %s\n",
1733 "EXTRACT_RETURN_VALUE(type, regcache, valbuf)",
1734 XSTRING (EXTRACT_RETURN_VALUE (type, regcache, valbuf)));
7996bcec
AC
1735 fprintf_unfiltered (file,
1736 "gdbarch_dump: EXTRACT_RETURN_VALUE = <0x%08lx>\n",
1737 (long) current_gdbarch->extract_return_value
1738 /*EXTRACT_RETURN_VALUE ()*/);
049ee0e4 1739#endif
143985b7
AF
1740#ifdef FETCH_POINTER_ARGUMENT_P
1741 fprintf_unfiltered (file,
1742 "gdbarch_dump: %s # %s\n",
1743 "FETCH_POINTER_ARGUMENT_P()",
1744 XSTRING (FETCH_POINTER_ARGUMENT_P ()));
1745 fprintf_unfiltered (file,
1746 "gdbarch_dump: FETCH_POINTER_ARGUMENT_P() = %d\n",
1747 FETCH_POINTER_ARGUMENT_P ());
1748#endif
1749#ifdef FETCH_POINTER_ARGUMENT
1750 fprintf_unfiltered (file,
1751 "gdbarch_dump: %s # %s\n",
1752 "FETCH_POINTER_ARGUMENT(frame, argi, type)",
1753 XSTRING (FETCH_POINTER_ARGUMENT (frame, argi, type)));
7996bcec
AC
1754 fprintf_unfiltered (file,
1755 "gdbarch_dump: FETCH_POINTER_ARGUMENT = <0x%08lx>\n",
1756 (long) current_gdbarch->fetch_pointer_argument
1757 /*FETCH_POINTER_ARGUMENT ()*/);
143985b7 1758#endif
08e45a40 1759#ifdef FP0_REGNUM
4b9b3959 1760 fprintf_unfiltered (file,
08e45a40
AC
1761 "gdbarch_dump: FP0_REGNUM # %s\n",
1762 XSTRING (FP0_REGNUM));
1763 fprintf_unfiltered (file,
06b25f14
AC
1764 "gdbarch_dump: FP0_REGNUM = %d\n",
1765 FP0_REGNUM);
4b9b3959 1766#endif
08e45a40 1767#ifdef FRAME_ARGS_SKIP
4b9b3959 1768 fprintf_unfiltered (file,
08e45a40
AC
1769 "gdbarch_dump: FRAME_ARGS_SKIP # %s\n",
1770 XSTRING (FRAME_ARGS_SKIP));
4b9b3959 1771 fprintf_unfiltered (file,
08e45a40
AC
1772 "gdbarch_dump: FRAME_ARGS_SKIP = %ld\n",
1773 (long) FRAME_ARGS_SKIP);
4b9b3959 1774#endif
983a287a
AC
1775#ifdef FRAME_NUM_ARGS_P
1776 fprintf_unfiltered (file,
1777 "gdbarch_dump: %s # %s\n",
1778 "FRAME_NUM_ARGS_P()",
1779 XSTRING (FRAME_NUM_ARGS_P ()));
1780 fprintf_unfiltered (file,
1781 "gdbarch_dump: FRAME_NUM_ARGS_P() = %d\n",
1782 FRAME_NUM_ARGS_P ());
1783#endif
08e45a40 1784#ifdef FRAME_NUM_ARGS
01fb7433
AC
1785 fprintf_unfiltered (file,
1786 "gdbarch_dump: %s # %s\n",
08e45a40
AC
1787 "FRAME_NUM_ARGS(frame)",
1788 XSTRING (FRAME_NUM_ARGS (frame)));
7996bcec
AC
1789 fprintf_unfiltered (file,
1790 "gdbarch_dump: FRAME_NUM_ARGS = <0x%08lx>\n",
1791 (long) current_gdbarch->frame_num_args
1792 /*FRAME_NUM_ARGS ()*/);
01fb7433 1793#endif
8b148df9
AC
1794#ifdef FRAME_RED_ZONE_SIZE
1795 fprintf_unfiltered (file,
1796 "gdbarch_dump: FRAME_RED_ZONE_SIZE # %s\n",
1797 XSTRING (FRAME_RED_ZONE_SIZE));
1798 fprintf_unfiltered (file,
1799 "gdbarch_dump: FRAME_RED_ZONE_SIZE = %d\n",
1800 FRAME_RED_ZONE_SIZE);
1801#endif
08e45a40 1802#ifdef FUNCTION_START_OFFSET
4b9b3959 1803 fprintf_unfiltered (file,
08e45a40
AC
1804 "gdbarch_dump: FUNCTION_START_OFFSET # %s\n",
1805 XSTRING (FUNCTION_START_OFFSET));
4b9b3959 1806 fprintf_unfiltered (file,
08e45a40
AC
1807 "gdbarch_dump: FUNCTION_START_OFFSET = %ld\n",
1808 (long) FUNCTION_START_OFFSET);
4b9b3959 1809#endif
1e9f55d0
AC
1810#ifdef GET_LONGJMP_TARGET_P
1811 fprintf_unfiltered (file,
1812 "gdbarch_dump: %s # %s\n",
1813 "GET_LONGJMP_TARGET_P()",
1814 XSTRING (GET_LONGJMP_TARGET_P ()));
1815 fprintf_unfiltered (file,
1816 "gdbarch_dump: GET_LONGJMP_TARGET_P() = %d\n",
1817 GET_LONGJMP_TARGET_P ());
1818#endif
9df628e0
RE
1819#ifdef GET_LONGJMP_TARGET
1820 fprintf_unfiltered (file,
1821 "gdbarch_dump: %s # %s\n",
1822 "GET_LONGJMP_TARGET(pc)",
1823 XSTRING (GET_LONGJMP_TARGET (pc)));
7996bcec
AC
1824 fprintf_unfiltered (file,
1825 "gdbarch_dump: GET_LONGJMP_TARGET = <0x%08lx>\n",
1826 (long) current_gdbarch->get_longjmp_target
1827 /*GET_LONGJMP_TARGET ()*/);
9df628e0 1828#endif
967c0d83 1829#ifdef HAVE_NONSTEPPABLE_WATCHPOINT
f74fa174 1830 fprintf_unfiltered (file,
967c0d83
MM
1831 "gdbarch_dump: HAVE_NONSTEPPABLE_WATCHPOINT # %s\n",
1832 XSTRING (HAVE_NONSTEPPABLE_WATCHPOINT));
f74fa174 1833 fprintf_unfiltered (file,
967c0d83
MM
1834 "gdbarch_dump: HAVE_NONSTEPPABLE_WATCHPOINT = %d\n",
1835 HAVE_NONSTEPPABLE_WATCHPOINT);
f74fa174 1836#endif
08e45a40 1837#ifdef INNER_THAN
10312cc4
AC
1838 fprintf_unfiltered (file,
1839 "gdbarch_dump: %s # %s\n",
08e45a40
AC
1840 "INNER_THAN(lhs, rhs)",
1841 XSTRING (INNER_THAN (lhs, rhs)));
7996bcec
AC
1842 fprintf_unfiltered (file,
1843 "gdbarch_dump: INNER_THAN = <0x%08lx>\n",
1844 (long) current_gdbarch->inner_than
1845 /*INNER_THAN ()*/);
10312cc4 1846#endif
1e9f55d0
AC
1847#ifdef INTEGER_TO_ADDRESS_P
1848 fprintf_unfiltered (file,
1849 "gdbarch_dump: %s # %s\n",
1850 "INTEGER_TO_ADDRESS_P()",
1851 XSTRING (INTEGER_TO_ADDRESS_P ()));
1852 fprintf_unfiltered (file,
1853 "gdbarch_dump: INTEGER_TO_ADDRESS_P() = %d\n",
1854 INTEGER_TO_ADDRESS_P ());
1855#endif
fc0c74b1
AC
1856#ifdef INTEGER_TO_ADDRESS
1857 fprintf_unfiltered (file,
1858 "gdbarch_dump: %s # %s\n",
1859 "INTEGER_TO_ADDRESS(type, buf)",
1860 XSTRING (INTEGER_TO_ADDRESS (type, buf)));
7996bcec
AC
1861 fprintf_unfiltered (file,
1862 "gdbarch_dump: INTEGER_TO_ADDRESS = <0x%08lx>\n",
1863 (long) current_gdbarch->integer_to_address
1864 /*INTEGER_TO_ADDRESS ()*/);
fc0c74b1 1865#endif
5e74b15c
RE
1866#ifdef IN_SOLIB_CALL_TRAMPOLINE
1867 fprintf_unfiltered (file,
1868 "gdbarch_dump: %s # %s\n",
1869 "IN_SOLIB_CALL_TRAMPOLINE(pc, name)",
1870 XSTRING (IN_SOLIB_CALL_TRAMPOLINE (pc, name)));
7996bcec
AC
1871 fprintf_unfiltered (file,
1872 "gdbarch_dump: IN_SOLIB_CALL_TRAMPOLINE = <0x%08lx>\n",
1873 (long) current_gdbarch->in_solib_call_trampoline
1874 /*IN_SOLIB_CALL_TRAMPOLINE ()*/);
5e74b15c 1875#endif
d50355b6
MS
1876#ifdef IN_SOLIB_RETURN_TRAMPOLINE
1877 fprintf_unfiltered (file,
1878 "gdbarch_dump: %s # %s\n",
1879 "IN_SOLIB_RETURN_TRAMPOLINE(pc, name)",
1880 XSTRING (IN_SOLIB_RETURN_TRAMPOLINE (pc, name)));
7996bcec
AC
1881 fprintf_unfiltered (file,
1882 "gdbarch_dump: IN_SOLIB_RETURN_TRAMPOLINE = <0x%08lx>\n",
1883 (long) current_gdbarch->in_solib_return_trampoline
1884 /*IN_SOLIB_RETURN_TRAMPOLINE ()*/);
d50355b6 1885#endif
08e45a40 1886#ifdef MEMORY_INSERT_BREAKPOINT
4b9b3959
AC
1887 fprintf_unfiltered (file,
1888 "gdbarch_dump: %s # %s\n",
08e45a40
AC
1889 "MEMORY_INSERT_BREAKPOINT(addr, contents_cache)",
1890 XSTRING (MEMORY_INSERT_BREAKPOINT (addr, contents_cache)));
7996bcec
AC
1891 fprintf_unfiltered (file,
1892 "gdbarch_dump: MEMORY_INSERT_BREAKPOINT = <0x%08lx>\n",
1893 (long) current_gdbarch->memory_insert_breakpoint
1894 /*MEMORY_INSERT_BREAKPOINT ()*/);
4b9b3959 1895#endif
08e45a40 1896#ifdef MEMORY_REMOVE_BREAKPOINT
4b9b3959
AC
1897 fprintf_unfiltered (file,
1898 "gdbarch_dump: %s # %s\n",
08e45a40
AC
1899 "MEMORY_REMOVE_BREAKPOINT(addr, contents_cache)",
1900 XSTRING (MEMORY_REMOVE_BREAKPOINT (addr, contents_cache)));
7996bcec
AC
1901 fprintf_unfiltered (file,
1902 "gdbarch_dump: MEMORY_REMOVE_BREAKPOINT = <0x%08lx>\n",
1903 (long) current_gdbarch->memory_remove_breakpoint
1904 /*MEMORY_REMOVE_BREAKPOINT ()*/);
4b9b3959 1905#endif
5720643c
JB
1906#ifdef NAME_OF_MALLOC
1907 fprintf_unfiltered (file,
1908 "gdbarch_dump: NAME_OF_MALLOC # %s\n",
1909 XSTRING (NAME_OF_MALLOC));
1910 fprintf_unfiltered (file,
31deffe5
AC
1911 "gdbarch_dump: NAME_OF_MALLOC = %s\n",
1912 NAME_OF_MALLOC);
5720643c 1913#endif
08e45a40 1914#ifdef NUM_PSEUDO_REGS
4b9b3959 1915 fprintf_unfiltered (file,
08e45a40
AC
1916 "gdbarch_dump: NUM_PSEUDO_REGS # %s\n",
1917 XSTRING (NUM_PSEUDO_REGS));
1918 fprintf_unfiltered (file,
06b25f14
AC
1919 "gdbarch_dump: NUM_PSEUDO_REGS = %d\n",
1920 NUM_PSEUDO_REGS);
4b9b3959 1921#endif
08e45a40 1922#ifdef NUM_REGS
7f1b2585 1923 fprintf_unfiltered (file,
08e45a40
AC
1924 "gdbarch_dump: NUM_REGS # %s\n",
1925 XSTRING (NUM_REGS));
1926 fprintf_unfiltered (file,
06b25f14
AC
1927 "gdbarch_dump: NUM_REGS = %d\n",
1928 NUM_REGS);
7f1b2585 1929#endif
08e45a40
AC
1930#ifdef PARM_BOUNDARY
1931 fprintf_unfiltered (file,
1932 "gdbarch_dump: PARM_BOUNDARY # %s\n",
1933 XSTRING (PARM_BOUNDARY));
1934 fprintf_unfiltered (file,
06b25f14
AC
1935 "gdbarch_dump: PARM_BOUNDARY = %d\n",
1936 PARM_BOUNDARY);
08e45a40 1937#endif
d7bd68ca
AC
1938#ifdef PC_IN_SIGTRAMP
1939 fprintf_unfiltered (file,
1940 "gdbarch_dump: %s # %s\n",
1941 "PC_IN_SIGTRAMP(pc, name)",
1942 XSTRING (PC_IN_SIGTRAMP (pc, name)));
7996bcec
AC
1943 fprintf_unfiltered (file,
1944 "gdbarch_dump: PC_IN_SIGTRAMP = <0x%08lx>\n",
1945 (long) current_gdbarch->pc_in_sigtramp
1946 /*PC_IN_SIGTRAMP ()*/);
d7bd68ca 1947#endif
08e45a40
AC
1948#ifdef PC_REGNUM
1949 fprintf_unfiltered (file,
1950 "gdbarch_dump: PC_REGNUM # %s\n",
1951 XSTRING (PC_REGNUM));
1952 fprintf_unfiltered (file,
06b25f14
AC
1953 "gdbarch_dump: PC_REGNUM = %d\n",
1954 PC_REGNUM);
7f1b2585 1955#endif
4b9b3959
AC
1956#ifdef POINTER_TO_ADDRESS
1957 fprintf_unfiltered (file,
1958 "gdbarch_dump: %s # %s\n",
1959 "POINTER_TO_ADDRESS(type, buf)",
1960 XSTRING (POINTER_TO_ADDRESS (type, buf)));
7996bcec
AC
1961 fprintf_unfiltered (file,
1962 "gdbarch_dump: POINTER_TO_ADDRESS = <0x%08lx>\n",
1963 (long) current_gdbarch->pointer_to_address
1964 /*POINTER_TO_ADDRESS ()*/);
5e74b15c 1965#endif
7996bcec
AC
1966 fprintf_unfiltered (file,
1967 "gdbarch_dump: gdbarch_print_float_info_p() = %d\n",
1968 gdbarch_print_float_info_p (current_gdbarch));
1969 fprintf_unfiltered (file,
1970 "gdbarch_dump: print_float_info = 0x%08lx\n",
1971 (long) current_gdbarch->print_float_info);
1972 fprintf_unfiltered (file,
1973 "gdbarch_dump: print_registers_info = 0x%08lx\n",
1974 (long) current_gdbarch->print_registers_info);
1975 fprintf_unfiltered (file,
1976 "gdbarch_dump: gdbarch_print_vector_info_p() = %d\n",
1977 gdbarch_print_vector_info_p (current_gdbarch));
1978 fprintf_unfiltered (file,
1979 "gdbarch_dump: print_vector_info = 0x%08lx\n",
1980 (long) current_gdbarch->print_vector_info);
c2169756
AC
1981#ifdef PS_REGNUM
1982 fprintf_unfiltered (file,
1983 "gdbarch_dump: PS_REGNUM # %s\n",
1984 XSTRING (PS_REGNUM));
1985 fprintf_unfiltered (file,
1986 "gdbarch_dump: PS_REGNUM = %d\n",
1987 PS_REGNUM);
1988#endif
7996bcec
AC
1989 fprintf_unfiltered (file,
1990 "gdbarch_dump: gdbarch_push_dummy_call_p() = %d\n",
1991 gdbarch_push_dummy_call_p (current_gdbarch));
1992 fprintf_unfiltered (file,
1993 "gdbarch_dump: push_dummy_call = 0x%08lx\n",
1994 (long) current_gdbarch->push_dummy_call);
1995 fprintf_unfiltered (file,
1996 "gdbarch_dump: gdbarch_push_dummy_code_p() = %d\n",
1997 gdbarch_push_dummy_code_p (current_gdbarch));
1998 fprintf_unfiltered (file,
1999 "gdbarch_dump: push_dummy_code = 0x%08lx\n",
2000 (long) current_gdbarch->push_dummy_code);
1e9f55d0
AC
2001#ifdef REGISTER_BYTES_OK_P
2002 fprintf_unfiltered (file,
2003 "gdbarch_dump: %s # %s\n",
2004 "REGISTER_BYTES_OK_P()",
2005 XSTRING (REGISTER_BYTES_OK_P ()));
2006 fprintf_unfiltered (file,
2007 "gdbarch_dump: REGISTER_BYTES_OK_P() = %d\n",
2008 REGISTER_BYTES_OK_P ());
2009#endif
08e45a40 2010#ifdef REGISTER_BYTES_OK
4b9b3959
AC
2011 fprintf_unfiltered (file,
2012 "gdbarch_dump: %s # %s\n",
08e45a40
AC
2013 "REGISTER_BYTES_OK(nr_bytes)",
2014 XSTRING (REGISTER_BYTES_OK (nr_bytes)));
7996bcec
AC
2015 fprintf_unfiltered (file,
2016 "gdbarch_dump: REGISTER_BYTES_OK = <0x%08lx>\n",
2017 (long) current_gdbarch->register_bytes_ok
2018 /*REGISTER_BYTES_OK ()*/);
4b9b3959 2019#endif
08e45a40 2020#ifdef REGISTER_NAME
4b9b3959
AC
2021 fprintf_unfiltered (file,
2022 "gdbarch_dump: %s # %s\n",
08e45a40
AC
2023 "REGISTER_NAME(regnr)",
2024 XSTRING (REGISTER_NAME (regnr)));
7996bcec
AC
2025 fprintf_unfiltered (file,
2026 "gdbarch_dump: REGISTER_NAME = <0x%08lx>\n",
2027 (long) current_gdbarch->register_name
2028 /*REGISTER_NAME ()*/);
4b9b3959 2029#endif
08e45a40 2030#ifdef REGISTER_SIM_REGNO
4b9b3959
AC
2031 fprintf_unfiltered (file,
2032 "gdbarch_dump: %s # %s\n",
08e45a40
AC
2033 "REGISTER_SIM_REGNO(reg_nr)",
2034 XSTRING (REGISTER_SIM_REGNO (reg_nr)));
7996bcec
AC
2035 fprintf_unfiltered (file,
2036 "gdbarch_dump: REGISTER_SIM_REGNO = <0x%08lx>\n",
2037 (long) current_gdbarch->register_sim_regno
2038 /*REGISTER_SIM_REGNO ()*/);
4b9b3959 2039#endif
13d01224 2040#ifdef REGISTER_TO_VALUE
13d01224
AC
2041 fprintf_unfiltered (file,
2042 "gdbarch_dump: %s # %s\n",
ff2e87ac
AC
2043 "REGISTER_TO_VALUE(frame, regnum, type, buf)",
2044 XSTRING (REGISTER_TO_VALUE (frame, regnum, type, buf)));
7996bcec
AC
2045 fprintf_unfiltered (file,
2046 "gdbarch_dump: REGISTER_TO_VALUE = <0x%08lx>\n",
2047 (long) current_gdbarch->register_to_value
2048 /*REGISTER_TO_VALUE ()*/);
13d01224 2049#endif
7996bcec
AC
2050 fprintf_unfiltered (file,
2051 "gdbarch_dump: gdbarch_register_type_p() = %d\n",
2052 gdbarch_register_type_p (current_gdbarch));
2053 fprintf_unfiltered (file,
2054 "gdbarch_dump: register_type = 0x%08lx\n",
2055 (long) current_gdbarch->register_type);
7996bcec
AC
2056 fprintf_unfiltered (file,
2057 "gdbarch_dump: remote_translate_xfer_address = 0x%08lx\n",
2058 (long) current_gdbarch->remote_translate_xfer_address);
08e45a40 2059#ifdef RETURN_VALUE_ON_STACK
4b9b3959
AC
2060 fprintf_unfiltered (file,
2061 "gdbarch_dump: %s # %s\n",
08e45a40
AC
2062 "RETURN_VALUE_ON_STACK(type)",
2063 XSTRING (RETURN_VALUE_ON_STACK (type)));
7996bcec
AC
2064 fprintf_unfiltered (file,
2065 "gdbarch_dump: RETURN_VALUE_ON_STACK = <0x%08lx>\n",
2066 (long) current_gdbarch->return_value_on_stack
2067 /*RETURN_VALUE_ON_STACK ()*/);
4b9b3959 2068#endif
08e45a40 2069#ifdef SDB_REG_TO_REGNUM
4b9b3959
AC
2070 fprintf_unfiltered (file,
2071 "gdbarch_dump: %s # %s\n",
08e45a40
AC
2072 "SDB_REG_TO_REGNUM(sdb_regnr)",
2073 XSTRING (SDB_REG_TO_REGNUM (sdb_regnr)));
7996bcec
AC
2074 fprintf_unfiltered (file,
2075 "gdbarch_dump: SDB_REG_TO_REGNUM = <0x%08lx>\n",
2076 (long) current_gdbarch->sdb_reg_to_regnum
2077 /*SDB_REG_TO_REGNUM ()*/);
4b9b3959 2078#endif
1e9f55d0
AC
2079#ifdef SIGTRAMP_END_P
2080 fprintf_unfiltered (file,
2081 "gdbarch_dump: %s # %s\n",
2082 "SIGTRAMP_END_P()",
2083 XSTRING (SIGTRAMP_END_P ()));
2084 fprintf_unfiltered (file,
2085 "gdbarch_dump: SIGTRAMP_END_P() = %d\n",
2086 SIGTRAMP_END_P ());
2087#endif
43156d82
MK
2088#ifdef SIGTRAMP_END
2089 fprintf_unfiltered (file,
2090 "gdbarch_dump: %s # %s\n",
2091 "SIGTRAMP_END(pc)",
2092 XSTRING (SIGTRAMP_END (pc)));
7996bcec
AC
2093 fprintf_unfiltered (file,
2094 "gdbarch_dump: SIGTRAMP_END = <0x%08lx>\n",
2095 (long) current_gdbarch->sigtramp_end
2096 /*SIGTRAMP_END ()*/);
43156d82 2097#endif
1e9f55d0
AC
2098#ifdef SIGTRAMP_START_P
2099 fprintf_unfiltered (file,
2100 "gdbarch_dump: %s # %s\n",
2101 "SIGTRAMP_START_P()",
2102 XSTRING (SIGTRAMP_START_P ()));
2103 fprintf_unfiltered (file,
2104 "gdbarch_dump: SIGTRAMP_START_P() = %d\n",
2105 SIGTRAMP_START_P ());
2106#endif
43156d82
MK
2107#ifdef SIGTRAMP_START
2108 fprintf_unfiltered (file,
2109 "gdbarch_dump: %s # %s\n",
2110 "SIGTRAMP_START(pc)",
2111 XSTRING (SIGTRAMP_START (pc)));
7996bcec
AC
2112 fprintf_unfiltered (file,
2113 "gdbarch_dump: SIGTRAMP_START = <0x%08lx>\n",
2114 (long) current_gdbarch->sigtramp_start
2115 /*SIGTRAMP_START ()*/);
43156d82 2116#endif
08e45a40 2117#ifdef SKIP_PROLOGUE
4b9b3959
AC
2118 fprintf_unfiltered (file,
2119 "gdbarch_dump: %s # %s\n",
08e45a40
AC
2120 "SKIP_PROLOGUE(ip)",
2121 XSTRING (SKIP_PROLOGUE (ip)));
7996bcec
AC
2122 fprintf_unfiltered (file,
2123 "gdbarch_dump: SKIP_PROLOGUE = <0x%08lx>\n",
2124 (long) current_gdbarch->skip_prologue
2125 /*SKIP_PROLOGUE ()*/);
4b9b3959 2126#endif
dea0c52f 2127 fprintf_unfiltered (file,
4c8c40e6
MK
2128 "gdbarch_dump: skip_solib_resolver = 0x%08lx\n",
2129 (long) current_gdbarch->skip_solib_resolver);
08e45a40 2130#ifdef SKIP_TRAMPOLINE_CODE
4b9b3959
AC
2131 fprintf_unfiltered (file,
2132 "gdbarch_dump: %s # %s\n",
08e45a40
AC
2133 "SKIP_TRAMPOLINE_CODE(pc)",
2134 XSTRING (SKIP_TRAMPOLINE_CODE (pc)));
7996bcec
AC
2135 fprintf_unfiltered (file,
2136 "gdbarch_dump: SKIP_TRAMPOLINE_CODE = <0x%08lx>\n",
2137 (long) current_gdbarch->skip_trampoline_code
2138 /*SKIP_TRAMPOLINE_CODE ()*/);
4b9b3959 2139#endif
181c1381
RE
2140#ifdef SMASH_TEXT_ADDRESS
2141 fprintf_unfiltered (file,
2142 "gdbarch_dump: %s # %s\n",
2143 "SMASH_TEXT_ADDRESS(addr)",
2144 XSTRING (SMASH_TEXT_ADDRESS (addr)));
7996bcec
AC
2145 fprintf_unfiltered (file,
2146 "gdbarch_dump: SMASH_TEXT_ADDRESS = <0x%08lx>\n",
2147 (long) current_gdbarch->smash_text_address
2148 /*SMASH_TEXT_ADDRESS ()*/);
181c1381 2149#endif
1e9f55d0
AC
2150#ifdef SOFTWARE_SINGLE_STEP_P
2151 fprintf_unfiltered (file,
2152 "gdbarch_dump: %s # %s\n",
2153 "SOFTWARE_SINGLE_STEP_P()",
2154 XSTRING (SOFTWARE_SINGLE_STEP_P ()));
2155 fprintf_unfiltered (file,
2156 "gdbarch_dump: SOFTWARE_SINGLE_STEP_P() = %d\n",
2157 SOFTWARE_SINGLE_STEP_P ());
2158#endif
08e45a40 2159#ifdef SOFTWARE_SINGLE_STEP
4b9b3959
AC
2160 fprintf_unfiltered (file,
2161 "gdbarch_dump: %s # %s\n",
08e45a40
AC
2162 "SOFTWARE_SINGLE_STEP(sig, insert_breakpoints_p)",
2163 XSTRING (SOFTWARE_SINGLE_STEP (sig, insert_breakpoints_p)));
7996bcec
AC
2164 fprintf_unfiltered (file,
2165 "gdbarch_dump: SOFTWARE_SINGLE_STEP = <0x%08lx>\n",
2166 (long) current_gdbarch->software_single_step
2167 /*SOFTWARE_SINGLE_STEP ()*/);
08e45a40
AC
2168#endif
2169#ifdef SP_REGNUM
1dd4193b 2170 fprintf_unfiltered (file,
08e45a40
AC
2171 "gdbarch_dump: SP_REGNUM # %s\n",
2172 XSTRING (SP_REGNUM));
2173 fprintf_unfiltered (file,
06b25f14
AC
2174 "gdbarch_dump: SP_REGNUM = %d\n",
2175 SP_REGNUM);
1dd4193b 2176#endif
08e45a40 2177#ifdef STAB_REG_TO_REGNUM
4b9b3959
AC
2178 fprintf_unfiltered (file,
2179 "gdbarch_dump: %s # %s\n",
08e45a40
AC
2180 "STAB_REG_TO_REGNUM(stab_regnr)",
2181 XSTRING (STAB_REG_TO_REGNUM (stab_regnr)));
7996bcec
AC
2182 fprintf_unfiltered (file,
2183 "gdbarch_dump: STAB_REG_TO_REGNUM = <0x%08lx>\n",
2184 (long) current_gdbarch->stab_reg_to_regnum
2185 /*STAB_REG_TO_REGNUM ()*/);
4b9b3959 2186#endif
08e45a40 2187#ifdef STORE_RETURN_VALUE
f517ea4e
PS
2188 fprintf_unfiltered (file,
2189 "gdbarch_dump: %s # %s\n",
ebba8386
AC
2190 "STORE_RETURN_VALUE(type, regcache, valbuf)",
2191 XSTRING (STORE_RETURN_VALUE (type, regcache, valbuf)));
7996bcec
AC
2192 fprintf_unfiltered (file,
2193 "gdbarch_dump: STORE_RETURN_VALUE = <0x%08lx>\n",
2194 (long) current_gdbarch->store_return_value
2195 /*STORE_RETURN_VALUE ()*/);
875e1767 2196#endif
08e45a40 2197#ifdef TARGET_ADDR_BIT
bdcd319a 2198 fprintf_unfiltered (file,
08e45a40
AC
2199 "gdbarch_dump: TARGET_ADDR_BIT # %s\n",
2200 XSTRING (TARGET_ADDR_BIT));
2201 fprintf_unfiltered (file,
06b25f14
AC
2202 "gdbarch_dump: TARGET_ADDR_BIT = %d\n",
2203 TARGET_ADDR_BIT);
bdcd319a 2204#endif
381323f4 2205#ifdef TARGET_ARCHITECTURE
08e45a40
AC
2206 fprintf_unfiltered (file,
2207 "gdbarch_dump: TARGET_ARCHITECTURE # %s\n",
2208 XSTRING (TARGET_ARCHITECTURE));
0f71a2f6 2209 if (TARGET_ARCHITECTURE != NULL)
4b9b3959
AC
2210 fprintf_unfiltered (file,
2211 "gdbarch_dump: TARGET_ARCHITECTURE = %s\n",
adf40b2e 2212 TARGET_ARCHITECTURE->printable_name);
381323f4 2213#endif
08e45a40
AC
2214#ifdef TARGET_BFD_VMA_BIT
2215 fprintf_unfiltered (file,
2216 "gdbarch_dump: TARGET_BFD_VMA_BIT # %s\n",
2217 XSTRING (TARGET_BFD_VMA_BIT));
2218 fprintf_unfiltered (file,
06b25f14
AC
2219 "gdbarch_dump: TARGET_BFD_VMA_BIT = %d\n",
2220 TARGET_BFD_VMA_BIT);
08e45a40 2221#endif
381323f4 2222#ifdef TARGET_BYTE_ORDER
08e45a40
AC
2223 fprintf_unfiltered (file,
2224 "gdbarch_dump: TARGET_BYTE_ORDER # %s\n",
2225 XSTRING (TARGET_BYTE_ORDER));
4b9b3959
AC
2226 fprintf_unfiltered (file,
2227 "gdbarch_dump: TARGET_BYTE_ORDER = %ld\n",
adf40b2e 2228 (long) TARGET_BYTE_ORDER);
381323f4 2229#endif
4e409299
JB
2230#ifdef TARGET_CHAR_SIGNED
2231 fprintf_unfiltered (file,
2232 "gdbarch_dump: TARGET_CHAR_SIGNED # %s\n",
2233 XSTRING (TARGET_CHAR_SIGNED));
2234 fprintf_unfiltered (file,
06b25f14
AC
2235 "gdbarch_dump: TARGET_CHAR_SIGNED = %d\n",
2236 TARGET_CHAR_SIGNED);
4e409299 2237#endif
08e45a40 2238#ifdef TARGET_DOUBLE_BIT
4b9b3959 2239 fprintf_unfiltered (file,
08e45a40
AC
2240 "gdbarch_dump: TARGET_DOUBLE_BIT # %s\n",
2241 XSTRING (TARGET_DOUBLE_BIT));
4b9b3959 2242 fprintf_unfiltered (file,
06b25f14
AC
2243 "gdbarch_dump: TARGET_DOUBLE_BIT = %d\n",
2244 TARGET_DOUBLE_BIT);
381323f4 2245#endif
08e45a40 2246#ifdef TARGET_DOUBLE_FORMAT
4b9b3959 2247 fprintf_unfiltered (file,
08e45a40
AC
2248 "gdbarch_dump: TARGET_DOUBLE_FORMAT # %s\n",
2249 XSTRING (TARGET_DOUBLE_FORMAT));
4b9b3959 2250 fprintf_unfiltered (file,
f09cffaa 2251 "gdbarch_dump: TARGET_DOUBLE_FORMAT = %s\n",
52f87c51 2252 (TARGET_DOUBLE_FORMAT)->name);
381323f4
AC
2253#endif
2254#ifdef TARGET_FLOAT_BIT
08e45a40
AC
2255 fprintf_unfiltered (file,
2256 "gdbarch_dump: TARGET_FLOAT_BIT # %s\n",
2257 XSTRING (TARGET_FLOAT_BIT));
4b9b3959 2258 fprintf_unfiltered (file,
06b25f14
AC
2259 "gdbarch_dump: TARGET_FLOAT_BIT = %d\n",
2260 TARGET_FLOAT_BIT);
381323f4 2261#endif
08e45a40 2262#ifdef TARGET_FLOAT_FORMAT
4b9b3959 2263 fprintf_unfiltered (file,
08e45a40
AC
2264 "gdbarch_dump: TARGET_FLOAT_FORMAT # %s\n",
2265 XSTRING (TARGET_FLOAT_FORMAT));
2266 fprintf_unfiltered (file,
f09cffaa 2267 "gdbarch_dump: TARGET_FLOAT_FORMAT = %s\n",
52f87c51 2268 (TARGET_FLOAT_FORMAT)->name);
08e45a40
AC
2269#endif
2270#ifdef TARGET_INT_BIT
2271 fprintf_unfiltered (file,
2272 "gdbarch_dump: TARGET_INT_BIT # %s\n",
2273 XSTRING (TARGET_INT_BIT));
2274 fprintf_unfiltered (file,
06b25f14
AC
2275 "gdbarch_dump: TARGET_INT_BIT = %d\n",
2276 TARGET_INT_BIT);
08e45a40
AC
2277#endif
2278#ifdef TARGET_LONG_BIT
2279 fprintf_unfiltered (file,
2280 "gdbarch_dump: TARGET_LONG_BIT # %s\n",
2281 XSTRING (TARGET_LONG_BIT));
2282 fprintf_unfiltered (file,
06b25f14
AC
2283 "gdbarch_dump: TARGET_LONG_BIT = %d\n",
2284 TARGET_LONG_BIT);
381323f4
AC
2285#endif
2286#ifdef TARGET_LONG_DOUBLE_BIT
08e45a40
AC
2287 fprintf_unfiltered (file,
2288 "gdbarch_dump: TARGET_LONG_DOUBLE_BIT # %s\n",
2289 XSTRING (TARGET_LONG_DOUBLE_BIT));
4b9b3959 2290 fprintf_unfiltered (file,
06b25f14
AC
2291 "gdbarch_dump: TARGET_LONG_DOUBLE_BIT = %d\n",
2292 TARGET_LONG_DOUBLE_BIT);
381323f4 2293#endif
08e45a40 2294#ifdef TARGET_LONG_DOUBLE_FORMAT
66b43ecb 2295 fprintf_unfiltered (file,
08e45a40
AC
2296 "gdbarch_dump: TARGET_LONG_DOUBLE_FORMAT # %s\n",
2297 XSTRING (TARGET_LONG_DOUBLE_FORMAT));
52204a0b 2298 fprintf_unfiltered (file,
f09cffaa 2299 "gdbarch_dump: TARGET_LONG_DOUBLE_FORMAT = %s\n",
52f87c51 2300 (TARGET_LONG_DOUBLE_FORMAT)->name);
52204a0b 2301#endif
08e45a40 2302#ifdef TARGET_LONG_LONG_BIT
66b43ecb 2303 fprintf_unfiltered (file,
08e45a40
AC
2304 "gdbarch_dump: TARGET_LONG_LONG_BIT # %s\n",
2305 XSTRING (TARGET_LONG_LONG_BIT));
4b9b3959 2306 fprintf_unfiltered (file,
06b25f14
AC
2307 "gdbarch_dump: TARGET_LONG_LONG_BIT = %d\n",
2308 TARGET_LONG_LONG_BIT);
381323f4 2309#endif
4be87837
DJ
2310#ifdef TARGET_OSABI
2311 fprintf_unfiltered (file,
2312 "gdbarch_dump: TARGET_OSABI # %s\n",
2313 XSTRING (TARGET_OSABI));
2314 fprintf_unfiltered (file,
2315 "gdbarch_dump: TARGET_OSABI = %ld\n",
2316 (long) TARGET_OSABI);
2317#endif
08e45a40
AC
2318#ifdef TARGET_PRINT_INSN
2319 fprintf_unfiltered (file,
2320 "gdbarch_dump: %s # %s\n",
2321 "TARGET_PRINT_INSN(vma, info)",
2322 XSTRING (TARGET_PRINT_INSN (vma, info)));
7996bcec
AC
2323 fprintf_unfiltered (file,
2324 "gdbarch_dump: TARGET_PRINT_INSN = <0x%08lx>\n",
2325 (long) current_gdbarch->print_insn
2326 /*TARGET_PRINT_INSN ()*/);
381323f4 2327#endif
08e45a40
AC
2328#ifdef TARGET_PTR_BIT
2329 fprintf_unfiltered (file,
2330 "gdbarch_dump: TARGET_PTR_BIT # %s\n",
2331 XSTRING (TARGET_PTR_BIT));
2332 fprintf_unfiltered (file,
06b25f14
AC
2333 "gdbarch_dump: TARGET_PTR_BIT = %d\n",
2334 TARGET_PTR_BIT);
381323f4 2335#endif
cde9ea48
AC
2336#ifdef TARGET_READ_PC_P
2337 fprintf_unfiltered (file,
2338 "gdbarch_dump: %s # %s\n",
2339 "TARGET_READ_PC_P()",
2340 XSTRING (TARGET_READ_PC_P ()));
2341 fprintf_unfiltered (file,
2342 "gdbarch_dump: TARGET_READ_PC_P() = %d\n",
2343 TARGET_READ_PC_P ());
2344#endif
08e45a40
AC
2345#ifdef TARGET_READ_PC
2346 fprintf_unfiltered (file,
2347 "gdbarch_dump: %s # %s\n",
2348 "TARGET_READ_PC(ptid)",
2349 XSTRING (TARGET_READ_PC (ptid)));
7996bcec
AC
2350 fprintf_unfiltered (file,
2351 "gdbarch_dump: TARGET_READ_PC = <0x%08lx>\n",
2352 (long) current_gdbarch->read_pc
2353 /*TARGET_READ_PC ()*/);
381323f4 2354#endif
bd1ce8ba
AC
2355#ifdef TARGET_READ_SP_P
2356 fprintf_unfiltered (file,
2357 "gdbarch_dump: %s # %s\n",
2358 "TARGET_READ_SP_P()",
2359 XSTRING (TARGET_READ_SP_P ()));
2360 fprintf_unfiltered (file,
2361 "gdbarch_dump: TARGET_READ_SP_P() = %d\n",
2362 TARGET_READ_SP_P ());
2363#endif
381323f4 2364#ifdef TARGET_READ_SP
08e45a40
AC
2365 fprintf_unfiltered (file,
2366 "gdbarch_dump: %s # %s\n",
2367 "TARGET_READ_SP()",
2368 XSTRING (TARGET_READ_SP ()));
7996bcec
AC
2369 fprintf_unfiltered (file,
2370 "gdbarch_dump: TARGET_READ_SP = <0x%08lx>\n",
2371 (long) current_gdbarch->read_sp
2372 /*TARGET_READ_SP ()*/);
381323f4 2373#endif
08e45a40
AC
2374#ifdef TARGET_SHORT_BIT
2375 fprintf_unfiltered (file,
2376 "gdbarch_dump: TARGET_SHORT_BIT # %s\n",
2377 XSTRING (TARGET_SHORT_BIT));
2378 fprintf_unfiltered (file,
06b25f14
AC
2379 "gdbarch_dump: TARGET_SHORT_BIT = %d\n",
2380 TARGET_SHORT_BIT);
39d4ef09
AC
2381#endif
2382#ifdef TARGET_VIRTUAL_FRAME_POINTER
08e45a40
AC
2383 fprintf_unfiltered (file,
2384 "gdbarch_dump: %s # %s\n",
2385 "TARGET_VIRTUAL_FRAME_POINTER(pc, frame_regnum, frame_offset)",
2386 XSTRING (TARGET_VIRTUAL_FRAME_POINTER (pc, frame_regnum, frame_offset)));
7996bcec
AC
2387 fprintf_unfiltered (file,
2388 "gdbarch_dump: TARGET_VIRTUAL_FRAME_POINTER = <0x%08lx>\n",
2389 (long) current_gdbarch->virtual_frame_pointer
2390 /*TARGET_VIRTUAL_FRAME_POINTER ()*/);
381323f4 2391#endif
08e45a40 2392#ifdef TARGET_WRITE_PC
4b9b3959 2393 fprintf_unfiltered (file,
08e45a40
AC
2394 "gdbarch_dump: %s # %s\n",
2395 "TARGET_WRITE_PC(val, ptid)",
2396 XSTRING (TARGET_WRITE_PC (val, ptid)));
7996bcec
AC
2397 fprintf_unfiltered (file,
2398 "gdbarch_dump: TARGET_WRITE_PC = <0x%08lx>\n",
2399 (long) current_gdbarch->write_pc
2400 /*TARGET_WRITE_PC ()*/);
381323f4 2401#endif
7996bcec
AC
2402 fprintf_unfiltered (file,
2403 "gdbarch_dump: gdbarch_unwind_dummy_id_p() = %d\n",
2404 gdbarch_unwind_dummy_id_p (current_gdbarch));
2405 fprintf_unfiltered (file,
2406 "gdbarch_dump: unwind_dummy_id = 0x%08lx\n",
2407 (long) current_gdbarch->unwind_dummy_id);
2408 fprintf_unfiltered (file,
2409 "gdbarch_dump: gdbarch_unwind_pc_p() = %d\n",
2410 gdbarch_unwind_pc_p (current_gdbarch));
2411 fprintf_unfiltered (file,
2412 "gdbarch_dump: unwind_pc = 0x%08lx\n",
2413 (long) current_gdbarch->unwind_pc);
2414 fprintf_unfiltered (file,
2415 "gdbarch_dump: gdbarch_unwind_sp_p() = %d\n",
2416 gdbarch_unwind_sp_p (current_gdbarch));
2417 fprintf_unfiltered (file,
2418 "gdbarch_dump: unwind_sp = 0x%08lx\n",
2419 (long) current_gdbarch->unwind_sp);
08e45a40 2420#ifdef USE_STRUCT_CONVENTION
4b9b3959 2421 fprintf_unfiltered (file,
08e45a40
AC
2422 "gdbarch_dump: %s # %s\n",
2423 "USE_STRUCT_CONVENTION(gcc_p, value_type)",
2424 XSTRING (USE_STRUCT_CONVENTION (gcc_p, value_type)));
7996bcec
AC
2425 fprintf_unfiltered (file,
2426 "gdbarch_dump: USE_STRUCT_CONVENTION = <0x%08lx>\n",
2427 (long) current_gdbarch->use_struct_convention
2428 /*USE_STRUCT_CONVENTION ()*/);
13d01224
AC
2429#endif
2430#ifdef VALUE_TO_REGISTER
13d01224
AC
2431 fprintf_unfiltered (file,
2432 "gdbarch_dump: %s # %s\n",
ff2e87ac
AC
2433 "VALUE_TO_REGISTER(frame, regnum, type, buf)",
2434 XSTRING (VALUE_TO_REGISTER (frame, regnum, type, buf)));
7996bcec
AC
2435 fprintf_unfiltered (file,
2436 "gdbarch_dump: VALUE_TO_REGISTER = <0x%08lx>\n",
2437 (long) current_gdbarch->value_to_register
2438 /*VALUE_TO_REGISTER ()*/);
381323f4 2439#endif
4b9b3959
AC
2440 if (current_gdbarch->dump_tdep != NULL)
2441 current_gdbarch->dump_tdep (current_gdbarch, file);
0f71a2f6
JM
2442}
2443
2444struct gdbarch_tdep *
104c1213 2445gdbarch_tdep (struct gdbarch *gdbarch)
0f71a2f6
JM
2446{
2447 if (gdbarch_debug >= 2)
0f71a2f6
JM
2448 fprintf_unfiltered (gdb_stdlog, "gdbarch_tdep called\n");
2449 return gdbarch->tdep;
2450}
2451
2452
2453const struct bfd_arch_info *
104c1213 2454gdbarch_bfd_arch_info (struct gdbarch *gdbarch)
0f71a2f6 2455{
8de9bdc4 2456 gdb_assert (gdbarch != NULL);
0f71a2f6 2457 if (gdbarch_debug >= 2)
0f71a2f6
JM
2458 fprintf_unfiltered (gdb_stdlog, "gdbarch_bfd_arch_info called\n");
2459 return gdbarch->bfd_arch_info;
2460}
2461
2462int
104c1213 2463gdbarch_byte_order (struct gdbarch *gdbarch)
0f71a2f6 2464{
8de9bdc4 2465 gdb_assert (gdbarch != NULL);
0f71a2f6 2466 if (gdbarch_debug >= 2)
0f71a2f6
JM
2467 fprintf_unfiltered (gdb_stdlog, "gdbarch_byte_order called\n");
2468 return gdbarch->byte_order;
2469}
2470
4be87837
DJ
2471enum gdb_osabi
2472gdbarch_osabi (struct gdbarch *gdbarch)
2473{
2474 gdb_assert (gdbarch != NULL);
2475 if (gdbarch_debug >= 2)
2476 fprintf_unfiltered (gdb_stdlog, "gdbarch_osabi called\n");
2477 return gdbarch->osabi;
2478}
2479
0f71a2f6 2480int
104c1213 2481gdbarch_short_bit (struct gdbarch *gdbarch)
0f71a2f6 2482{
8de9bdc4 2483 gdb_assert (gdbarch != NULL);
66b43ecb 2484 /* Skip verify of short_bit, invalid_p == 0 */
0f71a2f6 2485 if (gdbarch_debug >= 2)
0f71a2f6
JM
2486 fprintf_unfiltered (gdb_stdlog, "gdbarch_short_bit called\n");
2487 return gdbarch->short_bit;
2488}
2489
2490void
104c1213
JM
2491set_gdbarch_short_bit (struct gdbarch *gdbarch,
2492 int short_bit)
0f71a2f6
JM
2493{
2494 gdbarch->short_bit = short_bit;
2495}
2496
2497int
104c1213 2498gdbarch_int_bit (struct gdbarch *gdbarch)
0f71a2f6 2499{
8de9bdc4 2500 gdb_assert (gdbarch != NULL);
66b43ecb 2501 /* Skip verify of int_bit, invalid_p == 0 */
0f71a2f6 2502 if (gdbarch_debug >= 2)
0f71a2f6
JM
2503 fprintf_unfiltered (gdb_stdlog, "gdbarch_int_bit called\n");
2504 return gdbarch->int_bit;
2505}
2506
2507void
104c1213
JM
2508set_gdbarch_int_bit (struct gdbarch *gdbarch,
2509 int int_bit)
0f71a2f6
JM
2510{
2511 gdbarch->int_bit = int_bit;
2512}
2513
2514int
104c1213 2515gdbarch_long_bit (struct gdbarch *gdbarch)
0f71a2f6 2516{
8de9bdc4 2517 gdb_assert (gdbarch != NULL);
66b43ecb 2518 /* Skip verify of long_bit, invalid_p == 0 */
0f71a2f6 2519 if (gdbarch_debug >= 2)
0f71a2f6
JM
2520 fprintf_unfiltered (gdb_stdlog, "gdbarch_long_bit called\n");
2521 return gdbarch->long_bit;
2522}
2523
2524void
104c1213
JM
2525set_gdbarch_long_bit (struct gdbarch *gdbarch,
2526 int long_bit)
0f71a2f6
JM
2527{
2528 gdbarch->long_bit = long_bit;
2529}
2530
2531int
104c1213 2532gdbarch_long_long_bit (struct gdbarch *gdbarch)
0f71a2f6 2533{
8de9bdc4 2534 gdb_assert (gdbarch != NULL);
66b43ecb 2535 /* Skip verify of long_long_bit, invalid_p == 0 */
0f71a2f6 2536 if (gdbarch_debug >= 2)
0f71a2f6
JM
2537 fprintf_unfiltered (gdb_stdlog, "gdbarch_long_long_bit called\n");
2538 return gdbarch->long_long_bit;
2539}
2540
2541void
104c1213
JM
2542set_gdbarch_long_long_bit (struct gdbarch *gdbarch,
2543 int long_long_bit)
0f71a2f6
JM
2544{
2545 gdbarch->long_long_bit = long_long_bit;
2546}
2547
2548int
104c1213 2549gdbarch_float_bit (struct gdbarch *gdbarch)
0f71a2f6 2550{
8de9bdc4 2551 gdb_assert (gdbarch != NULL);
66b43ecb 2552 /* Skip verify of float_bit, invalid_p == 0 */
0f71a2f6 2553 if (gdbarch_debug >= 2)
0f71a2f6
JM
2554 fprintf_unfiltered (gdb_stdlog, "gdbarch_float_bit called\n");
2555 return gdbarch->float_bit;
2556}
2557
2558void
104c1213
JM
2559set_gdbarch_float_bit (struct gdbarch *gdbarch,
2560 int float_bit)
0f71a2f6
JM
2561{
2562 gdbarch->float_bit = float_bit;
2563}
2564
2565int
104c1213 2566gdbarch_double_bit (struct gdbarch *gdbarch)
0f71a2f6 2567{
8de9bdc4 2568 gdb_assert (gdbarch != NULL);
66b43ecb 2569 /* Skip verify of double_bit, invalid_p == 0 */
0f71a2f6 2570 if (gdbarch_debug >= 2)
0f71a2f6
JM
2571 fprintf_unfiltered (gdb_stdlog, "gdbarch_double_bit called\n");
2572 return gdbarch->double_bit;
2573}
2574
2575void
104c1213
JM
2576set_gdbarch_double_bit (struct gdbarch *gdbarch,
2577 int double_bit)
0f71a2f6
JM
2578{
2579 gdbarch->double_bit = double_bit;
2580}
2581
2582int
104c1213 2583gdbarch_long_double_bit (struct gdbarch *gdbarch)
0f71a2f6 2584{
8de9bdc4 2585 gdb_assert (gdbarch != NULL);
66b43ecb 2586 /* Skip verify of long_double_bit, invalid_p == 0 */
0f71a2f6 2587 if (gdbarch_debug >= 2)
0f71a2f6
JM
2588 fprintf_unfiltered (gdb_stdlog, "gdbarch_long_double_bit called\n");
2589 return gdbarch->long_double_bit;
2590}
2591
2592void
104c1213
JM
2593set_gdbarch_long_double_bit (struct gdbarch *gdbarch,
2594 int long_double_bit)
0f71a2f6
JM
2595{
2596 gdbarch->long_double_bit = long_double_bit;
2597}
2598
66b43ecb
AC
2599int
2600gdbarch_ptr_bit (struct gdbarch *gdbarch)
2601{
8de9bdc4 2602 gdb_assert (gdbarch != NULL);
66b43ecb
AC
2603 /* Skip verify of ptr_bit, invalid_p == 0 */
2604 if (gdbarch_debug >= 2)
2605 fprintf_unfiltered (gdb_stdlog, "gdbarch_ptr_bit called\n");
2606 return gdbarch->ptr_bit;
2607}
2608
2609void
2610set_gdbarch_ptr_bit (struct gdbarch *gdbarch,
2611 int ptr_bit)
2612{
2613 gdbarch->ptr_bit = ptr_bit;
2614}
2615
52204a0b
DT
2616int
2617gdbarch_addr_bit (struct gdbarch *gdbarch)
2618{
8de9bdc4 2619 gdb_assert (gdbarch != NULL);
956ac328
AC
2620 /* Check variable changed from pre-default. */
2621 gdb_assert (gdbarch->addr_bit != 0);
52204a0b
DT
2622 if (gdbarch_debug >= 2)
2623 fprintf_unfiltered (gdb_stdlog, "gdbarch_addr_bit called\n");
2624 return gdbarch->addr_bit;
2625}
2626
2627void
2628set_gdbarch_addr_bit (struct gdbarch *gdbarch,
2629 int addr_bit)
2630{
2631 gdbarch->addr_bit = addr_bit;
2632}
2633
66b43ecb
AC
2634int
2635gdbarch_bfd_vma_bit (struct gdbarch *gdbarch)
2636{
8de9bdc4 2637 gdb_assert (gdbarch != NULL);
66b43ecb
AC
2638 /* Skip verify of bfd_vma_bit, invalid_p == 0 */
2639 if (gdbarch_debug >= 2)
2640 fprintf_unfiltered (gdb_stdlog, "gdbarch_bfd_vma_bit called\n");
2641 return gdbarch->bfd_vma_bit;
2642}
2643
2644void
2645set_gdbarch_bfd_vma_bit (struct gdbarch *gdbarch,
2646 int bfd_vma_bit)
2647{
2648 gdbarch->bfd_vma_bit = bfd_vma_bit;
2649}
2650
4e409299
JB
2651int
2652gdbarch_char_signed (struct gdbarch *gdbarch)
2653{
8de9bdc4 2654 gdb_assert (gdbarch != NULL);
956ac328
AC
2655 /* Check variable changed from pre-default. */
2656 gdb_assert (gdbarch->char_signed != -1);
4e409299
JB
2657 if (gdbarch_debug >= 2)
2658 fprintf_unfiltered (gdb_stdlog, "gdbarch_char_signed called\n");
2659 return gdbarch->char_signed;
2660}
2661
2662void
2663set_gdbarch_char_signed (struct gdbarch *gdbarch,
2664 int char_signed)
2665{
2666 gdbarch->char_signed = char_signed;
2667}
2668
cde9ea48
AC
2669int
2670gdbarch_read_pc_p (struct gdbarch *gdbarch)
2671{
2672 gdb_assert (gdbarch != NULL);
956ac328 2673 return gdbarch->read_pc != NULL;
cde9ea48
AC
2674}
2675
0f71a2f6 2676CORE_ADDR
39f77062 2677gdbarch_read_pc (struct gdbarch *gdbarch, ptid_t ptid)
0f71a2f6 2678{
8de9bdc4 2679 gdb_assert (gdbarch != NULL);
956ac328 2680 gdb_assert (gdbarch->read_pc != NULL);
0f71a2f6 2681 if (gdbarch_debug >= 2)
0f71a2f6 2682 fprintf_unfiltered (gdb_stdlog, "gdbarch_read_pc called\n");
39f77062 2683 return gdbarch->read_pc (ptid);
0f71a2f6
JM
2684}
2685
2686void
104c1213
JM
2687set_gdbarch_read_pc (struct gdbarch *gdbarch,
2688 gdbarch_read_pc_ftype read_pc)
0f71a2f6
JM
2689{
2690 gdbarch->read_pc = read_pc;
2691}
2692
2693void
39f77062 2694gdbarch_write_pc (struct gdbarch *gdbarch, CORE_ADDR val, ptid_t ptid)
0f71a2f6 2695{
8de9bdc4 2696 gdb_assert (gdbarch != NULL);
956ac328 2697 gdb_assert (gdbarch->write_pc != NULL);
0f71a2f6 2698 if (gdbarch_debug >= 2)
0f71a2f6 2699 fprintf_unfiltered (gdb_stdlog, "gdbarch_write_pc called\n");
39f77062 2700 gdbarch->write_pc (val, ptid);
0f71a2f6
JM
2701}
2702
2703void
104c1213
JM
2704set_gdbarch_write_pc (struct gdbarch *gdbarch,
2705 gdbarch_write_pc_ftype write_pc)
0f71a2f6
JM
2706{
2707 gdbarch->write_pc = write_pc;
2708}
2709
bd1ce8ba
AC
2710int
2711gdbarch_read_sp_p (struct gdbarch *gdbarch)
2712{
2713 gdb_assert (gdbarch != NULL);
956ac328 2714 return gdbarch->read_sp != NULL;
bd1ce8ba
AC
2715}
2716
0f71a2f6
JM
2717CORE_ADDR
2718gdbarch_read_sp (struct gdbarch *gdbarch)
2719{
8de9bdc4 2720 gdb_assert (gdbarch != NULL);
956ac328 2721 gdb_assert (gdbarch->read_sp != NULL);
0f71a2f6 2722 if (gdbarch_debug >= 2)
0f71a2f6
JM
2723 fprintf_unfiltered (gdb_stdlog, "gdbarch_read_sp called\n");
2724 return gdbarch->read_sp ();
2725}
2726
2727void
104c1213
JM
2728set_gdbarch_read_sp (struct gdbarch *gdbarch,
2729 gdbarch_read_sp_ftype read_sp)
0f71a2f6
JM
2730{
2731 gdbarch->read_sp = read_sp;
2732}
2733
39d4ef09
AC
2734void
2735gdbarch_virtual_frame_pointer (struct gdbarch *gdbarch, CORE_ADDR pc, int *frame_regnum, LONGEST *frame_offset)
2736{
8de9bdc4 2737 gdb_assert (gdbarch != NULL);
956ac328 2738 gdb_assert (gdbarch->virtual_frame_pointer != NULL);
39d4ef09
AC
2739 if (gdbarch_debug >= 2)
2740 fprintf_unfiltered (gdb_stdlog, "gdbarch_virtual_frame_pointer called\n");
2741 gdbarch->virtual_frame_pointer (pc, frame_regnum, frame_offset);
2742}
2743
2744void
2745set_gdbarch_virtual_frame_pointer (struct gdbarch *gdbarch,
2746 gdbarch_virtual_frame_pointer_ftype virtual_frame_pointer)
2747{
2748 gdbarch->virtual_frame_pointer = virtual_frame_pointer;
2749}
2750
61a0eb5b 2751int
d8124050 2752gdbarch_pseudo_register_read_p (struct gdbarch *gdbarch)
61a0eb5b 2753{
8de9bdc4 2754 gdb_assert (gdbarch != NULL);
956ac328 2755 return gdbarch->pseudo_register_read != NULL;
61a0eb5b
AC
2756}
2757
2758void
d8124050 2759gdbarch_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, void *buf)
61a0eb5b 2760{
8de9bdc4 2761 gdb_assert (gdbarch != NULL);
956ac328 2762 gdb_assert (gdbarch->pseudo_register_read != NULL);
61a0eb5b 2763 if (gdbarch_debug >= 2)
d8124050
AC
2764 fprintf_unfiltered (gdb_stdlog, "gdbarch_pseudo_register_read called\n");
2765 gdbarch->pseudo_register_read (gdbarch, regcache, cookednum, buf);
61a0eb5b
AC
2766}
2767
2768void
d8124050
AC
2769set_gdbarch_pseudo_register_read (struct gdbarch *gdbarch,
2770 gdbarch_pseudo_register_read_ftype pseudo_register_read)
61a0eb5b 2771{
d8124050 2772 gdbarch->pseudo_register_read = pseudo_register_read;
61a0eb5b
AC
2773}
2774
2775int
d8124050 2776gdbarch_pseudo_register_write_p (struct gdbarch *gdbarch)
61a0eb5b 2777{
8de9bdc4 2778 gdb_assert (gdbarch != NULL);
956ac328 2779 return gdbarch->pseudo_register_write != NULL;
61a0eb5b
AC
2780}
2781
2782void
d8124050 2783gdbarch_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, const void *buf)
61a0eb5b 2784{
8de9bdc4 2785 gdb_assert (gdbarch != NULL);
956ac328 2786 gdb_assert (gdbarch->pseudo_register_write != NULL);
61a0eb5b 2787 if (gdbarch_debug >= 2)
d8124050
AC
2788 fprintf_unfiltered (gdb_stdlog, "gdbarch_pseudo_register_write called\n");
2789 gdbarch->pseudo_register_write (gdbarch, regcache, cookednum, buf);
61a0eb5b
AC
2790}
2791
2792void
d8124050
AC
2793set_gdbarch_pseudo_register_write (struct gdbarch *gdbarch,
2794 gdbarch_pseudo_register_write_ftype pseudo_register_write)
61a0eb5b 2795{
d8124050 2796 gdbarch->pseudo_register_write = pseudo_register_write;
61a0eb5b
AC
2797}
2798
0f71a2f6 2799int
104c1213 2800gdbarch_num_regs (struct gdbarch *gdbarch)
0f71a2f6 2801{
8de9bdc4 2802 gdb_assert (gdbarch != NULL);
956ac328
AC
2803 /* Check variable changed from pre-default. */
2804 gdb_assert (gdbarch->num_regs != -1);
0f71a2f6 2805 if (gdbarch_debug >= 2)
0f71a2f6
JM
2806 fprintf_unfiltered (gdb_stdlog, "gdbarch_num_regs called\n");
2807 return gdbarch->num_regs;
2808}
2809
2810void
104c1213
JM
2811set_gdbarch_num_regs (struct gdbarch *gdbarch,
2812 int num_regs)
0f71a2f6
JM
2813{
2814 gdbarch->num_regs = num_regs;
2815}
2816
0aba1244
EZ
2817int
2818gdbarch_num_pseudo_regs (struct gdbarch *gdbarch)
2819{
8de9bdc4 2820 gdb_assert (gdbarch != NULL);
0aba1244
EZ
2821 /* Skip verify of num_pseudo_regs, invalid_p == 0 */
2822 if (gdbarch_debug >= 2)
2823 fprintf_unfiltered (gdb_stdlog, "gdbarch_num_pseudo_regs called\n");
2824 return gdbarch->num_pseudo_regs;
2825}
2826
2827void
2828set_gdbarch_num_pseudo_regs (struct gdbarch *gdbarch,
2829 int num_pseudo_regs)
2830{
2831 gdbarch->num_pseudo_regs = num_pseudo_regs;
2832}
2833
0f71a2f6 2834int
104c1213 2835gdbarch_sp_regnum (struct gdbarch *gdbarch)
0f71a2f6 2836{
8de9bdc4 2837 gdb_assert (gdbarch != NULL);
1200cd6e 2838 /* Skip verify of sp_regnum, invalid_p == 0 */
0f71a2f6 2839 if (gdbarch_debug >= 2)
0f71a2f6
JM
2840 fprintf_unfiltered (gdb_stdlog, "gdbarch_sp_regnum called\n");
2841 return gdbarch->sp_regnum;
2842}
2843
2844void
104c1213
JM
2845set_gdbarch_sp_regnum (struct gdbarch *gdbarch,
2846 int sp_regnum)
0f71a2f6
JM
2847{
2848 gdbarch->sp_regnum = sp_regnum;
2849}
2850
0f71a2f6 2851int
104c1213 2852gdbarch_pc_regnum (struct gdbarch *gdbarch)
0f71a2f6 2853{
8de9bdc4 2854 gdb_assert (gdbarch != NULL);
1200cd6e 2855 /* Skip verify of pc_regnum, invalid_p == 0 */
0f71a2f6 2856 if (gdbarch_debug >= 2)
0f71a2f6
JM
2857 fprintf_unfiltered (gdb_stdlog, "gdbarch_pc_regnum called\n");
2858 return gdbarch->pc_regnum;
2859}
2860
2861void
104c1213
JM
2862set_gdbarch_pc_regnum (struct gdbarch *gdbarch,
2863 int pc_regnum)
0f71a2f6
JM
2864{
2865 gdbarch->pc_regnum = pc_regnum;
2866}
2867
c2169756
AC
2868int
2869gdbarch_ps_regnum (struct gdbarch *gdbarch)
2870{
8de9bdc4 2871 gdb_assert (gdbarch != NULL);
c2169756
AC
2872 /* Skip verify of ps_regnum, invalid_p == 0 */
2873 if (gdbarch_debug >= 2)
2874 fprintf_unfiltered (gdb_stdlog, "gdbarch_ps_regnum called\n");
2875 return gdbarch->ps_regnum;
2876}
2877
2878void
2879set_gdbarch_ps_regnum (struct gdbarch *gdbarch,
2880 int ps_regnum)
2881{
2882 gdbarch->ps_regnum = ps_regnum;
2883}
2884
60054393
MS
2885int
2886gdbarch_fp0_regnum (struct gdbarch *gdbarch)
2887{
8de9bdc4 2888 gdb_assert (gdbarch != NULL);
60054393
MS
2889 /* Skip verify of fp0_regnum, invalid_p == 0 */
2890 if (gdbarch_debug >= 2)
2891 fprintf_unfiltered (gdb_stdlog, "gdbarch_fp0_regnum called\n");
2892 return gdbarch->fp0_regnum;
2893}
2894
2895void
2896set_gdbarch_fp0_regnum (struct gdbarch *gdbarch,
2897 int fp0_regnum)
2898{
2899 gdbarch->fp0_regnum = fp0_regnum;
2900}
2901
88c72b7d
AC
2902int
2903gdbarch_stab_reg_to_regnum (struct gdbarch *gdbarch, int stab_regnr)
2904{
8de9bdc4 2905 gdb_assert (gdbarch != NULL);
956ac328 2906 gdb_assert (gdbarch->stab_reg_to_regnum != NULL);
88c72b7d
AC
2907 if (gdbarch_debug >= 2)
2908 fprintf_unfiltered (gdb_stdlog, "gdbarch_stab_reg_to_regnum called\n");
2909 return gdbarch->stab_reg_to_regnum (stab_regnr);
2910}
2911
2912void
2913set_gdbarch_stab_reg_to_regnum (struct gdbarch *gdbarch,
2914 gdbarch_stab_reg_to_regnum_ftype stab_reg_to_regnum)
2915{
2916 gdbarch->stab_reg_to_regnum = stab_reg_to_regnum;
2917}
2918
2919int
2920gdbarch_ecoff_reg_to_regnum (struct gdbarch *gdbarch, int ecoff_regnr)
2921{
8de9bdc4 2922 gdb_assert (gdbarch != NULL);
956ac328 2923 gdb_assert (gdbarch->ecoff_reg_to_regnum != NULL);
88c72b7d
AC
2924 if (gdbarch_debug >= 2)
2925 fprintf_unfiltered (gdb_stdlog, "gdbarch_ecoff_reg_to_regnum called\n");
2926 return gdbarch->ecoff_reg_to_regnum (ecoff_regnr);
2927}
2928
2929void
2930set_gdbarch_ecoff_reg_to_regnum (struct gdbarch *gdbarch,
2931 gdbarch_ecoff_reg_to_regnum_ftype ecoff_reg_to_regnum)
2932{
2933 gdbarch->ecoff_reg_to_regnum = ecoff_reg_to_regnum;
2934}
2935
2936int
2937gdbarch_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int dwarf_regnr)
2938{
8de9bdc4 2939 gdb_assert (gdbarch != NULL);
956ac328 2940 gdb_assert (gdbarch->dwarf_reg_to_regnum != NULL);
88c72b7d
AC
2941 if (gdbarch_debug >= 2)
2942 fprintf_unfiltered (gdb_stdlog, "gdbarch_dwarf_reg_to_regnum called\n");
2943 return gdbarch->dwarf_reg_to_regnum (dwarf_regnr);
2944}
2945
2946void
2947set_gdbarch_dwarf_reg_to_regnum (struct gdbarch *gdbarch,
2948 gdbarch_dwarf_reg_to_regnum_ftype dwarf_reg_to_regnum)
2949{
2950 gdbarch->dwarf_reg_to_regnum = dwarf_reg_to_regnum;
2951}
2952
2953int
2954gdbarch_sdb_reg_to_regnum (struct gdbarch *gdbarch, int sdb_regnr)
2955{
8de9bdc4 2956 gdb_assert (gdbarch != NULL);
956ac328 2957 gdb_assert (gdbarch->sdb_reg_to_regnum != NULL);
88c72b7d
AC
2958 if (gdbarch_debug >= 2)
2959 fprintf_unfiltered (gdb_stdlog, "gdbarch_sdb_reg_to_regnum called\n");
2960 return gdbarch->sdb_reg_to_regnum (sdb_regnr);
2961}
2962
2963void
2964set_gdbarch_sdb_reg_to_regnum (struct gdbarch *gdbarch,
2965 gdbarch_sdb_reg_to_regnum_ftype sdb_reg_to_regnum)
2966{
2967 gdbarch->sdb_reg_to_regnum = sdb_reg_to_regnum;
2968}
2969
2970int
2971gdbarch_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, int dwarf2_regnr)
2972{
8de9bdc4 2973 gdb_assert (gdbarch != NULL);
956ac328 2974 gdb_assert (gdbarch->dwarf2_reg_to_regnum != NULL);
88c72b7d
AC
2975 if (gdbarch_debug >= 2)
2976 fprintf_unfiltered (gdb_stdlog, "gdbarch_dwarf2_reg_to_regnum called\n");
2977 return gdbarch->dwarf2_reg_to_regnum (dwarf2_regnr);
2978}
2979
2980void
2981set_gdbarch_dwarf2_reg_to_regnum (struct gdbarch *gdbarch,
2982 gdbarch_dwarf2_reg_to_regnum_ftype dwarf2_reg_to_regnum)
2983{
2984 gdbarch->dwarf2_reg_to_regnum = dwarf2_reg_to_regnum;
2985}
2986
fa88f677 2987const char *
0f71a2f6
JM
2988gdbarch_register_name (struct gdbarch *gdbarch, int regnr)
2989{
8de9bdc4 2990 gdb_assert (gdbarch != NULL);
956ac328 2991 gdb_assert (gdbarch->register_name != NULL);
0f71a2f6 2992 if (gdbarch_debug >= 2)
0f71a2f6
JM
2993 fprintf_unfiltered (gdb_stdlog, "gdbarch_register_name called\n");
2994 return gdbarch->register_name (regnr);
2995}
2996
2997void
104c1213
JM
2998set_gdbarch_register_name (struct gdbarch *gdbarch,
2999 gdbarch_register_name_ftype register_name)
0f71a2f6
JM
3000{
3001 gdbarch->register_name = register_name;
3002}
3003
0f71a2f6 3004int
9c04cab7 3005gdbarch_register_type_p (struct gdbarch *gdbarch)
0f71a2f6 3006{
8de9bdc4 3007 gdb_assert (gdbarch != NULL);
956ac328 3008 return gdbarch->register_type != NULL;
9c04cab7
AC
3009}
3010
3011struct type *
3012gdbarch_register_type (struct gdbarch *gdbarch, int reg_nr)
3013{
3014 gdb_assert (gdbarch != NULL);
956ac328 3015 gdb_assert (gdbarch->register_type != NULL);
0f71a2f6 3016 if (gdbarch_debug >= 2)
9c04cab7
AC
3017 fprintf_unfiltered (gdb_stdlog, "gdbarch_register_type called\n");
3018 return gdbarch->register_type (gdbarch, reg_nr);
0f71a2f6
JM
3019}
3020
3021void
9c04cab7
AC
3022set_gdbarch_register_type (struct gdbarch *gdbarch,
3023 gdbarch_register_type_ftype register_type)
0f71a2f6 3024{
9c04cab7 3025 gdbarch->register_type = register_type;
0f71a2f6
JM
3026}
3027
46654a5b 3028int
9c04cab7 3029gdbarch_deprecated_register_virtual_type_p (struct gdbarch *gdbarch)
46654a5b
AC
3030{
3031 gdb_assert (gdbarch != NULL);
956ac328 3032 return gdbarch->deprecated_register_virtual_type != NULL;
46654a5b
AC
3033}
3034
9c04cab7
AC
3035struct type *
3036gdbarch_deprecated_register_virtual_type (struct gdbarch *gdbarch, int reg_nr)
0f71a2f6 3037{
8de9bdc4 3038 gdb_assert (gdbarch != NULL);
956ac328 3039 gdb_assert (gdbarch->deprecated_register_virtual_type != NULL);
0f71a2f6 3040 if (gdbarch_debug >= 2)
9c04cab7
AC
3041 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_register_virtual_type called\n");
3042 return gdbarch->deprecated_register_virtual_type (reg_nr);
0f71a2f6
JM
3043}
3044
3045void
9c04cab7
AC
3046set_gdbarch_deprecated_register_virtual_type (struct gdbarch *gdbarch,
3047 gdbarch_deprecated_register_virtual_type_ftype deprecated_register_virtual_type)
0f71a2f6 3048{
9c04cab7 3049 gdbarch->deprecated_register_virtual_type = deprecated_register_virtual_type;
0f71a2f6
JM
3050}
3051
3052int
9c04cab7 3053gdbarch_deprecated_register_bytes (struct gdbarch *gdbarch)
0f71a2f6 3054{
8de9bdc4 3055 gdb_assert (gdbarch != NULL);
0f71a2f6 3056 if (gdbarch_debug >= 2)
9c04cab7
AC
3057 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_register_bytes called\n");
3058 return gdbarch->deprecated_register_bytes;
0f71a2f6
JM
3059}
3060
3061void
9c04cab7
AC
3062set_gdbarch_deprecated_register_bytes (struct gdbarch *gdbarch,
3063 int deprecated_register_bytes)
0f71a2f6 3064{
9c04cab7 3065 gdbarch->deprecated_register_bytes = deprecated_register_bytes;
0f71a2f6
JM
3066}
3067
3068int
9c04cab7 3069gdbarch_deprecated_register_byte_p (struct gdbarch *gdbarch)
a0ed5532
AC
3070{
3071 gdb_assert (gdbarch != NULL);
9c04cab7 3072 return gdbarch->deprecated_register_byte != generic_register_byte;
a0ed5532
AC
3073}
3074
3075int
9c04cab7 3076gdbarch_deprecated_register_byte (struct gdbarch *gdbarch, int reg_nr)
0f71a2f6 3077{
8de9bdc4 3078 gdb_assert (gdbarch != NULL);
956ac328
AC
3079 gdb_assert (gdbarch->deprecated_register_byte != NULL);
3080 /* Do not check predicate: gdbarch->deprecated_register_byte != generic_register_byte, allow call. */
0f71a2f6 3081 if (gdbarch_debug >= 2)
9c04cab7
AC
3082 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_register_byte called\n");
3083 return gdbarch->deprecated_register_byte (reg_nr);
0f71a2f6
JM
3084}
3085
3086void
9c04cab7
AC
3087set_gdbarch_deprecated_register_byte (struct gdbarch *gdbarch,
3088 gdbarch_deprecated_register_byte_ftype deprecated_register_byte)
0f71a2f6 3089{
9c04cab7 3090 gdbarch->deprecated_register_byte = deprecated_register_byte;
0f71a2f6
JM
3091}
3092
dadd712e
AC
3093int
3094gdbarch_deprecated_register_raw_size_p (struct gdbarch *gdbarch)
3095{
3096 gdb_assert (gdbarch != NULL);
3097 return gdbarch->deprecated_register_raw_size != generic_register_size;
3098}
3099
0f71a2f6 3100int
9c04cab7 3101gdbarch_deprecated_register_raw_size (struct gdbarch *gdbarch, int reg_nr)
0f71a2f6 3102{
8de9bdc4 3103 gdb_assert (gdbarch != NULL);
956ac328
AC
3104 gdb_assert (gdbarch->deprecated_register_raw_size != NULL);
3105 /* Do not check predicate: gdbarch->deprecated_register_raw_size != generic_register_size, allow call. */
0f71a2f6 3106 if (gdbarch_debug >= 2)
9c04cab7
AC
3107 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_register_raw_size called\n");
3108 return gdbarch->deprecated_register_raw_size (reg_nr);
0f71a2f6
JM
3109}
3110
3111void
9c04cab7
AC
3112set_gdbarch_deprecated_register_raw_size (struct gdbarch *gdbarch,
3113 gdbarch_deprecated_register_raw_size_ftype deprecated_register_raw_size)
0f71a2f6 3114{
9c04cab7 3115 gdbarch->deprecated_register_raw_size = deprecated_register_raw_size;
0f71a2f6
JM
3116}
3117
dadd712e
AC
3118int
3119gdbarch_deprecated_register_virtual_size_p (struct gdbarch *gdbarch)
3120{
3121 gdb_assert (gdbarch != NULL);
3122 return gdbarch->deprecated_register_virtual_size != generic_register_size;
3123}
3124
0f71a2f6 3125int
9c04cab7 3126gdbarch_deprecated_register_virtual_size (struct gdbarch *gdbarch, int reg_nr)
0f71a2f6 3127{
8de9bdc4 3128 gdb_assert (gdbarch != NULL);
956ac328
AC
3129 gdb_assert (gdbarch->deprecated_register_virtual_size != NULL);
3130 /* Do not check predicate: gdbarch->deprecated_register_virtual_size != generic_register_size, allow call. */
0f71a2f6 3131 if (gdbarch_debug >= 2)
9c04cab7
AC
3132 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_register_virtual_size called\n");
3133 return gdbarch->deprecated_register_virtual_size (reg_nr);
0f71a2f6
JM
3134}
3135
3136void
9c04cab7
AC
3137set_gdbarch_deprecated_register_virtual_size (struct gdbarch *gdbarch,
3138 gdbarch_deprecated_register_virtual_size_ftype deprecated_register_virtual_size)
0f71a2f6 3139{
9c04cab7 3140 gdbarch->deprecated_register_virtual_size = deprecated_register_virtual_size;
0f71a2f6
JM
3141}
3142
35cac7cf 3143int
9c04cab7 3144gdbarch_deprecated_max_register_raw_size_p (struct gdbarch *gdbarch)
35cac7cf
AC
3145{
3146 gdb_assert (gdbarch != NULL);
ae99b398 3147 return gdbarch->deprecated_max_register_raw_size != 0;
35cac7cf
AC
3148}
3149
9c04cab7
AC
3150int
3151gdbarch_deprecated_max_register_raw_size (struct gdbarch *gdbarch)
0f71a2f6 3152{
8de9bdc4 3153 gdb_assert (gdbarch != NULL);
0f71a2f6 3154 if (gdbarch_debug >= 2)
9c04cab7
AC
3155 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_max_register_raw_size called\n");
3156 return gdbarch->deprecated_max_register_raw_size;
0f71a2f6
JM
3157}
3158
3159void
9c04cab7
AC
3160set_gdbarch_deprecated_max_register_raw_size (struct gdbarch *gdbarch,
3161 int deprecated_max_register_raw_size)
0f71a2f6 3162{
9c04cab7 3163 gdbarch->deprecated_max_register_raw_size = deprecated_max_register_raw_size;
0f71a2f6
JM
3164}
3165
35cac7cf 3166int
9c04cab7 3167gdbarch_deprecated_max_register_virtual_size_p (struct gdbarch *gdbarch)
35cac7cf
AC
3168{
3169 gdb_assert (gdbarch != NULL);
ae99b398 3170 return gdbarch->deprecated_max_register_virtual_size != 0;
35cac7cf
AC
3171}
3172
9c04cab7
AC
3173int
3174gdbarch_deprecated_max_register_virtual_size (struct gdbarch *gdbarch)
35cac7cf
AC
3175{
3176 gdb_assert (gdbarch != NULL);
35cac7cf 3177 if (gdbarch_debug >= 2)
9c04cab7
AC
3178 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_max_register_virtual_size called\n");
3179 return gdbarch->deprecated_max_register_virtual_size;
35cac7cf
AC
3180}
3181
3182void
9c04cab7
AC
3183set_gdbarch_deprecated_max_register_virtual_size (struct gdbarch *gdbarch,
3184 int deprecated_max_register_virtual_size)
35cac7cf 3185{
9c04cab7 3186 gdbarch->deprecated_max_register_virtual_size = deprecated_max_register_virtual_size;
35cac7cf
AC
3187}
3188
f3be58bc
AC
3189int
3190gdbarch_unwind_dummy_id_p (struct gdbarch *gdbarch)
3191{
3192 gdb_assert (gdbarch != NULL);
956ac328 3193 return gdbarch->unwind_dummy_id != NULL;
f3be58bc
AC
3194}
3195
3196struct frame_id
3197gdbarch_unwind_dummy_id (struct gdbarch *gdbarch, struct frame_info *info)
3198{
3199 gdb_assert (gdbarch != NULL);
956ac328 3200 gdb_assert (gdbarch->unwind_dummy_id != NULL);
f3be58bc
AC
3201 if (gdbarch_debug >= 2)
3202 fprintf_unfiltered (gdb_stdlog, "gdbarch_unwind_dummy_id called\n");
3203 return gdbarch->unwind_dummy_id (gdbarch, info);
3204}
3205
3206void
3207set_gdbarch_unwind_dummy_id (struct gdbarch *gdbarch,
3208 gdbarch_unwind_dummy_id_ftype unwind_dummy_id)
3209{
3210 gdbarch->unwind_dummy_id = unwind_dummy_id;
3211}
3212
3213int
a59fe496 3214gdbarch_deprecated_save_dummy_frame_tos_p (struct gdbarch *gdbarch)
f3be58bc
AC
3215{
3216 gdb_assert (gdbarch != NULL);
956ac328 3217 return gdbarch->deprecated_save_dummy_frame_tos != NULL;
f3be58bc
AC
3218}
3219
3220void
a59fe496 3221gdbarch_deprecated_save_dummy_frame_tos (struct gdbarch *gdbarch, CORE_ADDR sp)
f3be58bc
AC
3222{
3223 gdb_assert (gdbarch != NULL);
956ac328 3224 gdb_assert (gdbarch->deprecated_save_dummy_frame_tos != NULL);
f3be58bc 3225 if (gdbarch_debug >= 2)
a59fe496
AC
3226 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_save_dummy_frame_tos called\n");
3227 gdbarch->deprecated_save_dummy_frame_tos (sp);
f3be58bc
AC
3228}
3229
3230void
a59fe496
AC
3231set_gdbarch_deprecated_save_dummy_frame_tos (struct gdbarch *gdbarch,
3232 gdbarch_deprecated_save_dummy_frame_tos_ftype deprecated_save_dummy_frame_tos)
f3be58bc 3233{
a59fe496 3234 gdbarch->deprecated_save_dummy_frame_tos = deprecated_save_dummy_frame_tos;
f3be58bc
AC
3235}
3236
3237int
3238gdbarch_deprecated_fp_regnum (struct gdbarch *gdbarch)
3239{
3240 gdb_assert (gdbarch != NULL);
3241 /* Skip verify of deprecated_fp_regnum, invalid_p == 0 */
3242 if (gdbarch_debug >= 2)
3243 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_fp_regnum called\n");
3244 return gdbarch->deprecated_fp_regnum;
3245}
3246
3247void
3248set_gdbarch_deprecated_fp_regnum (struct gdbarch *gdbarch,
3249 int deprecated_fp_regnum)
3250{
3251 gdbarch->deprecated_fp_regnum = deprecated_fp_regnum;
3252}
3253
3254int
3255gdbarch_deprecated_target_read_fp_p (struct gdbarch *gdbarch)
3256{
3257 gdb_assert (gdbarch != NULL);
956ac328 3258 return gdbarch->deprecated_target_read_fp != NULL;
f3be58bc
AC
3259}
3260
3261CORE_ADDR
3262gdbarch_deprecated_target_read_fp (struct gdbarch *gdbarch)
3263{
3264 gdb_assert (gdbarch != NULL);
956ac328 3265 gdb_assert (gdbarch->deprecated_target_read_fp != NULL);
f3be58bc
AC
3266 if (gdbarch_debug >= 2)
3267 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_target_read_fp called\n");
3268 return gdbarch->deprecated_target_read_fp ();
3269}
3270
3271void
3272set_gdbarch_deprecated_target_read_fp (struct gdbarch *gdbarch,
3273 gdbarch_deprecated_target_read_fp_ftype deprecated_target_read_fp)
3274{
3275 gdbarch->deprecated_target_read_fp = deprecated_target_read_fp;
3276}
3277
0ab7a791 3278int
b8de8283 3279gdbarch_push_dummy_call_p (struct gdbarch *gdbarch)
0ab7a791
AC
3280{
3281 gdb_assert (gdbarch != NULL);
956ac328 3282 return gdbarch->push_dummy_call != NULL;
0ab7a791
AC
3283}
3284
b8de8283
AC
3285CORE_ADDR
3286gdbarch_push_dummy_call (struct gdbarch *gdbarch, CORE_ADDR func_addr, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr)
666e11c5 3287{
8de9bdc4 3288 gdb_assert (gdbarch != NULL);
956ac328 3289 gdb_assert (gdbarch->push_dummy_call != NULL);
666e11c5 3290 if (gdbarch_debug >= 2)
b8de8283
AC
3291 fprintf_unfiltered (gdb_stdlog, "gdbarch_push_dummy_call called\n");
3292 return gdbarch->push_dummy_call (gdbarch, func_addr, regcache, bp_addr, nargs, args, sp, struct_return, struct_addr);
666e11c5
EZ
3293}
3294
3295void
b8de8283
AC
3296set_gdbarch_push_dummy_call (struct gdbarch *gdbarch,
3297 gdbarch_push_dummy_call_ftype push_dummy_call)
666e11c5 3298{
b8de8283 3299 gdbarch->push_dummy_call = push_dummy_call;
666e11c5
EZ
3300}
3301
b8de8283
AC
3302int
3303gdbarch_deprecated_push_arguments_p (struct gdbarch *gdbarch)
0ab7a791
AC
3304{
3305 gdb_assert (gdbarch != NULL);
956ac328 3306 return gdbarch->deprecated_push_arguments != NULL;
b8de8283
AC
3307}
3308
3309CORE_ADDR
3310gdbarch_deprecated_push_arguments (struct gdbarch *gdbarch, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr)
3311{
3312 gdb_assert (gdbarch != NULL);
956ac328 3313 gdb_assert (gdbarch->deprecated_push_arguments != NULL);
0ab7a791 3314 if (gdbarch_debug >= 2)
b8de8283
AC
3315 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_push_arguments called\n");
3316 return gdbarch->deprecated_push_arguments (nargs, args, sp, struct_return, struct_addr);
0ab7a791
AC
3317}
3318
3319void
b8de8283
AC
3320set_gdbarch_deprecated_push_arguments (struct gdbarch *gdbarch,
3321 gdbarch_deprecated_push_arguments_ftype deprecated_push_arguments)
0ab7a791 3322{
b8de8283 3323 gdbarch->deprecated_push_arguments = deprecated_push_arguments;
0ab7a791
AC
3324}
3325
23e3a7ac 3326int
b8de8283 3327gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch)
23e3a7ac
AC
3328{
3329 gdb_assert (gdbarch != NULL);
b8de8283
AC
3330 /* Skip verify of deprecated_use_generic_dummy_frames, invalid_p == 0 */
3331 if (gdbarch_debug >= 2)
3332 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_use_generic_dummy_frames called\n");
3333 return gdbarch->deprecated_use_generic_dummy_frames;
23e3a7ac
AC
3334}
3335
5e74b15c 3336void
b8de8283
AC
3337set_gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch,
3338 int deprecated_use_generic_dummy_frames)
3339{
3340 gdbarch->deprecated_use_generic_dummy_frames = deprecated_use_generic_dummy_frames;
3341}
3342
3343int
3344gdbarch_deprecated_push_return_address_p (struct gdbarch *gdbarch)
5e74b15c 3345{
8de9bdc4 3346 gdb_assert (gdbarch != NULL);
956ac328 3347 return gdbarch->deprecated_push_return_address != NULL;
b8de8283
AC
3348}
3349
3350CORE_ADDR
3351gdbarch_deprecated_push_return_address (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR sp)
3352{
3353 gdb_assert (gdbarch != NULL);
956ac328 3354 gdb_assert (gdbarch->deprecated_push_return_address != NULL);
5e74b15c 3355 if (gdbarch_debug >= 2)
b8de8283
AC
3356 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_push_return_address called\n");
3357 return gdbarch->deprecated_push_return_address (pc, sp);
5e74b15c
RE
3358}
3359
3360void
b8de8283
AC
3361set_gdbarch_deprecated_push_return_address (struct gdbarch *gdbarch,
3362 gdbarch_deprecated_push_return_address_ftype deprecated_push_return_address)
5e74b15c 3363{
b8de8283 3364 gdbarch->deprecated_push_return_address = deprecated_push_return_address;
5e74b15c
RE
3365}
3366
e76f1f2e 3367int
b8de8283 3368gdbarch_deprecated_dummy_write_sp_p (struct gdbarch *gdbarch)
e76f1f2e
AC
3369{
3370 gdb_assert (gdbarch != NULL);
956ac328 3371 return gdbarch->deprecated_dummy_write_sp != NULL;
e76f1f2e
AC
3372}
3373
3374void
b8de8283 3375gdbarch_deprecated_dummy_write_sp (struct gdbarch *gdbarch, CORE_ADDR val)
e76f1f2e
AC
3376{
3377 gdb_assert (gdbarch != NULL);
956ac328 3378 gdb_assert (gdbarch->deprecated_dummy_write_sp != NULL);
e76f1f2e 3379 if (gdbarch_debug >= 2)
b8de8283
AC
3380 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_dummy_write_sp called\n");
3381 gdbarch->deprecated_dummy_write_sp (val);
e76f1f2e
AC
3382}
3383
3384void
b8de8283
AC
3385set_gdbarch_deprecated_dummy_write_sp (struct gdbarch *gdbarch,
3386 gdbarch_deprecated_dummy_write_sp_ftype deprecated_dummy_write_sp)
e76f1f2e 3387{
b8de8283 3388 gdbarch->deprecated_dummy_write_sp = deprecated_dummy_write_sp;
e76f1f2e
AC
3389}
3390
7c7651b2 3391int
b8de8283 3392gdbarch_deprecated_register_size (struct gdbarch *gdbarch)
7c7651b2 3393{
8de9bdc4 3394 gdb_assert (gdbarch != NULL);
7c7651b2 3395 if (gdbarch_debug >= 2)
b8de8283
AC
3396 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_register_size called\n");
3397 return gdbarch->deprecated_register_size;
7c7651b2
AC
3398}
3399
3400void
b8de8283
AC
3401set_gdbarch_deprecated_register_size (struct gdbarch *gdbarch,
3402 int deprecated_register_size)
7c7651b2 3403{
b8de8283 3404 gdbarch->deprecated_register_size = deprecated_register_size;
7c7651b2
AC
3405}
3406
2649061d 3407int
b8de8283 3408gdbarch_call_dummy_location (struct gdbarch *gdbarch)
2649061d 3409{
8de9bdc4 3410 gdb_assert (gdbarch != NULL);
b8de8283
AC
3411 /* Skip verify of call_dummy_location, invalid_p == 0 */
3412 if (gdbarch_debug >= 2)
3413 fprintf_unfiltered (gdb_stdlog, "gdbarch_call_dummy_location called\n");
3414 return gdbarch->call_dummy_location;
2649061d
AC
3415}
3416
b8de8283
AC
3417void
3418set_gdbarch_call_dummy_location (struct gdbarch *gdbarch,
3419 int call_dummy_location)
3420{
3421 gdbarch->call_dummy_location = call_dummy_location;
3422}
3423
b8de8283
AC
3424CORE_ADDR
3425gdbarch_deprecated_call_dummy_start_offset (struct gdbarch *gdbarch)
3426{
3427 gdb_assert (gdbarch != NULL);
3428 if (gdbarch_debug >= 2)
3429 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_call_dummy_start_offset called\n");
3430 return gdbarch->deprecated_call_dummy_start_offset;
3431}
3432
3433void
3434set_gdbarch_deprecated_call_dummy_start_offset (struct gdbarch *gdbarch,
3435 CORE_ADDR deprecated_call_dummy_start_offset)
3436{
3437 gdbarch->deprecated_call_dummy_start_offset = deprecated_call_dummy_start_offset;
3438}
3439
3440CORE_ADDR
3441gdbarch_deprecated_call_dummy_breakpoint_offset (struct gdbarch *gdbarch)
3442{
3443 gdb_assert (gdbarch != NULL);
3444 if (gdbarch_debug >= 2)
3445 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_call_dummy_breakpoint_offset called\n");
3446 return gdbarch->deprecated_call_dummy_breakpoint_offset;
3447}
3448
3449void
3450set_gdbarch_deprecated_call_dummy_breakpoint_offset (struct gdbarch *gdbarch,
3451 CORE_ADDR deprecated_call_dummy_breakpoint_offset)
3452{
3453 gdbarch->deprecated_call_dummy_breakpoint_offset = deprecated_call_dummy_breakpoint_offset;
2649061d
AC
3454}
3455
01fb7433 3456int
b8de8283 3457gdbarch_deprecated_call_dummy_length (struct gdbarch *gdbarch)
01fb7433 3458{
8de9bdc4 3459 gdb_assert (gdbarch != NULL);
01fb7433 3460 if (gdbarch_debug >= 2)
b8de8283
AC
3461 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_call_dummy_length called\n");
3462 return gdbarch->deprecated_call_dummy_length;
01fb7433
AC
3463}
3464
3465void
b8de8283
AC
3466set_gdbarch_deprecated_call_dummy_length (struct gdbarch *gdbarch,
3467 int deprecated_call_dummy_length)
01fb7433 3468{
b8de8283
AC
3469 gdbarch->deprecated_call_dummy_length = deprecated_call_dummy_length;
3470}
3471
3472LONGEST *
3473gdbarch_deprecated_call_dummy_words (struct gdbarch *gdbarch)
3474{
3475 gdb_assert (gdbarch != NULL);
3476 /* Skip verify of deprecated_call_dummy_words, invalid_p == 0 */
3477 if (gdbarch_debug >= 2)
3478 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_call_dummy_words called\n");
3479 return gdbarch->deprecated_call_dummy_words;
3480}
3481
3482void
3483set_gdbarch_deprecated_call_dummy_words (struct gdbarch *gdbarch,
3484 LONGEST * deprecated_call_dummy_words)
3485{
3486 gdbarch->deprecated_call_dummy_words = deprecated_call_dummy_words;
01fb7433
AC
3487}
3488
3489int
b8de8283 3490gdbarch_deprecated_sizeof_call_dummy_words (struct gdbarch *gdbarch)
01fb7433 3491{
8de9bdc4 3492 gdb_assert (gdbarch != NULL);
b8de8283 3493 /* Skip verify of deprecated_sizeof_call_dummy_words, invalid_p == 0 */
01fb7433 3494 if (gdbarch_debug >= 2)
b8de8283
AC
3495 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_sizeof_call_dummy_words called\n");
3496 return gdbarch->deprecated_sizeof_call_dummy_words;
01fb7433
AC
3497}
3498
3499void
b8de8283
AC
3500set_gdbarch_deprecated_sizeof_call_dummy_words (struct gdbarch *gdbarch,
3501 int deprecated_sizeof_call_dummy_words)
01fb7433 3502{
b8de8283 3503 gdbarch->deprecated_sizeof_call_dummy_words = deprecated_sizeof_call_dummy_words;
01fb7433
AC
3504}
3505
0f71a2f6 3506int
b8de8283 3507gdbarch_deprecated_fix_call_dummy_p (struct gdbarch *gdbarch)
0f71a2f6 3508{
8de9bdc4 3509 gdb_assert (gdbarch != NULL);
956ac328 3510 return gdbarch->deprecated_fix_call_dummy != NULL;
b8de8283
AC
3511}
3512
3513void
3514gdbarch_deprecated_fix_call_dummy (struct gdbarch *gdbarch, char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs, struct value **args, struct type *type, int gcc_p)
3515{
3516 gdb_assert (gdbarch != NULL);
956ac328 3517 gdb_assert (gdbarch->deprecated_fix_call_dummy != NULL);
0f71a2f6 3518 if (gdbarch_debug >= 2)
b8de8283
AC
3519 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_fix_call_dummy called\n");
3520 gdbarch->deprecated_fix_call_dummy (dummy, pc, fun, nargs, args, type, gcc_p);
0f71a2f6
JM
3521}
3522
3523void
b8de8283
AC
3524set_gdbarch_deprecated_fix_call_dummy (struct gdbarch *gdbarch,
3525 gdbarch_deprecated_fix_call_dummy_ftype deprecated_fix_call_dummy)
0f71a2f6 3526{
b8de8283 3527 gdbarch->deprecated_fix_call_dummy = deprecated_fix_call_dummy;
0f71a2f6
JM
3528}
3529
3530int
b8de8283 3531gdbarch_push_dummy_code_p (struct gdbarch *gdbarch)
0f71a2f6 3532{
8de9bdc4 3533 gdb_assert (gdbarch != NULL);
956ac328 3534 return gdbarch->push_dummy_code != NULL;
b8de8283
AC
3535}
3536
3537CORE_ADDR
3538gdbarch_push_dummy_code (struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funaddr, int using_gcc, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr)
3539{
3540 gdb_assert (gdbarch != NULL);
956ac328 3541 gdb_assert (gdbarch->push_dummy_code != NULL);
0f71a2f6 3542 if (gdbarch_debug >= 2)
b8de8283
AC
3543 fprintf_unfiltered (gdb_stdlog, "gdbarch_push_dummy_code called\n");
3544 return gdbarch->push_dummy_code (gdbarch, sp, funaddr, using_gcc, args, nargs, value_type, real_pc, bp_addr);
0f71a2f6
JM
3545}
3546
3547void
b8de8283
AC
3548set_gdbarch_push_dummy_code (struct gdbarch *gdbarch,
3549 gdbarch_push_dummy_code_ftype push_dummy_code)
0f71a2f6 3550{
b8de8283 3551 gdbarch->push_dummy_code = push_dummy_code;
0f71a2f6
JM
3552}
3553
b8de8283
AC
3554int
3555gdbarch_deprecated_push_dummy_frame_p (struct gdbarch *gdbarch)
0f71a2f6 3556{
8de9bdc4 3557 gdb_assert (gdbarch != NULL);
956ac328 3558 return gdbarch->deprecated_push_dummy_frame != NULL;
b8de8283
AC
3559}
3560
3561void
3562gdbarch_deprecated_push_dummy_frame (struct gdbarch *gdbarch)
3563{
3564 gdb_assert (gdbarch != NULL);
956ac328 3565 gdb_assert (gdbarch->deprecated_push_dummy_frame != NULL);
0f71a2f6 3566 if (gdbarch_debug >= 2)
b8de8283
AC
3567 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_push_dummy_frame called\n");
3568 gdbarch->deprecated_push_dummy_frame ();
0f71a2f6
JM
3569}
3570
3571void
b8de8283
AC
3572set_gdbarch_deprecated_push_dummy_frame (struct gdbarch *gdbarch,
3573 gdbarch_deprecated_push_dummy_frame_ftype deprecated_push_dummy_frame)
0f71a2f6 3574{
b8de8283 3575 gdbarch->deprecated_push_dummy_frame = deprecated_push_dummy_frame;
0f71a2f6
JM
3576}
3577
b8de8283
AC
3578int
3579gdbarch_deprecated_do_registers_info_p (struct gdbarch *gdbarch)
0f71a2f6 3580{
8de9bdc4 3581 gdb_assert (gdbarch != NULL);
956ac328 3582 return gdbarch->deprecated_do_registers_info != NULL;
b8de8283
AC
3583}
3584
3585void
3586gdbarch_deprecated_do_registers_info (struct gdbarch *gdbarch, int reg_nr, int fpregs)
3587{
3588 gdb_assert (gdbarch != NULL);
956ac328 3589 gdb_assert (gdbarch->deprecated_do_registers_info != NULL);
0f71a2f6 3590 if (gdbarch_debug >= 2)
b8de8283
AC
3591 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_do_registers_info called\n");
3592 gdbarch->deprecated_do_registers_info (reg_nr, fpregs);
0f71a2f6
JM
3593}
3594
3595void
b8de8283
AC
3596set_gdbarch_deprecated_do_registers_info (struct gdbarch *gdbarch,
3597 gdbarch_deprecated_do_registers_info_ftype deprecated_do_registers_info)
0f71a2f6 3598{
b8de8283
AC
3599 gdbarch->deprecated_do_registers_info = deprecated_do_registers_info;
3600}
3601
3602void
3603gdbarch_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, int regnum, int all)
3604{
3605 gdb_assert (gdbarch != NULL);
956ac328 3606 gdb_assert (gdbarch->print_registers_info != NULL);
b8de8283
AC
3607 if (gdbarch_debug >= 2)
3608 fprintf_unfiltered (gdb_stdlog, "gdbarch_print_registers_info called\n");
3609 gdbarch->print_registers_info (gdbarch, file, frame, regnum, all);
3610}
3611
3612void
3613set_gdbarch_print_registers_info (struct gdbarch *gdbarch,
3614 gdbarch_print_registers_info_ftype print_registers_info)
3615{
3616 gdbarch->print_registers_info = print_registers_info;
0f71a2f6
JM
3617}
3618
0f71a2f6 3619int
b8de8283
AC
3620gdbarch_print_float_info_p (struct gdbarch *gdbarch)
3621{
3622 gdb_assert (gdbarch != NULL);
956ac328 3623 return gdbarch->print_float_info != NULL;
b8de8283
AC
3624}
3625
3626void
3627gdbarch_print_float_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, const char *args)
0f71a2f6 3628{
8de9bdc4 3629 gdb_assert (gdbarch != NULL);
956ac328 3630 gdb_assert (gdbarch->print_float_info != NULL);
0f71a2f6 3631 if (gdbarch_debug >= 2)
b8de8283
AC
3632 fprintf_unfiltered (gdb_stdlog, "gdbarch_print_float_info called\n");
3633 gdbarch->print_float_info (gdbarch, file, frame, args);
0f71a2f6
JM
3634}
3635
3636void
b8de8283
AC
3637set_gdbarch_print_float_info (struct gdbarch *gdbarch,
3638 gdbarch_print_float_info_ftype print_float_info)
0f71a2f6 3639{
b8de8283
AC
3640 gdbarch->print_float_info = print_float_info;
3641}
3642
3643int
3644gdbarch_print_vector_info_p (struct gdbarch *gdbarch)
3645{
3646 gdb_assert (gdbarch != NULL);
956ac328 3647 return gdbarch->print_vector_info != NULL;
b8de8283
AC
3648}
3649
3650void
3651gdbarch_print_vector_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, const char *args)
3652{
3653 gdb_assert (gdbarch != NULL);
956ac328 3654 gdb_assert (gdbarch->print_vector_info != NULL);
b8de8283
AC
3655 if (gdbarch_debug >= 2)
3656 fprintf_unfiltered (gdb_stdlog, "gdbarch_print_vector_info called\n");
3657 gdbarch->print_vector_info (gdbarch, file, frame, args);
0f71a2f6
JM
3658}
3659
b8de8283
AC
3660void
3661set_gdbarch_print_vector_info (struct gdbarch *gdbarch,
3662 gdbarch_print_vector_info_ftype print_vector_info)
ae45cd16 3663{
b8de8283 3664 gdbarch->print_vector_info = print_vector_info;
ae45cd16
AC
3665}
3666
3667int
b8de8283 3668gdbarch_register_sim_regno (struct gdbarch *gdbarch, int reg_nr)
0f71a2f6 3669{
8de9bdc4 3670 gdb_assert (gdbarch != NULL);
956ac328 3671 gdb_assert (gdbarch->register_sim_regno != NULL);
0f71a2f6 3672 if (gdbarch_debug >= 2)
b8de8283
AC
3673 fprintf_unfiltered (gdb_stdlog, "gdbarch_register_sim_regno called\n");
3674 return gdbarch->register_sim_regno (reg_nr);
0f71a2f6
JM
3675}
3676
3677void
b8de8283
AC
3678set_gdbarch_register_sim_regno (struct gdbarch *gdbarch,
3679 gdbarch_register_sim_regno_ftype register_sim_regno)
0f71a2f6 3680{
b8de8283 3681 gdbarch->register_sim_regno = register_sim_regno;
0f71a2f6
JM
3682}
3683
b8de8283
AC
3684int
3685gdbarch_register_bytes_ok_p (struct gdbarch *gdbarch)
0f71a2f6 3686{
8de9bdc4 3687 gdb_assert (gdbarch != NULL);
956ac328 3688 return gdbarch->register_bytes_ok != NULL;
0f71a2f6
JM
3689}
3690
3691int
b8de8283 3692gdbarch_register_bytes_ok (struct gdbarch *gdbarch, long nr_bytes)
0f71a2f6 3693{
8de9bdc4 3694 gdb_assert (gdbarch != NULL);
956ac328 3695 gdb_assert (gdbarch->register_bytes_ok != NULL);
0f71a2f6 3696 if (gdbarch_debug >= 2)
b8de8283
AC
3697 fprintf_unfiltered (gdb_stdlog, "gdbarch_register_bytes_ok called\n");
3698 return gdbarch->register_bytes_ok (nr_bytes);
0f71a2f6
JM
3699}
3700
3701void
b8de8283
AC
3702set_gdbarch_register_bytes_ok (struct gdbarch *gdbarch,
3703 gdbarch_register_bytes_ok_ftype register_bytes_ok)
0f71a2f6 3704{
b8de8283 3705 gdbarch->register_bytes_ok = register_bytes_ok;
0f71a2f6
JM
3706}
3707
3708int
b8de8283 3709gdbarch_cannot_fetch_register (struct gdbarch *gdbarch, int regnum)
0f71a2f6 3710{
8de9bdc4 3711 gdb_assert (gdbarch != NULL);
956ac328 3712 gdb_assert (gdbarch->cannot_fetch_register != NULL);
b8de8283
AC
3713 if (gdbarch_debug >= 2)
3714 fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_fetch_register called\n");
3715 return gdbarch->cannot_fetch_register (regnum);
3716}
3717
3718void
3719set_gdbarch_cannot_fetch_register (struct gdbarch *gdbarch,
3720 gdbarch_cannot_fetch_register_ftype cannot_fetch_register)
3721{
3722 gdbarch->cannot_fetch_register = cannot_fetch_register;
0f71a2f6
JM
3723}
3724
3725int
b8de8283 3726gdbarch_cannot_store_register (struct gdbarch *gdbarch, int regnum)
0f71a2f6 3727{
8de9bdc4 3728 gdb_assert (gdbarch != NULL);
956ac328 3729 gdb_assert (gdbarch->cannot_store_register != NULL);
0f71a2f6 3730 if (gdbarch_debug >= 2)
b8de8283
AC
3731 fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_store_register called\n");
3732 return gdbarch->cannot_store_register (regnum);
0f71a2f6
JM
3733}
3734
3735void
b8de8283
AC
3736set_gdbarch_cannot_store_register (struct gdbarch *gdbarch,
3737 gdbarch_cannot_store_register_ftype cannot_store_register)
0f71a2f6 3738{
b8de8283 3739 gdbarch->cannot_store_register = cannot_store_register;
0f71a2f6
JM
3740}
3741
e8ab51f7 3742int
b8de8283 3743gdbarch_get_longjmp_target_p (struct gdbarch *gdbarch)
e8ab51f7
AC
3744{
3745 gdb_assert (gdbarch != NULL);
956ac328 3746 return gdbarch->get_longjmp_target != NULL;
e8ab51f7
AC
3747}
3748
b8de8283
AC
3749int
3750gdbarch_get_longjmp_target (struct gdbarch *gdbarch, CORE_ADDR *pc)
0f71a2f6 3751{
8de9bdc4 3752 gdb_assert (gdbarch != NULL);
956ac328 3753 gdb_assert (gdbarch->get_longjmp_target != NULL);
0f71a2f6 3754 if (gdbarch_debug >= 2)
b8de8283
AC
3755 fprintf_unfiltered (gdb_stdlog, "gdbarch_get_longjmp_target called\n");
3756 return gdbarch->get_longjmp_target (pc);
0f71a2f6
JM
3757}
3758
3759void
b8de8283
AC
3760set_gdbarch_get_longjmp_target (struct gdbarch *gdbarch,
3761 gdbarch_get_longjmp_target_ftype get_longjmp_target)
0f71a2f6 3762{
b8de8283 3763 gdbarch->get_longjmp_target = get_longjmp_target;
0f71a2f6
JM
3764}
3765
7043d8dc 3766int
b8de8283 3767gdbarch_deprecated_pc_in_call_dummy_p (struct gdbarch *gdbarch)
7043d8dc
AC
3768{
3769 gdb_assert (gdbarch != NULL);
b8de8283 3770 return gdbarch->deprecated_pc_in_call_dummy != generic_pc_in_call_dummy;
7043d8dc
AC
3771}
3772
b8de8283
AC
3773int
3774gdbarch_deprecated_pc_in_call_dummy (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address)
7043d8dc
AC
3775{
3776 gdb_assert (gdbarch != NULL);
956ac328
AC
3777 gdb_assert (gdbarch->deprecated_pc_in_call_dummy != NULL);
3778 /* Do not check predicate: gdbarch->deprecated_pc_in_call_dummy != generic_pc_in_call_dummy, allow call. */
7043d8dc 3779 if (gdbarch_debug >= 2)
b8de8283
AC
3780 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_pc_in_call_dummy called\n");
3781 return gdbarch->deprecated_pc_in_call_dummy (pc, sp, frame_address);
7043d8dc
AC
3782}
3783
3784void
b8de8283
AC
3785set_gdbarch_deprecated_pc_in_call_dummy (struct gdbarch *gdbarch,
3786 gdbarch_deprecated_pc_in_call_dummy_ftype deprecated_pc_in_call_dummy)
7043d8dc 3787{
b8de8283 3788 gdbarch->deprecated_pc_in_call_dummy = deprecated_pc_in_call_dummy;
7043d8dc
AC
3789}
3790
2ca6c561
AC
3791int
3792gdbarch_deprecated_init_frame_pc_first_p (struct gdbarch *gdbarch)
3793{
3794 gdb_assert (gdbarch != NULL);
956ac328 3795 return gdbarch->deprecated_init_frame_pc_first != NULL;
2ca6c561
AC
3796}
3797
97f46953 3798CORE_ADDR
2ca6c561 3799gdbarch_deprecated_init_frame_pc_first (struct gdbarch *gdbarch, int fromleaf, struct frame_info *prev)
10312cc4 3800{
8de9bdc4 3801 gdb_assert (gdbarch != NULL);
956ac328 3802 gdb_assert (gdbarch->deprecated_init_frame_pc_first != NULL);
10312cc4 3803 if (gdbarch_debug >= 2)
2ca6c561 3804 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_init_frame_pc_first called\n");
97f46953 3805 return gdbarch->deprecated_init_frame_pc_first (fromleaf, prev);
10312cc4
AC
3806}
3807
3808void
2ca6c561
AC
3809set_gdbarch_deprecated_init_frame_pc_first (struct gdbarch *gdbarch,
3810 gdbarch_deprecated_init_frame_pc_first_ftype deprecated_init_frame_pc_first)
10312cc4 3811{
2ca6c561 3812 gdbarch->deprecated_init_frame_pc_first = deprecated_init_frame_pc_first;
10312cc4
AC
3813}
3814
a5afb99f
AC
3815int
3816gdbarch_deprecated_init_frame_pc_p (struct gdbarch *gdbarch)
3817{
3818 gdb_assert (gdbarch != NULL);
956ac328 3819 return gdbarch->deprecated_init_frame_pc != NULL;
a5afb99f
AC
3820}
3821
97f46953 3822CORE_ADDR
a5afb99f 3823gdbarch_deprecated_init_frame_pc (struct gdbarch *gdbarch, int fromleaf, struct frame_info *prev)
10312cc4 3824{
8de9bdc4 3825 gdb_assert (gdbarch != NULL);
956ac328 3826 gdb_assert (gdbarch->deprecated_init_frame_pc != NULL);
10312cc4 3827 if (gdbarch_debug >= 2)
a5afb99f
AC
3828 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_init_frame_pc called\n");
3829 return gdbarch->deprecated_init_frame_pc (fromleaf, prev);
10312cc4
AC
3830}
3831
3832void
a5afb99f
AC
3833set_gdbarch_deprecated_init_frame_pc (struct gdbarch *gdbarch,
3834 gdbarch_deprecated_init_frame_pc_ftype deprecated_init_frame_pc)
10312cc4 3835{
a5afb99f 3836 gdbarch->deprecated_init_frame_pc = deprecated_init_frame_pc;
10312cc4
AC
3837}
3838
0f71a2f6 3839int
104c1213 3840gdbarch_believe_pcc_promotion (struct gdbarch *gdbarch)
0f71a2f6 3841{
8de9bdc4 3842 gdb_assert (gdbarch != NULL);
0f71a2f6 3843 if (gdbarch_debug >= 2)
0f71a2f6
JM
3844 fprintf_unfiltered (gdb_stdlog, "gdbarch_believe_pcc_promotion called\n");
3845 return gdbarch->believe_pcc_promotion;
3846}
3847
3848void
104c1213
JM
3849set_gdbarch_believe_pcc_promotion (struct gdbarch *gdbarch,
3850 int believe_pcc_promotion)
0f71a2f6
JM
3851{
3852 gdbarch->believe_pcc_promotion = believe_pcc_promotion;
3853}
3854
3855int
104c1213 3856gdbarch_believe_pcc_promotion_type (struct gdbarch *gdbarch)
0f71a2f6 3857{
8de9bdc4 3858 gdb_assert (gdbarch != NULL);
0f71a2f6 3859 if (gdbarch_debug >= 2)
0f71a2f6
JM
3860 fprintf_unfiltered (gdb_stdlog, "gdbarch_believe_pcc_promotion_type called\n");
3861 return gdbarch->believe_pcc_promotion_type;
3862}
3863
3864void
104c1213
JM
3865set_gdbarch_believe_pcc_promotion_type (struct gdbarch *gdbarch,
3866 int believe_pcc_promotion_type)
0f71a2f6
JM
3867{
3868 gdbarch->believe_pcc_promotion_type = believe_pcc_promotion_type;
3869}
3870
a216a322 3871int
129c1cd6 3872gdbarch_deprecated_get_saved_register_p (struct gdbarch *gdbarch)
a216a322
AC
3873{
3874 gdb_assert (gdbarch != NULL);
956ac328 3875 return gdbarch->deprecated_get_saved_register != NULL;
a216a322
AC
3876}
3877
0f71a2f6 3878void
129c1cd6 3879gdbarch_deprecated_get_saved_register (struct gdbarch *gdbarch, char *raw_buffer, int *optimized, CORE_ADDR *addrp, struct frame_info *frame, int regnum, enum lval_type *lval)
0f71a2f6 3880{
8de9bdc4 3881 gdb_assert (gdbarch != NULL);
956ac328 3882 gdb_assert (gdbarch->deprecated_get_saved_register != NULL);
0f71a2f6 3883 if (gdbarch_debug >= 2)
129c1cd6
AC
3884 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_get_saved_register called\n");
3885 gdbarch->deprecated_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval);
0f71a2f6
JM
3886}
3887
3888void
129c1cd6
AC
3889set_gdbarch_deprecated_get_saved_register (struct gdbarch *gdbarch,
3890 gdbarch_deprecated_get_saved_register_ftype deprecated_get_saved_register)
0f71a2f6 3891{
129c1cd6 3892 gdbarch->deprecated_get_saved_register = deprecated_get_saved_register;
0f71a2f6
JM
3893}
3894
cd0bfa36
AC
3895int
3896gdbarch_deprecated_register_convertible_p (struct gdbarch *gdbarch)
3897{
3898 gdb_assert (gdbarch != NULL);
3899 return gdbarch->deprecated_register_convertible != NULL;
3900}
3901
0f71a2f6 3902int
781a750d 3903gdbarch_deprecated_register_convertible (struct gdbarch *gdbarch, int nr)
0f71a2f6 3904{
8de9bdc4 3905 gdb_assert (gdbarch != NULL);
956ac328 3906 gdb_assert (gdbarch->deprecated_register_convertible != NULL);
0f71a2f6 3907 if (gdbarch_debug >= 2)
781a750d
AC
3908 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_register_convertible called\n");
3909 return gdbarch->deprecated_register_convertible (nr);
0f71a2f6
JM
3910}
3911
3912void
781a750d
AC
3913set_gdbarch_deprecated_register_convertible (struct gdbarch *gdbarch,
3914 gdbarch_deprecated_register_convertible_ftype deprecated_register_convertible)
0f71a2f6 3915{
781a750d 3916 gdbarch->deprecated_register_convertible = deprecated_register_convertible;
0f71a2f6
JM
3917}
3918
3919void
781a750d 3920gdbarch_deprecated_register_convert_to_virtual (struct gdbarch *gdbarch, int regnum, struct type *type, char *from, char *to)
0f71a2f6 3921{
8de9bdc4 3922 gdb_assert (gdbarch != NULL);
956ac328 3923 gdb_assert (gdbarch->deprecated_register_convert_to_virtual != NULL);
0f71a2f6 3924 if (gdbarch_debug >= 2)
781a750d
AC
3925 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_register_convert_to_virtual called\n");
3926 gdbarch->deprecated_register_convert_to_virtual (regnum, type, from, to);
0f71a2f6
JM
3927}
3928
3929void
781a750d
AC
3930set_gdbarch_deprecated_register_convert_to_virtual (struct gdbarch *gdbarch,
3931 gdbarch_deprecated_register_convert_to_virtual_ftype deprecated_register_convert_to_virtual)
0f71a2f6 3932{
781a750d 3933 gdbarch->deprecated_register_convert_to_virtual = deprecated_register_convert_to_virtual;
0f71a2f6
JM
3934}
3935
3936void
781a750d 3937gdbarch_deprecated_register_convert_to_raw (struct gdbarch *gdbarch, struct type *type, int regnum, const char *from, char *to)
0f71a2f6 3938{
8de9bdc4 3939 gdb_assert (gdbarch != NULL);
956ac328 3940 gdb_assert (gdbarch->deprecated_register_convert_to_raw != NULL);
0f71a2f6 3941 if (gdbarch_debug >= 2)
781a750d
AC
3942 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_register_convert_to_raw called\n");
3943 gdbarch->deprecated_register_convert_to_raw (type, regnum, from, to);
0f71a2f6
JM
3944}
3945
3946void
781a750d
AC
3947set_gdbarch_deprecated_register_convert_to_raw (struct gdbarch *gdbarch,
3948 gdbarch_deprecated_register_convert_to_raw_ftype deprecated_register_convert_to_raw)
0f71a2f6 3949{
781a750d 3950 gdbarch->deprecated_register_convert_to_raw = deprecated_register_convert_to_raw;
0f71a2f6
JM
3951}
3952
13d01224 3953int
ff2e87ac 3954gdbarch_convert_register_p (struct gdbarch *gdbarch, int regnum, struct type *type)
13d01224
AC
3955{
3956 gdb_assert (gdbarch != NULL);
956ac328 3957 gdb_assert (gdbarch->convert_register_p != NULL);
13d01224
AC
3958 if (gdbarch_debug >= 2)
3959 fprintf_unfiltered (gdb_stdlog, "gdbarch_convert_register_p called\n");
ff2e87ac 3960 return gdbarch->convert_register_p (regnum, type);
13d01224
AC
3961}
3962
3963void
3964set_gdbarch_convert_register_p (struct gdbarch *gdbarch,
3965 gdbarch_convert_register_p_ftype convert_register_p)
3966{
3967 gdbarch->convert_register_p = convert_register_p;
3968}
3969
3970void
ff2e87ac 3971gdbarch_register_to_value (struct gdbarch *gdbarch, struct frame_info *frame, int regnum, struct type *type, void *buf)
13d01224
AC
3972{
3973 gdb_assert (gdbarch != NULL);
956ac328 3974 gdb_assert (gdbarch->register_to_value != NULL);
13d01224
AC
3975 if (gdbarch_debug >= 2)
3976 fprintf_unfiltered (gdb_stdlog, "gdbarch_register_to_value called\n");
ff2e87ac 3977 gdbarch->register_to_value (frame, regnum, type, buf);
13d01224
AC
3978}
3979
3980void
3981set_gdbarch_register_to_value (struct gdbarch *gdbarch,
3982 gdbarch_register_to_value_ftype register_to_value)
3983{
3984 gdbarch->register_to_value = register_to_value;
3985}
3986
3987void
ff2e87ac 3988gdbarch_value_to_register (struct gdbarch *gdbarch, struct frame_info *frame, int regnum, struct type *type, const void *buf)
13d01224
AC
3989{
3990 gdb_assert (gdbarch != NULL);
956ac328 3991 gdb_assert (gdbarch->value_to_register != NULL);
13d01224
AC
3992 if (gdbarch_debug >= 2)
3993 fprintf_unfiltered (gdb_stdlog, "gdbarch_value_to_register called\n");
ff2e87ac 3994 gdbarch->value_to_register (frame, regnum, type, buf);
13d01224
AC
3995}
3996
3997void
3998set_gdbarch_value_to_register (struct gdbarch *gdbarch,
3999 gdbarch_value_to_register_ftype value_to_register)
4000{
4001 gdbarch->value_to_register = value_to_register;
4002}
4003
4478b372 4004CORE_ADDR
66140c26 4005gdbarch_pointer_to_address (struct gdbarch *gdbarch, struct type *type, const void *buf)
4478b372 4006{
8de9bdc4 4007 gdb_assert (gdbarch != NULL);
956ac328 4008 gdb_assert (gdbarch->pointer_to_address != NULL);
4478b372
JB
4009 if (gdbarch_debug >= 2)
4010 fprintf_unfiltered (gdb_stdlog, "gdbarch_pointer_to_address called\n");
4011 return gdbarch->pointer_to_address (type, buf);
4012}
4013
4014void
4015set_gdbarch_pointer_to_address (struct gdbarch *gdbarch,
4016 gdbarch_pointer_to_address_ftype pointer_to_address)
4017{
4018 gdbarch->pointer_to_address = pointer_to_address;
4019}
4020
4021void
ac2e2ef7 4022gdbarch_address_to_pointer (struct gdbarch *gdbarch, struct type *type, void *buf, CORE_ADDR addr)
4478b372 4023{
8de9bdc4 4024 gdb_assert (gdbarch != NULL);
956ac328 4025 gdb_assert (gdbarch->address_to_pointer != NULL);
4478b372
JB
4026 if (gdbarch_debug >= 2)
4027 fprintf_unfiltered (gdb_stdlog, "gdbarch_address_to_pointer called\n");
4028 gdbarch->address_to_pointer (type, buf, addr);
4029}
4030
4031void
4032set_gdbarch_address_to_pointer (struct gdbarch *gdbarch,
4033 gdbarch_address_to_pointer_ftype address_to_pointer)
4034{
4035 gdbarch->address_to_pointer = address_to_pointer;
4036}
4037
fc0c74b1
AC
4038int
4039gdbarch_integer_to_address_p (struct gdbarch *gdbarch)
4040{
8de9bdc4 4041 gdb_assert (gdbarch != NULL);
956ac328 4042 return gdbarch->integer_to_address != NULL;
fc0c74b1
AC
4043}
4044
4045CORE_ADDR
4046gdbarch_integer_to_address (struct gdbarch *gdbarch, struct type *type, void *buf)
4047{
8de9bdc4 4048 gdb_assert (gdbarch != NULL);
956ac328 4049 gdb_assert (gdbarch->integer_to_address != NULL);
fc0c74b1
AC
4050 if (gdbarch_debug >= 2)
4051 fprintf_unfiltered (gdb_stdlog, "gdbarch_integer_to_address called\n");
4052 return gdbarch->integer_to_address (type, buf);
4053}
4054
4055void
4056set_gdbarch_integer_to_address (struct gdbarch *gdbarch,
4057 gdbarch_integer_to_address_ftype integer_to_address)
4058{
4059 gdbarch->integer_to_address = integer_to_address;
4060}
4061
dedc2a2b 4062int
749b82f6 4063gdbarch_deprecated_pop_frame_p (struct gdbarch *gdbarch)
dedc2a2b
AC
4064{
4065 gdb_assert (gdbarch != NULL);
956ac328 4066 return gdbarch->deprecated_pop_frame != NULL;
dedc2a2b
AC
4067}
4068
0f71a2f6 4069void
749b82f6 4070gdbarch_deprecated_pop_frame (struct gdbarch *gdbarch)
0f71a2f6 4071{
8de9bdc4 4072 gdb_assert (gdbarch != NULL);
956ac328 4073 gdb_assert (gdbarch->deprecated_pop_frame != NULL);
0f71a2f6 4074 if (gdbarch_debug >= 2)
749b82f6
AC
4075 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_pop_frame called\n");
4076 gdbarch->deprecated_pop_frame ();
0f71a2f6
JM
4077}
4078
4079void
749b82f6
AC
4080set_gdbarch_deprecated_pop_frame (struct gdbarch *gdbarch,
4081 gdbarch_deprecated_pop_frame_ftype deprecated_pop_frame)
0f71a2f6 4082{
749b82f6 4083 gdbarch->deprecated_pop_frame = deprecated_pop_frame;
0f71a2f6
JM
4084}
4085
4183d812
AC
4086int
4087gdbarch_deprecated_store_struct_return_p (struct gdbarch *gdbarch)
4088{
4089 gdb_assert (gdbarch != NULL);
956ac328 4090 return gdbarch->deprecated_store_struct_return != NULL;
4183d812
AC
4091}
4092
0f71a2f6 4093void
4183d812 4094gdbarch_deprecated_store_struct_return (struct gdbarch *gdbarch, CORE_ADDR addr, CORE_ADDR sp)
0f71a2f6 4095{
8de9bdc4 4096 gdb_assert (gdbarch != NULL);
956ac328 4097 gdb_assert (gdbarch->deprecated_store_struct_return != NULL);
0f71a2f6 4098 if (gdbarch_debug >= 2)
4183d812
AC
4099 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_store_struct_return called\n");
4100 gdbarch->deprecated_store_struct_return (addr, sp);
0f71a2f6
JM
4101}
4102
4103void
4183d812
AC
4104set_gdbarch_deprecated_store_struct_return (struct gdbarch *gdbarch,
4105 gdbarch_deprecated_store_struct_return_ftype deprecated_store_struct_return)
0f71a2f6 4106{
4183d812 4107 gdbarch->deprecated_store_struct_return = deprecated_store_struct_return;
0f71a2f6
JM
4108}
4109
92ad9cd9
AC
4110int
4111gdbarch_return_value_p (struct gdbarch *gdbarch)
4112{
4113 gdb_assert (gdbarch != NULL);
4114 return gdbarch->return_value != NULL;
4115}
4116
4117enum return_value_convention
963e2bb7 4118gdbarch_return_value (struct gdbarch *gdbarch, struct type *valtype, struct regcache *regcache, void *readbuf, const void *writebuf)
92ad9cd9
AC
4119{
4120 gdb_assert (gdbarch != NULL);
4121 gdb_assert (gdbarch->return_value != NULL);
4122 if (gdbarch_debug >= 2)
4123 fprintf_unfiltered (gdb_stdlog, "gdbarch_return_value called\n");
963e2bb7 4124 return gdbarch->return_value (gdbarch, valtype, regcache, readbuf, writebuf);
92ad9cd9
AC
4125}
4126
4127void
4128set_gdbarch_return_value (struct gdbarch *gdbarch,
4129 gdbarch_return_value_ftype return_value)
4130{
4131 gdbarch->return_value = return_value;
4132}
4133
4134int
4135gdbarch_return_value_on_stack (struct gdbarch *gdbarch, struct type *type)
4136{
4137 gdb_assert (gdbarch != NULL);
4138 gdb_assert (gdbarch->return_value_on_stack != NULL);
4139 if (gdbarch_debug >= 2)
4140 fprintf_unfiltered (gdb_stdlog, "gdbarch_return_value_on_stack called\n");
4141 return gdbarch->return_value_on_stack (type);
4142}
4143
4144void
4145set_gdbarch_return_value_on_stack (struct gdbarch *gdbarch,
4146 gdbarch_return_value_on_stack_ftype return_value_on_stack)
4147{
4148 gdbarch->return_value_on_stack = return_value_on_stack;
4149}
4150
0f71a2f6 4151void
ebba8386
AC
4152gdbarch_extract_return_value (struct gdbarch *gdbarch, struct type *type, struct regcache *regcache, void *valbuf)
4153{
4154 gdb_assert (gdbarch != NULL);
956ac328 4155 gdb_assert (gdbarch->extract_return_value != NULL);
ebba8386
AC
4156 if (gdbarch_debug >= 2)
4157 fprintf_unfiltered (gdb_stdlog, "gdbarch_extract_return_value called\n");
4158 gdbarch->extract_return_value (type, regcache, valbuf);
4159}
4160
4161void
4162set_gdbarch_extract_return_value (struct gdbarch *gdbarch,
4163 gdbarch_extract_return_value_ftype extract_return_value)
4164{
4165 gdbarch->extract_return_value = extract_return_value;
4166}
4167
4168void
4169gdbarch_store_return_value (struct gdbarch *gdbarch, struct type *type, struct regcache *regcache, const void *valbuf)
0f71a2f6 4170{
8de9bdc4 4171 gdb_assert (gdbarch != NULL);
956ac328 4172 gdb_assert (gdbarch->store_return_value != NULL);
0f71a2f6 4173 if (gdbarch_debug >= 2)
0f71a2f6 4174 fprintf_unfiltered (gdb_stdlog, "gdbarch_store_return_value called\n");
ebba8386 4175 gdbarch->store_return_value (type, regcache, valbuf);
0f71a2f6
JM
4176}
4177
4178void
104c1213
JM
4179set_gdbarch_store_return_value (struct gdbarch *gdbarch,
4180 gdbarch_store_return_value_ftype store_return_value)
0f71a2f6
JM
4181{
4182 gdbarch->store_return_value = store_return_value;
4183}
4184
ebba8386
AC
4185void
4186gdbarch_deprecated_extract_return_value (struct gdbarch *gdbarch, struct type *type, char *regbuf, char *valbuf)
4187{
4188 gdb_assert (gdbarch != NULL);
956ac328 4189 gdb_assert (gdbarch->deprecated_extract_return_value != NULL);
ebba8386
AC
4190 if (gdbarch_debug >= 2)
4191 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_extract_return_value called\n");
4192 gdbarch->deprecated_extract_return_value (type, regbuf, valbuf);
4193}
4194
4195void
4196set_gdbarch_deprecated_extract_return_value (struct gdbarch *gdbarch,
4197 gdbarch_deprecated_extract_return_value_ftype deprecated_extract_return_value)
4198{
4199 gdbarch->deprecated_extract_return_value = deprecated_extract_return_value;
4200}
4201
4202void
4203gdbarch_deprecated_store_return_value (struct gdbarch *gdbarch, struct type *type, char *valbuf)
4204{
4205 gdb_assert (gdbarch != NULL);
956ac328 4206 gdb_assert (gdbarch->deprecated_store_return_value != NULL);
ebba8386
AC
4207 if (gdbarch_debug >= 2)
4208 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_store_return_value called\n");
4209 gdbarch->deprecated_store_return_value (type, valbuf);
4210}
4211
4212void
4213set_gdbarch_deprecated_store_return_value (struct gdbarch *gdbarch,
4214 gdbarch_deprecated_store_return_value_ftype deprecated_store_return_value)
4215{
4216 gdbarch->deprecated_store_return_value = deprecated_store_return_value;
4217}
4218
92ad9cd9
AC
4219int
4220gdbarch_use_struct_convention (struct gdbarch *gdbarch, int gcc_p, struct type *value_type)
4221{
4222 gdb_assert (gdbarch != NULL);
4223 gdb_assert (gdbarch->use_struct_convention != NULL);
4224 if (gdbarch_debug >= 2)
4225 fprintf_unfiltered (gdb_stdlog, "gdbarch_use_struct_convention called\n");
4226 return gdbarch->use_struct_convention (gcc_p, value_type);
4227}
4228
4229void
4230set_gdbarch_use_struct_convention (struct gdbarch *gdbarch,
4231 gdbarch_use_struct_convention_ftype use_struct_convention)
4232{
4233 gdbarch->use_struct_convention = use_struct_convention;
4234}
4235
049ee0e4 4236int
74055713 4237gdbarch_deprecated_extract_struct_value_address_p (struct gdbarch *gdbarch)
049ee0e4
AC
4238{
4239 gdb_assert (gdbarch != NULL);
74055713 4240 return gdbarch->deprecated_extract_struct_value_address != NULL;
049ee0e4
AC
4241}
4242
4243CORE_ADDR
74055713 4244gdbarch_deprecated_extract_struct_value_address (struct gdbarch *gdbarch, struct regcache *regcache)
049ee0e4
AC
4245{
4246 gdb_assert (gdbarch != NULL);
74055713 4247 gdb_assert (gdbarch->deprecated_extract_struct_value_address != NULL);
049ee0e4 4248 if (gdbarch_debug >= 2)
74055713
AC
4249 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_extract_struct_value_address called\n");
4250 return gdbarch->deprecated_extract_struct_value_address (regcache);
049ee0e4
AC
4251}
4252
4253void
74055713
AC
4254set_gdbarch_deprecated_extract_struct_value_address (struct gdbarch *gdbarch,
4255 gdbarch_deprecated_extract_struct_value_address_ftype deprecated_extract_struct_value_address)
049ee0e4 4256{
74055713 4257 gdbarch->deprecated_extract_struct_value_address = deprecated_extract_struct_value_address;
049ee0e4
AC
4258}
4259
8f871025 4260int
f30ee0bc 4261gdbarch_deprecated_frame_init_saved_regs_p (struct gdbarch *gdbarch)
8f871025
AC
4262{
4263 gdb_assert (gdbarch != NULL);
956ac328 4264 return gdbarch->deprecated_frame_init_saved_regs != NULL;
8f871025
AC
4265}
4266
0f71a2f6 4267void
f30ee0bc 4268gdbarch_deprecated_frame_init_saved_regs (struct gdbarch *gdbarch, struct frame_info *frame)
0f71a2f6 4269{
8de9bdc4 4270 gdb_assert (gdbarch != NULL);
956ac328 4271 gdb_assert (gdbarch->deprecated_frame_init_saved_regs != NULL);
0f71a2f6 4272 if (gdbarch_debug >= 2)
f30ee0bc
AC
4273 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_frame_init_saved_regs called\n");
4274 gdbarch->deprecated_frame_init_saved_regs (frame);
0f71a2f6
JM
4275}
4276
4277void
f30ee0bc
AC
4278set_gdbarch_deprecated_frame_init_saved_regs (struct gdbarch *gdbarch,
4279 gdbarch_deprecated_frame_init_saved_regs_ftype deprecated_frame_init_saved_regs)
0f71a2f6 4280{
f30ee0bc 4281 gdbarch->deprecated_frame_init_saved_regs = deprecated_frame_init_saved_regs;
0f71a2f6
JM
4282}
4283
5fdff426 4284int
e9582e71 4285gdbarch_deprecated_init_extra_frame_info_p (struct gdbarch *gdbarch)
5fdff426 4286{
8de9bdc4 4287 gdb_assert (gdbarch != NULL);
956ac328 4288 return gdbarch->deprecated_init_extra_frame_info != NULL;
5fdff426
AC
4289}
4290
0f71a2f6 4291void
e9582e71 4292gdbarch_deprecated_init_extra_frame_info (struct gdbarch *gdbarch, int fromleaf, struct frame_info *frame)
0f71a2f6 4293{
8de9bdc4 4294 gdb_assert (gdbarch != NULL);
956ac328 4295 gdb_assert (gdbarch->deprecated_init_extra_frame_info != NULL);
0f71a2f6 4296 if (gdbarch_debug >= 2)
e9582e71
AC
4297 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_init_extra_frame_info called\n");
4298 gdbarch->deprecated_init_extra_frame_info (fromleaf, frame);
0f71a2f6
JM
4299}
4300
4301void
e9582e71
AC
4302set_gdbarch_deprecated_init_extra_frame_info (struct gdbarch *gdbarch,
4303 gdbarch_deprecated_init_extra_frame_info_ftype deprecated_init_extra_frame_info)
0f71a2f6 4304{
e9582e71 4305 gdbarch->deprecated_init_extra_frame_info = deprecated_init_extra_frame_info;
0f71a2f6
JM
4306}
4307
4308CORE_ADDR
4309gdbarch_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR ip)
4310{
8de9bdc4 4311 gdb_assert (gdbarch != NULL);
956ac328 4312 gdb_assert (gdbarch->skip_prologue != NULL);
0f71a2f6 4313 if (gdbarch_debug >= 2)
0f71a2f6
JM
4314 fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_prologue called\n");
4315 return gdbarch->skip_prologue (ip);
4316}
4317
4318void
104c1213
JM
4319set_gdbarch_skip_prologue (struct gdbarch *gdbarch,
4320 gdbarch_skip_prologue_ftype skip_prologue)
0f71a2f6
JM
4321{
4322 gdbarch->skip_prologue = skip_prologue;
4323}
4324
4325int
4326gdbarch_inner_than (struct gdbarch *gdbarch, CORE_ADDR lhs, CORE_ADDR rhs)
4327{
8de9bdc4 4328 gdb_assert (gdbarch != NULL);
956ac328 4329 gdb_assert (gdbarch->inner_than != NULL);
0f71a2f6 4330 if (gdbarch_debug >= 2)
0f71a2f6
JM
4331 fprintf_unfiltered (gdb_stdlog, "gdbarch_inner_than called\n");
4332 return gdbarch->inner_than (lhs, rhs);
4333}
4334
4335void
104c1213
JM
4336set_gdbarch_inner_than (struct gdbarch *gdbarch,
4337 gdbarch_inner_than_ftype inner_than)
0f71a2f6
JM
4338{
4339 gdbarch->inner_than = inner_than;
4340}
4341
f4f9705a 4342const unsigned char *
adf40b2e 4343gdbarch_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
0f71a2f6 4344{
8de9bdc4 4345 gdb_assert (gdbarch != NULL);
956ac328 4346 gdb_assert (gdbarch->breakpoint_from_pc != NULL);
0f71a2f6 4347 if (gdbarch_debug >= 2)
0f71a2f6
JM
4348 fprintf_unfiltered (gdb_stdlog, "gdbarch_breakpoint_from_pc called\n");
4349 return gdbarch->breakpoint_from_pc (pcptr, lenptr);
4350}
4351
4352void
104c1213
JM
4353set_gdbarch_breakpoint_from_pc (struct gdbarch *gdbarch,
4354 gdbarch_breakpoint_from_pc_ftype breakpoint_from_pc)
0f71a2f6
JM
4355{
4356 gdbarch->breakpoint_from_pc = breakpoint_from_pc;
4357}
4358
a1131521
KB
4359int
4360gdbarch_adjust_breakpoint_address_p (struct gdbarch *gdbarch)
4361{
4362 gdb_assert (gdbarch != NULL);
4363 return gdbarch->adjust_breakpoint_address != NULL;
4364}
4365
4366CORE_ADDR
4367gdbarch_adjust_breakpoint_address (struct gdbarch *gdbarch, CORE_ADDR bpaddr)
4368{
4369 gdb_assert (gdbarch != NULL);
4370 gdb_assert (gdbarch->adjust_breakpoint_address != NULL);
4371 if (gdbarch_debug >= 2)
4372 fprintf_unfiltered (gdb_stdlog, "gdbarch_adjust_breakpoint_address called\n");
4373 return gdbarch->adjust_breakpoint_address (gdbarch, bpaddr);
4374}
4375
4376void
4377set_gdbarch_adjust_breakpoint_address (struct gdbarch *gdbarch,
4378 gdbarch_adjust_breakpoint_address_ftype adjust_breakpoint_address)
4379{
4380 gdbarch->adjust_breakpoint_address = adjust_breakpoint_address;
4381}
4382
917317f4
JM
4383int
4384gdbarch_memory_insert_breakpoint (struct gdbarch *gdbarch, CORE_ADDR addr, char *contents_cache)
4385{
8de9bdc4 4386 gdb_assert (gdbarch != NULL);
956ac328 4387 gdb_assert (gdbarch->memory_insert_breakpoint != NULL);
917317f4 4388 if (gdbarch_debug >= 2)
917317f4
JM
4389 fprintf_unfiltered (gdb_stdlog, "gdbarch_memory_insert_breakpoint called\n");
4390 return gdbarch->memory_insert_breakpoint (addr, contents_cache);
4391}
4392
4393void
4394set_gdbarch_memory_insert_breakpoint (struct gdbarch *gdbarch,
4395 gdbarch_memory_insert_breakpoint_ftype memory_insert_breakpoint)
4396{
4397 gdbarch->memory_insert_breakpoint = memory_insert_breakpoint;
4398}
4399
4400int
4401gdbarch_memory_remove_breakpoint (struct gdbarch *gdbarch, CORE_ADDR addr, char *contents_cache)
4402{
8de9bdc4 4403 gdb_assert (gdbarch != NULL);
956ac328 4404 gdb_assert (gdbarch->memory_remove_breakpoint != NULL);
917317f4 4405 if (gdbarch_debug >= 2)
917317f4
JM
4406 fprintf_unfiltered (gdb_stdlog, "gdbarch_memory_remove_breakpoint called\n");
4407 return gdbarch->memory_remove_breakpoint (addr, contents_cache);
4408}
4409
4410void
4411set_gdbarch_memory_remove_breakpoint (struct gdbarch *gdbarch,
4412 gdbarch_memory_remove_breakpoint_ftype memory_remove_breakpoint)
4413{
4414 gdbarch->memory_remove_breakpoint = memory_remove_breakpoint;
4415}
4416
0f71a2f6 4417CORE_ADDR
104c1213 4418gdbarch_decr_pc_after_break (struct gdbarch *gdbarch)
0f71a2f6 4419{
8de9bdc4 4420 gdb_assert (gdbarch != NULL);
71bd6bd4 4421 /* Skip verify of decr_pc_after_break, invalid_p == 0 */
0f71a2f6 4422 if (gdbarch_debug >= 2)
0f71a2f6
JM
4423 fprintf_unfiltered (gdb_stdlog, "gdbarch_decr_pc_after_break called\n");
4424 return gdbarch->decr_pc_after_break;
4425}
4426
4427void
104c1213
JM
4428set_gdbarch_decr_pc_after_break (struct gdbarch *gdbarch,
4429 CORE_ADDR decr_pc_after_break)
0f71a2f6
JM
4430{
4431 gdbarch->decr_pc_after_break = decr_pc_after_break;
4432}
4433
4434CORE_ADDR
104c1213 4435gdbarch_function_start_offset (struct gdbarch *gdbarch)
0f71a2f6 4436{
8de9bdc4 4437 gdb_assert (gdbarch != NULL);
6503b91e 4438 /* Skip verify of function_start_offset, invalid_p == 0 */
0f71a2f6 4439 if (gdbarch_debug >= 2)
0f71a2f6
JM
4440 fprintf_unfiltered (gdb_stdlog, "gdbarch_function_start_offset called\n");
4441 return gdbarch->function_start_offset;
4442}
4443
4444void
104c1213
JM
4445set_gdbarch_function_start_offset (struct gdbarch *gdbarch,
4446 CORE_ADDR function_start_offset)
0f71a2f6
JM
4447{
4448 gdbarch->function_start_offset = function_start_offset;
4449}
4450
4451void
f6684c31 4452gdbarch_remote_translate_xfer_address (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR gdb_addr, int gdb_len, CORE_ADDR *rem_addr, int *rem_len)
0f71a2f6 4453{
8de9bdc4 4454 gdb_assert (gdbarch != NULL);
956ac328 4455 gdb_assert (gdbarch->remote_translate_xfer_address != NULL);
0f71a2f6 4456 if (gdbarch_debug >= 2)
0f71a2f6 4457 fprintf_unfiltered (gdb_stdlog, "gdbarch_remote_translate_xfer_address called\n");
f6684c31 4458 gdbarch->remote_translate_xfer_address (gdbarch, regcache, gdb_addr, gdb_len, rem_addr, rem_len);
0f71a2f6
JM
4459}
4460
4461void
104c1213
JM
4462set_gdbarch_remote_translate_xfer_address (struct gdbarch *gdbarch,
4463 gdbarch_remote_translate_xfer_address_ftype remote_translate_xfer_address)
0f71a2f6
JM
4464{
4465 gdbarch->remote_translate_xfer_address = remote_translate_xfer_address;
4466}
4467
4468CORE_ADDR
104c1213 4469gdbarch_frame_args_skip (struct gdbarch *gdbarch)
0f71a2f6 4470{
8de9bdc4 4471 gdb_assert (gdbarch != NULL);
5867a2fb 4472 /* Skip verify of frame_args_skip, invalid_p == 0 */
0f71a2f6 4473 if (gdbarch_debug >= 2)
0f71a2f6
JM
4474 fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_args_skip called\n");
4475 return gdbarch->frame_args_skip;
4476}
4477
4478void
104c1213
JM
4479set_gdbarch_frame_args_skip (struct gdbarch *gdbarch,
4480 CORE_ADDR frame_args_skip)
0f71a2f6
JM
4481{
4482 gdbarch->frame_args_skip = frame_args_skip;
4483}
4484
4485int
19772a2c
AC
4486gdbarch_deprecated_frameless_function_invocation_p (struct gdbarch *gdbarch)
4487{
4488 gdb_assert (gdbarch != NULL);
4489 return gdbarch->deprecated_frameless_function_invocation != NULL;
4490}
4491
4492int
4493gdbarch_deprecated_frameless_function_invocation (struct gdbarch *gdbarch, struct frame_info *fi)
0f71a2f6 4494{
8de9bdc4 4495 gdb_assert (gdbarch != NULL);
19772a2c 4496 gdb_assert (gdbarch->deprecated_frameless_function_invocation != NULL);
0f71a2f6 4497 if (gdbarch_debug >= 2)
19772a2c
AC
4498 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_frameless_function_invocation called\n");
4499 return gdbarch->deprecated_frameless_function_invocation (fi);
0f71a2f6
JM
4500}
4501
4502void
19772a2c
AC
4503set_gdbarch_deprecated_frameless_function_invocation (struct gdbarch *gdbarch,
4504 gdbarch_deprecated_frameless_function_invocation_ftype deprecated_frameless_function_invocation)
0f71a2f6 4505{
19772a2c 4506 gdbarch->deprecated_frameless_function_invocation = deprecated_frameless_function_invocation;
0f71a2f6
JM
4507}
4508
d62d1979 4509int
618ce49f 4510gdbarch_deprecated_frame_chain_p (struct gdbarch *gdbarch)
d62d1979
AC
4511{
4512 gdb_assert (gdbarch != NULL);
956ac328 4513 return gdbarch->deprecated_frame_chain != NULL;
d62d1979
AC
4514}
4515
0f71a2f6 4516CORE_ADDR
618ce49f 4517gdbarch_deprecated_frame_chain (struct gdbarch *gdbarch, struct frame_info *frame)
0f71a2f6 4518{
8de9bdc4 4519 gdb_assert (gdbarch != NULL);
956ac328 4520 gdb_assert (gdbarch->deprecated_frame_chain != NULL);
0f71a2f6 4521 if (gdbarch_debug >= 2)
618ce49f
AC
4522 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_frame_chain called\n");
4523 return gdbarch->deprecated_frame_chain (frame);
0f71a2f6
JM
4524}
4525
4526void
618ce49f
AC
4527set_gdbarch_deprecated_frame_chain (struct gdbarch *gdbarch,
4528 gdbarch_deprecated_frame_chain_ftype deprecated_frame_chain)
0f71a2f6 4529{
618ce49f 4530 gdbarch->deprecated_frame_chain = deprecated_frame_chain;
0f71a2f6
JM
4531}
4532
51603483 4533int
618ce49f 4534gdbarch_deprecated_frame_chain_valid_p (struct gdbarch *gdbarch)
51603483
DJ
4535{
4536 gdb_assert (gdbarch != NULL);
956ac328 4537 return gdbarch->deprecated_frame_chain_valid != NULL;
51603483
DJ
4538}
4539
0f71a2f6 4540int
618ce49f 4541gdbarch_deprecated_frame_chain_valid (struct gdbarch *gdbarch, CORE_ADDR chain, struct frame_info *thisframe)
0f71a2f6 4542{
8de9bdc4 4543 gdb_assert (gdbarch != NULL);
956ac328 4544 gdb_assert (gdbarch->deprecated_frame_chain_valid != NULL);
0f71a2f6 4545 if (gdbarch_debug >= 2)
618ce49f
AC
4546 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_frame_chain_valid called\n");
4547 return gdbarch->deprecated_frame_chain_valid (chain, thisframe);
0f71a2f6
JM
4548}
4549
4550void
618ce49f
AC
4551set_gdbarch_deprecated_frame_chain_valid (struct gdbarch *gdbarch,
4552 gdbarch_deprecated_frame_chain_valid_ftype deprecated_frame_chain_valid)
0f71a2f6 4553{
618ce49f 4554 gdbarch->deprecated_frame_chain_valid = deprecated_frame_chain_valid;
0f71a2f6
JM
4555}
4556
d62d1979 4557int
8bedc050 4558gdbarch_deprecated_frame_saved_pc_p (struct gdbarch *gdbarch)
d62d1979
AC
4559{
4560 gdb_assert (gdbarch != NULL);
956ac328 4561 return gdbarch->deprecated_frame_saved_pc != NULL;
d62d1979
AC
4562}
4563
0f71a2f6 4564CORE_ADDR
8bedc050 4565gdbarch_deprecated_frame_saved_pc (struct gdbarch *gdbarch, struct frame_info *fi)
0f71a2f6 4566{
8de9bdc4 4567 gdb_assert (gdbarch != NULL);
956ac328 4568 gdb_assert (gdbarch->deprecated_frame_saved_pc != NULL);
0f71a2f6 4569 if (gdbarch_debug >= 2)
8bedc050
AC
4570 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_frame_saved_pc called\n");
4571 return gdbarch->deprecated_frame_saved_pc (fi);
0f71a2f6
JM
4572}
4573
4574void
8bedc050
AC
4575set_gdbarch_deprecated_frame_saved_pc (struct gdbarch *gdbarch,
4576 gdbarch_deprecated_frame_saved_pc_ftype deprecated_frame_saved_pc)
0f71a2f6 4577{
8bedc050 4578 gdbarch->deprecated_frame_saved_pc = deprecated_frame_saved_pc;
0f71a2f6
JM
4579}
4580
12cc2063
AC
4581int
4582gdbarch_unwind_pc_p (struct gdbarch *gdbarch)
4583{
4584 gdb_assert (gdbarch != NULL);
956ac328 4585 return gdbarch->unwind_pc != NULL;
12cc2063
AC
4586}
4587
4588CORE_ADDR
4589gdbarch_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
4590{
4591 gdb_assert (gdbarch != NULL);
956ac328 4592 gdb_assert (gdbarch->unwind_pc != NULL);
12cc2063
AC
4593 if (gdbarch_debug >= 2)
4594 fprintf_unfiltered (gdb_stdlog, "gdbarch_unwind_pc called\n");
4595 return gdbarch->unwind_pc (gdbarch, next_frame);
4596}
4597
4598void
4599set_gdbarch_unwind_pc (struct gdbarch *gdbarch,
4600 gdbarch_unwind_pc_ftype unwind_pc)
4601{
4602 gdbarch->unwind_pc = unwind_pc;
4603}
4604
a9e5fdc2
AC
4605int
4606gdbarch_unwind_sp_p (struct gdbarch *gdbarch)
4607{
4608 gdb_assert (gdbarch != NULL);
956ac328 4609 return gdbarch->unwind_sp != NULL;
a9e5fdc2
AC
4610}
4611
4612CORE_ADDR
4613gdbarch_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
4614{
4615 gdb_assert (gdbarch != NULL);
956ac328 4616 gdb_assert (gdbarch->unwind_sp != NULL);
a9e5fdc2
AC
4617 if (gdbarch_debug >= 2)
4618 fprintf_unfiltered (gdb_stdlog, "gdbarch_unwind_sp called\n");
4619 return gdbarch->unwind_sp (gdbarch, next_frame);
4620}
4621
4622void
4623set_gdbarch_unwind_sp (struct gdbarch *gdbarch,
4624 gdbarch_unwind_sp_ftype unwind_sp)
4625{
4626 gdbarch->unwind_sp = unwind_sp;
4627}
4628
42efa47a
AC
4629int
4630gdbarch_deprecated_frame_args_address_p (struct gdbarch *gdbarch)
4631{
4632 gdb_assert (gdbarch != NULL);
4633 return gdbarch->deprecated_frame_args_address != get_frame_base;
4634}
4635
0f71a2f6 4636CORE_ADDR
42efa47a 4637gdbarch_deprecated_frame_args_address (struct gdbarch *gdbarch, struct frame_info *fi)
0f71a2f6 4638{
8de9bdc4 4639 gdb_assert (gdbarch != NULL);
956ac328
AC
4640 gdb_assert (gdbarch->deprecated_frame_args_address != NULL);
4641 /* Do not check predicate: gdbarch->deprecated_frame_args_address != get_frame_base, allow call. */
0f71a2f6 4642 if (gdbarch_debug >= 2)
42efa47a
AC
4643 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_frame_args_address called\n");
4644 return gdbarch->deprecated_frame_args_address (fi);
0f71a2f6
JM
4645}
4646
4647void
42efa47a
AC
4648set_gdbarch_deprecated_frame_args_address (struct gdbarch *gdbarch,
4649 gdbarch_deprecated_frame_args_address_ftype deprecated_frame_args_address)
0f71a2f6 4650{
42efa47a
AC
4651 gdbarch->deprecated_frame_args_address = deprecated_frame_args_address;
4652}
4653
4654int
4655gdbarch_deprecated_frame_locals_address_p (struct gdbarch *gdbarch)
4656{
4657 gdb_assert (gdbarch != NULL);
4658 return gdbarch->deprecated_frame_locals_address != get_frame_base;
0f71a2f6
JM
4659}
4660
4661CORE_ADDR
42efa47a 4662gdbarch_deprecated_frame_locals_address (struct gdbarch *gdbarch, struct frame_info *fi)
0f71a2f6 4663{
8de9bdc4 4664 gdb_assert (gdbarch != NULL);
956ac328
AC
4665 gdb_assert (gdbarch->deprecated_frame_locals_address != NULL);
4666 /* Do not check predicate: gdbarch->deprecated_frame_locals_address != get_frame_base, allow call. */
0f71a2f6 4667 if (gdbarch_debug >= 2)
42efa47a
AC
4668 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_frame_locals_address called\n");
4669 return gdbarch->deprecated_frame_locals_address (fi);
0f71a2f6
JM
4670}
4671
4672void
42efa47a
AC
4673set_gdbarch_deprecated_frame_locals_address (struct gdbarch *gdbarch,
4674 gdbarch_deprecated_frame_locals_address_ftype deprecated_frame_locals_address)
0f71a2f6 4675{
42efa47a 4676 gdbarch->deprecated_frame_locals_address = deprecated_frame_locals_address;
0f71a2f6
JM
4677}
4678
4443bd83 4679int
6913c89a 4680gdbarch_deprecated_saved_pc_after_call_p (struct gdbarch *gdbarch)
4443bd83
AC
4681{
4682 gdb_assert (gdbarch != NULL);
956ac328 4683 return gdbarch->deprecated_saved_pc_after_call != NULL;
4443bd83
AC
4684}
4685
0f71a2f6 4686CORE_ADDR
6913c89a 4687gdbarch_deprecated_saved_pc_after_call (struct gdbarch *gdbarch, struct frame_info *frame)
0f71a2f6 4688{
8de9bdc4 4689 gdb_assert (gdbarch != NULL);
956ac328 4690 gdb_assert (gdbarch->deprecated_saved_pc_after_call != NULL);
0f71a2f6 4691 if (gdbarch_debug >= 2)
6913c89a
AC
4692 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_saved_pc_after_call called\n");
4693 return gdbarch->deprecated_saved_pc_after_call (frame);
0f71a2f6
JM
4694}
4695
4696void
6913c89a
AC
4697set_gdbarch_deprecated_saved_pc_after_call (struct gdbarch *gdbarch,
4698 gdbarch_deprecated_saved_pc_after_call_ftype deprecated_saved_pc_after_call)
0f71a2f6 4699{
6913c89a 4700 gdbarch->deprecated_saved_pc_after_call = deprecated_saved_pc_after_call;
0f71a2f6
JM
4701}
4702
983a287a
AC
4703int
4704gdbarch_frame_num_args_p (struct gdbarch *gdbarch)
4705{
4706 gdb_assert (gdbarch != NULL);
956ac328 4707 return gdbarch->frame_num_args != NULL;
983a287a
AC
4708}
4709
0f71a2f6
JM
4710int
4711gdbarch_frame_num_args (struct gdbarch *gdbarch, struct frame_info *frame)
4712{
8de9bdc4 4713 gdb_assert (gdbarch != NULL);
956ac328 4714 gdb_assert (gdbarch->frame_num_args != NULL);
0f71a2f6 4715 if (gdbarch_debug >= 2)
0f71a2f6
JM
4716 fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_num_args called\n");
4717 return gdbarch->frame_num_args (frame);
4718}
4719
4720void
104c1213
JM
4721set_gdbarch_frame_num_args (struct gdbarch *gdbarch,
4722 gdbarch_frame_num_args_ftype frame_num_args)
0f71a2f6
JM
4723{
4724 gdbarch->frame_num_args = frame_num_args;
4725}
4726
2ada493a 4727int
f27dd7fd 4728gdbarch_deprecated_stack_align_p (struct gdbarch *gdbarch)
2ada493a 4729{
8de9bdc4 4730 gdb_assert (gdbarch != NULL);
f27dd7fd 4731 return gdbarch->deprecated_stack_align != NULL;
2ada493a
AC
4732}
4733
4734CORE_ADDR
f27dd7fd 4735gdbarch_deprecated_stack_align (struct gdbarch *gdbarch, CORE_ADDR sp)
2ada493a 4736{
8de9bdc4 4737 gdb_assert (gdbarch != NULL);
f27dd7fd 4738 gdb_assert (gdbarch->deprecated_stack_align != NULL);
2ada493a 4739 if (gdbarch_debug >= 2)
f27dd7fd
AC
4740 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_stack_align called\n");
4741 return gdbarch->deprecated_stack_align (sp);
2ada493a
AC
4742}
4743
4744void
f27dd7fd
AC
4745set_gdbarch_deprecated_stack_align (struct gdbarch *gdbarch,
4746 gdbarch_deprecated_stack_align_ftype deprecated_stack_align)
2ada493a 4747{
f27dd7fd 4748 gdbarch->deprecated_stack_align = deprecated_stack_align;
2ada493a
AC
4749}
4750
dc604539
AC
4751int
4752gdbarch_frame_align_p (struct gdbarch *gdbarch)
4753{
4754 gdb_assert (gdbarch != NULL);
956ac328 4755 return gdbarch->frame_align != NULL;
dc604539
AC
4756}
4757
4758CORE_ADDR
4759gdbarch_frame_align (struct gdbarch *gdbarch, CORE_ADDR address)
4760{
4761 gdb_assert (gdbarch != NULL);
956ac328 4762 gdb_assert (gdbarch->frame_align != NULL);
dc604539
AC
4763 if (gdbarch_debug >= 2)
4764 fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_align called\n");
4765 return gdbarch->frame_align (gdbarch, address);
4766}
4767
4768void
4769set_gdbarch_frame_align (struct gdbarch *gdbarch,
4770 gdbarch_frame_align_ftype frame_align)
4771{
4772 gdbarch->frame_align = frame_align;
4773}
4774
d03e67c9 4775int
88d89dbb 4776gdbarch_deprecated_reg_struct_has_addr_p (struct gdbarch *gdbarch)
d03e67c9 4777{
8de9bdc4 4778 gdb_assert (gdbarch != NULL);
88d89dbb 4779 return gdbarch->deprecated_reg_struct_has_addr != NULL;
d03e67c9
AC
4780}
4781
4782int
88d89dbb 4783gdbarch_deprecated_reg_struct_has_addr (struct gdbarch *gdbarch, int gcc_p, struct type *type)
d03e67c9 4784{
8de9bdc4 4785 gdb_assert (gdbarch != NULL);
88d89dbb 4786 gdb_assert (gdbarch->deprecated_reg_struct_has_addr != NULL);
d03e67c9 4787 if (gdbarch_debug >= 2)
88d89dbb
MK
4788 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_reg_struct_has_addr called\n");
4789 return gdbarch->deprecated_reg_struct_has_addr (gcc_p, type);
d03e67c9
AC
4790}
4791
4792void
88d89dbb
MK
4793set_gdbarch_deprecated_reg_struct_has_addr (struct gdbarch *gdbarch,
4794 gdbarch_deprecated_reg_struct_has_addr_ftype deprecated_reg_struct_has_addr)
d03e67c9 4795{
88d89dbb 4796 gdbarch->deprecated_reg_struct_has_addr = deprecated_reg_struct_has_addr;
d03e67c9
AC
4797}
4798
192cb3d4
MK
4799int
4800gdbarch_stabs_argument_has_addr (struct gdbarch *gdbarch, struct type *type)
4801{
4802 gdb_assert (gdbarch != NULL);
4803 gdb_assert (gdbarch->stabs_argument_has_addr != NULL);
4804 if (gdbarch_debug >= 2)
4805 fprintf_unfiltered (gdb_stdlog, "gdbarch_stabs_argument_has_addr called\n");
4806 return gdbarch->stabs_argument_has_addr (gdbarch, type);
4807}
4808
4809void
4810set_gdbarch_stabs_argument_has_addr (struct gdbarch *gdbarch,
4811 gdbarch_stabs_argument_has_addr_ftype stabs_argument_has_addr)
4812{
4813 gdbarch->stabs_argument_has_addr = stabs_argument_has_addr;
4814}
4815
8b148df9
AC
4816int
4817gdbarch_frame_red_zone_size (struct gdbarch *gdbarch)
4818{
4819 gdb_assert (gdbarch != NULL);
4820 if (gdbarch_debug >= 2)
4821 fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_red_zone_size called\n");
4822 return gdbarch->frame_red_zone_size;
4823}
4824
4825void
4826set_gdbarch_frame_red_zone_size (struct gdbarch *gdbarch,
4827 int frame_red_zone_size)
4828{
4829 gdbarch->frame_red_zone_size = frame_red_zone_size;
4830}
4831
58d5518e
ND
4832int
4833gdbarch_parm_boundary (struct gdbarch *gdbarch)
4834{
8de9bdc4 4835 gdb_assert (gdbarch != NULL);
58d5518e
ND
4836 if (gdbarch_debug >= 2)
4837 fprintf_unfiltered (gdb_stdlog, "gdbarch_parm_boundary called\n");
4838 return gdbarch->parm_boundary;
4839}
4840
4841void
4842set_gdbarch_parm_boundary (struct gdbarch *gdbarch,
4843 int parm_boundary)
4844{
4845 gdbarch->parm_boundary = parm_boundary;
4846}
4847
f0d4cc9e
AC
4848const struct floatformat *
4849gdbarch_float_format (struct gdbarch *gdbarch)
4850{
8de9bdc4 4851 gdb_assert (gdbarch != NULL);
f0d4cc9e
AC
4852 if (gdbarch_debug >= 2)
4853 fprintf_unfiltered (gdb_stdlog, "gdbarch_float_format called\n");
4854 return gdbarch->float_format;
4855}
4856
4857void
4858set_gdbarch_float_format (struct gdbarch *gdbarch,
4859 const struct floatformat * float_format)
4860{
4861 gdbarch->float_format = float_format;
4862}
4863
4864const struct floatformat *
4865gdbarch_double_format (struct gdbarch *gdbarch)
4866{
8de9bdc4 4867 gdb_assert (gdbarch != NULL);
f0d4cc9e
AC
4868 if (gdbarch_debug >= 2)
4869 fprintf_unfiltered (gdb_stdlog, "gdbarch_double_format called\n");
4870 return gdbarch->double_format;
4871}
4872
4873void
4874set_gdbarch_double_format (struct gdbarch *gdbarch,
4875 const struct floatformat * double_format)
4876{
4877 gdbarch->double_format = double_format;
4878}
4879
4880const struct floatformat *
4881gdbarch_long_double_format (struct gdbarch *gdbarch)
4882{
8de9bdc4 4883 gdb_assert (gdbarch != NULL);
f0d4cc9e
AC
4884 if (gdbarch_debug >= 2)
4885 fprintf_unfiltered (gdb_stdlog, "gdbarch_long_double_format called\n");
4886 return gdbarch->long_double_format;
4887}
4888
4889void
4890set_gdbarch_long_double_format (struct gdbarch *gdbarch,
4891 const struct floatformat * long_double_format)
4892{
4893 gdbarch->long_double_format = long_double_format;
4894}
4895
f517ea4e 4896CORE_ADDR
e2d0e7eb 4897gdbarch_convert_from_func_ptr_addr (struct gdbarch *gdbarch, CORE_ADDR addr, struct target_ops *targ)
f517ea4e 4898{
8de9bdc4 4899 gdb_assert (gdbarch != NULL);
956ac328 4900 gdb_assert (gdbarch->convert_from_func_ptr_addr != NULL);
f517ea4e
PS
4901 if (gdbarch_debug >= 2)
4902 fprintf_unfiltered (gdb_stdlog, "gdbarch_convert_from_func_ptr_addr called\n");
e2d0e7eb 4903 return gdbarch->convert_from_func_ptr_addr (gdbarch, addr, targ);
f517ea4e
PS
4904}
4905
4906void
4907set_gdbarch_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
4908 gdbarch_convert_from_func_ptr_addr_ftype convert_from_func_ptr_addr)
4909{
4910 gdbarch->convert_from_func_ptr_addr = convert_from_func_ptr_addr;
4911}
4912
875e1767
AC
4913CORE_ADDR
4914gdbarch_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr)
4915{
8de9bdc4 4916 gdb_assert (gdbarch != NULL);
956ac328 4917 gdb_assert (gdbarch->addr_bits_remove != NULL);
875e1767
AC
4918 if (gdbarch_debug >= 2)
4919 fprintf_unfiltered (gdb_stdlog, "gdbarch_addr_bits_remove called\n");
4920 return gdbarch->addr_bits_remove (addr);
4921}
4922
4923void
4924set_gdbarch_addr_bits_remove (struct gdbarch *gdbarch,
4925 gdbarch_addr_bits_remove_ftype addr_bits_remove)
4926{
4927 gdbarch->addr_bits_remove = addr_bits_remove;
4928}
4929
181c1381
RE
4930CORE_ADDR
4931gdbarch_smash_text_address (struct gdbarch *gdbarch, CORE_ADDR addr)
4932{
8de9bdc4 4933 gdb_assert (gdbarch != NULL);
956ac328 4934 gdb_assert (gdbarch->smash_text_address != NULL);
181c1381
RE
4935 if (gdbarch_debug >= 2)
4936 fprintf_unfiltered (gdb_stdlog, "gdbarch_smash_text_address called\n");
4937 return gdbarch->smash_text_address (addr);
4938}
4939
4940void
4941set_gdbarch_smash_text_address (struct gdbarch *gdbarch,
4942 gdbarch_smash_text_address_ftype smash_text_address)
4943{
4944 gdbarch->smash_text_address = smash_text_address;
4945}
4946
64c4637f
AC
4947int
4948gdbarch_software_single_step_p (struct gdbarch *gdbarch)
4949{
8de9bdc4 4950 gdb_assert (gdbarch != NULL);
956ac328 4951 return gdbarch->software_single_step != NULL;
64c4637f
AC
4952}
4953
4954void
4955gdbarch_software_single_step (struct gdbarch *gdbarch, enum target_signal sig, int insert_breakpoints_p)
4956{
8de9bdc4 4957 gdb_assert (gdbarch != NULL);
956ac328 4958 gdb_assert (gdbarch->software_single_step != NULL);
64c4637f
AC
4959 if (gdbarch_debug >= 2)
4960 fprintf_unfiltered (gdb_stdlog, "gdbarch_software_single_step called\n");
4961 gdbarch->software_single_step (sig, insert_breakpoints_p);
4962}
4963
4964void
4965set_gdbarch_software_single_step (struct gdbarch *gdbarch,
4966 gdbarch_software_single_step_ftype software_single_step)
4967{
4968 gdbarch->software_single_step = software_single_step;
4969}
4970
2bf0cb65 4971int
a89aa300 4972gdbarch_print_insn (struct gdbarch *gdbarch, bfd_vma vma, struct disassemble_info *info)
2bf0cb65 4973{
8de9bdc4 4974 gdb_assert (gdbarch != NULL);
956ac328 4975 gdb_assert (gdbarch->print_insn != NULL);
2bf0cb65
EZ
4976 if (gdbarch_debug >= 2)
4977 fprintf_unfiltered (gdb_stdlog, "gdbarch_print_insn called\n");
4978 return gdbarch->print_insn (vma, info);
4979}
4980
4981void
4982set_gdbarch_print_insn (struct gdbarch *gdbarch,
4983 gdbarch_print_insn_ftype print_insn)
4984{
4985 gdbarch->print_insn = print_insn;
4986}
4987
bdcd319a
CV
4988CORE_ADDR
4989gdbarch_skip_trampoline_code (struct gdbarch *gdbarch, CORE_ADDR pc)
4990{
8de9bdc4 4991 gdb_assert (gdbarch != NULL);
956ac328 4992 gdb_assert (gdbarch->skip_trampoline_code != NULL);
bdcd319a
CV
4993 if (gdbarch_debug >= 2)
4994 fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_trampoline_code called\n");
4995 return gdbarch->skip_trampoline_code (pc);
4996}
4997
4998void
4999set_gdbarch_skip_trampoline_code (struct gdbarch *gdbarch,
5000 gdbarch_skip_trampoline_code_ftype skip_trampoline_code)
5001{
5002 gdbarch->skip_trampoline_code = skip_trampoline_code;
5003}
5004
dea0c52f
MK
5005CORE_ADDR
5006gdbarch_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc)
5007{
5008 gdb_assert (gdbarch != NULL);
5009 gdb_assert (gdbarch->skip_solib_resolver != NULL);
5010 if (gdbarch_debug >= 2)
5011 fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_solib_resolver called\n");
4c8c40e6 5012 return gdbarch->skip_solib_resolver (gdbarch, pc);
dea0c52f
MK
5013}
5014
5015void
5016set_gdbarch_skip_solib_resolver (struct gdbarch *gdbarch,
5017 gdbarch_skip_solib_resolver_ftype skip_solib_resolver)
5018{
5019 gdbarch->skip_solib_resolver = skip_solib_resolver;
5020}
5021
68e9cc94
CV
5022int
5023gdbarch_in_solib_call_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, char *name)
5024{
8de9bdc4 5025 gdb_assert (gdbarch != NULL);
956ac328 5026 gdb_assert (gdbarch->in_solib_call_trampoline != NULL);
68e9cc94
CV
5027 if (gdbarch_debug >= 2)
5028 fprintf_unfiltered (gdb_stdlog, "gdbarch_in_solib_call_trampoline called\n");
5029 return gdbarch->in_solib_call_trampoline (pc, name);
5030}
5031
5032void
5033set_gdbarch_in_solib_call_trampoline (struct gdbarch *gdbarch,
5034 gdbarch_in_solib_call_trampoline_ftype in_solib_call_trampoline)
5035{
5036 gdbarch->in_solib_call_trampoline = in_solib_call_trampoline;
5037}
5038
d50355b6
MS
5039int
5040gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, char *name)
5041{
5042 gdb_assert (gdbarch != NULL);
956ac328 5043 gdb_assert (gdbarch->in_solib_return_trampoline != NULL);
d50355b6
MS
5044 if (gdbarch_debug >= 2)
5045 fprintf_unfiltered (gdb_stdlog, "gdbarch_in_solib_return_trampoline called\n");
5046 return gdbarch->in_solib_return_trampoline (pc, name);
5047}
5048
5049void
5050set_gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch,
5051 gdbarch_in_solib_return_trampoline_ftype in_solib_return_trampoline)
5052{
5053 gdbarch->in_solib_return_trampoline = in_solib_return_trampoline;
5054}
5055
d7bd68ca
AC
5056int
5057gdbarch_pc_in_sigtramp (struct gdbarch *gdbarch, CORE_ADDR pc, char *name)
5058{
8de9bdc4 5059 gdb_assert (gdbarch != NULL);
956ac328 5060 gdb_assert (gdbarch->pc_in_sigtramp != NULL);
d7bd68ca
AC
5061 if (gdbarch_debug >= 2)
5062 fprintf_unfiltered (gdb_stdlog, "gdbarch_pc_in_sigtramp called\n");
5063 return gdbarch->pc_in_sigtramp (pc, name);
5064}
5065
5066void
5067set_gdbarch_pc_in_sigtramp (struct gdbarch *gdbarch,
5068 gdbarch_pc_in_sigtramp_ftype pc_in_sigtramp)
5069{
5070 gdbarch->pc_in_sigtramp = pc_in_sigtramp;
5071}
5072
43156d82
MK
5073int
5074gdbarch_sigtramp_start_p (struct gdbarch *gdbarch)
5075{
5076 gdb_assert (gdbarch != NULL);
956ac328 5077 return gdbarch->sigtramp_start != NULL;
43156d82
MK
5078}
5079
5080CORE_ADDR
5081gdbarch_sigtramp_start (struct gdbarch *gdbarch, CORE_ADDR pc)
5082{
5083 gdb_assert (gdbarch != NULL);
956ac328 5084 gdb_assert (gdbarch->sigtramp_start != NULL);
43156d82
MK
5085 if (gdbarch_debug >= 2)
5086 fprintf_unfiltered (gdb_stdlog, "gdbarch_sigtramp_start called\n");
5087 return gdbarch->sigtramp_start (pc);
5088}
5089
5090void
5091set_gdbarch_sigtramp_start (struct gdbarch *gdbarch,
5092 gdbarch_sigtramp_start_ftype sigtramp_start)
5093{
5094 gdbarch->sigtramp_start = sigtramp_start;
5095}
5096
e76cff22
AC
5097int
5098gdbarch_sigtramp_end_p (struct gdbarch *gdbarch)
5099{
5100 gdb_assert (gdbarch != NULL);
956ac328 5101 return gdbarch->sigtramp_end != NULL;
e76cff22
AC
5102}
5103
43156d82
MK
5104CORE_ADDR
5105gdbarch_sigtramp_end (struct gdbarch *gdbarch, CORE_ADDR pc)
5106{
5107 gdb_assert (gdbarch != NULL);
956ac328 5108 gdb_assert (gdbarch->sigtramp_end != NULL);
43156d82
MK
5109 if (gdbarch_debug >= 2)
5110 fprintf_unfiltered (gdb_stdlog, "gdbarch_sigtramp_end called\n");
5111 return gdbarch->sigtramp_end (pc);
5112}
5113
5114void
5115set_gdbarch_sigtramp_end (struct gdbarch *gdbarch,
5116 gdbarch_sigtramp_end_ftype sigtramp_end)
5117{
5118 gdbarch->sigtramp_end = sigtramp_end;
5119}
5120
c12260ac
CV
5121int
5122gdbarch_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR addr)
5123{
8de9bdc4 5124 gdb_assert (gdbarch != NULL);
956ac328 5125 gdb_assert (gdbarch->in_function_epilogue_p != NULL);
c12260ac
CV
5126 if (gdbarch_debug >= 2)
5127 fprintf_unfiltered (gdb_stdlog, "gdbarch_in_function_epilogue_p called\n");
5128 return gdbarch->in_function_epilogue_p (gdbarch, addr);
5129}
5130
5131void
5132set_gdbarch_in_function_epilogue_p (struct gdbarch *gdbarch,
5133 gdbarch_in_function_epilogue_p_ftype in_function_epilogue_p)
5134{
5135 gdbarch->in_function_epilogue_p = in_function_epilogue_p;
5136}
5137
552c04a7
TT
5138char *
5139gdbarch_construct_inferior_arguments (struct gdbarch *gdbarch, int argc, char **argv)
5140{
8de9bdc4 5141 gdb_assert (gdbarch != NULL);
956ac328 5142 gdb_assert (gdbarch->construct_inferior_arguments != NULL);
552c04a7
TT
5143 if (gdbarch_debug >= 2)
5144 fprintf_unfiltered (gdb_stdlog, "gdbarch_construct_inferior_arguments called\n");
5145 return gdbarch->construct_inferior_arguments (gdbarch, argc, argv);
5146}
5147
5148void
5149set_gdbarch_construct_inferior_arguments (struct gdbarch *gdbarch,
5150 gdbarch_construct_inferior_arguments_ftype construct_inferior_arguments)
5151{
5152 gdbarch->construct_inferior_arguments = construct_inferior_arguments;
5153}
5154
a2cf933a
EZ
5155void
5156gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch, asymbol *sym, struct minimal_symbol *msym)
5157{
8de9bdc4 5158 gdb_assert (gdbarch != NULL);
956ac328 5159 gdb_assert (gdbarch->elf_make_msymbol_special != NULL);
a2cf933a
EZ
5160 if (gdbarch_debug >= 2)
5161 fprintf_unfiltered (gdb_stdlog, "gdbarch_elf_make_msymbol_special called\n");
5162 gdbarch->elf_make_msymbol_special (sym, msym);
5163}
5164
5165void
5166set_gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch,
5167 gdbarch_elf_make_msymbol_special_ftype elf_make_msymbol_special)
5168{
5169 gdbarch->elf_make_msymbol_special = elf_make_msymbol_special;
5170}
5171
5172void
5173gdbarch_coff_make_msymbol_special (struct gdbarch *gdbarch, int val, struct minimal_symbol *msym)
5174{
8de9bdc4 5175 gdb_assert (gdbarch != NULL);
956ac328 5176 gdb_assert (gdbarch->coff_make_msymbol_special != NULL);
a2cf933a
EZ
5177 if (gdbarch_debug >= 2)
5178 fprintf_unfiltered (gdb_stdlog, "gdbarch_coff_make_msymbol_special called\n");
5179 gdbarch->coff_make_msymbol_special (val, msym);
5180}
5181
5182void
5183set_gdbarch_coff_make_msymbol_special (struct gdbarch *gdbarch,
5184 gdbarch_coff_make_msymbol_special_ftype coff_make_msymbol_special)
5185{
5186 gdbarch->coff_make_msymbol_special = coff_make_msymbol_special;
5187}
5188
5720643c
JB
5189const char *
5190gdbarch_name_of_malloc (struct gdbarch *gdbarch)
5191{
5192 gdb_assert (gdbarch != NULL);
5193 /* Skip verify of name_of_malloc, invalid_p == 0 */
5194 if (gdbarch_debug >= 2)
5195 fprintf_unfiltered (gdb_stdlog, "gdbarch_name_of_malloc called\n");
5196 return gdbarch->name_of_malloc;
5197}
5198
5199void
5200set_gdbarch_name_of_malloc (struct gdbarch *gdbarch,
5201 const char * name_of_malloc)
5202{
5203 gdbarch->name_of_malloc = name_of_malloc;
5204}
5205
c4ed33b9
AC
5206int
5207gdbarch_cannot_step_breakpoint (struct gdbarch *gdbarch)
5208{
5209 gdb_assert (gdbarch != NULL);
5210 /* Skip verify of cannot_step_breakpoint, invalid_p == 0 */
5211 if (gdbarch_debug >= 2)
5212 fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_step_breakpoint called\n");
5213 return gdbarch->cannot_step_breakpoint;
5214}
5215
5216void
5217set_gdbarch_cannot_step_breakpoint (struct gdbarch *gdbarch,
5218 int cannot_step_breakpoint)
5219{
5220 gdbarch->cannot_step_breakpoint = cannot_step_breakpoint;
5221}
5222
f74fa174
MM
5223int
5224gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch)
5225{
5226 gdb_assert (gdbarch != NULL);
5227 /* Skip verify of have_nonsteppable_watchpoint, invalid_p == 0 */
5228 if (gdbarch_debug >= 2)
5229 fprintf_unfiltered (gdb_stdlog, "gdbarch_have_nonsteppable_watchpoint called\n");
5230 return gdbarch->have_nonsteppable_watchpoint;
5231}
5232
5233void
5234set_gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch,
967c0d83 5235 int have_nonsteppable_watchpoint)
f74fa174
MM
5236{
5237 gdbarch->have_nonsteppable_watchpoint = have_nonsteppable_watchpoint;
5238}
5239
8b2dbe47
KB
5240int
5241gdbarch_address_class_type_flags_p (struct gdbarch *gdbarch)
5242{
5243 gdb_assert (gdbarch != NULL);
956ac328 5244 return gdbarch->address_class_type_flags != NULL;
8b2dbe47
KB
5245}
5246
5247int
5248gdbarch_address_class_type_flags (struct gdbarch *gdbarch, int byte_size, int dwarf2_addr_class)
5249{
5250 gdb_assert (gdbarch != NULL);
956ac328 5251 gdb_assert (gdbarch->address_class_type_flags != NULL);
8b2dbe47
KB
5252 if (gdbarch_debug >= 2)
5253 fprintf_unfiltered (gdb_stdlog, "gdbarch_address_class_type_flags called\n");
5254 return gdbarch->address_class_type_flags (byte_size, dwarf2_addr_class);
5255}
5256
5257void
5258set_gdbarch_address_class_type_flags (struct gdbarch *gdbarch,
5259 gdbarch_address_class_type_flags_ftype address_class_type_flags)
5260{
5261 gdbarch->address_class_type_flags = address_class_type_flags;
5262}
5263
5264int
5265gdbarch_address_class_type_flags_to_name_p (struct gdbarch *gdbarch)
5266{
5267 gdb_assert (gdbarch != NULL);
956ac328 5268 return gdbarch->address_class_type_flags_to_name != NULL;
8b2dbe47
KB
5269}
5270
321432c0 5271const char *
8b2dbe47
KB
5272gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags)
5273{
5274 gdb_assert (gdbarch != NULL);
956ac328 5275 gdb_assert (gdbarch->address_class_type_flags_to_name != NULL);
8b2dbe47
KB
5276 if (gdbarch_debug >= 2)
5277 fprintf_unfiltered (gdb_stdlog, "gdbarch_address_class_type_flags_to_name called\n");
5f11f355 5278 return gdbarch->address_class_type_flags_to_name (gdbarch, type_flags);
8b2dbe47
KB
5279}
5280
5281void
5282set_gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch,
5283 gdbarch_address_class_type_flags_to_name_ftype address_class_type_flags_to_name)
5284{
5285 gdbarch->address_class_type_flags_to_name = address_class_type_flags_to_name;
5286}
5287
5288int
5289gdbarch_address_class_name_to_type_flags_p (struct gdbarch *gdbarch)
5290{
5291 gdb_assert (gdbarch != NULL);
956ac328 5292 return gdbarch->address_class_name_to_type_flags != NULL;
8b2dbe47
KB
5293}
5294
5295int
321432c0 5296gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, const char *name, int *type_flags_ptr)
8b2dbe47
KB
5297{
5298 gdb_assert (gdbarch != NULL);
956ac328 5299 gdb_assert (gdbarch->address_class_name_to_type_flags != NULL);
8b2dbe47
KB
5300 if (gdbarch_debug >= 2)
5301 fprintf_unfiltered (gdb_stdlog, "gdbarch_address_class_name_to_type_flags called\n");
5f11f355 5302 return gdbarch->address_class_name_to_type_flags (gdbarch, name, type_flags_ptr);
8b2dbe47
KB
5303}
5304
5305void
5306set_gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch,
5307 gdbarch_address_class_name_to_type_flags_ftype address_class_name_to_type_flags)
5308{
5309 gdbarch->address_class_name_to_type_flags = address_class_name_to_type_flags;
5310}
5311
b59ff9d5
AC
5312int
5313gdbarch_register_reggroup_p (struct gdbarch *gdbarch, int regnum, struct reggroup *reggroup)
5314{
5315 gdb_assert (gdbarch != NULL);
956ac328 5316 gdb_assert (gdbarch->register_reggroup_p != NULL);
b59ff9d5
AC
5317 if (gdbarch_debug >= 2)
5318 fprintf_unfiltered (gdb_stdlog, "gdbarch_register_reggroup_p called\n");
5319 return gdbarch->register_reggroup_p (gdbarch, regnum, reggroup);
5320}
5321
5322void
5323set_gdbarch_register_reggroup_p (struct gdbarch *gdbarch,
5324 gdbarch_register_reggroup_p_ftype register_reggroup_p)
5325{
5326 gdbarch->register_reggroup_p = register_reggroup_p;
5327}
5328
143985b7
AF
5329int
5330gdbarch_fetch_pointer_argument_p (struct gdbarch *gdbarch)
5331{
5332 gdb_assert (gdbarch != NULL);
956ac328 5333 return gdbarch->fetch_pointer_argument != NULL;
143985b7
AF
5334}
5335
5336CORE_ADDR
5337gdbarch_fetch_pointer_argument (struct gdbarch *gdbarch, struct frame_info *frame, int argi, struct type *type)
5338{
5339 gdb_assert (gdbarch != NULL);
956ac328 5340 gdb_assert (gdbarch->fetch_pointer_argument != NULL);
143985b7
AF
5341 if (gdbarch_debug >= 2)
5342 fprintf_unfiltered (gdb_stdlog, "gdbarch_fetch_pointer_argument called\n");
5343 return gdbarch->fetch_pointer_argument (frame, argi, type);
5344}
5345
5346void
5347set_gdbarch_fetch_pointer_argument (struct gdbarch *gdbarch,
5348 gdbarch_fetch_pointer_argument_ftype fetch_pointer_argument)
5349{
5350 gdbarch->fetch_pointer_argument = fetch_pointer_argument;
5351}
5352
6ce6d90f
MK
5353int
5354gdbarch_regset_from_core_section_p (struct gdbarch *gdbarch)
5355{
5356 gdb_assert (gdbarch != NULL);
5357 return gdbarch->regset_from_core_section != NULL;
5358}
5359
5360const struct regset *
5361gdbarch_regset_from_core_section (struct gdbarch *gdbarch, const char *sect_name, size_t sect_size)
5362{
5363 gdb_assert (gdbarch != NULL);
5364 gdb_assert (gdbarch->regset_from_core_section != NULL);
5365 if (gdbarch_debug >= 2)
5366 fprintf_unfiltered (gdb_stdlog, "gdbarch_regset_from_core_section called\n");
5367 return gdbarch->regset_from_core_section (gdbarch, sect_name, sect_size);
5368}
5369
5370void
5371set_gdbarch_regset_from_core_section (struct gdbarch *gdbarch,
5372 gdbarch_regset_from_core_section_ftype regset_from_core_section)
5373{
5374 gdbarch->regset_from_core_section = regset_from_core_section;
5375}
5376
0f71a2f6 5377
be5a57e1 5378/* Keep a registry of per-architecture data-pointers required by GDB
0f71a2f6
JM
5379 modules. */
5380
5381struct gdbarch_data
5382{
95160752 5383 unsigned index;
76860b5f 5384 int init_p;
95160752 5385 gdbarch_data_init_ftype *init;
0f71a2f6
JM
5386};
5387
5388struct gdbarch_data_registration
adf40b2e 5389{
adf40b2e
JM
5390 struct gdbarch_data *data;
5391 struct gdbarch_data_registration *next;
5392};
0f71a2f6 5393
be5a57e1 5394struct gdbarch_data_registry
adf40b2e 5395{
95160752 5396 unsigned nr;
adf40b2e
JM
5397 struct gdbarch_data_registration *registrations;
5398};
0f71a2f6 5399
be5a57e1 5400struct gdbarch_data_registry gdbarch_data_registry =
0f71a2f6
JM
5401{
5402 0, NULL,
5403};
5404
5405struct gdbarch_data *
fcc1c85c 5406register_gdbarch_data (gdbarch_data_init_ftype *init)
0f71a2f6
JM
5407{
5408 struct gdbarch_data_registration **curr;
76860b5f 5409 /* Append the new registraration. */
be5a57e1 5410 for (curr = &gdbarch_data_registry.registrations;
0f71a2f6
JM
5411 (*curr) != NULL;
5412 curr = &(*curr)->next);
5413 (*curr) = XMALLOC (struct gdbarch_data_registration);
5414 (*curr)->next = NULL;
0f71a2f6 5415 (*curr)->data = XMALLOC (struct gdbarch_data);
be5a57e1 5416 (*curr)->data->index = gdbarch_data_registry.nr++;
95160752 5417 (*curr)->data->init = init;
76860b5f 5418 (*curr)->data->init_p = 1;
0f71a2f6
JM
5419 return (*curr)->data;
5420}
5421
5422
b3cc3077 5423/* Create/delete the gdbarch data vector. */
95160752
AC
5424
5425static void
b3cc3077 5426alloc_gdbarch_data (struct gdbarch *gdbarch)
95160752 5427{
b3cc3077
JB
5428 gdb_assert (gdbarch->data == NULL);
5429 gdbarch->nr_data = gdbarch_data_registry.nr;
aebd7893 5430 gdbarch->data = GDBARCH_OBSTACK_CALLOC (gdbarch, gdbarch->nr_data, void *);
0f71a2f6
JM
5431}
5432
76860b5f 5433/* Initialize the current value of the specified per-architecture
b3cc3077
JB
5434 data-pointer. */
5435
95160752
AC
5436void
5437set_gdbarch_data (struct gdbarch *gdbarch,
5438 struct gdbarch_data *data,
5439 void *pointer)
5440{
5441 gdb_assert (data->index < gdbarch->nr_data);
aebd7893 5442 gdb_assert (gdbarch->data[data->index] == NULL);
95160752
AC
5443 gdbarch->data[data->index] = pointer;
5444}
5445
0f71a2f6
JM
5446/* Return the current value of the specified per-architecture
5447 data-pointer. */
5448
5449void *
451fbdda 5450gdbarch_data (struct gdbarch *gdbarch, struct gdbarch_data *data)
0f71a2f6 5451{
451fbdda 5452 gdb_assert (data->index < gdbarch->nr_data);
76860b5f
AC
5453 /* The data-pointer isn't initialized, call init() to get a value but
5454 only if the architecture initializaiton has completed. Otherwise
5455 punt - hope that the caller knows what they are doing. */
5456 if (gdbarch->data[data->index] == NULL
5457 && gdbarch->initialized_p)
5458 {
5459 /* Be careful to detect an initialization cycle. */
5460 gdb_assert (data->init_p);
5461 data->init_p = 0;
5462 gdb_assert (data->init != NULL);
5463 gdbarch->data[data->index] = data->init (gdbarch);
5464 data->init_p = 1;
5465 gdb_assert (gdbarch->data[data->index] != NULL);
5466 }
451fbdda 5467 return gdbarch->data[data->index];
0f71a2f6
JM
5468}
5469
5470
5471
be5a57e1 5472/* Keep a registry of swapped data required by GDB modules. */
0f71a2f6
JM
5473
5474struct gdbarch_swap
5475{
5476 void *swap;
5477 struct gdbarch_swap_registration *source;
5478 struct gdbarch_swap *next;
5479};
5480
5481struct gdbarch_swap_registration
adf40b2e
JM
5482{
5483 void *data;
5484 unsigned long sizeof_data;
5485 gdbarch_swap_ftype *init;
5486 struct gdbarch_swap_registration *next;
5487};
0f71a2f6 5488
be5a57e1 5489struct gdbarch_swap_registry
adf40b2e
JM
5490{
5491 int nr;
5492 struct gdbarch_swap_registration *registrations;
5493};
0f71a2f6 5494
be5a57e1 5495struct gdbarch_swap_registry gdbarch_swap_registry =
0f71a2f6
JM
5496{
5497 0, NULL,
5498};
5499
5500void
046a4708
AC
5501deprecated_register_gdbarch_swap (void *data,
5502 unsigned long sizeof_data,
5503 gdbarch_swap_ftype *init)
0f71a2f6
JM
5504{
5505 struct gdbarch_swap_registration **rego;
be5a57e1 5506 for (rego = &gdbarch_swap_registry.registrations;
0f71a2f6
JM
5507 (*rego) != NULL;
5508 rego = &(*rego)->next);
5509 (*rego) = XMALLOC (struct gdbarch_swap_registration);
5510 (*rego)->next = NULL;
5511 (*rego)->init = init;
5512 (*rego)->data = data;
5513 (*rego)->sizeof_data = sizeof_data;
5514}
5515
40af4b0c 5516static void
7de2341d 5517current_gdbarch_swap_init_hack (void)
0f71a2f6
JM
5518{
5519 struct gdbarch_swap_registration *rego;
7de2341d 5520 struct gdbarch_swap **curr = &current_gdbarch->swap;
be5a57e1 5521 for (rego = gdbarch_swap_registry.registrations;
0f71a2f6
JM
5522 rego != NULL;
5523 rego = rego->next)
5524 {
5525 if (rego->data != NULL)
5526 {
7de2341d
AC
5527 (*curr) = GDBARCH_OBSTACK_ZALLOC (current_gdbarch,
5528 struct gdbarch_swap);
0f71a2f6 5529 (*curr)->source = rego;
7de2341d
AC
5530 (*curr)->swap = gdbarch_obstack_zalloc (current_gdbarch,
5531 rego->sizeof_data);
0f71a2f6 5532 (*curr)->next = NULL;
0f71a2f6
JM
5533 curr = &(*curr)->next;
5534 }
5535 if (rego->init != NULL)
5536 rego->init ();
5537 }
5538}
5539
7de2341d
AC
5540static struct gdbarch *
5541current_gdbarch_swap_out_hack (void)
0f71a2f6 5542{
7de2341d 5543 struct gdbarch *old_gdbarch = current_gdbarch;
0f71a2f6 5544 struct gdbarch_swap *curr;
7de2341d
AC
5545
5546 gdb_assert (old_gdbarch != NULL);
5547 for (curr = old_gdbarch->swap;
0f71a2f6
JM
5548 curr != NULL;
5549 curr = curr->next)
7de2341d
AC
5550 {
5551 memcpy (curr->swap, curr->source->data, curr->source->sizeof_data);
5552 memset (curr->source->data, 0, curr->source->sizeof_data);
5553 }
5554 current_gdbarch = NULL;
5555 return old_gdbarch;
0f71a2f6
JM
5556}
5557
0f71a2f6 5558static void
7de2341d 5559current_gdbarch_swap_in_hack (struct gdbarch *new_gdbarch)
0f71a2f6
JM
5560{
5561 struct gdbarch_swap *curr;
7de2341d
AC
5562
5563 gdb_assert (current_gdbarch == NULL);
5564 for (curr = new_gdbarch->swap;
0f71a2f6
JM
5565 curr != NULL;
5566 curr = curr->next)
5567 memcpy (curr->source->data, curr->swap, curr->source->sizeof_data);
7de2341d 5568 current_gdbarch = new_gdbarch;
0f71a2f6
JM
5569}
5570
5571
be5a57e1 5572/* Keep a registry of the architectures known by GDB. */
0f71a2f6 5573
4b9b3959 5574struct gdbarch_registration
0f71a2f6
JM
5575{
5576 enum bfd_architecture bfd_architecture;
5577 gdbarch_init_ftype *init;
4b9b3959 5578 gdbarch_dump_tdep_ftype *dump_tdep;
0f71a2f6 5579 struct gdbarch_list *arches;
4b9b3959 5580 struct gdbarch_registration *next;
0f71a2f6
JM
5581};
5582
be5a57e1 5583static struct gdbarch_registration *gdbarch_registry = NULL;
0f71a2f6 5584
b4a20239
AC
5585static void
5586append_name (const char ***buf, int *nr, const char *name)
5587{
5588 *buf = xrealloc (*buf, sizeof (char**) * (*nr + 1));
5589 (*buf)[*nr] = name;
5590 *nr += 1;
5591}
5592
5593const char **
5594gdbarch_printable_names (void)
5595{
7996bcec
AC
5596 /* Accumulate a list of names based on the registed list of
5597 architectures. */
5598 enum bfd_architecture a;
5599 int nr_arches = 0;
5600 const char **arches = NULL;
5601 struct gdbarch_registration *rego;
5602 for (rego = gdbarch_registry;
5603 rego != NULL;
5604 rego = rego->next)
b4a20239 5605 {
7996bcec
AC
5606 const struct bfd_arch_info *ap;
5607 ap = bfd_lookup_arch (rego->bfd_architecture, 0);
5608 if (ap == NULL)
5609 internal_error (__FILE__, __LINE__,
5610 "gdbarch_architecture_names: multi-arch unknown");
5611 do
5612 {
5613 append_name (&arches, &nr_arches, ap->printable_name);
5614 ap = ap->next;
5615 }
5616 while (ap != NULL);
b4a20239 5617 }
7996bcec
AC
5618 append_name (&arches, &nr_arches, NULL);
5619 return arches;
b4a20239
AC
5620}
5621
5622
0f71a2f6 5623void
4b9b3959
AC
5624gdbarch_register (enum bfd_architecture bfd_architecture,
5625 gdbarch_init_ftype *init,
5626 gdbarch_dump_tdep_ftype *dump_tdep)
0f71a2f6 5627{
4b9b3959 5628 struct gdbarch_registration **curr;
0f71a2f6 5629 const struct bfd_arch_info *bfd_arch_info;
ec3d358c 5630 /* Check that BFD recognizes this architecture */
0f71a2f6
JM
5631 bfd_arch_info = bfd_lookup_arch (bfd_architecture, 0);
5632 if (bfd_arch_info == NULL)
5633 {
8e65ff28
AC
5634 internal_error (__FILE__, __LINE__,
5635 "gdbarch: Attempt to register unknown architecture (%d)",
5636 bfd_architecture);
0f71a2f6
JM
5637 }
5638 /* Check that we haven't seen this architecture before */
be5a57e1 5639 for (curr = &gdbarch_registry;
0f71a2f6
JM
5640 (*curr) != NULL;
5641 curr = &(*curr)->next)
5642 {
5643 if (bfd_architecture == (*curr)->bfd_architecture)
8e65ff28
AC
5644 internal_error (__FILE__, __LINE__,
5645 "gdbarch: Duplicate registraration of architecture (%s)",
5646 bfd_arch_info->printable_name);
0f71a2f6
JM
5647 }
5648 /* log it */
5649 if (gdbarch_debug)
5650 fprintf_unfiltered (gdb_stdlog, "register_gdbarch_init (%s, 0x%08lx)\n",
5651 bfd_arch_info->printable_name,
5652 (long) init);
5653 /* Append it */
4b9b3959 5654 (*curr) = XMALLOC (struct gdbarch_registration);
0f71a2f6
JM
5655 (*curr)->bfd_architecture = bfd_architecture;
5656 (*curr)->init = init;
4b9b3959 5657 (*curr)->dump_tdep = dump_tdep;
0f71a2f6
JM
5658 (*curr)->arches = NULL;
5659 (*curr)->next = NULL;
4b9b3959
AC
5660}
5661
5662void
5663register_gdbarch_init (enum bfd_architecture bfd_architecture,
5664 gdbarch_init_ftype *init)
5665{
5666 gdbarch_register (bfd_architecture, init, NULL);
0f71a2f6 5667}
0f71a2f6
JM
5668
5669
5670/* Look for an architecture using gdbarch_info. Base search on only
5671 BFD_ARCH_INFO and BYTE_ORDER. */
5672
5673struct gdbarch_list *
104c1213
JM
5674gdbarch_list_lookup_by_info (struct gdbarch_list *arches,
5675 const struct gdbarch_info *info)
0f71a2f6
JM
5676{
5677 for (; arches != NULL; arches = arches->next)
5678 {
5679 if (info->bfd_arch_info != arches->gdbarch->bfd_arch_info)
5680 continue;
5681 if (info->byte_order != arches->gdbarch->byte_order)
5682 continue;
4be87837
DJ
5683 if (info->osabi != arches->gdbarch->osabi)
5684 continue;
0f71a2f6
JM
5685 return arches;
5686 }
5687 return NULL;
5688}
5689
5690
ebdba546
AC
5691/* Find an architecture that matches the specified INFO. Create a new
5692 architecture if needed. Return that new architecture. Assumes
5693 that there is no current architecture. */
0f71a2f6 5694
ebdba546
AC
5695static struct gdbarch *
5696find_arch_by_info (struct gdbarch *old_gdbarch, struct gdbarch_info info)
0f71a2f6
JM
5697{
5698 struct gdbarch *new_gdbarch;
4b9b3959 5699 struct gdbarch_registration *rego;
0f71a2f6 5700
ebdba546
AC
5701 /* The existing architecture has been swapped out - all this code
5702 works from a clean slate. */
5703 gdb_assert (current_gdbarch == NULL);
5704
b732d07d 5705 /* Fill in missing parts of the INFO struct using a number of
ebdba546
AC
5706 sources: "set ..."; INFOabfd supplied; and the existing
5707 architecture. */
5708 gdbarch_info_fill (old_gdbarch, &info);
4be87837 5709
b732d07d
AC
5710 /* Must have found some sort of architecture. */
5711 gdb_assert (info.bfd_arch_info != NULL);
0f71a2f6
JM
5712
5713 if (gdbarch_debug)
5714 {
0f71a2f6 5715 fprintf_unfiltered (gdb_stdlog,
ebdba546 5716 "find_arch_by_info: info.bfd_arch_info %s\n",
0f71a2f6
JM
5717 (info.bfd_arch_info != NULL
5718 ? info.bfd_arch_info->printable_name
5719 : "(null)"));
5720 fprintf_unfiltered (gdb_stdlog,
ebdba546 5721 "find_arch_by_info: info.byte_order %d (%s)\n",
0f71a2f6 5722 info.byte_order,
d7449b42 5723 (info.byte_order == BFD_ENDIAN_BIG ? "big"
778eb05e 5724 : info.byte_order == BFD_ENDIAN_LITTLE ? "little"
0f71a2f6 5725 : "default"));
4be87837 5726 fprintf_unfiltered (gdb_stdlog,
ebdba546 5727 "find_arch_by_info: info.osabi %d (%s)\n",
4be87837 5728 info.osabi, gdbarch_osabi_name (info.osabi));
0f71a2f6 5729 fprintf_unfiltered (gdb_stdlog,
ebdba546 5730 "find_arch_by_info: info.abfd 0x%lx\n",
0f71a2f6
JM
5731 (long) info.abfd);
5732 fprintf_unfiltered (gdb_stdlog,
ebdba546 5733 "find_arch_by_info: info.tdep_info 0x%lx\n",
0f71a2f6
JM
5734 (long) info.tdep_info);
5735 }
5736
ebdba546 5737 /* Find the tdep code that knows about this architecture. */
b732d07d
AC
5738 for (rego = gdbarch_registry;
5739 rego != NULL;
5740 rego = rego->next)
5741 if (rego->bfd_architecture == info.bfd_arch_info->arch)
5742 break;
5743 if (rego == NULL)
5744 {
5745 if (gdbarch_debug)
ebdba546
AC
5746 fprintf_unfiltered (gdb_stdlog, "find_arch_by_info: "
5747 "No matching architecture\n");
b732d07d
AC
5748 return 0;
5749 }
5750
ebdba546 5751 /* Ask the tdep code for an architecture that matches "info". */
0f71a2f6
JM
5752 new_gdbarch = rego->init (info, rego->arches);
5753
ebdba546
AC
5754 /* Did the tdep code like it? No. Reject the change and revert to
5755 the old architecture. */
0f71a2f6
JM
5756 if (new_gdbarch == NULL)
5757 {
5758 if (gdbarch_debug)
ebdba546
AC
5759 fprintf_unfiltered (gdb_stdlog, "find_arch_by_info: "
5760 "Target rejected architecture\n");
5761 return NULL;
0f71a2f6
JM
5762 }
5763
ebdba546
AC
5764 /* Is this a pre-existing architecture (as determined by already
5765 being initialized)? Move it to the front of the architecture
5766 list (keeping the list sorted Most Recently Used). */
5767 if (new_gdbarch->initialized_p)
0f71a2f6 5768 {
ebdba546
AC
5769 struct gdbarch_list **list;
5770 struct gdbarch_list *this;
0f71a2f6 5771 if (gdbarch_debug)
ebdba546
AC
5772 fprintf_unfiltered (gdb_stdlog, "find_arch_by_info: "
5773 "Previous architecture 0x%08lx (%s) selected\n",
0f71a2f6
JM
5774 (long) new_gdbarch,
5775 new_gdbarch->bfd_arch_info->printable_name);
ebdba546
AC
5776 /* Find the existing arch in the list. */
5777 for (list = &rego->arches;
5778 (*list) != NULL && (*list)->gdbarch != new_gdbarch;
5779 list = &(*list)->next);
5780 /* It had better be in the list of architectures. */
5781 gdb_assert ((*list) != NULL && (*list)->gdbarch == new_gdbarch);
5782 /* Unlink THIS. */
5783 this = (*list);
5784 (*list) = this->next;
5785 /* Insert THIS at the front. */
5786 this->next = rego->arches;
5787 rego->arches = this;
5788 /* Return it. */
5789 return new_gdbarch;
0f71a2f6
JM
5790 }
5791
ebdba546
AC
5792 /* It's a new architecture. */
5793 if (gdbarch_debug)
5794 fprintf_unfiltered (gdb_stdlog, "find_arch_by_info: "
5795 "New architecture 0x%08lx (%s) selected\n",
5796 (long) new_gdbarch,
5797 new_gdbarch->bfd_arch_info->printable_name);
5798
5799 /* Insert the new architecture into the front of the architecture
5800 list (keep the list sorted Most Recently Used). */
0f79675b
AC
5801 {
5802 struct gdbarch_list *this = XMALLOC (struct gdbarch_list);
5803 this->next = rego->arches;
5804 this->gdbarch = new_gdbarch;
5805 rego->arches = this;
5806 }
0f71a2f6 5807
4b9b3959
AC
5808 /* Check that the newly installed architecture is valid. Plug in
5809 any post init values. */
5810 new_gdbarch->dump_tdep = rego->dump_tdep;
0f71a2f6 5811 verify_gdbarch (new_gdbarch);
ebdba546 5812 new_gdbarch->initialized_p = 1;
0f71a2f6 5813
ebdba546
AC
5814 /* Initialize any per-architecture swap areas. This phase requires
5815 a valid global CURRENT_GDBARCH. Set it momentarially, and then
5816 swap the entire architecture out. */
5817 current_gdbarch = new_gdbarch;
7de2341d 5818 current_gdbarch_swap_init_hack ();
ebdba546 5819 current_gdbarch_swap_out_hack ();
67c2c32c 5820
4b9b3959 5821 if (gdbarch_debug)
ebdba546 5822 gdbarch_dump (new_gdbarch, gdb_stdlog);
4b9b3959 5823
ebdba546 5824 return new_gdbarch;
0f71a2f6 5825}
c906108c 5826
ebdba546
AC
5827struct gdbarch *
5828gdbarch_find_by_info (struct gdbarch_info info)
5829{
5830 /* Save the previously selected architecture, setting the global to
5831 NULL. This stops things like gdbarch->init() trying to use the
5832 previous architecture's configuration. The previous architecture
5833 may not even be of the same architecture family. The most recent
5834 architecture of the same family is found at the head of the
5835 rego->arches list. */
5836 struct gdbarch *old_gdbarch = current_gdbarch_swap_out_hack ();
5837
5838 /* Find the specified architecture. */
5839 struct gdbarch *new_gdbarch = find_arch_by_info (old_gdbarch, info);
5840
5841 /* Restore the existing architecture. */
5842 gdb_assert (current_gdbarch == NULL);
5843 current_gdbarch_swap_in_hack (old_gdbarch);
5844
5845 return new_gdbarch;
5846}
5847
5848/* Make the specified architecture current, swapping the existing one
5849 out. */
5850
5851void
5852deprecated_current_gdbarch_select_hack (struct gdbarch *new_gdbarch)
5853{
5854 gdb_assert (new_gdbarch != NULL);
5855 gdb_assert (current_gdbarch != NULL);
5856 gdb_assert (new_gdbarch->initialized_p);
5857 current_gdbarch_swap_out_hack ();
5858 current_gdbarch_swap_in_hack (new_gdbarch);
5859 architecture_changed_event ();
5860}
c906108c 5861
104c1213 5862extern void _initialize_gdbarch (void);
b4a20239 5863
c906108c 5864void
7c7651b2 5865_initialize_gdbarch (void)
c906108c 5866{
5d161b24
DB
5867 struct cmd_list_element *c;
5868
5d161b24 5869 add_show_from_set (add_set_cmd ("arch",
c906108c
SS
5870 class_maintenance,
5871 var_zinteger,
adf40b2e 5872 (char *)&gdbarch_debug,
c906108c 5873 "Set architecture debugging.\n\
5d161b24
DB
5874When non-zero, architecture debugging is enabled.", &setdebuglist),
5875 &showdebuglist);
59233f88
AC
5876 c = add_set_cmd ("archdebug",
5877 class_maintenance,
5878 var_zinteger,
5879 (char *)&gdbarch_debug,
5880 "Set architecture debugging.\n\
5d161b24
DB
5881When non-zero, architecture debugging is enabled.", &setlist);
5882
59233f88
AC
5883 deprecate_cmd (c, "set debug arch");
5884 deprecate_cmd (add_show_from_set (c, &showlist), "show debug arch");
c906108c 5885}
This page took 0.948336 seconds and 4 git commands to generate.