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