ChangeLog:
[deliverable/binutils-gdb.git] / gdb / gdbarch.c
CommitLineData
59233f88
AC
1/* *INDENT-OFF* */ /* THIS FILE IS GENERATED */
2
adf40b2e 3/* Dynamic architecture support for GDB, the GNU debugger.
79d45cd4 4
de584861 5 Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
424163ea 6 Free Software Foundation, Inc.
c906108c 7
96baa820
JM
8 This file is part of GDB.
9
10 This program is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
a9762ec7 12 the Free Software Foundation; either version 3 of the License, or
96baa820 13 (at your option) any later version.
de584861 14
96baa820
JM
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
de584861 19
96baa820 20 You should have received a copy of the GNU General Public License
a9762ec7 21 along with this program. If not, see <http://www.gnu.org/licenses/>. */
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"
faaf634c 40#include "inferior.h"
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"
b59ff9d5 47#include "reggroups.h"
4be87837 48#include "osabi.h"
aebd7893 49#include "gdb_obstack.h"
383f836e 50#include "observer.h"
a3ecef73 51#include "regcache.h"
95160752 52
104c1213
JM
53/* Static function declarations */
54
b3cc3077 55static void alloc_gdbarch_data (struct gdbarch *);
104c1213 56
0f71a2f6
JM
57/* Non-zero if we want to trace architecture code. */
58
59#ifndef GDBARCH_DEBUG
60#define GDBARCH_DEBUG 0
61#endif
62int gdbarch_debug = GDBARCH_DEBUG;
920d2a44
AC
63static void
64show_gdbarch_debug (struct ui_file *file, int from_tty,
65 struct cmd_list_element *c, const char *value)
66{
67 fprintf_filtered (file, _("Architecture debugging is %s.\n"), value);
68}
0f71a2f6 69
456fcf94 70static const char *
8da61cc4 71pformat (const struct floatformat **format)
456fcf94
AC
72{
73 if (format == NULL)
74 return "(null)";
75 else
8da61cc4
DJ
76 /* Just print out one of them - this is only for diagnostics. */
77 return format[0]->name;
456fcf94
AC
78}
79
0f71a2f6
JM
80
81/* Maintain the struct gdbarch object */
82
83struct gdbarch
adf40b2e 84{
76860b5f
AC
85 /* Has this architecture been fully initialized? */
86 int initialized_p;
aebd7893
AC
87
88 /* An obstack bound to the lifetime of the architecture. */
89 struct obstack *obstack;
90
adf40b2e
JM
91 /* basic architectural information */
92 const struct bfd_arch_info * bfd_arch_info;
93 int byte_order;
9d4fde75 94 int byte_order_for_code;
4be87837 95 enum gdb_osabi osabi;
424163ea 96 const struct target_desc * target_desc;
0f71a2f6 97
adf40b2e
JM
98 /* target specific vector. */
99 struct gdbarch_tdep *tdep;
4b9b3959 100 gdbarch_dump_tdep_ftype *dump_tdep;
0f71a2f6 101
adf40b2e 102 /* per-architecture data-pointers */
95160752 103 unsigned nr_data;
adf40b2e 104 void **data;
0f71a2f6 105
adf40b2e
JM
106 /* per-architecture swap-regions */
107 struct gdbarch_swap *swap;
0f71a2f6 108
adf40b2e 109 /* Multi-arch values.
0f71a2f6 110
adf40b2e 111 When extending this structure you must:
0f71a2f6 112
adf40b2e 113 Add the field below.
0f71a2f6 114
adf40b2e
JM
115 Declare set/get functions and define the corresponding
116 macro in gdbarch.h.
0f71a2f6 117
adf40b2e
JM
118 gdbarch_alloc(): If zero/NULL is not a suitable default,
119 initialize the new field.
0f71a2f6 120
adf40b2e
JM
121 verify_gdbarch(): Confirm that the target updated the field
122 correctly.
0f71a2f6 123
7e73cedf 124 gdbarch_dump(): Add a fprintf_unfiltered call so that the new
adf40b2e 125 field is dumped out
0f71a2f6 126
c0e8c252 127 ``startup_gdbarch()'': Append an initial value to the static
adf40b2e 128 variable (base values on the host's c-type system).
0f71a2f6 129
adf40b2e
JM
130 get_gdbarch(): Implement the set/get functions (probably using
131 the macro's as shortcuts).
0f71a2f6
JM
132
133 */
134
32c9a795 135 int bits_big_endian;
adf40b2e
JM
136 int short_bit;
137 int int_bit;
138 int long_bit;
139 int long_long_bit;
140 int float_bit;
8da61cc4 141 const struct floatformat ** float_format;
adf40b2e 142 int double_bit;
8da61cc4 143 const struct floatformat ** double_format;
adf40b2e 144 int long_double_bit;
8da61cc4 145 const struct floatformat ** long_double_format;
66b43ecb 146 int ptr_bit;
52204a0b 147 int addr_bit;
4e409299 148 int char_signed;
adf40b2e
JM
149 gdbarch_read_pc_ftype *read_pc;
150 gdbarch_write_pc_ftype *write_pc;
39d4ef09 151 gdbarch_virtual_frame_pointer_ftype *virtual_frame_pointer;
d8124050
AC
152 gdbarch_pseudo_register_read_ftype *pseudo_register_read;
153 gdbarch_pseudo_register_write_ftype *pseudo_register_write;
adf40b2e 154 int num_regs;
0aba1244 155 int num_pseudo_regs;
adf40b2e 156 int sp_regnum;
adf40b2e 157 int pc_regnum;
c2169756 158 int ps_regnum;
60054393 159 int fp0_regnum;
88c72b7d
AC
160 gdbarch_stab_reg_to_regnum_ftype *stab_reg_to_regnum;
161 gdbarch_ecoff_reg_to_regnum_ftype *ecoff_reg_to_regnum;
88c72b7d
AC
162 gdbarch_sdb_reg_to_regnum_ftype *sdb_reg_to_regnum;
163 gdbarch_dwarf2_reg_to_regnum_ftype *dwarf2_reg_to_regnum;
adf40b2e 164 gdbarch_register_name_ftype *register_name;
9c04cab7 165 gdbarch_register_type_ftype *register_type;
669fac23 166 gdbarch_dummy_id_ftype *dummy_id;
f3be58bc 167 int deprecated_fp_regnum;
b8de8283 168 gdbarch_push_dummy_call_ftype *push_dummy_call;
adf40b2e 169 int call_dummy_location;
7043d8dc 170 gdbarch_push_dummy_code_ftype *push_dummy_code;
b8de8283
AC
171 gdbarch_print_registers_info_ftype *print_registers_info;
172 gdbarch_print_float_info_ftype *print_float_info;
173 gdbarch_print_vector_info_ftype *print_vector_info;
174 gdbarch_register_sim_regno_ftype *register_sim_regno;
b8de8283
AC
175 gdbarch_cannot_fetch_register_ftype *cannot_fetch_register;
176 gdbarch_cannot_store_register_ftype *cannot_store_register;
177 gdbarch_get_longjmp_target_ftype *get_longjmp_target;
adf40b2e 178 int believe_pcc_promotion;
13d01224
AC
179 gdbarch_convert_register_p_ftype *convert_register_p;
180 gdbarch_register_to_value_ftype *register_to_value;
181 gdbarch_value_to_register_ftype *value_to_register;
9acbedc0 182 gdbarch_value_from_register_ftype *value_from_register;
4478b372
JB
183 gdbarch_pointer_to_address_ftype *pointer_to_address;
184 gdbarch_address_to_pointer_ftype *address_to_pointer;
fc0c74b1 185 gdbarch_integer_to_address_ftype *integer_to_address;
92ad9cd9 186 gdbarch_return_value_ftype *return_value;
adf40b2e 187 gdbarch_skip_prologue_ftype *skip_prologue;
4309257c 188 gdbarch_skip_main_prologue_ftype *skip_main_prologue;
adf40b2e
JM
189 gdbarch_inner_than_ftype *inner_than;
190 gdbarch_breakpoint_from_pc_ftype *breakpoint_from_pc;
a1131521 191 gdbarch_adjust_breakpoint_address_ftype *adjust_breakpoint_address;
917317f4
JM
192 gdbarch_memory_insert_breakpoint_ftype *memory_insert_breakpoint;
193 gdbarch_memory_remove_breakpoint_ftype *memory_remove_breakpoint;
adf40b2e 194 CORE_ADDR decr_pc_after_break;
782263ab 195 CORE_ADDR deprecated_function_start_offset;
123dc839 196 gdbarch_remote_register_number_ftype *remote_register_number;
b2756930 197 gdbarch_fetch_tls_load_module_address_ftype *fetch_tls_load_module_address;
adf40b2e 198 CORE_ADDR frame_args_skip;
12cc2063 199 gdbarch_unwind_pc_ftype *unwind_pc;
a9e5fdc2 200 gdbarch_unwind_sp_ftype *unwind_sp;
adf40b2e 201 gdbarch_frame_num_args_ftype *frame_num_args;
dc604539 202 gdbarch_frame_align_ftype *frame_align;
192cb3d4 203 gdbarch_stabs_argument_has_addr_ftype *stabs_argument_has_addr;
8b148df9 204 int frame_red_zone_size;
f517ea4e 205 gdbarch_convert_from_func_ptr_addr_ftype *convert_from_func_ptr_addr;
875e1767 206 gdbarch_addr_bits_remove_ftype *addr_bits_remove;
181c1381 207 gdbarch_smash_text_address_ftype *smash_text_address;
64c4637f 208 gdbarch_software_single_step_ftype *software_single_step;
3352ef37 209 gdbarch_single_step_through_delay_ftype *single_step_through_delay;
2bf0cb65 210 gdbarch_print_insn_ftype *print_insn;
bdcd319a 211 gdbarch_skip_trampoline_code_ftype *skip_trampoline_code;
dea0c52f 212 gdbarch_skip_solib_resolver_ftype *skip_solib_resolver;
d50355b6 213 gdbarch_in_solib_return_trampoline_ftype *in_solib_return_trampoline;
c12260ac 214 gdbarch_in_function_epilogue_p_ftype *in_function_epilogue_p;
a2cf933a
EZ
215 gdbarch_elf_make_msymbol_special_ftype *elf_make_msymbol_special;
216 gdbarch_coff_make_msymbol_special_ftype *coff_make_msymbol_special;
c4ed33b9 217 int cannot_step_breakpoint;
f74fa174 218 int have_nonsteppable_watchpoint;
8b2dbe47
KB
219 gdbarch_address_class_type_flags_ftype *address_class_type_flags;
220 gdbarch_address_class_type_flags_to_name_ftype *address_class_type_flags_to_name;
221 gdbarch_address_class_name_to_type_flags_ftype *address_class_name_to_type_flags;
b59ff9d5 222 gdbarch_register_reggroup_p_ftype *register_reggroup_p;
143985b7 223 gdbarch_fetch_pointer_argument_ftype *fetch_pointer_argument;
6ce6d90f 224 gdbarch_regset_from_core_section_ftype *regset_from_core_section;
959b8724 225 int core_reg_section_encodes_pid;
17ea7499 226 struct core_regset_section * core_regset_sections;
de584861 227 gdbarch_core_xfer_shared_libraries_ftype *core_xfer_shared_libraries;
28439f5e 228 gdbarch_core_pid_to_str_ftype *core_pid_to_str;
a78c2d62 229 const char * gcore_bfd_target;
0d5de010
DJ
230 int vtable_function_descriptors;
231 int vbit_in_delta;
6d350bb5 232 gdbarch_skip_permanent_breakpoint_ftype *skip_permanent_breakpoint;
237fc4c9
PA
233 ULONGEST max_insn_length;
234 gdbarch_displaced_step_copy_insn_ftype *displaced_step_copy_insn;
235 gdbarch_displaced_step_fixup_ftype *displaced_step_fixup;
236 gdbarch_displaced_step_free_closure_ftype *displaced_step_free_closure;
237 gdbarch_displaced_step_location_ftype *displaced_step_location;
1c772458 238 gdbarch_overlay_update_ftype *overlay_update;
4eb0ad19 239 gdbarch_core_read_description_ftype *core_read_description;
149ad273 240 gdbarch_static_transform_name_ftype *static_transform_name;
203c3895 241 int sofun_address_maybe_missing;
0508c3ec 242 gdbarch_process_record_ftype *process_record;
1cded358
AR
243 gdbarch_target_signal_from_host_ftype *target_signal_from_host;
244 gdbarch_target_signal_to_host_ftype *target_signal_to_host;
4aa995e1 245 gdbarch_get_siginfo_type_ftype *get_siginfo_type;
60c5725c 246 gdbarch_record_special_symbol_ftype *record_special_symbol;
50c71eaf 247 int has_global_solist;
2567c7d9 248 int has_global_breakpoints;
adf40b2e 249};
0f71a2f6
JM
250
251
252/* The default architecture uses host values (for want of a better
253 choice). */
254
255extern const struct bfd_arch_info bfd_default_arch_struct;
256
4b9b3959
AC
257struct gdbarch startup_gdbarch =
258{
76860b5f 259 1, /* Always initialized. */
aebd7893 260 NULL, /* The obstack. */
0f71a2f6 261 /* basic architecture information */
ec5cbaec
AC
262 &bfd_default_arch_struct, /* bfd_arch_info */
263 BFD_ENDIAN_BIG, /* byte_order */
9d4fde75 264 BFD_ENDIAN_BIG, /* byte_order_for_code */
ec5cbaec 265 GDB_OSABI_UNKNOWN, /* osabi */
424163ea 266 0, /* target_desc */
4b9b3959
AC
267 /* target specific vector and its dump routine */
268 NULL, NULL,
0f71a2f6
JM
269 /*per-architecture data-pointers and swap regions */
270 0, NULL, NULL,
271 /* Multi-arch values */
32c9a795 272 1, /* bits_big_endian */
ec5cbaec
AC
273 8 * sizeof (short), /* short_bit */
274 8 * sizeof (int), /* int_bit */
275 8 * sizeof (long), /* long_bit */
276 8 * sizeof (LONGEST), /* long_long_bit */
277 8 * sizeof (float), /* float_bit */
456fcf94 278 0, /* float_format */
ec5cbaec 279 8 * sizeof (double), /* double_bit */
456fcf94 280 0, /* double_format */
ec5cbaec 281 8 * sizeof (long double), /* long_double_bit */
456fcf94 282 0, /* long_double_format */
ec5cbaec
AC
283 8 * sizeof (void*), /* ptr_bit */
284 8 * sizeof (void*), /* addr_bit */
ec5cbaec
AC
285 1, /* char_signed */
286 0, /* read_pc */
287 0, /* write_pc */
a54fba4c 288 legacy_virtual_frame_pointer, /* virtual_frame_pointer */
ec5cbaec
AC
289 0, /* pseudo_register_read */
290 0, /* pseudo_register_write */
291 0, /* num_regs */
292 0, /* num_pseudo_regs */
293 -1, /* sp_regnum */
ec5cbaec
AC
294 -1, /* pc_regnum */
295 -1, /* ps_regnum */
296 0, /* fp0_regnum */
d3f73121
MD
297 no_op_reg_to_regnum, /* stab_reg_to_regnum */
298 no_op_reg_to_regnum, /* ecoff_reg_to_regnum */
d3f73121
MD
299 no_op_reg_to_regnum, /* sdb_reg_to_regnum */
300 no_op_reg_to_regnum, /* dwarf2_reg_to_regnum */
ec5cbaec 301 0, /* register_name */
9c04cab7 302 0, /* register_type */
669fac23 303 0, /* dummy_id */
f3be58bc 304 -1, /* deprecated_fp_regnum */
b8de8283 305 0, /* push_dummy_call */
ec5cbaec 306 0, /* call_dummy_location */
ec5cbaec 307 0, /* push_dummy_code */
b8de8283
AC
308 default_print_registers_info, /* print_registers_info */
309 0, /* print_float_info */
310 0, /* print_vector_info */
e7faf938 311 legacy_register_sim_regno, /* register_sim_regno */
64a3914f
MD
312 cannot_register_not, /* cannot_fetch_register */
313 cannot_register_not, /* cannot_store_register */
b8de8283 314 0, /* get_longjmp_target */
ec5cbaec 315 0, /* believe_pcc_promotion */
0abe36f5 316 generic_convert_register_p, /* convert_register_p */
ec5cbaec
AC
317 0, /* register_to_value */
318 0, /* value_to_register */
9acbedc0 319 0, /* value_from_register */
ec5cbaec
AC
320 0, /* pointer_to_address */
321 0, /* address_to_pointer */
322 0, /* integer_to_address */
92ad9cd9 323 0, /* return_value */
ec5cbaec 324 0, /* skip_prologue */
4309257c 325 0, /* skip_main_prologue */
ec5cbaec
AC
326 0, /* inner_than */
327 0, /* breakpoint_from_pc */
a1131521 328 0, /* adjust_breakpoint_address */
ae4b2284
MD
329 default_memory_insert_breakpoint, /* memory_insert_breakpoint */
330 default_memory_remove_breakpoint, /* memory_remove_breakpoint */
ec5cbaec 331 0, /* decr_pc_after_break */
782263ab 332 0, /* deprecated_function_start_offset */
123dc839 333 default_remote_register_number, /* remote_register_number */
b2756930 334 0, /* fetch_tls_load_module_address */
ec5cbaec 335 0, /* frame_args_skip */
ec5cbaec 336 0, /* unwind_pc */
a9e5fdc2 337 0, /* unwind_sp */
ec5cbaec 338 0, /* frame_num_args */
ec5cbaec 339 0, /* frame_align */
192cb3d4 340 default_stabs_argument_has_addr, /* stabs_argument_has_addr */
8b148df9 341 0, /* frame_red_zone_size */
e2d0e7eb 342 convert_from_func_ptr_addr_identity, /* convert_from_func_ptr_addr */
24568a2c
UW
343 core_addr_identity, /* addr_bits_remove */
344 core_addr_identity, /* smash_text_address */
ec5cbaec 345 0, /* software_single_step */
3352ef37 346 0, /* single_step_through_delay */
ec5cbaec
AC
347 0, /* print_insn */
348 0, /* skip_trampoline_code */
4c8c40e6 349 generic_skip_solib_resolver, /* skip_solib_resolver */
ec5cbaec 350 0, /* in_solib_return_trampoline */
ec5cbaec 351 generic_in_function_epilogue_p, /* in_function_epilogue_p */
ec5cbaec
AC
352 0, /* elf_make_msymbol_special */
353 0, /* coff_make_msymbol_special */
ec5cbaec
AC
354 0, /* cannot_step_breakpoint */
355 0, /* have_nonsteppable_watchpoint */
356 0, /* address_class_type_flags */
357 0, /* address_class_type_flags_to_name */
358 0, /* address_class_name_to_type_flags */
359 default_register_reggroup_p, /* register_reggroup_p */
360 0, /* fetch_pointer_argument */
6ce6d90f 361 0, /* regset_from_core_section */
959b8724 362 0, /* core_reg_section_encodes_pid */
17ea7499 363 0, /* core_regset_sections */
de584861 364 0, /* core_xfer_shared_libraries */
28439f5e 365 0, /* core_pid_to_str */
a78c2d62 366 0, /* gcore_bfd_target */
0d5de010
DJ
367 0, /* vtable_function_descriptors */
368 0, /* vbit_in_delta */
6d350bb5 369 0, /* skip_permanent_breakpoint */
237fc4c9
PA
370 0, /* max_insn_length */
371 0, /* displaced_step_copy_insn */
372 0, /* displaced_step_fixup */
373 NULL, /* displaced_step_free_closure */
374 NULL, /* displaced_step_location */
1c772458 375 0, /* overlay_update */
4eb0ad19 376 0, /* core_read_description */
149ad273 377 0, /* static_transform_name */
203c3895 378 0, /* sofun_address_maybe_missing */
0508c3ec 379 0, /* process_record */
1cded358
AR
380 default_target_signal_from_host, /* target_signal_from_host */
381 default_target_signal_to_host, /* target_signal_to_host */
4aa995e1 382 0, /* get_siginfo_type */
60c5725c 383 0, /* record_special_symbol */
50c71eaf 384 0, /* has_global_solist */
2567c7d9 385 0, /* has_global_breakpoints */
c0e8c252 386 /* startup_gdbarch() */
0f71a2f6 387};
4b9b3959 388
c0e8c252 389struct gdbarch *current_gdbarch = &startup_gdbarch;
1cf3db46 390struct gdbarch *target_gdbarch = &startup_gdbarch;
0f71a2f6 391
66b43ecb 392/* Create a new ``struct gdbarch'' based on information provided by
0f71a2f6
JM
393 ``struct gdbarch_info''. */
394
395struct gdbarch *
104c1213
JM
396gdbarch_alloc (const struct gdbarch_info *info,
397 struct gdbarch_tdep *tdep)
0f71a2f6 398{
be7811ad 399 struct gdbarch *gdbarch;
aebd7893
AC
400
401 /* Create an obstack for allocating all the per-architecture memory,
402 then use that to allocate the architecture vector. */
403 struct obstack *obstack = XMALLOC (struct obstack);
404 obstack_init (obstack);
be7811ad
MD
405 gdbarch = obstack_alloc (obstack, sizeof (*gdbarch));
406 memset (gdbarch, 0, sizeof (*gdbarch));
407 gdbarch->obstack = obstack;
0f71a2f6 408
be7811ad 409 alloc_gdbarch_data (gdbarch);
b3cc3077 410
be7811ad 411 gdbarch->tdep = tdep;
0f71a2f6 412
be7811ad
MD
413 gdbarch->bfd_arch_info = info->bfd_arch_info;
414 gdbarch->byte_order = info->byte_order;
9d4fde75 415 gdbarch->byte_order_for_code = info->byte_order_for_code;
be7811ad
MD
416 gdbarch->osabi = info->osabi;
417 gdbarch->target_desc = info->target_desc;
0f71a2f6
JM
418
419 /* Force the explicit initialization of these. */
32c9a795 420 gdbarch->bits_big_endian = (gdbarch->byte_order == BFD_ENDIAN_BIG);
be7811ad
MD
421 gdbarch->short_bit = 2*TARGET_CHAR_BIT;
422 gdbarch->int_bit = 4*TARGET_CHAR_BIT;
423 gdbarch->long_bit = 4*TARGET_CHAR_BIT;
424 gdbarch->long_long_bit = 2*gdbarch->long_bit;
425 gdbarch->float_bit = 4*TARGET_CHAR_BIT;
426 gdbarch->double_bit = 8*TARGET_CHAR_BIT;
427 gdbarch->long_double_bit = 8*TARGET_CHAR_BIT;
428 gdbarch->ptr_bit = gdbarch->int_bit;
429 gdbarch->char_signed = -1;
430 gdbarch->virtual_frame_pointer = legacy_virtual_frame_pointer;
431 gdbarch->num_regs = -1;
432 gdbarch->sp_regnum = -1;
433 gdbarch->pc_regnum = -1;
434 gdbarch->ps_regnum = -1;
435 gdbarch->fp0_regnum = -1;
436 gdbarch->stab_reg_to_regnum = no_op_reg_to_regnum;
437 gdbarch->ecoff_reg_to_regnum = no_op_reg_to_regnum;
be7811ad
MD
438 gdbarch->sdb_reg_to_regnum = no_op_reg_to_regnum;
439 gdbarch->dwarf2_reg_to_regnum = no_op_reg_to_regnum;
440 gdbarch->deprecated_fp_regnum = -1;
441 gdbarch->call_dummy_location = AT_ENTRY_POINT;
442 gdbarch->print_registers_info = default_print_registers_info;
443 gdbarch->register_sim_regno = legacy_register_sim_regno;
444 gdbarch->cannot_fetch_register = cannot_register_not;
445 gdbarch->cannot_store_register = cannot_register_not;
446 gdbarch->convert_register_p = generic_convert_register_p;
447 gdbarch->value_from_register = default_value_from_register;
448 gdbarch->pointer_to_address = unsigned_pointer_to_address;
449 gdbarch->address_to_pointer = unsigned_address_to_pointer;
450 gdbarch->memory_insert_breakpoint = default_memory_insert_breakpoint;
451 gdbarch->memory_remove_breakpoint = default_memory_remove_breakpoint;
452 gdbarch->remote_register_number = default_remote_register_number;
453 gdbarch->stabs_argument_has_addr = default_stabs_argument_has_addr;
454 gdbarch->convert_from_func_ptr_addr = convert_from_func_ptr_addr_identity;
455 gdbarch->addr_bits_remove = core_addr_identity;
456 gdbarch->smash_text_address = core_addr_identity;
457 gdbarch->skip_trampoline_code = generic_skip_trampoline_code;
458 gdbarch->skip_solib_resolver = generic_skip_solib_resolver;
459 gdbarch->in_solib_return_trampoline = generic_in_solib_return_trampoline;
460 gdbarch->in_function_epilogue_p = generic_in_function_epilogue_p;
be7811ad
MD
461 gdbarch->elf_make_msymbol_special = default_elf_make_msymbol_special;
462 gdbarch->coff_make_msymbol_special = default_coff_make_msymbol_special;
be7811ad 463 gdbarch->register_reggroup_p = default_register_reggroup_p;
237fc4c9
PA
464 gdbarch->displaced_step_fixup = NULL;
465 gdbarch->displaced_step_free_closure = NULL;
466 gdbarch->displaced_step_location = NULL;
1cded358
AR
467 gdbarch->target_signal_from_host = default_target_signal_from_host;
468 gdbarch->target_signal_to_host = default_target_signal_to_host;
0f71a2f6
JM
469 /* gdbarch_alloc() */
470
be7811ad 471 return gdbarch;
0f71a2f6
JM
472}
473
474
aebd7893
AC
475/* Allocate extra space using the per-architecture obstack. */
476
477void *
478gdbarch_obstack_zalloc (struct gdbarch *arch, long size)
479{
480 void *data = obstack_alloc (arch->obstack, size);
481 memset (data, 0, size);
482 return data;
483}
484
485
058f20d5
JB
486/* Free a gdbarch struct. This should never happen in normal
487 operation --- once you've created a gdbarch, you keep it around.
488 However, if an architecture's init function encounters an error
489 building the structure, it may need to clean up a partially
490 constructed gdbarch. */
4b9b3959 491
058f20d5
JB
492void
493gdbarch_free (struct gdbarch *arch)
494{
aebd7893 495 struct obstack *obstack;
95160752 496 gdb_assert (arch != NULL);
aebd7893
AC
497 gdb_assert (!arch->initialized_p);
498 obstack = arch->obstack;
499 obstack_free (obstack, 0); /* Includes the ARCH. */
500 xfree (obstack);
058f20d5
JB
501}
502
503
db446970
AC
504/* Ensure that all values in a GDBARCH are reasonable. */
505
0f71a2f6 506static void
be7811ad 507verify_gdbarch (struct gdbarch *gdbarch)
0f71a2f6 508{
f16a1923
AC
509 struct ui_file *log;
510 struct cleanup *cleanups;
511 long dummy;
512 char *buf;
f16a1923
AC
513 log = mem_fileopen ();
514 cleanups = make_cleanup_ui_file_delete (log);
0f71a2f6 515 /* fundamental */
be7811ad 516 if (gdbarch->byte_order == BFD_ENDIAN_UNKNOWN)
f16a1923 517 fprintf_unfiltered (log, "\n\tbyte-order");
be7811ad 518 if (gdbarch->bfd_arch_info == NULL)
f16a1923 519 fprintf_unfiltered (log, "\n\tbfd_arch_info");
0f71a2f6 520 /* Check those that need to be defined for the given multi-arch level. */
32c9a795 521 /* Skip verify of bits_big_endian, invalid_p == 0 */
66b43ecb
AC
522 /* Skip verify of short_bit, invalid_p == 0 */
523 /* Skip verify of int_bit, invalid_p == 0 */
524 /* Skip verify of long_bit, invalid_p == 0 */
525 /* Skip verify of long_long_bit, invalid_p == 0 */
526 /* Skip verify of float_bit, invalid_p == 0 */
be7811ad
MD
527 if (gdbarch->float_format == 0)
528 gdbarch->float_format = floatformats_ieee_single;
66b43ecb 529 /* Skip verify of double_bit, invalid_p == 0 */
be7811ad
MD
530 if (gdbarch->double_format == 0)
531 gdbarch->double_format = floatformats_ieee_double;
66b43ecb 532 /* Skip verify of long_double_bit, invalid_p == 0 */
be7811ad
MD
533 if (gdbarch->long_double_format == 0)
534 gdbarch->long_double_format = floatformats_ieee_double;
66b43ecb 535 /* Skip verify of ptr_bit, invalid_p == 0 */
be7811ad
MD
536 if (gdbarch->addr_bit == 0)
537 gdbarch->addr_bit = gdbarch_ptr_bit (gdbarch);
538 if (gdbarch->char_signed == -1)
539 gdbarch->char_signed = 1;
cde9ea48 540 /* Skip verify of read_pc, has predicate */
61a1198a 541 /* Skip verify of write_pc, has predicate */
39d4ef09 542 /* Skip verify of virtual_frame_pointer, invalid_p == 0 */
d8124050
AC
543 /* Skip verify of pseudo_register_read, has predicate */
544 /* Skip verify of pseudo_register_write, has predicate */
be7811ad 545 if (gdbarch->num_regs == -1)
f16a1923 546 fprintf_unfiltered (log, "\n\tnum_regs");
0aba1244 547 /* Skip verify of num_pseudo_regs, invalid_p == 0 */
1200cd6e 548 /* Skip verify of sp_regnum, invalid_p == 0 */
1200cd6e 549 /* Skip verify of pc_regnum, invalid_p == 0 */
c2169756 550 /* Skip verify of ps_regnum, invalid_p == 0 */
60054393 551 /* Skip verify of fp0_regnum, invalid_p == 0 */
88c72b7d
AC
552 /* Skip verify of stab_reg_to_regnum, invalid_p == 0 */
553 /* Skip verify of ecoff_reg_to_regnum, invalid_p == 0 */
88c72b7d
AC
554 /* Skip verify of sdb_reg_to_regnum, invalid_p == 0 */
555 /* Skip verify of dwarf2_reg_to_regnum, invalid_p == 0 */
be7811ad 556 if (gdbarch->register_name == 0)
d93859e2 557 fprintf_unfiltered (log, "\n\tregister_name");
9c04cab7 558 /* Skip verify of register_type, has predicate */
669fac23 559 /* Skip verify of dummy_id, has predicate */
f3be58bc 560 /* Skip verify of deprecated_fp_regnum, invalid_p == 0 */
b8de8283 561 /* Skip verify of push_dummy_call, has predicate */
b8de8283 562 /* Skip verify of call_dummy_location, invalid_p == 0 */
b8de8283 563 /* Skip verify of push_dummy_code, has predicate */
0ab7a791 564 /* Skip verify of print_registers_info, invalid_p == 0 */
23e3a7ac 565 /* Skip verify of print_float_info, has predicate */
e76f1f2e 566 /* Skip verify of print_vector_info, has predicate */
7c7651b2 567 /* Skip verify of register_sim_regno, invalid_p == 0 */
01fb7433
AC
568 /* Skip verify of cannot_fetch_register, invalid_p == 0 */
569 /* Skip verify of cannot_store_register, invalid_p == 0 */
9df628e0 570 /* Skip verify of get_longjmp_target, has predicate */
13d01224 571 /* Skip verify of convert_register_p, invalid_p == 0 */
9acbedc0 572 /* Skip verify of value_from_register, invalid_p == 0 */
4478b372
JB
573 /* Skip verify of pointer_to_address, invalid_p == 0 */
574 /* Skip verify of address_to_pointer, invalid_p == 0 */
fc0c74b1 575 /* Skip verify of integer_to_address, has predicate */
92ad9cd9 576 /* Skip verify of return_value, has predicate */
be7811ad 577 if (gdbarch->skip_prologue == 0)
f16a1923 578 fprintf_unfiltered (log, "\n\tskip_prologue");
4309257c 579 /* Skip verify of skip_main_prologue, has predicate */
be7811ad 580 if (gdbarch->inner_than == 0)
f16a1923 581 fprintf_unfiltered (log, "\n\tinner_than");
be7811ad 582 if (gdbarch->breakpoint_from_pc == 0)
aaab4dba 583 fprintf_unfiltered (log, "\n\tbreakpoint_from_pc");
a1131521 584 /* Skip verify of adjust_breakpoint_address, has predicate */
c0e8c252
AC
585 /* Skip verify of memory_insert_breakpoint, invalid_p == 0 */
586 /* Skip verify of memory_remove_breakpoint, invalid_p == 0 */
71bd6bd4 587 /* Skip verify of decr_pc_after_break, invalid_p == 0 */
782263ab 588 /* Skip verify of deprecated_function_start_offset, invalid_p == 0 */
123dc839 589 /* Skip verify of remote_register_number, invalid_p == 0 */
b2756930 590 /* Skip verify of fetch_tls_load_module_address, has predicate */
5867a2fb 591 /* Skip verify of frame_args_skip, invalid_p == 0 */
12cc2063 592 /* Skip verify of unwind_pc, has predicate */
a9e5fdc2 593 /* Skip verify of unwind_sp, has predicate */
983a287a 594 /* Skip verify of frame_num_args, has predicate */
dc604539 595 /* Skip verify of frame_align, has predicate */
192cb3d4 596 /* Skip verify of stabs_argument_has_addr, invalid_p == 0 */
f517ea4e 597 /* Skip verify of convert_from_func_ptr_addr, invalid_p == 0 */
875e1767 598 /* Skip verify of addr_bits_remove, invalid_p == 0 */
181c1381 599 /* Skip verify of smash_text_address, invalid_p == 0 */
64c4637f 600 /* Skip verify of software_single_step, has predicate */
3352ef37 601 /* Skip verify of single_step_through_delay, has predicate */
be7811ad 602 if (gdbarch->print_insn == 0)
f6c40618 603 fprintf_unfiltered (log, "\n\tprint_insn");
bdcd319a 604 /* Skip verify of skip_trampoline_code, invalid_p == 0 */
dea0c52f 605 /* Skip verify of skip_solib_resolver, invalid_p == 0 */
d50355b6 606 /* Skip verify of in_solib_return_trampoline, invalid_p == 0 */
c12260ac 607 /* Skip verify of in_function_epilogue_p, invalid_p == 0 */
a2cf933a
EZ
608 /* Skip verify of elf_make_msymbol_special, invalid_p == 0 */
609 /* Skip verify of coff_make_msymbol_special, invalid_p == 0 */
c4ed33b9 610 /* Skip verify of cannot_step_breakpoint, invalid_p == 0 */
f74fa174 611 /* Skip verify of have_nonsteppable_watchpoint, invalid_p == 0 */
8b2dbe47
KB
612 /* Skip verify of address_class_type_flags, has predicate */
613 /* Skip verify of address_class_type_flags_to_name, has predicate */
614 /* Skip verify of address_class_name_to_type_flags, has predicate */
7e20f3fb 615 /* Skip verify of register_reggroup_p, invalid_p == 0 */
143985b7 616 /* Skip verify of fetch_pointer_argument, has predicate */
6ce6d90f 617 /* Skip verify of regset_from_core_section, has predicate */
959b8724 618 /* Skip verify of core_reg_section_encodes_pid, invalid_p == 0 */
de584861 619 /* Skip verify of core_xfer_shared_libraries, has predicate */
28439f5e 620 /* Skip verify of core_pid_to_str, has predicate */
a78c2d62 621 /* Skip verify of gcore_bfd_target, has predicate */
0d5de010
DJ
622 /* Skip verify of vtable_function_descriptors, invalid_p == 0 */
623 /* Skip verify of vbit_in_delta, invalid_p == 0 */
6d350bb5 624 /* Skip verify of skip_permanent_breakpoint, has predicate */
237fc4c9
PA
625 /* Skip verify of max_insn_length, has predicate */
626 /* Skip verify of displaced_step_copy_insn, has predicate */
627 /* Skip verify of displaced_step_fixup, has predicate */
628 if ((! gdbarch->displaced_step_free_closure) != (! gdbarch->displaced_step_copy_insn))
629 fprintf_unfiltered (log, "\n\tdisplaced_step_free_closure");
630 if ((! gdbarch->displaced_step_location) != (! gdbarch->displaced_step_copy_insn))
631 fprintf_unfiltered (log, "\n\tdisplaced_step_location");
1c772458 632 /* Skip verify of overlay_update, has predicate */
4eb0ad19 633 /* Skip verify of core_read_description, has predicate */
149ad273 634 /* Skip verify of static_transform_name, has predicate */
203c3895 635 /* Skip verify of sofun_address_maybe_missing, invalid_p == 0 */
0508c3ec 636 /* Skip verify of process_record, has predicate */
1cded358
AR
637 /* Skip verify of target_signal_from_host, invalid_p == 0 */
638 /* Skip verify of target_signal_to_host, invalid_p == 0 */
4aa995e1 639 /* Skip verify of get_siginfo_type, has predicate */
60c5725c 640 /* Skip verify of record_special_symbol, has predicate */
50c71eaf 641 /* Skip verify of has_global_solist, invalid_p == 0 */
2567c7d9 642 /* Skip verify of has_global_breakpoints, invalid_p == 0 */
f16a1923
AC
643 buf = ui_file_xstrdup (log, &dummy);
644 make_cleanup (xfree, buf);
645 if (strlen (buf) > 0)
646 internal_error (__FILE__, __LINE__,
e2e0b3e5 647 _("verify_gdbarch: the following are invalid ...%s"),
f16a1923
AC
648 buf);
649 do_cleanups (cleanups);
0f71a2f6
JM
650}
651
652
653/* Print out the details of the current architecture. */
654
655void
be7811ad 656gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
0f71a2f6 657{
b78960be 658 const char *gdb_nm_file = "<not-defined>";
b78960be
AC
659#if defined (GDB_NM_FILE)
660 gdb_nm_file = GDB_NM_FILE;
661#endif
662 fprintf_unfiltered (file,
663 "gdbarch_dump: GDB_NM_FILE = %s\n",
664 gdb_nm_file);
48f7351b
AC
665 fprintf_unfiltered (file,
666 "gdbarch_dump: addr_bit = %s\n",
623d3eb1 667 plongest (gdbarch->addr_bit));
48f7351b 668 fprintf_unfiltered (file,
30737ed9
JB
669 "gdbarch_dump: addr_bits_remove = <%s>\n",
670 host_address_to_string (gdbarch->addr_bits_remove));
7996bcec
AC
671 fprintf_unfiltered (file,
672 "gdbarch_dump: gdbarch_address_class_name_to_type_flags_p() = %d\n",
be7811ad 673 gdbarch_address_class_name_to_type_flags_p (gdbarch));
7996bcec 674 fprintf_unfiltered (file,
30737ed9
JB
675 "gdbarch_dump: address_class_name_to_type_flags = <%s>\n",
676 host_address_to_string (gdbarch->address_class_name_to_type_flags));
48f7351b
AC
677 fprintf_unfiltered (file,
678 "gdbarch_dump: gdbarch_address_class_type_flags_p() = %d\n",
be7811ad 679 gdbarch_address_class_type_flags_p (gdbarch));
48f7351b 680 fprintf_unfiltered (file,
30737ed9
JB
681 "gdbarch_dump: address_class_type_flags = <%s>\n",
682 host_address_to_string (gdbarch->address_class_type_flags));
7996bcec
AC
683 fprintf_unfiltered (file,
684 "gdbarch_dump: gdbarch_address_class_type_flags_to_name_p() = %d\n",
be7811ad 685 gdbarch_address_class_type_flags_to_name_p (gdbarch));
7996bcec 686 fprintf_unfiltered (file,
30737ed9
JB
687 "gdbarch_dump: address_class_type_flags_to_name = <%s>\n",
688 host_address_to_string (gdbarch->address_class_type_flags_to_name));
48f7351b 689 fprintf_unfiltered (file,
30737ed9
JB
690 "gdbarch_dump: address_to_pointer = <%s>\n",
691 host_address_to_string (gdbarch->address_to_pointer));
a1131521
KB
692 fprintf_unfiltered (file,
693 "gdbarch_dump: gdbarch_adjust_breakpoint_address_p() = %d\n",
be7811ad 694 gdbarch_adjust_breakpoint_address_p (gdbarch));
a1131521 695 fprintf_unfiltered (file,
30737ed9
JB
696 "gdbarch_dump: adjust_breakpoint_address = <%s>\n",
697 host_address_to_string (gdbarch->adjust_breakpoint_address));
48f7351b
AC
698 fprintf_unfiltered (file,
699 "gdbarch_dump: believe_pcc_promotion = %s\n",
623d3eb1 700 plongest (gdbarch->believe_pcc_promotion));
283354d8 701 fprintf_unfiltered (file,
48f7351b 702 "gdbarch_dump: bfd_arch_info = %s\n",
be7811ad 703 gdbarch_bfd_arch_info (gdbarch)->printable_name);
32c9a795
MD
704 fprintf_unfiltered (file,
705 "gdbarch_dump: bits_big_endian = %s\n",
623d3eb1 706 plongest (gdbarch->bits_big_endian));
48f7351b 707 fprintf_unfiltered (file,
30737ed9
JB
708 "gdbarch_dump: breakpoint_from_pc = <%s>\n",
709 host_address_to_string (gdbarch->breakpoint_from_pc));
48f7351b
AC
710 fprintf_unfiltered (file,
711 "gdbarch_dump: byte_order = %s\n",
623d3eb1 712 plongest (gdbarch->byte_order));
9d4fde75
SS
713 fprintf_unfiltered (file,
714 "gdbarch_dump: byte_order_for_code = %s\n",
623d3eb1 715 plongest (gdbarch->byte_order_for_code));
48f7351b
AC
716 fprintf_unfiltered (file,
717 "gdbarch_dump: call_dummy_location = %s\n",
623d3eb1 718 plongest (gdbarch->call_dummy_location));
48f7351b 719 fprintf_unfiltered (file,
30737ed9
JB
720 "gdbarch_dump: cannot_fetch_register = <%s>\n",
721 host_address_to_string (gdbarch->cannot_fetch_register));
48f7351b
AC
722 fprintf_unfiltered (file,
723 "gdbarch_dump: cannot_step_breakpoint = %s\n",
623d3eb1 724 plongest (gdbarch->cannot_step_breakpoint));
48f7351b 725 fprintf_unfiltered (file,
30737ed9
JB
726 "gdbarch_dump: cannot_store_register = <%s>\n",
727 host_address_to_string (gdbarch->cannot_store_register));
48f7351b
AC
728 fprintf_unfiltered (file,
729 "gdbarch_dump: char_signed = %s\n",
623d3eb1 730 plongest (gdbarch->char_signed));
7996bcec 731 fprintf_unfiltered (file,
30737ed9
JB
732 "gdbarch_dump: coff_make_msymbol_special = <%s>\n",
733 host_address_to_string (gdbarch->coff_make_msymbol_special));
a2428dbe 734 fprintf_unfiltered (file,
30737ed9
JB
735 "gdbarch_dump: convert_from_func_ptr_addr = <%s>\n",
736 host_address_to_string (gdbarch->convert_from_func_ptr_addr));
48f7351b 737 fprintf_unfiltered (file,
30737ed9
JB
738 "gdbarch_dump: convert_register_p = <%s>\n",
739 host_address_to_string (gdbarch->convert_register_p));
28439f5e
PA
740 fprintf_unfiltered (file,
741 "gdbarch_dump: gdbarch_core_pid_to_str_p() = %d\n",
742 gdbarch_core_pid_to_str_p (gdbarch));
743 fprintf_unfiltered (file,
744 "gdbarch_dump: core_pid_to_str = <%s>\n",
745 host_address_to_string (gdbarch->core_pid_to_str));
4eb0ad19
DJ
746 fprintf_unfiltered (file,
747 "gdbarch_dump: gdbarch_core_read_description_p() = %d\n",
be7811ad 748 gdbarch_core_read_description_p (gdbarch));
4eb0ad19 749 fprintf_unfiltered (file,
30737ed9
JB
750 "gdbarch_dump: core_read_description = <%s>\n",
751 host_address_to_string (gdbarch->core_read_description));
959b8724
PA
752 fprintf_unfiltered (file,
753 "gdbarch_dump: core_reg_section_encodes_pid = %s\n",
754 plongest (gdbarch->core_reg_section_encodes_pid));
17ea7499
CES
755 fprintf_unfiltered (file,
756 "gdbarch_dump: core_regset_sections = %s\n",
757 host_address_to_string (gdbarch->core_regset_sections));
de584861
PA
758 fprintf_unfiltered (file,
759 "gdbarch_dump: gdbarch_core_xfer_shared_libraries_p() = %d\n",
be7811ad 760 gdbarch_core_xfer_shared_libraries_p (gdbarch));
de584861 761 fprintf_unfiltered (file,
30737ed9
JB
762 "gdbarch_dump: core_xfer_shared_libraries = <%s>\n",
763 host_address_to_string (gdbarch->core_xfer_shared_libraries));
48f7351b 764 fprintf_unfiltered (file,
0b1553bc
UW
765 "gdbarch_dump: decr_pc_after_break = %s\n",
766 core_addr_to_string_nz (gdbarch->decr_pc_after_break));
48f7351b
AC
767 fprintf_unfiltered (file,
768 "gdbarch_dump: deprecated_fp_regnum = %s\n",
623d3eb1 769 plongest (gdbarch->deprecated_fp_regnum));
48f7351b 770 fprintf_unfiltered (file,
0b1553bc
UW
771 "gdbarch_dump: deprecated_function_start_offset = %s\n",
772 core_addr_to_string_nz (gdbarch->deprecated_function_start_offset));
237fc4c9
PA
773 fprintf_unfiltered (file,
774 "gdbarch_dump: gdbarch_displaced_step_copy_insn_p() = %d\n",
775 gdbarch_displaced_step_copy_insn_p (gdbarch));
776 fprintf_unfiltered (file,
30737ed9
JB
777 "gdbarch_dump: displaced_step_copy_insn = <%s>\n",
778 host_address_to_string (gdbarch->displaced_step_copy_insn));
237fc4c9
PA
779 fprintf_unfiltered (file,
780 "gdbarch_dump: gdbarch_displaced_step_fixup_p() = %d\n",
781 gdbarch_displaced_step_fixup_p (gdbarch));
782 fprintf_unfiltered (file,
30737ed9
JB
783 "gdbarch_dump: displaced_step_fixup = <%s>\n",
784 host_address_to_string (gdbarch->displaced_step_fixup));
237fc4c9 785 fprintf_unfiltered (file,
30737ed9
JB
786 "gdbarch_dump: displaced_step_free_closure = <%s>\n",
787 host_address_to_string (gdbarch->displaced_step_free_closure));
237fc4c9 788 fprintf_unfiltered (file,
30737ed9
JB
789 "gdbarch_dump: displaced_step_location = <%s>\n",
790 host_address_to_string (gdbarch->displaced_step_location));
48f7351b
AC
791 fprintf_unfiltered (file,
792 "gdbarch_dump: double_bit = %s\n",
623d3eb1 793 plongest (gdbarch->double_bit));
a2428dbe 794 fprintf_unfiltered (file,
48f7351b 795 "gdbarch_dump: double_format = %s\n",
be7811ad 796 pformat (gdbarch->double_format));
669fac23
DJ
797 fprintf_unfiltered (file,
798 "gdbarch_dump: gdbarch_dummy_id_p() = %d\n",
799 gdbarch_dummy_id_p (gdbarch));
800 fprintf_unfiltered (file,
30737ed9
JB
801 "gdbarch_dump: dummy_id = <%s>\n",
802 host_address_to_string (gdbarch->dummy_id));
48f7351b 803 fprintf_unfiltered (file,
30737ed9
JB
804 "gdbarch_dump: dwarf2_reg_to_regnum = <%s>\n",
805 host_address_to_string (gdbarch->dwarf2_reg_to_regnum));
48f7351b 806 fprintf_unfiltered (file,
30737ed9
JB
807 "gdbarch_dump: ecoff_reg_to_regnum = <%s>\n",
808 host_address_to_string (gdbarch->ecoff_reg_to_regnum));
48f7351b 809 fprintf_unfiltered (file,
30737ed9
JB
810 "gdbarch_dump: elf_make_msymbol_special = <%s>\n",
811 host_address_to_string (gdbarch->elf_make_msymbol_special));
48f7351b
AC
812 fprintf_unfiltered (file,
813 "gdbarch_dump: gdbarch_fetch_pointer_argument_p() = %d\n",
be7811ad 814 gdbarch_fetch_pointer_argument_p (gdbarch));
48f7351b 815 fprintf_unfiltered (file,
30737ed9
JB
816 "gdbarch_dump: fetch_pointer_argument = <%s>\n",
817 host_address_to_string (gdbarch->fetch_pointer_argument));
b2756930
KB
818 fprintf_unfiltered (file,
819 "gdbarch_dump: gdbarch_fetch_tls_load_module_address_p() = %d\n",
be7811ad 820 gdbarch_fetch_tls_load_module_address_p (gdbarch));
b2756930 821 fprintf_unfiltered (file,
30737ed9
JB
822 "gdbarch_dump: fetch_tls_load_module_address = <%s>\n",
823 host_address_to_string (gdbarch->fetch_tls_load_module_address));
48f7351b
AC
824 fprintf_unfiltered (file,
825 "gdbarch_dump: float_bit = %s\n",
623d3eb1 826 plongest (gdbarch->float_bit));
a2428dbe 827 fprintf_unfiltered (file,
48f7351b 828 "gdbarch_dump: float_format = %s\n",
be7811ad 829 pformat (gdbarch->float_format));
48f7351b
AC
830 fprintf_unfiltered (file,
831 "gdbarch_dump: fp0_regnum = %s\n",
623d3eb1 832 plongest (gdbarch->fp0_regnum));
a2428dbe
AC
833 fprintf_unfiltered (file,
834 "gdbarch_dump: gdbarch_frame_align_p() = %d\n",
be7811ad 835 gdbarch_frame_align_p (gdbarch));
a2428dbe 836 fprintf_unfiltered (file,
30737ed9
JB
837 "gdbarch_dump: frame_align = <%s>\n",
838 host_address_to_string (gdbarch->frame_align));
48f7351b 839 fprintf_unfiltered (file,
0b1553bc
UW
840 "gdbarch_dump: frame_args_skip = %s\n",
841 core_addr_to_string_nz (gdbarch->frame_args_skip));
48f7351b
AC
842 fprintf_unfiltered (file,
843 "gdbarch_dump: gdbarch_frame_num_args_p() = %d\n",
be7811ad 844 gdbarch_frame_num_args_p (gdbarch));
48f7351b 845 fprintf_unfiltered (file,
30737ed9
JB
846 "gdbarch_dump: frame_num_args = <%s>\n",
847 host_address_to_string (gdbarch->frame_num_args));
48f7351b
AC
848 fprintf_unfiltered (file,
849 "gdbarch_dump: frame_red_zone_size = %s\n",
623d3eb1 850 plongest (gdbarch->frame_red_zone_size));
a78c2d62
UW
851 fprintf_unfiltered (file,
852 "gdbarch_dump: gdbarch_gcore_bfd_target_p() = %d\n",
853 gdbarch_gcore_bfd_target_p (gdbarch));
854 fprintf_unfiltered (file,
855 "gdbarch_dump: gcore_bfd_target = %s\n",
856 gdbarch->gcore_bfd_target);
48f7351b
AC
857 fprintf_unfiltered (file,
858 "gdbarch_dump: gdbarch_get_longjmp_target_p() = %d\n",
be7811ad 859 gdbarch_get_longjmp_target_p (gdbarch));
48f7351b 860 fprintf_unfiltered (file,
30737ed9
JB
861 "gdbarch_dump: get_longjmp_target = <%s>\n",
862 host_address_to_string (gdbarch->get_longjmp_target));
4aa995e1
PA
863 fprintf_unfiltered (file,
864 "gdbarch_dump: gdbarch_get_siginfo_type_p() = %d\n",
865 gdbarch_get_siginfo_type_p (gdbarch));
866 fprintf_unfiltered (file,
315aef0a
PA
867 "gdbarch_dump: get_siginfo_type = <%s>\n",
868 host_address_to_string (gdbarch->get_siginfo_type));
2567c7d9
PA
869 fprintf_unfiltered (file,
870 "gdbarch_dump: has_global_breakpoints = %s\n",
871 plongest (gdbarch->has_global_breakpoints));
50c71eaf
PA
872 fprintf_unfiltered (file,
873 "gdbarch_dump: has_global_solist = %s\n",
874 plongest (gdbarch->has_global_solist));
a2428dbe 875 fprintf_unfiltered (file,
48f7351b 876 "gdbarch_dump: have_nonsteppable_watchpoint = %s\n",
623d3eb1 877 plongest (gdbarch->have_nonsteppable_watchpoint));
48f7351b 878 fprintf_unfiltered (file,
30737ed9
JB
879 "gdbarch_dump: in_function_epilogue_p = <%s>\n",
880 host_address_to_string (gdbarch->in_function_epilogue_p));
48f7351b 881 fprintf_unfiltered (file,
30737ed9
JB
882 "gdbarch_dump: in_solib_return_trampoline = <%s>\n",
883 host_address_to_string (gdbarch->in_solib_return_trampoline));
48f7351b 884 fprintf_unfiltered (file,
30737ed9
JB
885 "gdbarch_dump: inner_than = <%s>\n",
886 host_address_to_string (gdbarch->inner_than));
48f7351b
AC
887 fprintf_unfiltered (file,
888 "gdbarch_dump: int_bit = %s\n",
623d3eb1 889 plongest (gdbarch->int_bit));
48f7351b
AC
890 fprintf_unfiltered (file,
891 "gdbarch_dump: gdbarch_integer_to_address_p() = %d\n",
be7811ad 892 gdbarch_integer_to_address_p (gdbarch));
48f7351b 893 fprintf_unfiltered (file,
30737ed9
JB
894 "gdbarch_dump: integer_to_address = <%s>\n",
895 host_address_to_string (gdbarch->integer_to_address));
48f7351b
AC
896 fprintf_unfiltered (file,
897 "gdbarch_dump: long_bit = %s\n",
623d3eb1 898 plongest (gdbarch->long_bit));
48f7351b
AC
899 fprintf_unfiltered (file,
900 "gdbarch_dump: long_double_bit = %s\n",
623d3eb1 901 plongest (gdbarch->long_double_bit));
a2428dbe 902 fprintf_unfiltered (file,
48f7351b 903 "gdbarch_dump: long_double_format = %s\n",
be7811ad 904 pformat (gdbarch->long_double_format));
48f7351b
AC
905 fprintf_unfiltered (file,
906 "gdbarch_dump: long_long_bit = %s\n",
623d3eb1 907 plongest (gdbarch->long_long_bit));
237fc4c9
PA
908 fprintf_unfiltered (file,
909 "gdbarch_dump: gdbarch_max_insn_length_p() = %d\n",
910 gdbarch_max_insn_length_p (gdbarch));
911 fprintf_unfiltered (file,
912 "gdbarch_dump: max_insn_length = %s\n",
623d3eb1 913 plongest (gdbarch->max_insn_length));
48f7351b 914 fprintf_unfiltered (file,
30737ed9
JB
915 "gdbarch_dump: memory_insert_breakpoint = <%s>\n",
916 host_address_to_string (gdbarch->memory_insert_breakpoint));
48f7351b 917 fprintf_unfiltered (file,
30737ed9
JB
918 "gdbarch_dump: memory_remove_breakpoint = <%s>\n",
919 host_address_to_string (gdbarch->memory_remove_breakpoint));
48f7351b
AC
920 fprintf_unfiltered (file,
921 "gdbarch_dump: num_pseudo_regs = %s\n",
623d3eb1 922 plongest (gdbarch->num_pseudo_regs));
48f7351b
AC
923 fprintf_unfiltered (file,
924 "gdbarch_dump: num_regs = %s\n",
623d3eb1 925 plongest (gdbarch->num_regs));
48f7351b
AC
926 fprintf_unfiltered (file,
927 "gdbarch_dump: osabi = %s\n",
623d3eb1 928 plongest (gdbarch->osabi));
1c772458
UW
929 fprintf_unfiltered (file,
930 "gdbarch_dump: gdbarch_overlay_update_p() = %d\n",
be7811ad 931 gdbarch_overlay_update_p (gdbarch));
1c772458 932 fprintf_unfiltered (file,
30737ed9
JB
933 "gdbarch_dump: overlay_update = <%s>\n",
934 host_address_to_string (gdbarch->overlay_update));
48f7351b
AC
935 fprintf_unfiltered (file,
936 "gdbarch_dump: pc_regnum = %s\n",
623d3eb1 937 plongest (gdbarch->pc_regnum));
48f7351b 938 fprintf_unfiltered (file,
30737ed9
JB
939 "gdbarch_dump: pointer_to_address = <%s>\n",
940 host_address_to_string (gdbarch->pointer_to_address));
7996bcec
AC
941 fprintf_unfiltered (file,
942 "gdbarch_dump: gdbarch_print_float_info_p() = %d\n",
be7811ad 943 gdbarch_print_float_info_p (gdbarch));
7996bcec 944 fprintf_unfiltered (file,
30737ed9
JB
945 "gdbarch_dump: print_float_info = <%s>\n",
946 host_address_to_string (gdbarch->print_float_info));
7996bcec 947 fprintf_unfiltered (file,
30737ed9
JB
948 "gdbarch_dump: print_insn = <%s>\n",
949 host_address_to_string (gdbarch->print_insn));
48f7351b 950 fprintf_unfiltered (file,
30737ed9
JB
951 "gdbarch_dump: print_registers_info = <%s>\n",
952 host_address_to_string (gdbarch->print_registers_info));
7996bcec
AC
953 fprintf_unfiltered (file,
954 "gdbarch_dump: gdbarch_print_vector_info_p() = %d\n",
be7811ad 955 gdbarch_print_vector_info_p (gdbarch));
7996bcec 956 fprintf_unfiltered (file,
30737ed9
JB
957 "gdbarch_dump: print_vector_info = <%s>\n",
958 host_address_to_string (gdbarch->print_vector_info));
0508c3ec
HZ
959 fprintf_unfiltered (file,
960 "gdbarch_dump: gdbarch_process_record_p() = %d\n",
961 gdbarch_process_record_p (gdbarch));
962 fprintf_unfiltered (file,
963 "gdbarch_dump: process_record = <%s>\n",
964 host_address_to_string (gdbarch->process_record));
48f7351b
AC
965 fprintf_unfiltered (file,
966 "gdbarch_dump: ps_regnum = %s\n",
623d3eb1 967 plongest (gdbarch->ps_regnum));
a2428dbe
AC
968 fprintf_unfiltered (file,
969 "gdbarch_dump: gdbarch_pseudo_register_read_p() = %d\n",
be7811ad 970 gdbarch_pseudo_register_read_p (gdbarch));
a2428dbe 971 fprintf_unfiltered (file,
30737ed9
JB
972 "gdbarch_dump: pseudo_register_read = <%s>\n",
973 host_address_to_string (gdbarch->pseudo_register_read));
a2428dbe
AC
974 fprintf_unfiltered (file,
975 "gdbarch_dump: gdbarch_pseudo_register_write_p() = %d\n",
be7811ad 976 gdbarch_pseudo_register_write_p (gdbarch));
a2428dbe 977 fprintf_unfiltered (file,
30737ed9
JB
978 "gdbarch_dump: pseudo_register_write = <%s>\n",
979 host_address_to_string (gdbarch->pseudo_register_write));
48f7351b
AC
980 fprintf_unfiltered (file,
981 "gdbarch_dump: ptr_bit = %s\n",
623d3eb1 982 plongest (gdbarch->ptr_bit));
7996bcec
AC
983 fprintf_unfiltered (file,
984 "gdbarch_dump: gdbarch_push_dummy_call_p() = %d\n",
be7811ad 985 gdbarch_push_dummy_call_p (gdbarch));
7996bcec 986 fprintf_unfiltered (file,
30737ed9
JB
987 "gdbarch_dump: push_dummy_call = <%s>\n",
988 host_address_to_string (gdbarch->push_dummy_call));
7996bcec
AC
989 fprintf_unfiltered (file,
990 "gdbarch_dump: gdbarch_push_dummy_code_p() = %d\n",
be7811ad 991 gdbarch_push_dummy_code_p (gdbarch));
7996bcec 992 fprintf_unfiltered (file,
30737ed9
JB
993 "gdbarch_dump: push_dummy_code = <%s>\n",
994 host_address_to_string (gdbarch->push_dummy_code));
48f7351b
AC
995 fprintf_unfiltered (file,
996 "gdbarch_dump: gdbarch_read_pc_p() = %d\n",
be7811ad 997 gdbarch_read_pc_p (gdbarch));
48f7351b 998 fprintf_unfiltered (file,
30737ed9
JB
999 "gdbarch_dump: read_pc = <%s>\n",
1000 host_address_to_string (gdbarch->read_pc));
60c5725c
DJ
1001 fprintf_unfiltered (file,
1002 "gdbarch_dump: gdbarch_record_special_symbol_p() = %d\n",
1003 gdbarch_record_special_symbol_p (gdbarch));
1004 fprintf_unfiltered (file,
30737ed9
JB
1005 "gdbarch_dump: record_special_symbol = <%s>\n",
1006 host_address_to_string (gdbarch->record_special_symbol));
a2428dbe 1007 fprintf_unfiltered (file,
30737ed9
JB
1008 "gdbarch_dump: register_name = <%s>\n",
1009 host_address_to_string (gdbarch->register_name));
48f7351b 1010 fprintf_unfiltered (file,
30737ed9
JB
1011 "gdbarch_dump: register_reggroup_p = <%s>\n",
1012 host_address_to_string (gdbarch->register_reggroup_p));
48f7351b 1013 fprintf_unfiltered (file,
30737ed9
JB
1014 "gdbarch_dump: register_sim_regno = <%s>\n",
1015 host_address_to_string (gdbarch->register_sim_regno));
48f7351b 1016 fprintf_unfiltered (file,
30737ed9
JB
1017 "gdbarch_dump: register_to_value = <%s>\n",
1018 host_address_to_string (gdbarch->register_to_value));
7996bcec
AC
1019 fprintf_unfiltered (file,
1020 "gdbarch_dump: gdbarch_register_type_p() = %d\n",
be7811ad 1021 gdbarch_register_type_p (gdbarch));
7996bcec 1022 fprintf_unfiltered (file,
30737ed9
JB
1023 "gdbarch_dump: register_type = <%s>\n",
1024 host_address_to_string (gdbarch->register_type));
a2428dbe
AC
1025 fprintf_unfiltered (file,
1026 "gdbarch_dump: gdbarch_regset_from_core_section_p() = %d\n",
be7811ad 1027 gdbarch_regset_from_core_section_p (gdbarch));
a2428dbe 1028 fprintf_unfiltered (file,
30737ed9
JB
1029 "gdbarch_dump: regset_from_core_section = <%s>\n",
1030 host_address_to_string (gdbarch->regset_from_core_section));
123dc839 1031 fprintf_unfiltered (file,
30737ed9
JB
1032 "gdbarch_dump: remote_register_number = <%s>\n",
1033 host_address_to_string (gdbarch->remote_register_number));
a2428dbe
AC
1034 fprintf_unfiltered (file,
1035 "gdbarch_dump: gdbarch_return_value_p() = %d\n",
be7811ad 1036 gdbarch_return_value_p (gdbarch));
a2428dbe 1037 fprintf_unfiltered (file,
30737ed9
JB
1038 "gdbarch_dump: return_value = <%s>\n",
1039 host_address_to_string (gdbarch->return_value));
48f7351b 1040 fprintf_unfiltered (file,
30737ed9
JB
1041 "gdbarch_dump: sdb_reg_to_regnum = <%s>\n",
1042 host_address_to_string (gdbarch->sdb_reg_to_regnum));
48f7351b
AC
1043 fprintf_unfiltered (file,
1044 "gdbarch_dump: short_bit = %s\n",
623d3eb1 1045 plongest (gdbarch->short_bit));
3352ef37
AC
1046 fprintf_unfiltered (file,
1047 "gdbarch_dump: gdbarch_single_step_through_delay_p() = %d\n",
be7811ad 1048 gdbarch_single_step_through_delay_p (gdbarch));
3352ef37 1049 fprintf_unfiltered (file,
30737ed9
JB
1050 "gdbarch_dump: single_step_through_delay = <%s>\n",
1051 host_address_to_string (gdbarch->single_step_through_delay));
4309257c
PM
1052 fprintf_unfiltered (file,
1053 "gdbarch_dump: gdbarch_skip_main_prologue_p() = %d\n",
1054 gdbarch_skip_main_prologue_p (gdbarch));
1055 fprintf_unfiltered (file,
30737ed9
JB
1056 "gdbarch_dump: skip_main_prologue = <%s>\n",
1057 host_address_to_string (gdbarch->skip_main_prologue));
6d350bb5
UW
1058 fprintf_unfiltered (file,
1059 "gdbarch_dump: gdbarch_skip_permanent_breakpoint_p() = %d\n",
be7811ad 1060 gdbarch_skip_permanent_breakpoint_p (gdbarch));
6d350bb5 1061 fprintf_unfiltered (file,
30737ed9
JB
1062 "gdbarch_dump: skip_permanent_breakpoint = <%s>\n",
1063 host_address_to_string (gdbarch->skip_permanent_breakpoint));
dea0c52f 1064 fprintf_unfiltered (file,
30737ed9
JB
1065 "gdbarch_dump: skip_prologue = <%s>\n",
1066 host_address_to_string (gdbarch->skip_prologue));
48f7351b 1067 fprintf_unfiltered (file,
30737ed9
JB
1068 "gdbarch_dump: skip_solib_resolver = <%s>\n",
1069 host_address_to_string (gdbarch->skip_solib_resolver));
48f7351b 1070 fprintf_unfiltered (file,
30737ed9
JB
1071 "gdbarch_dump: skip_trampoline_code = <%s>\n",
1072 host_address_to_string (gdbarch->skip_trampoline_code));
48f7351b 1073 fprintf_unfiltered (file,
30737ed9
JB
1074 "gdbarch_dump: smash_text_address = <%s>\n",
1075 host_address_to_string (gdbarch->smash_text_address));
48f7351b
AC
1076 fprintf_unfiltered (file,
1077 "gdbarch_dump: gdbarch_software_single_step_p() = %d\n",
be7811ad 1078 gdbarch_software_single_step_p (gdbarch));
48f7351b 1079 fprintf_unfiltered (file,
30737ed9
JB
1080 "gdbarch_dump: software_single_step = <%s>\n",
1081 host_address_to_string (gdbarch->software_single_step));
203c3895
UW
1082 fprintf_unfiltered (file,
1083 "gdbarch_dump: sofun_address_maybe_missing = %s\n",
623d3eb1 1084 plongest (gdbarch->sofun_address_maybe_missing));
48f7351b
AC
1085 fprintf_unfiltered (file,
1086 "gdbarch_dump: sp_regnum = %s\n",
623d3eb1 1087 plongest (gdbarch->sp_regnum));
a2428dbe 1088 fprintf_unfiltered (file,
30737ed9
JB
1089 "gdbarch_dump: stab_reg_to_regnum = <%s>\n",
1090 host_address_to_string (gdbarch->stab_reg_to_regnum));
48f7351b 1091 fprintf_unfiltered (file,
30737ed9
JB
1092 "gdbarch_dump: stabs_argument_has_addr = <%s>\n",
1093 host_address_to_string (gdbarch->stabs_argument_has_addr));
149ad273
UW
1094 fprintf_unfiltered (file,
1095 "gdbarch_dump: gdbarch_static_transform_name_p() = %d\n",
be7811ad 1096 gdbarch_static_transform_name_p (gdbarch));
149ad273 1097 fprintf_unfiltered (file,
30737ed9
JB
1098 "gdbarch_dump: static_transform_name = <%s>\n",
1099 host_address_to_string (gdbarch->static_transform_name));
424163ea
DJ
1100 fprintf_unfiltered (file,
1101 "gdbarch_dump: target_desc = %s\n",
30737ed9 1102 host_address_to_string (gdbarch->target_desc));
1cded358 1103 fprintf_unfiltered (file,
30737ed9
JB
1104 "gdbarch_dump: target_signal_from_host = <%s>\n",
1105 host_address_to_string (gdbarch->target_signal_from_host));
1cded358 1106 fprintf_unfiltered (file,
30737ed9
JB
1107 "gdbarch_dump: target_signal_to_host = <%s>\n",
1108 host_address_to_string (gdbarch->target_signal_to_host));
08e45a40 1109 fprintf_unfiltered (file,
a2428dbe 1110 "gdbarch_dump: gdbarch_unwind_pc_p() = %d\n",
be7811ad 1111 gdbarch_unwind_pc_p (gdbarch));
7996bcec 1112 fprintf_unfiltered (file,
30737ed9
JB
1113 "gdbarch_dump: unwind_pc = <%s>\n",
1114 host_address_to_string (gdbarch->unwind_pc));
bd1ce8ba 1115 fprintf_unfiltered (file,
a2428dbe 1116 "gdbarch_dump: gdbarch_unwind_sp_p() = %d\n",
be7811ad 1117 gdbarch_unwind_sp_p (gdbarch));
bd1ce8ba 1118 fprintf_unfiltered (file,
30737ed9
JB
1119 "gdbarch_dump: unwind_sp = <%s>\n",
1120 host_address_to_string (gdbarch->unwind_sp));
9acbedc0 1121 fprintf_unfiltered (file,
30737ed9
JB
1122 "gdbarch_dump: value_from_register = <%s>\n",
1123 host_address_to_string (gdbarch->value_from_register));
48f7351b 1124 fprintf_unfiltered (file,
30737ed9
JB
1125 "gdbarch_dump: value_to_register = <%s>\n",
1126 host_address_to_string (gdbarch->value_to_register));
0d5de010
DJ
1127 fprintf_unfiltered (file,
1128 "gdbarch_dump: vbit_in_delta = %s\n",
623d3eb1 1129 plongest (gdbarch->vbit_in_delta));
48f7351b 1130 fprintf_unfiltered (file,
30737ed9
JB
1131 "gdbarch_dump: virtual_frame_pointer = <%s>\n",
1132 host_address_to_string (gdbarch->virtual_frame_pointer));
0d5de010
DJ
1133 fprintf_unfiltered (file,
1134 "gdbarch_dump: vtable_function_descriptors = %s\n",
623d3eb1 1135 plongest (gdbarch->vtable_function_descriptors));
4b9b3959 1136 fprintf_unfiltered (file,
61a1198a 1137 "gdbarch_dump: gdbarch_write_pc_p() = %d\n",
be7811ad 1138 gdbarch_write_pc_p (gdbarch));
48f7351b 1139 fprintf_unfiltered (file,
30737ed9
JB
1140 "gdbarch_dump: write_pc = <%s>\n",
1141 host_address_to_string (gdbarch->write_pc));
be7811ad
MD
1142 if (gdbarch->dump_tdep != NULL)
1143 gdbarch->dump_tdep (gdbarch, file);
0f71a2f6
JM
1144}
1145
1146struct gdbarch_tdep *
104c1213 1147gdbarch_tdep (struct gdbarch *gdbarch)
0f71a2f6
JM
1148{
1149 if (gdbarch_debug >= 2)
0f71a2f6
JM
1150 fprintf_unfiltered (gdb_stdlog, "gdbarch_tdep called\n");
1151 return gdbarch->tdep;
1152}
1153
1154
1155const struct bfd_arch_info *
104c1213 1156gdbarch_bfd_arch_info (struct gdbarch *gdbarch)
0f71a2f6 1157{
8de9bdc4 1158 gdb_assert (gdbarch != NULL);
0f71a2f6 1159 if (gdbarch_debug >= 2)
0f71a2f6
JM
1160 fprintf_unfiltered (gdb_stdlog, "gdbarch_bfd_arch_info called\n");
1161 return gdbarch->bfd_arch_info;
1162}
1163
1164int
104c1213 1165gdbarch_byte_order (struct gdbarch *gdbarch)
0f71a2f6 1166{
8de9bdc4 1167 gdb_assert (gdbarch != NULL);
0f71a2f6 1168 if (gdbarch_debug >= 2)
0f71a2f6
JM
1169 fprintf_unfiltered (gdb_stdlog, "gdbarch_byte_order called\n");
1170 return gdbarch->byte_order;
1171}
1172
9d4fde75
SS
1173int
1174gdbarch_byte_order_for_code (struct gdbarch *gdbarch)
1175{
1176 gdb_assert (gdbarch != NULL);
1177 if (gdbarch_debug >= 2)
1178 fprintf_unfiltered (gdb_stdlog, "gdbarch_byte_order_for_code called\n");
1179 return gdbarch->byte_order_for_code;
1180}
1181
4be87837
DJ
1182enum gdb_osabi
1183gdbarch_osabi (struct gdbarch *gdbarch)
1184{
1185 gdb_assert (gdbarch != NULL);
1186 if (gdbarch_debug >= 2)
1187 fprintf_unfiltered (gdb_stdlog, "gdbarch_osabi called\n");
1188 return gdbarch->osabi;
1189}
1190
424163ea
DJ
1191const struct target_desc *
1192gdbarch_target_desc (struct gdbarch *gdbarch)
1193{
1194 gdb_assert (gdbarch != NULL);
1195 if (gdbarch_debug >= 2)
1196 fprintf_unfiltered (gdb_stdlog, "gdbarch_target_desc called\n");
1197 return gdbarch->target_desc;
1198}
1199
32c9a795
MD
1200int
1201gdbarch_bits_big_endian (struct gdbarch *gdbarch)
1202{
1203 gdb_assert (gdbarch != NULL);
1204 /* Skip verify of bits_big_endian, invalid_p == 0 */
1205 if (gdbarch_debug >= 2)
1206 fprintf_unfiltered (gdb_stdlog, "gdbarch_bits_big_endian called\n");
1207 return gdbarch->bits_big_endian;
1208}
1209
1210void
1211set_gdbarch_bits_big_endian (struct gdbarch *gdbarch,
1212 int bits_big_endian)
1213{
1214 gdbarch->bits_big_endian = bits_big_endian;
1215}
1216
0f71a2f6 1217int
104c1213 1218gdbarch_short_bit (struct gdbarch *gdbarch)
0f71a2f6 1219{
8de9bdc4 1220 gdb_assert (gdbarch != NULL);
66b43ecb 1221 /* Skip verify of short_bit, invalid_p == 0 */
0f71a2f6 1222 if (gdbarch_debug >= 2)
0f71a2f6
JM
1223 fprintf_unfiltered (gdb_stdlog, "gdbarch_short_bit called\n");
1224 return gdbarch->short_bit;
1225}
1226
1227void
104c1213
JM
1228set_gdbarch_short_bit (struct gdbarch *gdbarch,
1229 int short_bit)
0f71a2f6
JM
1230{
1231 gdbarch->short_bit = short_bit;
1232}
1233
1234int
104c1213 1235gdbarch_int_bit (struct gdbarch *gdbarch)
0f71a2f6 1236{
8de9bdc4 1237 gdb_assert (gdbarch != NULL);
66b43ecb 1238 /* Skip verify of int_bit, invalid_p == 0 */
0f71a2f6 1239 if (gdbarch_debug >= 2)
0f71a2f6
JM
1240 fprintf_unfiltered (gdb_stdlog, "gdbarch_int_bit called\n");
1241 return gdbarch->int_bit;
1242}
1243
1244void
104c1213
JM
1245set_gdbarch_int_bit (struct gdbarch *gdbarch,
1246 int int_bit)
0f71a2f6
JM
1247{
1248 gdbarch->int_bit = int_bit;
1249}
1250
1251int
104c1213 1252gdbarch_long_bit (struct gdbarch *gdbarch)
0f71a2f6 1253{
8de9bdc4 1254 gdb_assert (gdbarch != NULL);
66b43ecb 1255 /* Skip verify of long_bit, invalid_p == 0 */
0f71a2f6 1256 if (gdbarch_debug >= 2)
0f71a2f6
JM
1257 fprintf_unfiltered (gdb_stdlog, "gdbarch_long_bit called\n");
1258 return gdbarch->long_bit;
1259}
1260
1261void
104c1213
JM
1262set_gdbarch_long_bit (struct gdbarch *gdbarch,
1263 int long_bit)
0f71a2f6
JM
1264{
1265 gdbarch->long_bit = long_bit;
1266}
1267
1268int
104c1213 1269gdbarch_long_long_bit (struct gdbarch *gdbarch)
0f71a2f6 1270{
8de9bdc4 1271 gdb_assert (gdbarch != NULL);
66b43ecb 1272 /* Skip verify of long_long_bit, invalid_p == 0 */
0f71a2f6 1273 if (gdbarch_debug >= 2)
0f71a2f6
JM
1274 fprintf_unfiltered (gdb_stdlog, "gdbarch_long_long_bit called\n");
1275 return gdbarch->long_long_bit;
1276}
1277
1278void
104c1213
JM
1279set_gdbarch_long_long_bit (struct gdbarch *gdbarch,
1280 int long_long_bit)
0f71a2f6
JM
1281{
1282 gdbarch->long_long_bit = long_long_bit;
1283}
1284
1285int
104c1213 1286gdbarch_float_bit (struct gdbarch *gdbarch)
0f71a2f6 1287{
8de9bdc4 1288 gdb_assert (gdbarch != NULL);
66b43ecb 1289 /* Skip verify of float_bit, invalid_p == 0 */
0f71a2f6 1290 if (gdbarch_debug >= 2)
0f71a2f6
JM
1291 fprintf_unfiltered (gdb_stdlog, "gdbarch_float_bit called\n");
1292 return gdbarch->float_bit;
1293}
1294
1295void
104c1213
JM
1296set_gdbarch_float_bit (struct gdbarch *gdbarch,
1297 int float_bit)
0f71a2f6
JM
1298{
1299 gdbarch->float_bit = float_bit;
1300}
1301
8da61cc4 1302const struct floatformat **
456fcf94
AC
1303gdbarch_float_format (struct gdbarch *gdbarch)
1304{
1305 gdb_assert (gdbarch != NULL);
1306 if (gdbarch_debug >= 2)
1307 fprintf_unfiltered (gdb_stdlog, "gdbarch_float_format called\n");
1308 return gdbarch->float_format;
1309}
1310
1311void
1312set_gdbarch_float_format (struct gdbarch *gdbarch,
8da61cc4 1313 const struct floatformat ** float_format)
456fcf94
AC
1314{
1315 gdbarch->float_format = float_format;
1316}
1317
0f71a2f6 1318int
104c1213 1319gdbarch_double_bit (struct gdbarch *gdbarch)
0f71a2f6 1320{
8de9bdc4 1321 gdb_assert (gdbarch != NULL);
66b43ecb 1322 /* Skip verify of double_bit, invalid_p == 0 */
0f71a2f6 1323 if (gdbarch_debug >= 2)
0f71a2f6
JM
1324 fprintf_unfiltered (gdb_stdlog, "gdbarch_double_bit called\n");
1325 return gdbarch->double_bit;
1326}
1327
1328void
104c1213
JM
1329set_gdbarch_double_bit (struct gdbarch *gdbarch,
1330 int double_bit)
0f71a2f6
JM
1331{
1332 gdbarch->double_bit = double_bit;
1333}
1334
8da61cc4 1335const struct floatformat **
456fcf94
AC
1336gdbarch_double_format (struct gdbarch *gdbarch)
1337{
1338 gdb_assert (gdbarch != NULL);
1339 if (gdbarch_debug >= 2)
1340 fprintf_unfiltered (gdb_stdlog, "gdbarch_double_format called\n");
1341 return gdbarch->double_format;
1342}
1343
1344void
1345set_gdbarch_double_format (struct gdbarch *gdbarch,
8da61cc4 1346 const struct floatformat ** double_format)
456fcf94
AC
1347{
1348 gdbarch->double_format = double_format;
1349}
1350
0f71a2f6 1351int
104c1213 1352gdbarch_long_double_bit (struct gdbarch *gdbarch)
0f71a2f6 1353{
8de9bdc4 1354 gdb_assert (gdbarch != NULL);
66b43ecb 1355 /* Skip verify of long_double_bit, invalid_p == 0 */
0f71a2f6 1356 if (gdbarch_debug >= 2)
0f71a2f6
JM
1357 fprintf_unfiltered (gdb_stdlog, "gdbarch_long_double_bit called\n");
1358 return gdbarch->long_double_bit;
1359}
1360
1361void
104c1213
JM
1362set_gdbarch_long_double_bit (struct gdbarch *gdbarch,
1363 int long_double_bit)
0f71a2f6
JM
1364{
1365 gdbarch->long_double_bit = long_double_bit;
1366}
1367
8da61cc4 1368const struct floatformat **
456fcf94
AC
1369gdbarch_long_double_format (struct gdbarch *gdbarch)
1370{
1371 gdb_assert (gdbarch != NULL);
1372 if (gdbarch_debug >= 2)
1373 fprintf_unfiltered (gdb_stdlog, "gdbarch_long_double_format called\n");
1374 return gdbarch->long_double_format;
1375}
1376
1377void
1378set_gdbarch_long_double_format (struct gdbarch *gdbarch,
8da61cc4 1379 const struct floatformat ** long_double_format)
456fcf94
AC
1380{
1381 gdbarch->long_double_format = long_double_format;
1382}
1383
66b43ecb
AC
1384int
1385gdbarch_ptr_bit (struct gdbarch *gdbarch)
1386{
8de9bdc4 1387 gdb_assert (gdbarch != NULL);
66b43ecb
AC
1388 /* Skip verify of ptr_bit, invalid_p == 0 */
1389 if (gdbarch_debug >= 2)
1390 fprintf_unfiltered (gdb_stdlog, "gdbarch_ptr_bit called\n");
1391 return gdbarch->ptr_bit;
1392}
1393
1394void
1395set_gdbarch_ptr_bit (struct gdbarch *gdbarch,
1396 int ptr_bit)
1397{
1398 gdbarch->ptr_bit = ptr_bit;
1399}
1400
52204a0b
DT
1401int
1402gdbarch_addr_bit (struct gdbarch *gdbarch)
1403{
8de9bdc4 1404 gdb_assert (gdbarch != NULL);
956ac328
AC
1405 /* Check variable changed from pre-default. */
1406 gdb_assert (gdbarch->addr_bit != 0);
52204a0b
DT
1407 if (gdbarch_debug >= 2)
1408 fprintf_unfiltered (gdb_stdlog, "gdbarch_addr_bit called\n");
1409 return gdbarch->addr_bit;
1410}
1411
1412void
1413set_gdbarch_addr_bit (struct gdbarch *gdbarch,
1414 int addr_bit)
1415{
1416 gdbarch->addr_bit = addr_bit;
1417}
1418
4e409299
JB
1419int
1420gdbarch_char_signed (struct gdbarch *gdbarch)
1421{
8de9bdc4 1422 gdb_assert (gdbarch != NULL);
956ac328
AC
1423 /* Check variable changed from pre-default. */
1424 gdb_assert (gdbarch->char_signed != -1);
4e409299
JB
1425 if (gdbarch_debug >= 2)
1426 fprintf_unfiltered (gdb_stdlog, "gdbarch_char_signed called\n");
1427 return gdbarch->char_signed;
1428}
1429
1430void
1431set_gdbarch_char_signed (struct gdbarch *gdbarch,
1432 int char_signed)
1433{
1434 gdbarch->char_signed = char_signed;
1435}
1436
cde9ea48
AC
1437int
1438gdbarch_read_pc_p (struct gdbarch *gdbarch)
1439{
1440 gdb_assert (gdbarch != NULL);
956ac328 1441 return gdbarch->read_pc != NULL;
cde9ea48
AC
1442}
1443
0f71a2f6 1444CORE_ADDR
61a1198a 1445gdbarch_read_pc (struct gdbarch *gdbarch, struct regcache *regcache)
0f71a2f6 1446{
8de9bdc4 1447 gdb_assert (gdbarch != NULL);
956ac328 1448 gdb_assert (gdbarch->read_pc != NULL);
0f71a2f6 1449 if (gdbarch_debug >= 2)
0f71a2f6 1450 fprintf_unfiltered (gdb_stdlog, "gdbarch_read_pc called\n");
61a1198a 1451 return gdbarch->read_pc (regcache);
0f71a2f6
JM
1452}
1453
1454void
104c1213
JM
1455set_gdbarch_read_pc (struct gdbarch *gdbarch,
1456 gdbarch_read_pc_ftype read_pc)
0f71a2f6
JM
1457{
1458 gdbarch->read_pc = read_pc;
1459}
1460
61a1198a
UW
1461int
1462gdbarch_write_pc_p (struct gdbarch *gdbarch)
1463{
1464 gdb_assert (gdbarch != NULL);
1465 return gdbarch->write_pc != NULL;
1466}
1467
0f71a2f6 1468void
61a1198a 1469gdbarch_write_pc (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR val)
0f71a2f6 1470{
8de9bdc4 1471 gdb_assert (gdbarch != NULL);
956ac328 1472 gdb_assert (gdbarch->write_pc != NULL);
0f71a2f6 1473 if (gdbarch_debug >= 2)
0f71a2f6 1474 fprintf_unfiltered (gdb_stdlog, "gdbarch_write_pc called\n");
61a1198a 1475 gdbarch->write_pc (regcache, val);
0f71a2f6
JM
1476}
1477
1478void
104c1213
JM
1479set_gdbarch_write_pc (struct gdbarch *gdbarch,
1480 gdbarch_write_pc_ftype write_pc)
0f71a2f6
JM
1481{
1482 gdbarch->write_pc = write_pc;
1483}
1484
39d4ef09
AC
1485void
1486gdbarch_virtual_frame_pointer (struct gdbarch *gdbarch, CORE_ADDR pc, int *frame_regnum, LONGEST *frame_offset)
1487{
8de9bdc4 1488 gdb_assert (gdbarch != NULL);
956ac328 1489 gdb_assert (gdbarch->virtual_frame_pointer != NULL);
39d4ef09
AC
1490 if (gdbarch_debug >= 2)
1491 fprintf_unfiltered (gdb_stdlog, "gdbarch_virtual_frame_pointer called\n");
a54fba4c 1492 gdbarch->virtual_frame_pointer (gdbarch, pc, frame_regnum, frame_offset);
39d4ef09
AC
1493}
1494
1495void
1496set_gdbarch_virtual_frame_pointer (struct gdbarch *gdbarch,
1497 gdbarch_virtual_frame_pointer_ftype virtual_frame_pointer)
1498{
1499 gdbarch->virtual_frame_pointer = virtual_frame_pointer;
1500}
1501
61a0eb5b 1502int
d8124050 1503gdbarch_pseudo_register_read_p (struct gdbarch *gdbarch)
61a0eb5b 1504{
8de9bdc4 1505 gdb_assert (gdbarch != NULL);
956ac328 1506 return gdbarch->pseudo_register_read != NULL;
61a0eb5b
AC
1507}
1508
1509void
b60c417a 1510gdbarch_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, gdb_byte *buf)
61a0eb5b 1511{
8de9bdc4 1512 gdb_assert (gdbarch != NULL);
956ac328 1513 gdb_assert (gdbarch->pseudo_register_read != NULL);
61a0eb5b 1514 if (gdbarch_debug >= 2)
d8124050
AC
1515 fprintf_unfiltered (gdb_stdlog, "gdbarch_pseudo_register_read called\n");
1516 gdbarch->pseudo_register_read (gdbarch, regcache, cookednum, buf);
61a0eb5b
AC
1517}
1518
1519void
d8124050
AC
1520set_gdbarch_pseudo_register_read (struct gdbarch *gdbarch,
1521 gdbarch_pseudo_register_read_ftype pseudo_register_read)
61a0eb5b 1522{
d8124050 1523 gdbarch->pseudo_register_read = pseudo_register_read;
61a0eb5b
AC
1524}
1525
1526int
d8124050 1527gdbarch_pseudo_register_write_p (struct gdbarch *gdbarch)
61a0eb5b 1528{
8de9bdc4 1529 gdb_assert (gdbarch != NULL);
956ac328 1530 return gdbarch->pseudo_register_write != NULL;
61a0eb5b
AC
1531}
1532
1533void
b60c417a 1534gdbarch_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, const gdb_byte *buf)
61a0eb5b 1535{
8de9bdc4 1536 gdb_assert (gdbarch != NULL);
956ac328 1537 gdb_assert (gdbarch->pseudo_register_write != NULL);
61a0eb5b 1538 if (gdbarch_debug >= 2)
d8124050
AC
1539 fprintf_unfiltered (gdb_stdlog, "gdbarch_pseudo_register_write called\n");
1540 gdbarch->pseudo_register_write (gdbarch, regcache, cookednum, buf);
61a0eb5b
AC
1541}
1542
1543void
d8124050
AC
1544set_gdbarch_pseudo_register_write (struct gdbarch *gdbarch,
1545 gdbarch_pseudo_register_write_ftype pseudo_register_write)
61a0eb5b 1546{
d8124050 1547 gdbarch->pseudo_register_write = pseudo_register_write;
61a0eb5b
AC
1548}
1549
0f71a2f6 1550int
104c1213 1551gdbarch_num_regs (struct gdbarch *gdbarch)
0f71a2f6 1552{
8de9bdc4 1553 gdb_assert (gdbarch != NULL);
956ac328
AC
1554 /* Check variable changed from pre-default. */
1555 gdb_assert (gdbarch->num_regs != -1);
0f71a2f6 1556 if (gdbarch_debug >= 2)
0f71a2f6
JM
1557 fprintf_unfiltered (gdb_stdlog, "gdbarch_num_regs called\n");
1558 return gdbarch->num_regs;
1559}
1560
1561void
104c1213
JM
1562set_gdbarch_num_regs (struct gdbarch *gdbarch,
1563 int num_regs)
0f71a2f6
JM
1564{
1565 gdbarch->num_regs = num_regs;
1566}
1567
0aba1244
EZ
1568int
1569gdbarch_num_pseudo_regs (struct gdbarch *gdbarch)
1570{
8de9bdc4 1571 gdb_assert (gdbarch != NULL);
0aba1244
EZ
1572 /* Skip verify of num_pseudo_regs, invalid_p == 0 */
1573 if (gdbarch_debug >= 2)
1574 fprintf_unfiltered (gdb_stdlog, "gdbarch_num_pseudo_regs called\n");
1575 return gdbarch->num_pseudo_regs;
1576}
1577
1578void
1579set_gdbarch_num_pseudo_regs (struct gdbarch *gdbarch,
1580 int num_pseudo_regs)
1581{
1582 gdbarch->num_pseudo_regs = num_pseudo_regs;
1583}
1584
0f71a2f6 1585int
104c1213 1586gdbarch_sp_regnum (struct gdbarch *gdbarch)
0f71a2f6 1587{
8de9bdc4 1588 gdb_assert (gdbarch != NULL);
1200cd6e 1589 /* Skip verify of sp_regnum, invalid_p == 0 */
0f71a2f6 1590 if (gdbarch_debug >= 2)
0f71a2f6
JM
1591 fprintf_unfiltered (gdb_stdlog, "gdbarch_sp_regnum called\n");
1592 return gdbarch->sp_regnum;
1593}
1594
1595void
104c1213
JM
1596set_gdbarch_sp_regnum (struct gdbarch *gdbarch,
1597 int sp_regnum)
0f71a2f6
JM
1598{
1599 gdbarch->sp_regnum = sp_regnum;
1600}
1601
0f71a2f6 1602int
104c1213 1603gdbarch_pc_regnum (struct gdbarch *gdbarch)
0f71a2f6 1604{
8de9bdc4 1605 gdb_assert (gdbarch != NULL);
1200cd6e 1606 /* Skip verify of pc_regnum, invalid_p == 0 */
0f71a2f6 1607 if (gdbarch_debug >= 2)
0f71a2f6
JM
1608 fprintf_unfiltered (gdb_stdlog, "gdbarch_pc_regnum called\n");
1609 return gdbarch->pc_regnum;
1610}
1611
1612void
104c1213
JM
1613set_gdbarch_pc_regnum (struct gdbarch *gdbarch,
1614 int pc_regnum)
0f71a2f6
JM
1615{
1616 gdbarch->pc_regnum = pc_regnum;
1617}
1618
c2169756
AC
1619int
1620gdbarch_ps_regnum (struct gdbarch *gdbarch)
1621{
8de9bdc4 1622 gdb_assert (gdbarch != NULL);
c2169756
AC
1623 /* Skip verify of ps_regnum, invalid_p == 0 */
1624 if (gdbarch_debug >= 2)
1625 fprintf_unfiltered (gdb_stdlog, "gdbarch_ps_regnum called\n");
1626 return gdbarch->ps_regnum;
1627}
1628
1629void
1630set_gdbarch_ps_regnum (struct gdbarch *gdbarch,
1631 int ps_regnum)
1632{
1633 gdbarch->ps_regnum = ps_regnum;
1634}
1635
60054393
MS
1636int
1637gdbarch_fp0_regnum (struct gdbarch *gdbarch)
1638{
8de9bdc4 1639 gdb_assert (gdbarch != NULL);
60054393
MS
1640 /* Skip verify of fp0_regnum, invalid_p == 0 */
1641 if (gdbarch_debug >= 2)
1642 fprintf_unfiltered (gdb_stdlog, "gdbarch_fp0_regnum called\n");
1643 return gdbarch->fp0_regnum;
1644}
1645
1646void
1647set_gdbarch_fp0_regnum (struct gdbarch *gdbarch,
1648 int fp0_regnum)
1649{
1650 gdbarch->fp0_regnum = fp0_regnum;
1651}
1652
88c72b7d
AC
1653int
1654gdbarch_stab_reg_to_regnum (struct gdbarch *gdbarch, int stab_regnr)
1655{
8de9bdc4 1656 gdb_assert (gdbarch != NULL);
956ac328 1657 gdb_assert (gdbarch->stab_reg_to_regnum != NULL);
88c72b7d
AC
1658 if (gdbarch_debug >= 2)
1659 fprintf_unfiltered (gdb_stdlog, "gdbarch_stab_reg_to_regnum called\n");
d3f73121 1660 return gdbarch->stab_reg_to_regnum (gdbarch, stab_regnr);
88c72b7d
AC
1661}
1662
1663void
1664set_gdbarch_stab_reg_to_regnum (struct gdbarch *gdbarch,
1665 gdbarch_stab_reg_to_regnum_ftype stab_reg_to_regnum)
1666{
1667 gdbarch->stab_reg_to_regnum = stab_reg_to_regnum;
1668}
1669
1670int
1671gdbarch_ecoff_reg_to_regnum (struct gdbarch *gdbarch, int ecoff_regnr)
1672{
8de9bdc4 1673 gdb_assert (gdbarch != NULL);
956ac328 1674 gdb_assert (gdbarch->ecoff_reg_to_regnum != NULL);
88c72b7d
AC
1675 if (gdbarch_debug >= 2)
1676 fprintf_unfiltered (gdb_stdlog, "gdbarch_ecoff_reg_to_regnum called\n");
d3f73121 1677 return gdbarch->ecoff_reg_to_regnum (gdbarch, ecoff_regnr);
88c72b7d
AC
1678}
1679
1680void
1681set_gdbarch_ecoff_reg_to_regnum (struct gdbarch *gdbarch,
1682 gdbarch_ecoff_reg_to_regnum_ftype ecoff_reg_to_regnum)
1683{
1684 gdbarch->ecoff_reg_to_regnum = ecoff_reg_to_regnum;
1685}
1686
88c72b7d
AC
1687int
1688gdbarch_sdb_reg_to_regnum (struct gdbarch *gdbarch, int sdb_regnr)
1689{
8de9bdc4 1690 gdb_assert (gdbarch != NULL);
956ac328 1691 gdb_assert (gdbarch->sdb_reg_to_regnum != NULL);
88c72b7d
AC
1692 if (gdbarch_debug >= 2)
1693 fprintf_unfiltered (gdb_stdlog, "gdbarch_sdb_reg_to_regnum called\n");
d3f73121 1694 return gdbarch->sdb_reg_to_regnum (gdbarch, sdb_regnr);
88c72b7d
AC
1695}
1696
1697void
1698set_gdbarch_sdb_reg_to_regnum (struct gdbarch *gdbarch,
1699 gdbarch_sdb_reg_to_regnum_ftype sdb_reg_to_regnum)
1700{
1701 gdbarch->sdb_reg_to_regnum = sdb_reg_to_regnum;
1702}
1703
1704int
1705gdbarch_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, int dwarf2_regnr)
1706{
8de9bdc4 1707 gdb_assert (gdbarch != NULL);
956ac328 1708 gdb_assert (gdbarch->dwarf2_reg_to_regnum != NULL);
88c72b7d
AC
1709 if (gdbarch_debug >= 2)
1710 fprintf_unfiltered (gdb_stdlog, "gdbarch_dwarf2_reg_to_regnum called\n");
d3f73121 1711 return gdbarch->dwarf2_reg_to_regnum (gdbarch, dwarf2_regnr);
88c72b7d
AC
1712}
1713
1714void
1715set_gdbarch_dwarf2_reg_to_regnum (struct gdbarch *gdbarch,
1716 gdbarch_dwarf2_reg_to_regnum_ftype dwarf2_reg_to_regnum)
1717{
1718 gdbarch->dwarf2_reg_to_regnum = dwarf2_reg_to_regnum;
1719}
1720
fa88f677 1721const char *
0f71a2f6
JM
1722gdbarch_register_name (struct gdbarch *gdbarch, int regnr)
1723{
8de9bdc4 1724 gdb_assert (gdbarch != NULL);
956ac328 1725 gdb_assert (gdbarch->register_name != NULL);
0f71a2f6 1726 if (gdbarch_debug >= 2)
0f71a2f6 1727 fprintf_unfiltered (gdb_stdlog, "gdbarch_register_name called\n");
d93859e2 1728 return gdbarch->register_name (gdbarch, regnr);
0f71a2f6
JM
1729}
1730
1731void
104c1213
JM
1732set_gdbarch_register_name (struct gdbarch *gdbarch,
1733 gdbarch_register_name_ftype register_name)
0f71a2f6
JM
1734{
1735 gdbarch->register_name = register_name;
1736}
1737
0f71a2f6 1738int
9c04cab7 1739gdbarch_register_type_p (struct gdbarch *gdbarch)
0f71a2f6 1740{
8de9bdc4 1741 gdb_assert (gdbarch != NULL);
956ac328 1742 return gdbarch->register_type != NULL;
9c04cab7
AC
1743}
1744
1745struct type *
1746gdbarch_register_type (struct gdbarch *gdbarch, int reg_nr)
1747{
1748 gdb_assert (gdbarch != NULL);
956ac328 1749 gdb_assert (gdbarch->register_type != NULL);
0f71a2f6 1750 if (gdbarch_debug >= 2)
9c04cab7
AC
1751 fprintf_unfiltered (gdb_stdlog, "gdbarch_register_type called\n");
1752 return gdbarch->register_type (gdbarch, reg_nr);
0f71a2f6
JM
1753}
1754
1755void
9c04cab7
AC
1756set_gdbarch_register_type (struct gdbarch *gdbarch,
1757 gdbarch_register_type_ftype register_type)
0f71a2f6 1758{
9c04cab7 1759 gdbarch->register_type = register_type;
0f71a2f6
JM
1760}
1761
f3be58bc 1762int
669fac23 1763gdbarch_dummy_id_p (struct gdbarch *gdbarch)
f3be58bc
AC
1764{
1765 gdb_assert (gdbarch != NULL);
669fac23 1766 return gdbarch->dummy_id != NULL;
f3be58bc
AC
1767}
1768
1769struct frame_id
669fac23 1770gdbarch_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
f3be58bc
AC
1771{
1772 gdb_assert (gdbarch != NULL);
669fac23 1773 gdb_assert (gdbarch->dummy_id != NULL);
f3be58bc 1774 if (gdbarch_debug >= 2)
669fac23
DJ
1775 fprintf_unfiltered (gdb_stdlog, "gdbarch_dummy_id called\n");
1776 return gdbarch->dummy_id (gdbarch, this_frame);
f3be58bc
AC
1777}
1778
1779void
669fac23
DJ
1780set_gdbarch_dummy_id (struct gdbarch *gdbarch,
1781 gdbarch_dummy_id_ftype dummy_id)
f3be58bc 1782{
669fac23 1783 gdbarch->dummy_id = dummy_id;
f3be58bc
AC
1784}
1785
f3be58bc
AC
1786int
1787gdbarch_deprecated_fp_regnum (struct gdbarch *gdbarch)
1788{
1789 gdb_assert (gdbarch != NULL);
1790 /* Skip verify of deprecated_fp_regnum, invalid_p == 0 */
1791 if (gdbarch_debug >= 2)
1792 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_fp_regnum called\n");
1793 return gdbarch->deprecated_fp_regnum;
1794}
1795
1796void
1797set_gdbarch_deprecated_fp_regnum (struct gdbarch *gdbarch,
1798 int deprecated_fp_regnum)
1799{
1800 gdbarch->deprecated_fp_regnum = deprecated_fp_regnum;
1801}
1802
0ab7a791 1803int
b8de8283 1804gdbarch_push_dummy_call_p (struct gdbarch *gdbarch)
0ab7a791
AC
1805{
1806 gdb_assert (gdbarch != NULL);
956ac328 1807 return gdbarch->push_dummy_call != NULL;
0ab7a791
AC
1808}
1809
b8de8283 1810CORE_ADDR
7d9b040b 1811gdbarch_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr)
666e11c5 1812{
8de9bdc4 1813 gdb_assert (gdbarch != NULL);
956ac328 1814 gdb_assert (gdbarch->push_dummy_call != NULL);
666e11c5 1815 if (gdbarch_debug >= 2)
b8de8283 1816 fprintf_unfiltered (gdb_stdlog, "gdbarch_push_dummy_call called\n");
7d9b040b 1817 return gdbarch->push_dummy_call (gdbarch, function, regcache, bp_addr, nargs, args, sp, struct_return, struct_addr);
666e11c5
EZ
1818}
1819
1820void
b8de8283
AC
1821set_gdbarch_push_dummy_call (struct gdbarch *gdbarch,
1822 gdbarch_push_dummy_call_ftype push_dummy_call)
666e11c5 1823{
b8de8283 1824 gdbarch->push_dummy_call = push_dummy_call;
666e11c5
EZ
1825}
1826
2649061d 1827int
b8de8283 1828gdbarch_call_dummy_location (struct gdbarch *gdbarch)
2649061d 1829{
8de9bdc4 1830 gdb_assert (gdbarch != NULL);
b8de8283
AC
1831 /* Skip verify of call_dummy_location, invalid_p == 0 */
1832 if (gdbarch_debug >= 2)
1833 fprintf_unfiltered (gdb_stdlog, "gdbarch_call_dummy_location called\n");
1834 return gdbarch->call_dummy_location;
2649061d
AC
1835}
1836
b8de8283
AC
1837void
1838set_gdbarch_call_dummy_location (struct gdbarch *gdbarch,
1839 int call_dummy_location)
1840{
1841 gdbarch->call_dummy_location = call_dummy_location;
1842}
1843
0f71a2f6 1844int
b8de8283 1845gdbarch_push_dummy_code_p (struct gdbarch *gdbarch)
0f71a2f6 1846{
8de9bdc4 1847 gdb_assert (gdbarch != NULL);
956ac328 1848 return gdbarch->push_dummy_code != NULL;
b8de8283
AC
1849}
1850
1851CORE_ADDR
82585c72 1852gdbarch_push_dummy_code (struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funaddr, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr, struct regcache *regcache)
b8de8283
AC
1853{
1854 gdb_assert (gdbarch != NULL);
956ac328 1855 gdb_assert (gdbarch->push_dummy_code != NULL);
0f71a2f6 1856 if (gdbarch_debug >= 2)
b8de8283 1857 fprintf_unfiltered (gdb_stdlog, "gdbarch_push_dummy_code called\n");
82585c72 1858 return gdbarch->push_dummy_code (gdbarch, sp, funaddr, args, nargs, value_type, real_pc, bp_addr, regcache);
0f71a2f6
JM
1859}
1860
1861void
b8de8283
AC
1862set_gdbarch_push_dummy_code (struct gdbarch *gdbarch,
1863 gdbarch_push_dummy_code_ftype push_dummy_code)
0f71a2f6 1864{
b8de8283 1865 gdbarch->push_dummy_code = push_dummy_code;
0f71a2f6
JM
1866}
1867
b8de8283
AC
1868void
1869gdbarch_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, int regnum, int all)
1870{
1871 gdb_assert (gdbarch != NULL);
956ac328 1872 gdb_assert (gdbarch->print_registers_info != NULL);
b8de8283
AC
1873 if (gdbarch_debug >= 2)
1874 fprintf_unfiltered (gdb_stdlog, "gdbarch_print_registers_info called\n");
1875 gdbarch->print_registers_info (gdbarch, file, frame, regnum, all);
1876}
1877
1878void
1879set_gdbarch_print_registers_info (struct gdbarch *gdbarch,
1880 gdbarch_print_registers_info_ftype print_registers_info)
1881{
1882 gdbarch->print_registers_info = print_registers_info;
0f71a2f6
JM
1883}
1884
0f71a2f6 1885int
b8de8283
AC
1886gdbarch_print_float_info_p (struct gdbarch *gdbarch)
1887{
1888 gdb_assert (gdbarch != NULL);
956ac328 1889 return gdbarch->print_float_info != NULL;
b8de8283
AC
1890}
1891
1892void
1893gdbarch_print_float_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, const char *args)
0f71a2f6 1894{
8de9bdc4 1895 gdb_assert (gdbarch != NULL);
956ac328 1896 gdb_assert (gdbarch->print_float_info != NULL);
0f71a2f6 1897 if (gdbarch_debug >= 2)
b8de8283
AC
1898 fprintf_unfiltered (gdb_stdlog, "gdbarch_print_float_info called\n");
1899 gdbarch->print_float_info (gdbarch, file, frame, args);
0f71a2f6
JM
1900}
1901
1902void
b8de8283
AC
1903set_gdbarch_print_float_info (struct gdbarch *gdbarch,
1904 gdbarch_print_float_info_ftype print_float_info)
0f71a2f6 1905{
b8de8283
AC
1906 gdbarch->print_float_info = print_float_info;
1907}
1908
1909int
1910gdbarch_print_vector_info_p (struct gdbarch *gdbarch)
1911{
1912 gdb_assert (gdbarch != NULL);
956ac328 1913 return gdbarch->print_vector_info != NULL;
b8de8283
AC
1914}
1915
1916void
1917gdbarch_print_vector_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, const char *args)
1918{
1919 gdb_assert (gdbarch != NULL);
956ac328 1920 gdb_assert (gdbarch->print_vector_info != NULL);
b8de8283
AC
1921 if (gdbarch_debug >= 2)
1922 fprintf_unfiltered (gdb_stdlog, "gdbarch_print_vector_info called\n");
1923 gdbarch->print_vector_info (gdbarch, file, frame, args);
0f71a2f6
JM
1924}
1925
b8de8283
AC
1926void
1927set_gdbarch_print_vector_info (struct gdbarch *gdbarch,
1928 gdbarch_print_vector_info_ftype print_vector_info)
ae45cd16 1929{
b8de8283 1930 gdbarch->print_vector_info = print_vector_info;
ae45cd16
AC
1931}
1932
1933int
b8de8283 1934gdbarch_register_sim_regno (struct gdbarch *gdbarch, int reg_nr)
0f71a2f6 1935{
8de9bdc4 1936 gdb_assert (gdbarch != NULL);
956ac328 1937 gdb_assert (gdbarch->register_sim_regno != NULL);
0f71a2f6 1938 if (gdbarch_debug >= 2)
b8de8283 1939 fprintf_unfiltered (gdb_stdlog, "gdbarch_register_sim_regno called\n");
e7faf938 1940 return gdbarch->register_sim_regno (gdbarch, reg_nr);
0f71a2f6
JM
1941}
1942
1943void
b8de8283
AC
1944set_gdbarch_register_sim_regno (struct gdbarch *gdbarch,
1945 gdbarch_register_sim_regno_ftype register_sim_regno)
0f71a2f6 1946{
b8de8283 1947 gdbarch->register_sim_regno = register_sim_regno;
0f71a2f6
JM
1948}
1949
0f71a2f6 1950int
b8de8283 1951gdbarch_cannot_fetch_register (struct gdbarch *gdbarch, int regnum)
0f71a2f6 1952{
8de9bdc4 1953 gdb_assert (gdbarch != NULL);
956ac328 1954 gdb_assert (gdbarch->cannot_fetch_register != NULL);
b8de8283
AC
1955 if (gdbarch_debug >= 2)
1956 fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_fetch_register called\n");
64a3914f 1957 return gdbarch->cannot_fetch_register (gdbarch, regnum);
b8de8283
AC
1958}
1959
1960void
1961set_gdbarch_cannot_fetch_register (struct gdbarch *gdbarch,
1962 gdbarch_cannot_fetch_register_ftype cannot_fetch_register)
1963{
1964 gdbarch->cannot_fetch_register = cannot_fetch_register;
0f71a2f6
JM
1965}
1966
1967int
b8de8283 1968gdbarch_cannot_store_register (struct gdbarch *gdbarch, int regnum)
0f71a2f6 1969{
8de9bdc4 1970 gdb_assert (gdbarch != NULL);
956ac328 1971 gdb_assert (gdbarch->cannot_store_register != NULL);
0f71a2f6 1972 if (gdbarch_debug >= 2)
b8de8283 1973 fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_store_register called\n");
64a3914f 1974 return gdbarch->cannot_store_register (gdbarch, regnum);
0f71a2f6
JM
1975}
1976
1977void
b8de8283
AC
1978set_gdbarch_cannot_store_register (struct gdbarch *gdbarch,
1979 gdbarch_cannot_store_register_ftype cannot_store_register)
0f71a2f6 1980{
b8de8283 1981 gdbarch->cannot_store_register = cannot_store_register;
0f71a2f6
JM
1982}
1983
e8ab51f7 1984int
b8de8283 1985gdbarch_get_longjmp_target_p (struct gdbarch *gdbarch)
e8ab51f7
AC
1986{
1987 gdb_assert (gdbarch != NULL);
956ac328 1988 return gdbarch->get_longjmp_target != NULL;
e8ab51f7
AC
1989}
1990
b8de8283 1991int
60ade65d 1992gdbarch_get_longjmp_target (struct gdbarch *gdbarch, struct frame_info *frame, CORE_ADDR *pc)
0f71a2f6 1993{
8de9bdc4 1994 gdb_assert (gdbarch != NULL);
956ac328 1995 gdb_assert (gdbarch->get_longjmp_target != NULL);
0f71a2f6 1996 if (gdbarch_debug >= 2)
b8de8283 1997 fprintf_unfiltered (gdb_stdlog, "gdbarch_get_longjmp_target called\n");
60ade65d 1998 return gdbarch->get_longjmp_target (frame, pc);
0f71a2f6
JM
1999}
2000
2001void
b8de8283
AC
2002set_gdbarch_get_longjmp_target (struct gdbarch *gdbarch,
2003 gdbarch_get_longjmp_target_ftype get_longjmp_target)
0f71a2f6 2004{
b8de8283 2005 gdbarch->get_longjmp_target = get_longjmp_target;
0f71a2f6
JM
2006}
2007
2008int
104c1213 2009gdbarch_believe_pcc_promotion (struct gdbarch *gdbarch)
0f71a2f6 2010{
8de9bdc4 2011 gdb_assert (gdbarch != NULL);
0f71a2f6 2012 if (gdbarch_debug >= 2)
0f71a2f6
JM
2013 fprintf_unfiltered (gdb_stdlog, "gdbarch_believe_pcc_promotion called\n");
2014 return gdbarch->believe_pcc_promotion;
2015}
2016
2017void
104c1213
JM
2018set_gdbarch_believe_pcc_promotion (struct gdbarch *gdbarch,
2019 int believe_pcc_promotion)
0f71a2f6
JM
2020{
2021 gdbarch->believe_pcc_promotion = believe_pcc_promotion;
2022}
2023
13d01224 2024int
ff2e87ac 2025gdbarch_convert_register_p (struct gdbarch *gdbarch, int regnum, struct type *type)
13d01224
AC
2026{
2027 gdb_assert (gdbarch != NULL);
956ac328 2028 gdb_assert (gdbarch->convert_register_p != NULL);
13d01224
AC
2029 if (gdbarch_debug >= 2)
2030 fprintf_unfiltered (gdb_stdlog, "gdbarch_convert_register_p called\n");
0abe36f5 2031 return gdbarch->convert_register_p (gdbarch, regnum, type);
13d01224
AC
2032}
2033
2034void
2035set_gdbarch_convert_register_p (struct gdbarch *gdbarch,
2036 gdbarch_convert_register_p_ftype convert_register_p)
2037{
2038 gdbarch->convert_register_p = convert_register_p;
2039}
2040
2041void
b60c417a 2042gdbarch_register_to_value (struct gdbarch *gdbarch, struct frame_info *frame, int regnum, struct type *type, gdb_byte *buf)
13d01224
AC
2043{
2044 gdb_assert (gdbarch != NULL);
956ac328 2045 gdb_assert (gdbarch->register_to_value != NULL);
13d01224
AC
2046 if (gdbarch_debug >= 2)
2047 fprintf_unfiltered (gdb_stdlog, "gdbarch_register_to_value called\n");
ff2e87ac 2048 gdbarch->register_to_value (frame, regnum, type, buf);
13d01224
AC
2049}
2050
2051void
2052set_gdbarch_register_to_value (struct gdbarch *gdbarch,
2053 gdbarch_register_to_value_ftype register_to_value)
2054{
2055 gdbarch->register_to_value = register_to_value;
2056}
2057
2058void
b60c417a 2059gdbarch_value_to_register (struct gdbarch *gdbarch, struct frame_info *frame, int regnum, struct type *type, const gdb_byte *buf)
13d01224
AC
2060{
2061 gdb_assert (gdbarch != NULL);
956ac328 2062 gdb_assert (gdbarch->value_to_register != NULL);
13d01224
AC
2063 if (gdbarch_debug >= 2)
2064 fprintf_unfiltered (gdb_stdlog, "gdbarch_value_to_register called\n");
ff2e87ac 2065 gdbarch->value_to_register (frame, regnum, type, buf);
13d01224
AC
2066}
2067
2068void
2069set_gdbarch_value_to_register (struct gdbarch *gdbarch,
2070 gdbarch_value_to_register_ftype value_to_register)
2071{
2072 gdbarch->value_to_register = value_to_register;
2073}
2074
9acbedc0
UW
2075struct value *
2076gdbarch_value_from_register (struct gdbarch *gdbarch, struct type *type, int regnum, struct frame_info *frame)
2077{
2078 gdb_assert (gdbarch != NULL);
2079 gdb_assert (gdbarch->value_from_register != NULL);
2080 if (gdbarch_debug >= 2)
2081 fprintf_unfiltered (gdb_stdlog, "gdbarch_value_from_register called\n");
2082 return gdbarch->value_from_register (type, regnum, frame);
2083}
2084
2085void
2086set_gdbarch_value_from_register (struct gdbarch *gdbarch,
2087 gdbarch_value_from_register_ftype value_from_register)
2088{
2089 gdbarch->value_from_register = value_from_register;
2090}
2091
4478b372 2092CORE_ADDR
b60c417a 2093gdbarch_pointer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
4478b372 2094{
8de9bdc4 2095 gdb_assert (gdbarch != NULL);
956ac328 2096 gdb_assert (gdbarch->pointer_to_address != NULL);
4478b372
JB
2097 if (gdbarch_debug >= 2)
2098 fprintf_unfiltered (gdb_stdlog, "gdbarch_pointer_to_address called\n");
2099 return gdbarch->pointer_to_address (type, buf);
2100}
2101
2102void
2103set_gdbarch_pointer_to_address (struct gdbarch *gdbarch,
2104 gdbarch_pointer_to_address_ftype pointer_to_address)
2105{
2106 gdbarch->pointer_to_address = pointer_to_address;
2107}
2108
2109void
b60c417a 2110gdbarch_address_to_pointer (struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr)
4478b372 2111{
8de9bdc4 2112 gdb_assert (gdbarch != NULL);
956ac328 2113 gdb_assert (gdbarch->address_to_pointer != NULL);
4478b372
JB
2114 if (gdbarch_debug >= 2)
2115 fprintf_unfiltered (gdb_stdlog, "gdbarch_address_to_pointer called\n");
2116 gdbarch->address_to_pointer (type, buf, addr);
2117}
2118
2119void
2120set_gdbarch_address_to_pointer (struct gdbarch *gdbarch,
2121 gdbarch_address_to_pointer_ftype address_to_pointer)
2122{
2123 gdbarch->address_to_pointer = address_to_pointer;
2124}
2125
fc0c74b1
AC
2126int
2127gdbarch_integer_to_address_p (struct gdbarch *gdbarch)
2128{
8de9bdc4 2129 gdb_assert (gdbarch != NULL);
956ac328 2130 return gdbarch->integer_to_address != NULL;
fc0c74b1
AC
2131}
2132
2133CORE_ADDR
fc1a4b47 2134gdbarch_integer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
fc0c74b1 2135{
8de9bdc4 2136 gdb_assert (gdbarch != NULL);
956ac328 2137 gdb_assert (gdbarch->integer_to_address != NULL);
fc0c74b1
AC
2138 if (gdbarch_debug >= 2)
2139 fprintf_unfiltered (gdb_stdlog, "gdbarch_integer_to_address called\n");
79dd2d24 2140 return gdbarch->integer_to_address (gdbarch, type, buf);
fc0c74b1
AC
2141}
2142
2143void
2144set_gdbarch_integer_to_address (struct gdbarch *gdbarch,
2145 gdbarch_integer_to_address_ftype integer_to_address)
2146{
2147 gdbarch->integer_to_address = integer_to_address;
2148}
2149
92ad9cd9
AC
2150int
2151gdbarch_return_value_p (struct gdbarch *gdbarch)
2152{
2153 gdb_assert (gdbarch != NULL);
c1874924 2154 return gdbarch->return_value != NULL;
92ad9cd9
AC
2155}
2156
2157enum return_value_convention
c055b101 2158gdbarch_return_value (struct gdbarch *gdbarch, struct type *functype, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
92ad9cd9
AC
2159{
2160 gdb_assert (gdbarch != NULL);
2161 gdb_assert (gdbarch->return_value != NULL);
2162 if (gdbarch_debug >= 2)
2163 fprintf_unfiltered (gdb_stdlog, "gdbarch_return_value called\n");
c055b101 2164 return gdbarch->return_value (gdbarch, functype, valtype, regcache, readbuf, writebuf);
92ad9cd9
AC
2165}
2166
2167void
2168set_gdbarch_return_value (struct gdbarch *gdbarch,
2169 gdbarch_return_value_ftype return_value)
2170{
2171 gdbarch->return_value = return_value;
2172}
2173
0f71a2f6
JM
2174CORE_ADDR
2175gdbarch_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR ip)
2176{
8de9bdc4 2177 gdb_assert (gdbarch != NULL);
956ac328 2178 gdb_assert (gdbarch->skip_prologue != NULL);
0f71a2f6 2179 if (gdbarch_debug >= 2)
0f71a2f6 2180 fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_prologue called\n");
6093d2eb 2181 return gdbarch->skip_prologue (gdbarch, ip);
0f71a2f6
JM
2182}
2183
2184void
104c1213
JM
2185set_gdbarch_skip_prologue (struct gdbarch *gdbarch,
2186 gdbarch_skip_prologue_ftype skip_prologue)
0f71a2f6
JM
2187{
2188 gdbarch->skip_prologue = skip_prologue;
2189}
2190
4309257c
PM
2191int
2192gdbarch_skip_main_prologue_p (struct gdbarch *gdbarch)
2193{
2194 gdb_assert (gdbarch != NULL);
2195 return gdbarch->skip_main_prologue != NULL;
2196}
2197
2198CORE_ADDR
2199gdbarch_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR ip)
2200{
2201 gdb_assert (gdbarch != NULL);
2202 gdb_assert (gdbarch->skip_main_prologue != NULL);
2203 if (gdbarch_debug >= 2)
2204 fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_main_prologue called\n");
2205 return gdbarch->skip_main_prologue (gdbarch, ip);
2206}
2207
2208void
2209set_gdbarch_skip_main_prologue (struct gdbarch *gdbarch,
cfd8ab24 2210 gdbarch_skip_main_prologue_ftype skip_main_prologue)
4309257c
PM
2211{
2212 gdbarch->skip_main_prologue = skip_main_prologue;
2213}
2214
0f71a2f6
JM
2215int
2216gdbarch_inner_than (struct gdbarch *gdbarch, CORE_ADDR lhs, CORE_ADDR rhs)
2217{
8de9bdc4 2218 gdb_assert (gdbarch != NULL);
956ac328 2219 gdb_assert (gdbarch->inner_than != NULL);
0f71a2f6 2220 if (gdbarch_debug >= 2)
0f71a2f6
JM
2221 fprintf_unfiltered (gdb_stdlog, "gdbarch_inner_than called\n");
2222 return gdbarch->inner_than (lhs, rhs);
2223}
2224
2225void
104c1213
JM
2226set_gdbarch_inner_than (struct gdbarch *gdbarch,
2227 gdbarch_inner_than_ftype inner_than)
0f71a2f6
JM
2228{
2229 gdbarch->inner_than = inner_than;
2230}
2231
fc1a4b47 2232const gdb_byte *
adf40b2e 2233gdbarch_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
0f71a2f6 2234{
8de9bdc4 2235 gdb_assert (gdbarch != NULL);
956ac328 2236 gdb_assert (gdbarch->breakpoint_from_pc != NULL);
0f71a2f6 2237 if (gdbarch_debug >= 2)
0f71a2f6 2238 fprintf_unfiltered (gdb_stdlog, "gdbarch_breakpoint_from_pc called\n");
67d57894 2239 return gdbarch->breakpoint_from_pc (gdbarch, pcptr, lenptr);
0f71a2f6
JM
2240}
2241
2242void
104c1213
JM
2243set_gdbarch_breakpoint_from_pc (struct gdbarch *gdbarch,
2244 gdbarch_breakpoint_from_pc_ftype breakpoint_from_pc)
0f71a2f6
JM
2245{
2246 gdbarch->breakpoint_from_pc = breakpoint_from_pc;
2247}
2248
a1131521
KB
2249int
2250gdbarch_adjust_breakpoint_address_p (struct gdbarch *gdbarch)
2251{
2252 gdb_assert (gdbarch != NULL);
2253 return gdbarch->adjust_breakpoint_address != NULL;
2254}
2255
2256CORE_ADDR
2257gdbarch_adjust_breakpoint_address (struct gdbarch *gdbarch, CORE_ADDR bpaddr)
2258{
2259 gdb_assert (gdbarch != NULL);
2260 gdb_assert (gdbarch->adjust_breakpoint_address != NULL);
2261 if (gdbarch_debug >= 2)
2262 fprintf_unfiltered (gdb_stdlog, "gdbarch_adjust_breakpoint_address called\n");
2263 return gdbarch->adjust_breakpoint_address (gdbarch, bpaddr);
2264}
2265
2266void
2267set_gdbarch_adjust_breakpoint_address (struct gdbarch *gdbarch,
2268 gdbarch_adjust_breakpoint_address_ftype adjust_breakpoint_address)
2269{
2270 gdbarch->adjust_breakpoint_address = adjust_breakpoint_address;
2271}
2272
917317f4 2273int
8181d85f 2274gdbarch_memory_insert_breakpoint (struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
917317f4 2275{
8de9bdc4 2276 gdb_assert (gdbarch != NULL);
956ac328 2277 gdb_assert (gdbarch->memory_insert_breakpoint != NULL);
917317f4 2278 if (gdbarch_debug >= 2)
917317f4 2279 fprintf_unfiltered (gdb_stdlog, "gdbarch_memory_insert_breakpoint called\n");
ae4b2284 2280 return gdbarch->memory_insert_breakpoint (gdbarch, bp_tgt);
917317f4
JM
2281}
2282
2283void
2284set_gdbarch_memory_insert_breakpoint (struct gdbarch *gdbarch,
2285 gdbarch_memory_insert_breakpoint_ftype memory_insert_breakpoint)
2286{
2287 gdbarch->memory_insert_breakpoint = memory_insert_breakpoint;
2288}
2289
2290int
8181d85f 2291gdbarch_memory_remove_breakpoint (struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
917317f4 2292{
8de9bdc4 2293 gdb_assert (gdbarch != NULL);
956ac328 2294 gdb_assert (gdbarch->memory_remove_breakpoint != NULL);
917317f4 2295 if (gdbarch_debug >= 2)
917317f4 2296 fprintf_unfiltered (gdb_stdlog, "gdbarch_memory_remove_breakpoint called\n");
ae4b2284 2297 return gdbarch->memory_remove_breakpoint (gdbarch, bp_tgt);
917317f4
JM
2298}
2299
2300void
2301set_gdbarch_memory_remove_breakpoint (struct gdbarch *gdbarch,
2302 gdbarch_memory_remove_breakpoint_ftype memory_remove_breakpoint)
2303{
2304 gdbarch->memory_remove_breakpoint = memory_remove_breakpoint;
2305}
2306
0f71a2f6 2307CORE_ADDR
104c1213 2308gdbarch_decr_pc_after_break (struct gdbarch *gdbarch)
0f71a2f6 2309{
8de9bdc4 2310 gdb_assert (gdbarch != NULL);
71bd6bd4 2311 /* Skip verify of decr_pc_after_break, invalid_p == 0 */
0f71a2f6 2312 if (gdbarch_debug >= 2)
0f71a2f6
JM
2313 fprintf_unfiltered (gdb_stdlog, "gdbarch_decr_pc_after_break called\n");
2314 return gdbarch->decr_pc_after_break;
2315}
2316
2317void
104c1213
JM
2318set_gdbarch_decr_pc_after_break (struct gdbarch *gdbarch,
2319 CORE_ADDR decr_pc_after_break)
0f71a2f6
JM
2320{
2321 gdbarch->decr_pc_after_break = decr_pc_after_break;
2322}
2323
2324CORE_ADDR
782263ab 2325gdbarch_deprecated_function_start_offset (struct gdbarch *gdbarch)
0f71a2f6 2326{
8de9bdc4 2327 gdb_assert (gdbarch != NULL);
782263ab 2328 /* Skip verify of deprecated_function_start_offset, invalid_p == 0 */
0f71a2f6 2329 if (gdbarch_debug >= 2)
782263ab
AC
2330 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_function_start_offset called\n");
2331 return gdbarch->deprecated_function_start_offset;
0f71a2f6
JM
2332}
2333
2334void
782263ab
AC
2335set_gdbarch_deprecated_function_start_offset (struct gdbarch *gdbarch,
2336 CORE_ADDR deprecated_function_start_offset)
0f71a2f6 2337{
782263ab 2338 gdbarch->deprecated_function_start_offset = deprecated_function_start_offset;
0f71a2f6
JM
2339}
2340
123dc839
DJ
2341int
2342gdbarch_remote_register_number (struct gdbarch *gdbarch, int regno)
2343{
2344 gdb_assert (gdbarch != NULL);
2345 gdb_assert (gdbarch->remote_register_number != NULL);
2346 if (gdbarch_debug >= 2)
2347 fprintf_unfiltered (gdb_stdlog, "gdbarch_remote_register_number called\n");
2348 return gdbarch->remote_register_number (gdbarch, regno);
2349}
2350
2351void
2352set_gdbarch_remote_register_number (struct gdbarch *gdbarch,
2353 gdbarch_remote_register_number_ftype remote_register_number)
2354{
2355 gdbarch->remote_register_number = remote_register_number;
2356}
2357
b2756930
KB
2358int
2359gdbarch_fetch_tls_load_module_address_p (struct gdbarch *gdbarch)
2360{
2361 gdb_assert (gdbarch != NULL);
2362 return gdbarch->fetch_tls_load_module_address != NULL;
2363}
2364
2365CORE_ADDR
2366gdbarch_fetch_tls_load_module_address (struct gdbarch *gdbarch, struct objfile *objfile)
2367{
2368 gdb_assert (gdbarch != NULL);
2369 gdb_assert (gdbarch->fetch_tls_load_module_address != NULL);
2370 if (gdbarch_debug >= 2)
2371 fprintf_unfiltered (gdb_stdlog, "gdbarch_fetch_tls_load_module_address called\n");
2372 return gdbarch->fetch_tls_load_module_address (objfile);
2373}
2374
2375void
2376set_gdbarch_fetch_tls_load_module_address (struct gdbarch *gdbarch,
2377 gdbarch_fetch_tls_load_module_address_ftype fetch_tls_load_module_address)
2378{
2379 gdbarch->fetch_tls_load_module_address = fetch_tls_load_module_address;
2380}
2381
0f71a2f6 2382CORE_ADDR
104c1213 2383gdbarch_frame_args_skip (struct gdbarch *gdbarch)
0f71a2f6 2384{
8de9bdc4 2385 gdb_assert (gdbarch != NULL);
5867a2fb 2386 /* Skip verify of frame_args_skip, invalid_p == 0 */
0f71a2f6 2387 if (gdbarch_debug >= 2)
0f71a2f6
JM
2388 fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_args_skip called\n");
2389 return gdbarch->frame_args_skip;
2390}
2391
2392void
104c1213
JM
2393set_gdbarch_frame_args_skip (struct gdbarch *gdbarch,
2394 CORE_ADDR frame_args_skip)
0f71a2f6
JM
2395{
2396 gdbarch->frame_args_skip = frame_args_skip;
2397}
2398
12cc2063
AC
2399int
2400gdbarch_unwind_pc_p (struct gdbarch *gdbarch)
2401{
2402 gdb_assert (gdbarch != NULL);
956ac328 2403 return gdbarch->unwind_pc != NULL;
12cc2063
AC
2404}
2405
2406CORE_ADDR
2407gdbarch_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
2408{
2409 gdb_assert (gdbarch != NULL);
956ac328 2410 gdb_assert (gdbarch->unwind_pc != NULL);
12cc2063
AC
2411 if (gdbarch_debug >= 2)
2412 fprintf_unfiltered (gdb_stdlog, "gdbarch_unwind_pc called\n");
2413 return gdbarch->unwind_pc (gdbarch, next_frame);
2414}
2415
2416void
2417set_gdbarch_unwind_pc (struct gdbarch *gdbarch,
2418 gdbarch_unwind_pc_ftype unwind_pc)
2419{
2420 gdbarch->unwind_pc = unwind_pc;
2421}
2422
a9e5fdc2
AC
2423int
2424gdbarch_unwind_sp_p (struct gdbarch *gdbarch)
2425{
2426 gdb_assert (gdbarch != NULL);
956ac328 2427 return gdbarch->unwind_sp != NULL;
a9e5fdc2
AC
2428}
2429
2430CORE_ADDR
2431gdbarch_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
2432{
2433 gdb_assert (gdbarch != NULL);
956ac328 2434 gdb_assert (gdbarch->unwind_sp != NULL);
a9e5fdc2
AC
2435 if (gdbarch_debug >= 2)
2436 fprintf_unfiltered (gdb_stdlog, "gdbarch_unwind_sp called\n");
2437 return gdbarch->unwind_sp (gdbarch, next_frame);
2438}
2439
2440void
2441set_gdbarch_unwind_sp (struct gdbarch *gdbarch,
2442 gdbarch_unwind_sp_ftype unwind_sp)
2443{
2444 gdbarch->unwind_sp = unwind_sp;
2445}
2446
983a287a
AC
2447int
2448gdbarch_frame_num_args_p (struct gdbarch *gdbarch)
2449{
2450 gdb_assert (gdbarch != NULL);
956ac328 2451 return gdbarch->frame_num_args != NULL;
983a287a
AC
2452}
2453
0f71a2f6
JM
2454int
2455gdbarch_frame_num_args (struct gdbarch *gdbarch, struct frame_info *frame)
2456{
8de9bdc4 2457 gdb_assert (gdbarch != NULL);
956ac328 2458 gdb_assert (gdbarch->frame_num_args != NULL);
0f71a2f6 2459 if (gdbarch_debug >= 2)
0f71a2f6
JM
2460 fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_num_args called\n");
2461 return gdbarch->frame_num_args (frame);
2462}
2463
2464void
104c1213
JM
2465set_gdbarch_frame_num_args (struct gdbarch *gdbarch,
2466 gdbarch_frame_num_args_ftype frame_num_args)
0f71a2f6
JM
2467{
2468 gdbarch->frame_num_args = frame_num_args;
2469}
2470
dc604539
AC
2471int
2472gdbarch_frame_align_p (struct gdbarch *gdbarch)
2473{
2474 gdb_assert (gdbarch != NULL);
956ac328 2475 return gdbarch->frame_align != NULL;
dc604539
AC
2476}
2477
2478CORE_ADDR
2479gdbarch_frame_align (struct gdbarch *gdbarch, CORE_ADDR address)
2480{
2481 gdb_assert (gdbarch != NULL);
956ac328 2482 gdb_assert (gdbarch->frame_align != NULL);
dc604539
AC
2483 if (gdbarch_debug >= 2)
2484 fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_align called\n");
2485 return gdbarch->frame_align (gdbarch, address);
2486}
2487
2488void
2489set_gdbarch_frame_align (struct gdbarch *gdbarch,
2490 gdbarch_frame_align_ftype frame_align)
2491{
2492 gdbarch->frame_align = frame_align;
2493}
2494
192cb3d4
MK
2495int
2496gdbarch_stabs_argument_has_addr (struct gdbarch *gdbarch, struct type *type)
2497{
2498 gdb_assert (gdbarch != NULL);
2499 gdb_assert (gdbarch->stabs_argument_has_addr != NULL);
2500 if (gdbarch_debug >= 2)
2501 fprintf_unfiltered (gdb_stdlog, "gdbarch_stabs_argument_has_addr called\n");
2502 return gdbarch->stabs_argument_has_addr (gdbarch, type);
2503}
2504
2505void
2506set_gdbarch_stabs_argument_has_addr (struct gdbarch *gdbarch,
2507 gdbarch_stabs_argument_has_addr_ftype stabs_argument_has_addr)
2508{
2509 gdbarch->stabs_argument_has_addr = stabs_argument_has_addr;
2510}
2511
8b148df9
AC
2512int
2513gdbarch_frame_red_zone_size (struct gdbarch *gdbarch)
2514{
2515 gdb_assert (gdbarch != NULL);
2516 if (gdbarch_debug >= 2)
2517 fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_red_zone_size called\n");
2518 return gdbarch->frame_red_zone_size;
2519}
2520
2521void
2522set_gdbarch_frame_red_zone_size (struct gdbarch *gdbarch,
2523 int frame_red_zone_size)
2524{
2525 gdbarch->frame_red_zone_size = frame_red_zone_size;
2526}
2527
f517ea4e 2528CORE_ADDR
e2d0e7eb 2529gdbarch_convert_from_func_ptr_addr (struct gdbarch *gdbarch, CORE_ADDR addr, struct target_ops *targ)
f517ea4e 2530{
8de9bdc4 2531 gdb_assert (gdbarch != NULL);
956ac328 2532 gdb_assert (gdbarch->convert_from_func_ptr_addr != NULL);
f517ea4e
PS
2533 if (gdbarch_debug >= 2)
2534 fprintf_unfiltered (gdb_stdlog, "gdbarch_convert_from_func_ptr_addr called\n");
e2d0e7eb 2535 return gdbarch->convert_from_func_ptr_addr (gdbarch, addr, targ);
f517ea4e
PS
2536}
2537
2538void
2539set_gdbarch_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
2540 gdbarch_convert_from_func_ptr_addr_ftype convert_from_func_ptr_addr)
2541{
2542 gdbarch->convert_from_func_ptr_addr = convert_from_func_ptr_addr;
2543}
2544
875e1767
AC
2545CORE_ADDR
2546gdbarch_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr)
2547{
8de9bdc4 2548 gdb_assert (gdbarch != NULL);
956ac328 2549 gdb_assert (gdbarch->addr_bits_remove != NULL);
875e1767
AC
2550 if (gdbarch_debug >= 2)
2551 fprintf_unfiltered (gdb_stdlog, "gdbarch_addr_bits_remove called\n");
24568a2c 2552 return gdbarch->addr_bits_remove (gdbarch, addr);
875e1767
AC
2553}
2554
2555void
2556set_gdbarch_addr_bits_remove (struct gdbarch *gdbarch,
2557 gdbarch_addr_bits_remove_ftype addr_bits_remove)
2558{
2559 gdbarch->addr_bits_remove = addr_bits_remove;
2560}
2561
181c1381
RE
2562CORE_ADDR
2563gdbarch_smash_text_address (struct gdbarch *gdbarch, CORE_ADDR addr)
2564{
8de9bdc4 2565 gdb_assert (gdbarch != NULL);
956ac328 2566 gdb_assert (gdbarch->smash_text_address != NULL);
181c1381
RE
2567 if (gdbarch_debug >= 2)
2568 fprintf_unfiltered (gdb_stdlog, "gdbarch_smash_text_address called\n");
24568a2c 2569 return gdbarch->smash_text_address (gdbarch, addr);
181c1381
RE
2570}
2571
2572void
2573set_gdbarch_smash_text_address (struct gdbarch *gdbarch,
2574 gdbarch_smash_text_address_ftype smash_text_address)
2575{
2576 gdbarch->smash_text_address = smash_text_address;
2577}
2578
64c4637f
AC
2579int
2580gdbarch_software_single_step_p (struct gdbarch *gdbarch)
2581{
8de9bdc4 2582 gdb_assert (gdbarch != NULL);
956ac328 2583 return gdbarch->software_single_step != NULL;
64c4637f
AC
2584}
2585
e6590a1b 2586int
0b1b3e42 2587gdbarch_software_single_step (struct gdbarch *gdbarch, struct frame_info *frame)
64c4637f 2588{
8de9bdc4 2589 gdb_assert (gdbarch != NULL);
956ac328 2590 gdb_assert (gdbarch->software_single_step != NULL);
64c4637f
AC
2591 if (gdbarch_debug >= 2)
2592 fprintf_unfiltered (gdb_stdlog, "gdbarch_software_single_step called\n");
0b1b3e42 2593 return gdbarch->software_single_step (frame);
64c4637f
AC
2594}
2595
2596void
2597set_gdbarch_software_single_step (struct gdbarch *gdbarch,
2598 gdbarch_software_single_step_ftype software_single_step)
2599{
2600 gdbarch->software_single_step = software_single_step;
2601}
2602
3352ef37
AC
2603int
2604gdbarch_single_step_through_delay_p (struct gdbarch *gdbarch)
2605{
2606 gdb_assert (gdbarch != NULL);
2607 return gdbarch->single_step_through_delay != NULL;
2608}
2609
2610int
2611gdbarch_single_step_through_delay (struct gdbarch *gdbarch, struct frame_info *frame)
2612{
2613 gdb_assert (gdbarch != NULL);
2614 gdb_assert (gdbarch->single_step_through_delay != NULL);
2615 if (gdbarch_debug >= 2)
2616 fprintf_unfiltered (gdb_stdlog, "gdbarch_single_step_through_delay called\n");
2617 return gdbarch->single_step_through_delay (gdbarch, frame);
2618}
2619
2620void
2621set_gdbarch_single_step_through_delay (struct gdbarch *gdbarch,
2622 gdbarch_single_step_through_delay_ftype single_step_through_delay)
2623{
2624 gdbarch->single_step_through_delay = single_step_through_delay;
2625}
2626
2bf0cb65 2627int
a89aa300 2628gdbarch_print_insn (struct gdbarch *gdbarch, bfd_vma vma, struct disassemble_info *info)
2bf0cb65 2629{
8de9bdc4 2630 gdb_assert (gdbarch != NULL);
956ac328 2631 gdb_assert (gdbarch->print_insn != NULL);
2bf0cb65
EZ
2632 if (gdbarch_debug >= 2)
2633 fprintf_unfiltered (gdb_stdlog, "gdbarch_print_insn called\n");
2634 return gdbarch->print_insn (vma, info);
2635}
2636
2637void
2638set_gdbarch_print_insn (struct gdbarch *gdbarch,
2639 gdbarch_print_insn_ftype print_insn)
2640{
2641 gdbarch->print_insn = print_insn;
2642}
2643
bdcd319a 2644CORE_ADDR
52f729a7 2645gdbarch_skip_trampoline_code (struct gdbarch *gdbarch, struct frame_info *frame, CORE_ADDR pc)
bdcd319a 2646{
8de9bdc4 2647 gdb_assert (gdbarch != NULL);
956ac328 2648 gdb_assert (gdbarch->skip_trampoline_code != NULL);
bdcd319a
CV
2649 if (gdbarch_debug >= 2)
2650 fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_trampoline_code called\n");
52f729a7 2651 return gdbarch->skip_trampoline_code (frame, pc);
bdcd319a
CV
2652}
2653
2654void
2655set_gdbarch_skip_trampoline_code (struct gdbarch *gdbarch,
2656 gdbarch_skip_trampoline_code_ftype skip_trampoline_code)
2657{
2658 gdbarch->skip_trampoline_code = skip_trampoline_code;
2659}
2660
dea0c52f
MK
2661CORE_ADDR
2662gdbarch_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc)
2663{
2664 gdb_assert (gdbarch != NULL);
2665 gdb_assert (gdbarch->skip_solib_resolver != NULL);
2666 if (gdbarch_debug >= 2)
2667 fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_solib_resolver called\n");
4c8c40e6 2668 return gdbarch->skip_solib_resolver (gdbarch, pc);
dea0c52f
MK
2669}
2670
2671void
2672set_gdbarch_skip_solib_resolver (struct gdbarch *gdbarch,
2673 gdbarch_skip_solib_resolver_ftype skip_solib_resolver)
2674{
2675 gdbarch->skip_solib_resolver = skip_solib_resolver;
2676}
2677
d50355b6
MS
2678int
2679gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, char *name)
2680{
2681 gdb_assert (gdbarch != NULL);
956ac328 2682 gdb_assert (gdbarch->in_solib_return_trampoline != NULL);
d50355b6
MS
2683 if (gdbarch_debug >= 2)
2684 fprintf_unfiltered (gdb_stdlog, "gdbarch_in_solib_return_trampoline called\n");
2685 return gdbarch->in_solib_return_trampoline (pc, name);
2686}
2687
2688void
2689set_gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch,
2690 gdbarch_in_solib_return_trampoline_ftype in_solib_return_trampoline)
2691{
2692 gdbarch->in_solib_return_trampoline = in_solib_return_trampoline;
2693}
2694
c12260ac
CV
2695int
2696gdbarch_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR addr)
2697{
8de9bdc4 2698 gdb_assert (gdbarch != NULL);
956ac328 2699 gdb_assert (gdbarch->in_function_epilogue_p != NULL);
c12260ac
CV
2700 if (gdbarch_debug >= 2)
2701 fprintf_unfiltered (gdb_stdlog, "gdbarch_in_function_epilogue_p called\n");
2702 return gdbarch->in_function_epilogue_p (gdbarch, addr);
2703}
2704
2705void
2706set_gdbarch_in_function_epilogue_p (struct gdbarch *gdbarch,
2707 gdbarch_in_function_epilogue_p_ftype in_function_epilogue_p)
2708{
2709 gdbarch->in_function_epilogue_p = in_function_epilogue_p;
2710}
2711
a2cf933a
EZ
2712void
2713gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch, asymbol *sym, struct minimal_symbol *msym)
2714{
8de9bdc4 2715 gdb_assert (gdbarch != NULL);
956ac328 2716 gdb_assert (gdbarch->elf_make_msymbol_special != NULL);
a2cf933a
EZ
2717 if (gdbarch_debug >= 2)
2718 fprintf_unfiltered (gdb_stdlog, "gdbarch_elf_make_msymbol_special called\n");
2719 gdbarch->elf_make_msymbol_special (sym, msym);
2720}
2721
2722void
2723set_gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch,
2724 gdbarch_elf_make_msymbol_special_ftype elf_make_msymbol_special)
2725{
2726 gdbarch->elf_make_msymbol_special = elf_make_msymbol_special;
2727}
2728
2729void
2730gdbarch_coff_make_msymbol_special (struct gdbarch *gdbarch, int val, struct minimal_symbol *msym)
2731{
8de9bdc4 2732 gdb_assert (gdbarch != NULL);
956ac328 2733 gdb_assert (gdbarch->coff_make_msymbol_special != NULL);
a2cf933a
EZ
2734 if (gdbarch_debug >= 2)
2735 fprintf_unfiltered (gdb_stdlog, "gdbarch_coff_make_msymbol_special called\n");
2736 gdbarch->coff_make_msymbol_special (val, msym);
2737}
2738
2739void
2740set_gdbarch_coff_make_msymbol_special (struct gdbarch *gdbarch,
2741 gdbarch_coff_make_msymbol_special_ftype coff_make_msymbol_special)
2742{
2743 gdbarch->coff_make_msymbol_special = coff_make_msymbol_special;
2744}
2745
c4ed33b9
AC
2746int
2747gdbarch_cannot_step_breakpoint (struct gdbarch *gdbarch)
2748{
2749 gdb_assert (gdbarch != NULL);
2750 /* Skip verify of cannot_step_breakpoint, invalid_p == 0 */
2751 if (gdbarch_debug >= 2)
2752 fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_step_breakpoint called\n");
2753 return gdbarch->cannot_step_breakpoint;
2754}
2755
2756void
2757set_gdbarch_cannot_step_breakpoint (struct gdbarch *gdbarch,
2758 int cannot_step_breakpoint)
2759{
2760 gdbarch->cannot_step_breakpoint = cannot_step_breakpoint;
2761}
2762
f74fa174
MM
2763int
2764gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch)
2765{
2766 gdb_assert (gdbarch != NULL);
2767 /* Skip verify of have_nonsteppable_watchpoint, invalid_p == 0 */
2768 if (gdbarch_debug >= 2)
2769 fprintf_unfiltered (gdb_stdlog, "gdbarch_have_nonsteppable_watchpoint called\n");
2770 return gdbarch->have_nonsteppable_watchpoint;
2771}
2772
2773void
2774set_gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch,
967c0d83 2775 int have_nonsteppable_watchpoint)
f74fa174
MM
2776{
2777 gdbarch->have_nonsteppable_watchpoint = have_nonsteppable_watchpoint;
2778}
2779
8b2dbe47
KB
2780int
2781gdbarch_address_class_type_flags_p (struct gdbarch *gdbarch)
2782{
2783 gdb_assert (gdbarch != NULL);
956ac328 2784 return gdbarch->address_class_type_flags != NULL;
8b2dbe47
KB
2785}
2786
2787int
2788gdbarch_address_class_type_flags (struct gdbarch *gdbarch, int byte_size, int dwarf2_addr_class)
2789{
2790 gdb_assert (gdbarch != NULL);
956ac328 2791 gdb_assert (gdbarch->address_class_type_flags != NULL);
8b2dbe47
KB
2792 if (gdbarch_debug >= 2)
2793 fprintf_unfiltered (gdb_stdlog, "gdbarch_address_class_type_flags called\n");
2794 return gdbarch->address_class_type_flags (byte_size, dwarf2_addr_class);
2795}
2796
2797void
2798set_gdbarch_address_class_type_flags (struct gdbarch *gdbarch,
2799 gdbarch_address_class_type_flags_ftype address_class_type_flags)
2800{
2801 gdbarch->address_class_type_flags = address_class_type_flags;
2802}
2803
2804int
2805gdbarch_address_class_type_flags_to_name_p (struct gdbarch *gdbarch)
2806{
2807 gdb_assert (gdbarch != NULL);
956ac328 2808 return gdbarch->address_class_type_flags_to_name != NULL;
8b2dbe47
KB
2809}
2810
321432c0 2811const char *
8b2dbe47
KB
2812gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags)
2813{
2814 gdb_assert (gdbarch != NULL);
956ac328 2815 gdb_assert (gdbarch->address_class_type_flags_to_name != NULL);
8b2dbe47
KB
2816 if (gdbarch_debug >= 2)
2817 fprintf_unfiltered (gdb_stdlog, "gdbarch_address_class_type_flags_to_name called\n");
5f11f355 2818 return gdbarch->address_class_type_flags_to_name (gdbarch, type_flags);
8b2dbe47
KB
2819}
2820
2821void
2822set_gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch,
2823 gdbarch_address_class_type_flags_to_name_ftype address_class_type_flags_to_name)
2824{
2825 gdbarch->address_class_type_flags_to_name = address_class_type_flags_to_name;
2826}
2827
2828int
2829gdbarch_address_class_name_to_type_flags_p (struct gdbarch *gdbarch)
2830{
2831 gdb_assert (gdbarch != NULL);
956ac328 2832 return gdbarch->address_class_name_to_type_flags != NULL;
8b2dbe47
KB
2833}
2834
2835int
321432c0 2836gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, const char *name, int *type_flags_ptr)
8b2dbe47
KB
2837{
2838 gdb_assert (gdbarch != NULL);
956ac328 2839 gdb_assert (gdbarch->address_class_name_to_type_flags != NULL);
8b2dbe47
KB
2840 if (gdbarch_debug >= 2)
2841 fprintf_unfiltered (gdb_stdlog, "gdbarch_address_class_name_to_type_flags called\n");
5f11f355 2842 return gdbarch->address_class_name_to_type_flags (gdbarch, name, type_flags_ptr);
8b2dbe47
KB
2843}
2844
2845void
2846set_gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch,
2847 gdbarch_address_class_name_to_type_flags_ftype address_class_name_to_type_flags)
2848{
2849 gdbarch->address_class_name_to_type_flags = address_class_name_to_type_flags;
2850}
2851
b59ff9d5
AC
2852int
2853gdbarch_register_reggroup_p (struct gdbarch *gdbarch, int regnum, struct reggroup *reggroup)
2854{
2855 gdb_assert (gdbarch != NULL);
956ac328 2856 gdb_assert (gdbarch->register_reggroup_p != NULL);
b59ff9d5
AC
2857 if (gdbarch_debug >= 2)
2858 fprintf_unfiltered (gdb_stdlog, "gdbarch_register_reggroup_p called\n");
2859 return gdbarch->register_reggroup_p (gdbarch, regnum, reggroup);
2860}
2861
2862void
2863set_gdbarch_register_reggroup_p (struct gdbarch *gdbarch,
2864 gdbarch_register_reggroup_p_ftype register_reggroup_p)
2865{
2866 gdbarch->register_reggroup_p = register_reggroup_p;
2867}
2868
143985b7
AF
2869int
2870gdbarch_fetch_pointer_argument_p (struct gdbarch *gdbarch)
2871{
2872 gdb_assert (gdbarch != NULL);
956ac328 2873 return gdbarch->fetch_pointer_argument != NULL;
143985b7
AF
2874}
2875
2876CORE_ADDR
2877gdbarch_fetch_pointer_argument (struct gdbarch *gdbarch, struct frame_info *frame, int argi, struct type *type)
2878{
2879 gdb_assert (gdbarch != NULL);
956ac328 2880 gdb_assert (gdbarch->fetch_pointer_argument != NULL);
143985b7
AF
2881 if (gdbarch_debug >= 2)
2882 fprintf_unfiltered (gdb_stdlog, "gdbarch_fetch_pointer_argument called\n");
2883 return gdbarch->fetch_pointer_argument (frame, argi, type);
2884}
2885
2886void
2887set_gdbarch_fetch_pointer_argument (struct gdbarch *gdbarch,
2888 gdbarch_fetch_pointer_argument_ftype fetch_pointer_argument)
2889{
2890 gdbarch->fetch_pointer_argument = fetch_pointer_argument;
2891}
2892
6ce6d90f
MK
2893int
2894gdbarch_regset_from_core_section_p (struct gdbarch *gdbarch)
2895{
2896 gdb_assert (gdbarch != NULL);
2897 return gdbarch->regset_from_core_section != NULL;
2898}
2899
2900const struct regset *
2901gdbarch_regset_from_core_section (struct gdbarch *gdbarch, const char *sect_name, size_t sect_size)
2902{
2903 gdb_assert (gdbarch != NULL);
2904 gdb_assert (gdbarch->regset_from_core_section != NULL);
2905 if (gdbarch_debug >= 2)
2906 fprintf_unfiltered (gdb_stdlog, "gdbarch_regset_from_core_section called\n");
2907 return gdbarch->regset_from_core_section (gdbarch, sect_name, sect_size);
2908}
2909
2910void
2911set_gdbarch_regset_from_core_section (struct gdbarch *gdbarch,
2912 gdbarch_regset_from_core_section_ftype regset_from_core_section)
2913{
2914 gdbarch->regset_from_core_section = regset_from_core_section;
2915}
2916
959b8724
PA
2917int
2918gdbarch_core_reg_section_encodes_pid (struct gdbarch *gdbarch)
2919{
2920 gdb_assert (gdbarch != NULL);
2921 /* Skip verify of core_reg_section_encodes_pid, invalid_p == 0 */
2922 if (gdbarch_debug >= 2)
2923 fprintf_unfiltered (gdb_stdlog, "gdbarch_core_reg_section_encodes_pid called\n");
2924 return gdbarch->core_reg_section_encodes_pid;
2925}
2926
2927void
2928set_gdbarch_core_reg_section_encodes_pid (struct gdbarch *gdbarch,
2929 int core_reg_section_encodes_pid)
2930{
2931 gdbarch->core_reg_section_encodes_pid = core_reg_section_encodes_pid;
2932}
2933
17ea7499
CES
2934struct core_regset_section *
2935gdbarch_core_regset_sections (struct gdbarch *gdbarch)
2936{
2937 gdb_assert (gdbarch != NULL);
2938 if (gdbarch_debug >= 2)
2939 fprintf_unfiltered (gdb_stdlog, "gdbarch_core_regset_sections called\n");
2940 return gdbarch->core_regset_sections;
2941}
2942
2943void
2944set_gdbarch_core_regset_sections (struct gdbarch *gdbarch,
2945 struct core_regset_section * core_regset_sections)
2946{
2947 gdbarch->core_regset_sections = core_regset_sections;
2948}
2949
de584861
PA
2950int
2951gdbarch_core_xfer_shared_libraries_p (struct gdbarch *gdbarch)
2952{
2953 gdb_assert (gdbarch != NULL);
2954 return gdbarch->core_xfer_shared_libraries != NULL;
2955}
2956
2957LONGEST
2958gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, LONGEST len)
2959{
2960 gdb_assert (gdbarch != NULL);
2961 gdb_assert (gdbarch->core_xfer_shared_libraries != NULL);
2962 if (gdbarch_debug >= 2)
2963 fprintf_unfiltered (gdb_stdlog, "gdbarch_core_xfer_shared_libraries called\n");
2964 return gdbarch->core_xfer_shared_libraries (gdbarch, readbuf, offset, len);
2965}
2966
2967void
2968set_gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch,
2969 gdbarch_core_xfer_shared_libraries_ftype core_xfer_shared_libraries)
2970{
2971 gdbarch->core_xfer_shared_libraries = core_xfer_shared_libraries;
2972}
2973
28439f5e
PA
2974int
2975gdbarch_core_pid_to_str_p (struct gdbarch *gdbarch)
2976{
2977 gdb_assert (gdbarch != NULL);
2978 return gdbarch->core_pid_to_str != NULL;
2979}
2980
2981char *
2982gdbarch_core_pid_to_str (struct gdbarch *gdbarch, ptid_t ptid)
2983{
2984 gdb_assert (gdbarch != NULL);
2985 gdb_assert (gdbarch->core_pid_to_str != NULL);
2986 if (gdbarch_debug >= 2)
2987 fprintf_unfiltered (gdb_stdlog, "gdbarch_core_pid_to_str called\n");
2988 return gdbarch->core_pid_to_str (gdbarch, ptid);
2989}
2990
2991void
2992set_gdbarch_core_pid_to_str (struct gdbarch *gdbarch,
2993 gdbarch_core_pid_to_str_ftype core_pid_to_str)
2994{
2995 gdbarch->core_pid_to_str = core_pid_to_str;
2996}
2997
a78c2d62
UW
2998int
2999gdbarch_gcore_bfd_target_p (struct gdbarch *gdbarch)
3000{
3001 gdb_assert (gdbarch != NULL);
3002 return gdbarch->gcore_bfd_target != 0;
3003}
3004
3005const char *
3006gdbarch_gcore_bfd_target (struct gdbarch *gdbarch)
3007{
3008 gdb_assert (gdbarch != NULL);
3009 /* Check variable changed from pre-default. */
3010 gdb_assert (gdbarch->gcore_bfd_target != 0);
3011 if (gdbarch_debug >= 2)
3012 fprintf_unfiltered (gdb_stdlog, "gdbarch_gcore_bfd_target called\n");
3013 return gdbarch->gcore_bfd_target;
3014}
3015
3016void
3017set_gdbarch_gcore_bfd_target (struct gdbarch *gdbarch,
3018 const char * gcore_bfd_target)
3019{
3020 gdbarch->gcore_bfd_target = gcore_bfd_target;
3021}
3022
0d5de010
DJ
3023int
3024gdbarch_vtable_function_descriptors (struct gdbarch *gdbarch)
3025{
3026 gdb_assert (gdbarch != NULL);
3027 /* Skip verify of vtable_function_descriptors, invalid_p == 0 */
3028 if (gdbarch_debug >= 2)
3029 fprintf_unfiltered (gdb_stdlog, "gdbarch_vtable_function_descriptors called\n");
3030 return gdbarch->vtable_function_descriptors;
3031}
3032
3033void
3034set_gdbarch_vtable_function_descriptors (struct gdbarch *gdbarch,
3035 int vtable_function_descriptors)
3036{
3037 gdbarch->vtable_function_descriptors = vtable_function_descriptors;
3038}
3039
3040int
3041gdbarch_vbit_in_delta (struct gdbarch *gdbarch)
3042{
3043 gdb_assert (gdbarch != NULL);
3044 /* Skip verify of vbit_in_delta, invalid_p == 0 */
3045 if (gdbarch_debug >= 2)
3046 fprintf_unfiltered (gdb_stdlog, "gdbarch_vbit_in_delta called\n");
3047 return gdbarch->vbit_in_delta;
3048}
3049
3050void
3051set_gdbarch_vbit_in_delta (struct gdbarch *gdbarch,
3052 int vbit_in_delta)
3053{
3054 gdbarch->vbit_in_delta = vbit_in_delta;
3055}
3056
6d350bb5
UW
3057int
3058gdbarch_skip_permanent_breakpoint_p (struct gdbarch *gdbarch)
3059{
3060 gdb_assert (gdbarch != NULL);
3061 return gdbarch->skip_permanent_breakpoint != NULL;
3062}
3063
3064void
3065gdbarch_skip_permanent_breakpoint (struct gdbarch *gdbarch, struct regcache *regcache)
3066{
3067 gdb_assert (gdbarch != NULL);
3068 gdb_assert (gdbarch->skip_permanent_breakpoint != NULL);
3069 if (gdbarch_debug >= 2)
3070 fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_permanent_breakpoint called\n");
3071 gdbarch->skip_permanent_breakpoint (regcache);
3072}
3073
3074void
3075set_gdbarch_skip_permanent_breakpoint (struct gdbarch *gdbarch,
3076 gdbarch_skip_permanent_breakpoint_ftype skip_permanent_breakpoint)
3077{
3078 gdbarch->skip_permanent_breakpoint = skip_permanent_breakpoint;
3079}
3080
237fc4c9
PA
3081int
3082gdbarch_max_insn_length_p (struct gdbarch *gdbarch)
3083{
3084 gdb_assert (gdbarch != NULL);
3085 return gdbarch->max_insn_length != 0;
3086}
3087
3088ULONGEST
3089gdbarch_max_insn_length (struct gdbarch *gdbarch)
3090{
3091 gdb_assert (gdbarch != NULL);
3092 /* Check variable changed from pre-default. */
3093 gdb_assert (gdbarch->max_insn_length != 0);
3094 if (gdbarch_debug >= 2)
3095 fprintf_unfiltered (gdb_stdlog, "gdbarch_max_insn_length called\n");
3096 return gdbarch->max_insn_length;
3097}
3098
3099void
3100set_gdbarch_max_insn_length (struct gdbarch *gdbarch,
3101 ULONGEST max_insn_length)
3102{
3103 gdbarch->max_insn_length = max_insn_length;
3104}
3105
3106int
3107gdbarch_displaced_step_copy_insn_p (struct gdbarch *gdbarch)
3108{
3109 gdb_assert (gdbarch != NULL);
3110 return gdbarch->displaced_step_copy_insn != NULL;
3111}
3112
3113struct displaced_step_closure *
3114gdbarch_displaced_step_copy_insn (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
3115{
3116 gdb_assert (gdbarch != NULL);
3117 gdb_assert (gdbarch->displaced_step_copy_insn != NULL);
3118 if (gdbarch_debug >= 2)
3119 fprintf_unfiltered (gdb_stdlog, "gdbarch_displaced_step_copy_insn called\n");
3120 return gdbarch->displaced_step_copy_insn (gdbarch, from, to, regs);
3121}
3122
3123void
3124set_gdbarch_displaced_step_copy_insn (struct gdbarch *gdbarch,
3125 gdbarch_displaced_step_copy_insn_ftype displaced_step_copy_insn)
3126{
3127 gdbarch->displaced_step_copy_insn = displaced_step_copy_insn;
3128}
3129
3130int
3131gdbarch_displaced_step_fixup_p (struct gdbarch *gdbarch)
3132{
3133 gdb_assert (gdbarch != NULL);
3134 return gdbarch->displaced_step_fixup != NULL;
3135}
3136
3137void
3138gdbarch_displaced_step_fixup (struct gdbarch *gdbarch, struct displaced_step_closure *closure, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
3139{
3140 gdb_assert (gdbarch != NULL);
3141 gdb_assert (gdbarch->displaced_step_fixup != NULL);
3142 /* Do not check predicate: gdbarch->displaced_step_fixup != NULL, allow call. */
3143 if (gdbarch_debug >= 2)
3144 fprintf_unfiltered (gdb_stdlog, "gdbarch_displaced_step_fixup called\n");
3145 gdbarch->displaced_step_fixup (gdbarch, closure, from, to, regs);
3146}
3147
3148void
3149set_gdbarch_displaced_step_fixup (struct gdbarch *gdbarch,
3150 gdbarch_displaced_step_fixup_ftype displaced_step_fixup)
3151{
3152 gdbarch->displaced_step_fixup = displaced_step_fixup;
3153}
3154
3155void
3156gdbarch_displaced_step_free_closure (struct gdbarch *gdbarch, struct displaced_step_closure *closure)
3157{
3158 gdb_assert (gdbarch != NULL);
3159 gdb_assert (gdbarch->displaced_step_free_closure != NULL);
3160 if (gdbarch_debug >= 2)
3161 fprintf_unfiltered (gdb_stdlog, "gdbarch_displaced_step_free_closure called\n");
3162 gdbarch->displaced_step_free_closure (gdbarch, closure);
3163}
3164
3165void
3166set_gdbarch_displaced_step_free_closure (struct gdbarch *gdbarch,
3167 gdbarch_displaced_step_free_closure_ftype displaced_step_free_closure)
3168{
3169 gdbarch->displaced_step_free_closure = displaced_step_free_closure;
3170}
3171
3172CORE_ADDR
3173gdbarch_displaced_step_location (struct gdbarch *gdbarch)
3174{
3175 gdb_assert (gdbarch != NULL);
3176 gdb_assert (gdbarch->displaced_step_location != NULL);
3177 if (gdbarch_debug >= 2)
3178 fprintf_unfiltered (gdb_stdlog, "gdbarch_displaced_step_location called\n");
3179 return gdbarch->displaced_step_location (gdbarch);
3180}
3181
3182void
3183set_gdbarch_displaced_step_location (struct gdbarch *gdbarch,
3184 gdbarch_displaced_step_location_ftype displaced_step_location)
3185{
3186 gdbarch->displaced_step_location = displaced_step_location;
3187}
3188
1c772458
UW
3189int
3190gdbarch_overlay_update_p (struct gdbarch *gdbarch)
3191{
3192 gdb_assert (gdbarch != NULL);
3193 return gdbarch->overlay_update != NULL;
3194}
3195
3196void
3197gdbarch_overlay_update (struct gdbarch *gdbarch, struct obj_section *osect)
3198{
3199 gdb_assert (gdbarch != NULL);
3200 gdb_assert (gdbarch->overlay_update != NULL);
3201 if (gdbarch_debug >= 2)
3202 fprintf_unfiltered (gdb_stdlog, "gdbarch_overlay_update called\n");
3203 gdbarch->overlay_update (osect);
3204}
3205
3206void
3207set_gdbarch_overlay_update (struct gdbarch *gdbarch,
3208 gdbarch_overlay_update_ftype overlay_update)
3209{
3210 gdbarch->overlay_update = overlay_update;
3211}
3212
4eb0ad19
DJ
3213int
3214gdbarch_core_read_description_p (struct gdbarch *gdbarch)
3215{
3216 gdb_assert (gdbarch != NULL);
3217 return gdbarch->core_read_description != NULL;
3218}
3219
3220const struct target_desc *
3221gdbarch_core_read_description (struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd)
3222{
3223 gdb_assert (gdbarch != NULL);
3224 gdb_assert (gdbarch->core_read_description != NULL);
3225 if (gdbarch_debug >= 2)
3226 fprintf_unfiltered (gdb_stdlog, "gdbarch_core_read_description called\n");
3227 return gdbarch->core_read_description (gdbarch, target, abfd);
3228}
3229
3230void
3231set_gdbarch_core_read_description (struct gdbarch *gdbarch,
3232 gdbarch_core_read_description_ftype core_read_description)
3233{
3234 gdbarch->core_read_description = core_read_description;
3235}
3236
149ad273
UW
3237int
3238gdbarch_static_transform_name_p (struct gdbarch *gdbarch)
3239{
3240 gdb_assert (gdbarch != NULL);
3241 return gdbarch->static_transform_name != NULL;
3242}
3243
3244char *
3245gdbarch_static_transform_name (struct gdbarch *gdbarch, char *name)
3246{
3247 gdb_assert (gdbarch != NULL);
3248 gdb_assert (gdbarch->static_transform_name != NULL);
3249 if (gdbarch_debug >= 2)
3250 fprintf_unfiltered (gdb_stdlog, "gdbarch_static_transform_name called\n");
3251 return gdbarch->static_transform_name (name);
3252}
3253
3254void
3255set_gdbarch_static_transform_name (struct gdbarch *gdbarch,
3256 gdbarch_static_transform_name_ftype static_transform_name)
3257{
3258 gdbarch->static_transform_name = static_transform_name;
3259}
3260
203c3895
UW
3261int
3262gdbarch_sofun_address_maybe_missing (struct gdbarch *gdbarch)
3263{
3264 gdb_assert (gdbarch != NULL);
3265 /* Skip verify of sofun_address_maybe_missing, invalid_p == 0 */
3266 if (gdbarch_debug >= 2)
3267 fprintf_unfiltered (gdb_stdlog, "gdbarch_sofun_address_maybe_missing called\n");
3268 return gdbarch->sofun_address_maybe_missing;
3269}
3270
3271void
3272set_gdbarch_sofun_address_maybe_missing (struct gdbarch *gdbarch,
3273 int sofun_address_maybe_missing)
3274{
3275 gdbarch->sofun_address_maybe_missing = sofun_address_maybe_missing;
3276}
3277
0508c3ec
HZ
3278int
3279gdbarch_process_record_p (struct gdbarch *gdbarch)
3280{
3281 gdb_assert (gdbarch != NULL);
3282 return gdbarch->process_record != NULL;
3283}
3284
3285int
3286gdbarch_process_record (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr)
3287{
3288 gdb_assert (gdbarch != NULL);
3289 gdb_assert (gdbarch->process_record != NULL);
3290 if (gdbarch_debug >= 2)
3291 fprintf_unfiltered (gdb_stdlog, "gdbarch_process_record called\n");
3292 return gdbarch->process_record (gdbarch, regcache, addr);
3293}
3294
3295void
3296set_gdbarch_process_record (struct gdbarch *gdbarch,
3297 gdbarch_process_record_ftype process_record)
3298{
3299 gdbarch->process_record = process_record;
3300}
3301
1cded358
AR
3302enum target_signal
3303gdbarch_target_signal_from_host (struct gdbarch *gdbarch, int signo)
3304{
3305 gdb_assert (gdbarch != NULL);
3306 gdb_assert (gdbarch->target_signal_from_host != NULL);
3307 if (gdbarch_debug >= 2)
3308 fprintf_unfiltered (gdb_stdlog, "gdbarch_target_signal_from_host called\n");
3309 return gdbarch->target_signal_from_host (gdbarch, signo);
3310}
3311
3312void
3313set_gdbarch_target_signal_from_host (struct gdbarch *gdbarch,
3314 gdbarch_target_signal_from_host_ftype target_signal_from_host)
3315{
3316 gdbarch->target_signal_from_host = target_signal_from_host;
3317}
3318
3319int
3320gdbarch_target_signal_to_host (struct gdbarch *gdbarch, enum target_signal ts)
3321{
3322 gdb_assert (gdbarch != NULL);
3323 gdb_assert (gdbarch->target_signal_to_host != NULL);
3324 if (gdbarch_debug >= 2)
3325 fprintf_unfiltered (gdb_stdlog, "gdbarch_target_signal_to_host called\n");
3326 return gdbarch->target_signal_to_host (gdbarch, ts);
3327}
3328
3329void
3330set_gdbarch_target_signal_to_host (struct gdbarch *gdbarch,
3331 gdbarch_target_signal_to_host_ftype target_signal_to_host)
3332{
3333 gdbarch->target_signal_to_host = target_signal_to_host;
3334}
3335
4aa995e1
PA
3336int
3337gdbarch_get_siginfo_type_p (struct gdbarch *gdbarch)
3338{
3339 gdb_assert (gdbarch != NULL);
3340 return gdbarch->get_siginfo_type != NULL;
3341}
3342
3343struct type *
3344gdbarch_get_siginfo_type (struct gdbarch *gdbarch)
3345{
3346 gdb_assert (gdbarch != NULL);
3347 gdb_assert (gdbarch->get_siginfo_type != NULL);
3348 if (gdbarch_debug >= 2)
3349 fprintf_unfiltered (gdb_stdlog, "gdbarch_get_siginfo_type called\n");
3350 return gdbarch->get_siginfo_type (gdbarch);
3351}
3352
3353void
3354set_gdbarch_get_siginfo_type (struct gdbarch *gdbarch,
3355 gdbarch_get_siginfo_type_ftype get_siginfo_type)
3356{
3357 gdbarch->get_siginfo_type = get_siginfo_type;
3358}
3359
60c5725c
DJ
3360int
3361gdbarch_record_special_symbol_p (struct gdbarch *gdbarch)
3362{
3363 gdb_assert (gdbarch != NULL);
3364 return gdbarch->record_special_symbol != NULL;
3365}
3366
3367void
3368gdbarch_record_special_symbol (struct gdbarch *gdbarch, struct objfile *objfile, asymbol *sym)
3369{
3370 gdb_assert (gdbarch != NULL);
3371 gdb_assert (gdbarch->record_special_symbol != NULL);
3372 if (gdbarch_debug >= 2)
3373 fprintf_unfiltered (gdb_stdlog, "gdbarch_record_special_symbol called\n");
3374 gdbarch->record_special_symbol (gdbarch, objfile, sym);
3375}
3376
3377void
3378set_gdbarch_record_special_symbol (struct gdbarch *gdbarch,
3379 gdbarch_record_special_symbol_ftype record_special_symbol)
3380{
3381 gdbarch->record_special_symbol = record_special_symbol;
3382}
3383
50c71eaf
PA
3384int
3385gdbarch_has_global_solist (struct gdbarch *gdbarch)
3386{
3387 gdb_assert (gdbarch != NULL);
3388 /* Skip verify of has_global_solist, invalid_p == 0 */
3389 if (gdbarch_debug >= 2)
3390 fprintf_unfiltered (gdb_stdlog, "gdbarch_has_global_solist called\n");
3391 return gdbarch->has_global_solist;
3392}
3393
3394void
3395set_gdbarch_has_global_solist (struct gdbarch *gdbarch,
3396 int has_global_solist)
3397{
3398 gdbarch->has_global_solist = has_global_solist;
3399}
3400
2567c7d9
PA
3401int
3402gdbarch_has_global_breakpoints (struct gdbarch *gdbarch)
3403{
3404 gdb_assert (gdbarch != NULL);
3405 /* Skip verify of has_global_breakpoints, invalid_p == 0 */
3406 if (gdbarch_debug >= 2)
3407 fprintf_unfiltered (gdb_stdlog, "gdbarch_has_global_breakpoints called\n");
3408 return gdbarch->has_global_breakpoints;
3409}
3410
3411void
3412set_gdbarch_has_global_breakpoints (struct gdbarch *gdbarch,
3413 int has_global_breakpoints)
3414{
3415 gdbarch->has_global_breakpoints = has_global_breakpoints;
3416}
3417
0f71a2f6 3418
be5a57e1 3419/* Keep a registry of per-architecture data-pointers required by GDB
0f71a2f6
JM
3420 modules. */
3421
3422struct gdbarch_data
3423{
95160752 3424 unsigned index;
76860b5f 3425 int init_p;
030f20e1
AC
3426 gdbarch_data_pre_init_ftype *pre_init;
3427 gdbarch_data_post_init_ftype *post_init;
0f71a2f6
JM
3428};
3429
3430struct gdbarch_data_registration
adf40b2e 3431{
adf40b2e
JM
3432 struct gdbarch_data *data;
3433 struct gdbarch_data_registration *next;
3434};
0f71a2f6 3435
be5a57e1 3436struct gdbarch_data_registry
adf40b2e 3437{
95160752 3438 unsigned nr;
adf40b2e
JM
3439 struct gdbarch_data_registration *registrations;
3440};
0f71a2f6 3441
be5a57e1 3442struct gdbarch_data_registry gdbarch_data_registry =
0f71a2f6
JM
3443{
3444 0, NULL,
3445};
3446
030f20e1
AC
3447static struct gdbarch_data *
3448gdbarch_data_register (gdbarch_data_pre_init_ftype *pre_init,
3449 gdbarch_data_post_init_ftype *post_init)
0f71a2f6
JM
3450{
3451 struct gdbarch_data_registration **curr;
76860b5f 3452 /* Append the new registraration. */
be5a57e1 3453 for (curr = &gdbarch_data_registry.registrations;
0f71a2f6
JM
3454 (*curr) != NULL;
3455 curr = &(*curr)->next);
3456 (*curr) = XMALLOC (struct gdbarch_data_registration);
3457 (*curr)->next = NULL;
0f71a2f6 3458 (*curr)->data = XMALLOC (struct gdbarch_data);
be5a57e1 3459 (*curr)->data->index = gdbarch_data_registry.nr++;
030f20e1
AC
3460 (*curr)->data->pre_init = pre_init;
3461 (*curr)->data->post_init = post_init;
76860b5f 3462 (*curr)->data->init_p = 1;
0f71a2f6
JM
3463 return (*curr)->data;
3464}
3465
030f20e1
AC
3466struct gdbarch_data *
3467gdbarch_data_register_pre_init (gdbarch_data_pre_init_ftype *pre_init)
3468{
3469 return gdbarch_data_register (pre_init, NULL);
3470}
3471
3472struct gdbarch_data *
3473gdbarch_data_register_post_init (gdbarch_data_post_init_ftype *post_init)
3474{
3475 return gdbarch_data_register (NULL, post_init);
3476}
0f71a2f6 3477
b3cc3077 3478/* Create/delete the gdbarch data vector. */
95160752
AC
3479
3480static void
b3cc3077 3481alloc_gdbarch_data (struct gdbarch *gdbarch)
95160752 3482{
b3cc3077
JB
3483 gdb_assert (gdbarch->data == NULL);
3484 gdbarch->nr_data = gdbarch_data_registry.nr;
aebd7893 3485 gdbarch->data = GDBARCH_OBSTACK_CALLOC (gdbarch, gdbarch->nr_data, void *);
0f71a2f6
JM
3486}
3487
76860b5f 3488/* Initialize the current value of the specified per-architecture
b3cc3077
JB
3489 data-pointer. */
3490
95160752 3491void
030f20e1
AC
3492deprecated_set_gdbarch_data (struct gdbarch *gdbarch,
3493 struct gdbarch_data *data,
3494 void *pointer)
95160752
AC
3495{
3496 gdb_assert (data->index < gdbarch->nr_data);
aebd7893 3497 gdb_assert (gdbarch->data[data->index] == NULL);
030f20e1 3498 gdb_assert (data->pre_init == NULL);
95160752
AC
3499 gdbarch->data[data->index] = pointer;
3500}
3501
0f71a2f6
JM
3502/* Return the current value of the specified per-architecture
3503 data-pointer. */
3504
3505void *
451fbdda 3506gdbarch_data (struct gdbarch *gdbarch, struct gdbarch_data *data)
0f71a2f6 3507{
451fbdda 3508 gdb_assert (data->index < gdbarch->nr_data);
030f20e1 3509 if (gdbarch->data[data->index] == NULL)
76860b5f 3510 {
030f20e1
AC
3511 /* The data-pointer isn't initialized, call init() to get a
3512 value. */
3513 if (data->pre_init != NULL)
3514 /* Mid architecture creation: pass just the obstack, and not
3515 the entire architecture, as that way it isn't possible for
3516 pre-init code to refer to undefined architecture
3517 fields. */
3518 gdbarch->data[data->index] = data->pre_init (gdbarch->obstack);
3519 else if (gdbarch->initialized_p
3520 && data->post_init != NULL)
3521 /* Post architecture creation: pass the entire architecture
3522 (as all fields are valid), but be careful to also detect
3523 recursive references. */
3524 {
3525 gdb_assert (data->init_p);
3526 data->init_p = 0;
3527 gdbarch->data[data->index] = data->post_init (gdbarch);
3528 data->init_p = 1;
3529 }
3530 else
3531 /* The architecture initialization hasn't completed - punt -
3532 hope that the caller knows what they are doing. Once
3533 deprecated_set_gdbarch_data has been initialized, this can be
3534 changed to an internal error. */
3535 return NULL;
76860b5f
AC
3536 gdb_assert (gdbarch->data[data->index] != NULL);
3537 }
451fbdda 3538 return gdbarch->data[data->index];
0f71a2f6
JM
3539}
3540
3541
be5a57e1 3542/* Keep a registry of the architectures known by GDB. */
0f71a2f6 3543
4b9b3959 3544struct gdbarch_registration
0f71a2f6
JM
3545{
3546 enum bfd_architecture bfd_architecture;
3547 gdbarch_init_ftype *init;
4b9b3959 3548 gdbarch_dump_tdep_ftype *dump_tdep;
0f71a2f6 3549 struct gdbarch_list *arches;
4b9b3959 3550 struct gdbarch_registration *next;
0f71a2f6
JM
3551};
3552
be5a57e1 3553static struct gdbarch_registration *gdbarch_registry = NULL;
0f71a2f6 3554
b4a20239
AC
3555static void
3556append_name (const char ***buf, int *nr, const char *name)
3557{
3558 *buf = xrealloc (*buf, sizeof (char**) * (*nr + 1));
3559 (*buf)[*nr] = name;
3560 *nr += 1;
3561}
3562
3563const char **
3564gdbarch_printable_names (void)
3565{
7996bcec
AC
3566 /* Accumulate a list of names based on the registed list of
3567 architectures. */
3568 enum bfd_architecture a;
3569 int nr_arches = 0;
3570 const char **arches = NULL;
3571 struct gdbarch_registration *rego;
3572 for (rego = gdbarch_registry;
3573 rego != NULL;
3574 rego = rego->next)
b4a20239 3575 {
7996bcec
AC
3576 const struct bfd_arch_info *ap;
3577 ap = bfd_lookup_arch (rego->bfd_architecture, 0);
3578 if (ap == NULL)
3579 internal_error (__FILE__, __LINE__,
e2e0b3e5 3580 _("gdbarch_architecture_names: multi-arch unknown"));
7996bcec
AC
3581 do
3582 {
3583 append_name (&arches, &nr_arches, ap->printable_name);
3584 ap = ap->next;
3585 }
3586 while (ap != NULL);
b4a20239 3587 }
7996bcec
AC
3588 append_name (&arches, &nr_arches, NULL);
3589 return arches;
b4a20239
AC
3590}
3591
3592
0f71a2f6 3593void
4b9b3959
AC
3594gdbarch_register (enum bfd_architecture bfd_architecture,
3595 gdbarch_init_ftype *init,
3596 gdbarch_dump_tdep_ftype *dump_tdep)
0f71a2f6 3597{
4b9b3959 3598 struct gdbarch_registration **curr;
0f71a2f6 3599 const struct bfd_arch_info *bfd_arch_info;
ec3d358c 3600 /* Check that BFD recognizes this architecture */
0f71a2f6
JM
3601 bfd_arch_info = bfd_lookup_arch (bfd_architecture, 0);
3602 if (bfd_arch_info == NULL)
3603 {
8e65ff28 3604 internal_error (__FILE__, __LINE__,
85c07804 3605 _("gdbarch: Attempt to register unknown architecture (%d)"),
8e65ff28 3606 bfd_architecture);
0f71a2f6
JM
3607 }
3608 /* Check that we haven't seen this architecture before */
be5a57e1 3609 for (curr = &gdbarch_registry;
0f71a2f6
JM
3610 (*curr) != NULL;
3611 curr = &(*curr)->next)
3612 {
3613 if (bfd_architecture == (*curr)->bfd_architecture)
8e65ff28 3614 internal_error (__FILE__, __LINE__,
85c07804 3615 _("gdbarch: Duplicate registraration of architecture (%s)"),
8e65ff28 3616 bfd_arch_info->printable_name);
0f71a2f6
JM
3617 }
3618 /* log it */
3619 if (gdbarch_debug)
30737ed9 3620 fprintf_unfiltered (gdb_stdlog, "register_gdbarch_init (%s, %s)\n",
0f71a2f6 3621 bfd_arch_info->printable_name,
30737ed9 3622 host_address_to_string (init));
0f71a2f6 3623 /* Append it */
4b9b3959 3624 (*curr) = XMALLOC (struct gdbarch_registration);
0f71a2f6
JM
3625 (*curr)->bfd_architecture = bfd_architecture;
3626 (*curr)->init = init;
4b9b3959 3627 (*curr)->dump_tdep = dump_tdep;
0f71a2f6
JM
3628 (*curr)->arches = NULL;
3629 (*curr)->next = NULL;
4b9b3959
AC
3630}
3631
3632void
3633register_gdbarch_init (enum bfd_architecture bfd_architecture,
3634 gdbarch_init_ftype *init)
3635{
3636 gdbarch_register (bfd_architecture, init, NULL);
0f71a2f6 3637}
0f71a2f6
JM
3638
3639
424163ea 3640/* Look for an architecture using gdbarch_info. */
0f71a2f6
JM
3641
3642struct gdbarch_list *
104c1213
JM
3643gdbarch_list_lookup_by_info (struct gdbarch_list *arches,
3644 const struct gdbarch_info *info)
0f71a2f6
JM
3645{
3646 for (; arches != NULL; arches = arches->next)
3647 {
3648 if (info->bfd_arch_info != arches->gdbarch->bfd_arch_info)
3649 continue;
3650 if (info->byte_order != arches->gdbarch->byte_order)
3651 continue;
4be87837
DJ
3652 if (info->osabi != arches->gdbarch->osabi)
3653 continue;
424163ea
DJ
3654 if (info->target_desc != arches->gdbarch->target_desc)
3655 continue;
0f71a2f6
JM
3656 return arches;
3657 }
3658 return NULL;
3659}
3660
3661
ebdba546
AC
3662/* Find an architecture that matches the specified INFO. Create a new
3663 architecture if needed. Return that new architecture. Assumes
3664 that there is no current architecture. */
0f71a2f6 3665
ebdba546 3666static struct gdbarch *
7a107747 3667find_arch_by_info (struct gdbarch_info info)
0f71a2f6
JM
3668{
3669 struct gdbarch *new_gdbarch;
4b9b3959 3670 struct gdbarch_registration *rego;
0f71a2f6 3671
ebdba546
AC
3672 /* The existing architecture has been swapped out - all this code
3673 works from a clean slate. */
3674 gdb_assert (current_gdbarch == NULL);
3675
b732d07d 3676 /* Fill in missing parts of the INFO struct using a number of
7a107747
DJ
3677 sources: "set ..."; INFOabfd supplied; and the global
3678 defaults. */
3679 gdbarch_info_fill (&info);
4be87837 3680
b732d07d
AC
3681 /* Must have found some sort of architecture. */
3682 gdb_assert (info.bfd_arch_info != NULL);
0f71a2f6
JM
3683
3684 if (gdbarch_debug)
3685 {
0f71a2f6 3686 fprintf_unfiltered (gdb_stdlog,
ebdba546 3687 "find_arch_by_info: info.bfd_arch_info %s\n",
0f71a2f6
JM
3688 (info.bfd_arch_info != NULL
3689 ? info.bfd_arch_info->printable_name
3690 : "(null)"));
3691 fprintf_unfiltered (gdb_stdlog,
ebdba546 3692 "find_arch_by_info: info.byte_order %d (%s)\n",
0f71a2f6 3693 info.byte_order,
d7449b42 3694 (info.byte_order == BFD_ENDIAN_BIG ? "big"
778eb05e 3695 : info.byte_order == BFD_ENDIAN_LITTLE ? "little"
0f71a2f6 3696 : "default"));
4be87837 3697 fprintf_unfiltered (gdb_stdlog,
ebdba546 3698 "find_arch_by_info: info.osabi %d (%s)\n",
4be87837 3699 info.osabi, gdbarch_osabi_name (info.osabi));
0f71a2f6 3700 fprintf_unfiltered (gdb_stdlog,
30737ed9
JB
3701 "find_arch_by_info: info.abfd %s\n",
3702 host_address_to_string (info.abfd));
0f71a2f6 3703 fprintf_unfiltered (gdb_stdlog,
30737ed9
JB
3704 "find_arch_by_info: info.tdep_info %s\n",
3705 host_address_to_string (info.tdep_info));
0f71a2f6
JM
3706 }
3707
ebdba546 3708 /* Find the tdep code that knows about this architecture. */
b732d07d
AC
3709 for (rego = gdbarch_registry;
3710 rego != NULL;
3711 rego = rego->next)
3712 if (rego->bfd_architecture == info.bfd_arch_info->arch)
3713 break;
3714 if (rego == NULL)
3715 {
3716 if (gdbarch_debug)
ebdba546
AC
3717 fprintf_unfiltered (gdb_stdlog, "find_arch_by_info: "
3718 "No matching architecture\n");
b732d07d
AC
3719 return 0;
3720 }
3721
ebdba546 3722 /* Ask the tdep code for an architecture that matches "info". */
0f71a2f6
JM
3723 new_gdbarch = rego->init (info, rego->arches);
3724
ebdba546
AC
3725 /* Did the tdep code like it? No. Reject the change and revert to
3726 the old architecture. */
0f71a2f6
JM
3727 if (new_gdbarch == NULL)
3728 {
3729 if (gdbarch_debug)
ebdba546
AC
3730 fprintf_unfiltered (gdb_stdlog, "find_arch_by_info: "
3731 "Target rejected architecture\n");
3732 return NULL;
0f71a2f6
JM
3733 }
3734
ebdba546
AC
3735 /* Is this a pre-existing architecture (as determined by already
3736 being initialized)? Move it to the front of the architecture
3737 list (keeping the list sorted Most Recently Used). */
3738 if (new_gdbarch->initialized_p)
0f71a2f6 3739 {
ebdba546
AC
3740 struct gdbarch_list **list;
3741 struct gdbarch_list *this;
0f71a2f6 3742 if (gdbarch_debug)
ebdba546 3743 fprintf_unfiltered (gdb_stdlog, "find_arch_by_info: "
30737ed9
JB
3744 "Previous architecture %s (%s) selected\n",
3745 host_address_to_string (new_gdbarch),
0f71a2f6 3746 new_gdbarch->bfd_arch_info->printable_name);
ebdba546
AC
3747 /* Find the existing arch in the list. */
3748 for (list = &rego->arches;
3749 (*list) != NULL && (*list)->gdbarch != new_gdbarch;
3750 list = &(*list)->next);
3751 /* It had better be in the list of architectures. */
3752 gdb_assert ((*list) != NULL && (*list)->gdbarch == new_gdbarch);
3753 /* Unlink THIS. */
3754 this = (*list);
3755 (*list) = this->next;
3756 /* Insert THIS at the front. */
3757 this->next = rego->arches;
3758 rego->arches = this;
3759 /* Return it. */
3760 return new_gdbarch;
0f71a2f6
JM
3761 }
3762
ebdba546
AC
3763 /* It's a new architecture. */
3764 if (gdbarch_debug)
3765 fprintf_unfiltered (gdb_stdlog, "find_arch_by_info: "
30737ed9
JB
3766 "New architecture %s (%s) selected\n",
3767 host_address_to_string (new_gdbarch),
ebdba546
AC
3768 new_gdbarch->bfd_arch_info->printable_name);
3769
3770 /* Insert the new architecture into the front of the architecture
3771 list (keep the list sorted Most Recently Used). */
0f79675b
AC
3772 {
3773 struct gdbarch_list *this = XMALLOC (struct gdbarch_list);
3774 this->next = rego->arches;
3775 this->gdbarch = new_gdbarch;
3776 rego->arches = this;
3777 }
0f71a2f6 3778
4b9b3959
AC
3779 /* Check that the newly installed architecture is valid. Plug in
3780 any post init values. */
3781 new_gdbarch->dump_tdep = rego->dump_tdep;
0f71a2f6 3782 verify_gdbarch (new_gdbarch);
ebdba546 3783 new_gdbarch->initialized_p = 1;
0f71a2f6 3784
4b9b3959 3785 if (gdbarch_debug)
ebdba546 3786 gdbarch_dump (new_gdbarch, gdb_stdlog);
4b9b3959 3787
ebdba546 3788 return new_gdbarch;
0f71a2f6 3789}
c906108c 3790
ebdba546
AC
3791struct gdbarch *
3792gdbarch_find_by_info (struct gdbarch_info info)
3793{
e487cc15
UW
3794 struct gdbarch *new_gdbarch;
3795
ebdba546
AC
3796 /* Save the previously selected architecture, setting the global to
3797 NULL. This stops things like gdbarch->init() trying to use the
3798 previous architecture's configuration. The previous architecture
3799 may not even be of the same architecture family. The most recent
3800 architecture of the same family is found at the head of the
3801 rego->arches list. */
e487cc15
UW
3802 struct gdbarch *old_gdbarch = current_gdbarch;
3803 current_gdbarch = NULL;
ebdba546
AC
3804
3805 /* Find the specified architecture. */
e487cc15 3806 new_gdbarch = find_arch_by_info (info);
ebdba546
AC
3807
3808 /* Restore the existing architecture. */
3809 gdb_assert (current_gdbarch == NULL);
e487cc15 3810 current_gdbarch = old_gdbarch;
ebdba546
AC
3811
3812 return new_gdbarch;
3813}
3814
e487cc15 3815/* Make the specified architecture current. */
ebdba546
AC
3816
3817void
3818deprecated_current_gdbarch_select_hack (struct gdbarch *new_gdbarch)
3819{
3820 gdb_assert (new_gdbarch != NULL);
3821 gdb_assert (current_gdbarch != NULL);
3822 gdb_assert (new_gdbarch->initialized_p);
e487cc15 3823 current_gdbarch = new_gdbarch;
1cf3db46 3824 target_gdbarch = new_gdbarch;
383f836e 3825 observer_notify_architecture_changed (new_gdbarch);
a3ecef73 3826 registers_changed ();
ebdba546 3827}
c906108c 3828
104c1213 3829extern void _initialize_gdbarch (void);
b4a20239 3830
c906108c 3831void
7c7651b2 3832_initialize_gdbarch (void)
c906108c 3833{
5d161b24
DB
3834 struct cmd_list_element *c;
3835
85c07804
AC
3836 add_setshow_zinteger_cmd ("arch", class_maintenance, &gdbarch_debug, _("\
3837Set architecture debugging."), _("\
3838Show architecture debugging."), _("\
3839When non-zero, architecture debugging is enabled."),
3840 NULL,
920d2a44 3841 show_gdbarch_debug,
85c07804 3842 &setdebuglist, &showdebuglist);
c906108c 3843}
This page took 1.077359 seconds and 4 git commands to generate.