Introduce obstack_new, poison other "typed" obstack functions
[external/binutils.git] / gdb / gdbarch.c
1 /* *INDENT-OFF* */ /* THIS FILE IS GENERATED -*- buffer-read-only: t -*- */
2 /* vi:set ro: */
3
4 /* Dynamic architecture support for GDB, the GNU debugger.
5
6    Copyright (C) 1998-2018 Free Software Foundation, Inc.
7
8    This file is part of GDB.
9
10    This program is free software; you can redistribute it and/or modify
11    it under the terms of the GNU General Public License as published by
12    the Free Software Foundation; either version 3 of the License, or
13    (at your option) any later version.
14
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.
19
20    You should have received a copy of the GNU General Public License
21    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
22
23 /* This file was created with the aid of ``gdbarch.sh''.
24
25    The Bourne shell script ``gdbarch.sh'' creates the files
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
31    changes into that script. Conversely, when making sweeping changes
32    to this file, modifying gdbarch.sh and using its output may prove
33    easier.  */
34
35
36 #include "defs.h"
37 #include "arch-utils.h"
38
39 #include "gdbcmd.h"
40 #include "inferior.h" 
41 #include "symcat.h"
42
43 #include "floatformat.h"
44 #include "reggroups.h"
45 #include "osabi.h"
46 #include "gdb_obstack.h"
47 #include "observable.h"
48 #include "regcache.h"
49 #include "objfiles.h"
50 #include "auxv.h"
51
52 /* Static function declarations */
53
54 static void alloc_gdbarch_data (struct gdbarch *);
55
56 /* Non-zero if we want to trace architecture code.  */
57
58 #ifndef GDBARCH_DEBUG
59 #define GDBARCH_DEBUG 0
60 #endif
61 unsigned int gdbarch_debug = GDBARCH_DEBUG;
62 static void
63 show_gdbarch_debug (struct ui_file *file, int from_tty,
64                     struct cmd_list_element *c, const char *value)
65 {
66   fprintf_filtered (file, _("Architecture debugging is %s.\n"), value);
67 }
68
69 static const char *
70 pformat (const struct floatformat **format)
71 {
72   if (format == NULL)
73     return "(null)";
74   else
75     /* Just print out one of them - this is only for diagnostics.  */
76     return format[0]->name;
77 }
78
79 static const char *
80 pstring (const char *string)
81 {
82   if (string == NULL)
83     return "(null)";
84   return string;
85 }
86
87 static const char *
88 pstring_ptr (char **string)
89 {
90   if (string == NULL || *string == NULL)
91     return "(null)";
92   return *string;
93 }
94
95 /* Helper function to print a list of strings, represented as "const
96    char *const *".  The list is printed comma-separated.  */
97
98 static const char *
99 pstring_list (const char *const *list)
100 {
101   static char ret[100];
102   const char *const *p;
103   size_t offset = 0;
104
105   if (list == NULL)
106     return "(null)";
107
108   ret[0] = '\0';
109   for (p = list; *p != NULL && offset < sizeof (ret); ++p)
110     {
111       size_t s = xsnprintf (ret + offset, sizeof (ret) - offset, "%s, ", *p);
112       offset += 2 + s;
113     }
114
115   if (offset > 0)
116     {
117       gdb_assert (offset - 2 < sizeof (ret));
118       ret[offset - 2] = '\0';
119     }
120
121   return ret;
122 }
123
124
125 /* Maintain the struct gdbarch object.  */
126
127 struct gdbarch
128 {
129   /* Has this architecture been fully initialized?  */
130   int initialized_p;
131
132   /* An obstack bound to the lifetime of the architecture.  */
133   struct obstack *obstack;
134
135   /* basic architectural information.  */
136   const struct bfd_arch_info * bfd_arch_info;
137   enum bfd_endian byte_order;
138   enum bfd_endian byte_order_for_code;
139   enum gdb_osabi osabi;
140   const struct target_desc * target_desc;
141
142   /* target specific vector.  */
143   struct gdbarch_tdep *tdep;
144   gdbarch_dump_tdep_ftype *dump_tdep;
145
146   /* per-architecture data-pointers.  */
147   unsigned nr_data;
148   void **data;
149
150   /* Multi-arch values.
151
152      When extending this structure you must:
153
154      Add the field below.
155
156      Declare set/get functions and define the corresponding
157      macro in gdbarch.h.
158
159      gdbarch_alloc(): If zero/NULL is not a suitable default,
160      initialize the new field.
161
162      verify_gdbarch(): Confirm that the target updated the field
163      correctly.
164
165      gdbarch_dump(): Add a fprintf_unfiltered call so that the new
166      field is dumped out
167
168      get_gdbarch(): Implement the set/get functions (probably using
169      the macro's as shortcuts).
170
171      */
172
173   int bits_big_endian;
174   int short_bit;
175   int int_bit;
176   int long_bit;
177   int long_long_bit;
178   int half_bit;
179   const struct floatformat ** half_format;
180   int float_bit;
181   const struct floatformat ** float_format;
182   int double_bit;
183   const struct floatformat ** double_format;
184   int long_double_bit;
185   const struct floatformat ** long_double_format;
186   int wchar_bit;
187   int wchar_signed;
188   gdbarch_floatformat_for_type_ftype *floatformat_for_type;
189   int ptr_bit;
190   int addr_bit;
191   int dwarf2_addr_size;
192   int char_signed;
193   gdbarch_read_pc_ftype *read_pc;
194   gdbarch_write_pc_ftype *write_pc;
195   gdbarch_virtual_frame_pointer_ftype *virtual_frame_pointer;
196   gdbarch_pseudo_register_read_ftype *pseudo_register_read;
197   gdbarch_pseudo_register_read_value_ftype *pseudo_register_read_value;
198   gdbarch_pseudo_register_write_ftype *pseudo_register_write;
199   int num_regs;
200   int num_pseudo_regs;
201   gdbarch_ax_pseudo_register_collect_ftype *ax_pseudo_register_collect;
202   gdbarch_ax_pseudo_register_push_stack_ftype *ax_pseudo_register_push_stack;
203   gdbarch_handle_segmentation_fault_ftype *handle_segmentation_fault;
204   int sp_regnum;
205   int pc_regnum;
206   int ps_regnum;
207   int fp0_regnum;
208   gdbarch_stab_reg_to_regnum_ftype *stab_reg_to_regnum;
209   gdbarch_ecoff_reg_to_regnum_ftype *ecoff_reg_to_regnum;
210   gdbarch_sdb_reg_to_regnum_ftype *sdb_reg_to_regnum;
211   gdbarch_dwarf2_reg_to_regnum_ftype *dwarf2_reg_to_regnum;
212   gdbarch_register_name_ftype *register_name;
213   gdbarch_register_type_ftype *register_type;
214   gdbarch_dummy_id_ftype *dummy_id;
215   int deprecated_fp_regnum;
216   gdbarch_push_dummy_call_ftype *push_dummy_call;
217   int call_dummy_location;
218   gdbarch_push_dummy_code_ftype *push_dummy_code;
219   gdbarch_code_of_frame_writable_ftype *code_of_frame_writable;
220   gdbarch_print_registers_info_ftype *print_registers_info;
221   gdbarch_print_float_info_ftype *print_float_info;
222   gdbarch_print_vector_info_ftype *print_vector_info;
223   gdbarch_register_sim_regno_ftype *register_sim_regno;
224   gdbarch_cannot_fetch_register_ftype *cannot_fetch_register;
225   gdbarch_cannot_store_register_ftype *cannot_store_register;
226   gdbarch_get_longjmp_target_ftype *get_longjmp_target;
227   int believe_pcc_promotion;
228   gdbarch_convert_register_p_ftype *convert_register_p;
229   gdbarch_register_to_value_ftype *register_to_value;
230   gdbarch_value_to_register_ftype *value_to_register;
231   gdbarch_value_from_register_ftype *value_from_register;
232   gdbarch_pointer_to_address_ftype *pointer_to_address;
233   gdbarch_address_to_pointer_ftype *address_to_pointer;
234   gdbarch_integer_to_address_ftype *integer_to_address;
235   gdbarch_return_value_ftype *return_value;
236   gdbarch_return_in_first_hidden_param_p_ftype *return_in_first_hidden_param_p;
237   gdbarch_skip_prologue_ftype *skip_prologue;
238   gdbarch_skip_main_prologue_ftype *skip_main_prologue;
239   gdbarch_skip_entrypoint_ftype *skip_entrypoint;
240   gdbarch_inner_than_ftype *inner_than;
241   gdbarch_breakpoint_from_pc_ftype *breakpoint_from_pc;
242   gdbarch_breakpoint_kind_from_pc_ftype *breakpoint_kind_from_pc;
243   gdbarch_sw_breakpoint_from_kind_ftype *sw_breakpoint_from_kind;
244   gdbarch_breakpoint_kind_from_current_state_ftype *breakpoint_kind_from_current_state;
245   gdbarch_adjust_breakpoint_address_ftype *adjust_breakpoint_address;
246   gdbarch_memory_insert_breakpoint_ftype *memory_insert_breakpoint;
247   gdbarch_memory_remove_breakpoint_ftype *memory_remove_breakpoint;
248   CORE_ADDR decr_pc_after_break;
249   CORE_ADDR deprecated_function_start_offset;
250   gdbarch_remote_register_number_ftype *remote_register_number;
251   gdbarch_fetch_tls_load_module_address_ftype *fetch_tls_load_module_address;
252   CORE_ADDR frame_args_skip;
253   gdbarch_unwind_pc_ftype *unwind_pc;
254   gdbarch_unwind_sp_ftype *unwind_sp;
255   gdbarch_frame_num_args_ftype *frame_num_args;
256   gdbarch_frame_align_ftype *frame_align;
257   gdbarch_stabs_argument_has_addr_ftype *stabs_argument_has_addr;
258   int frame_red_zone_size;
259   gdbarch_convert_from_func_ptr_addr_ftype *convert_from_func_ptr_addr;
260   gdbarch_addr_bits_remove_ftype *addr_bits_remove;
261   int significant_addr_bit;
262   gdbarch_software_single_step_ftype *software_single_step;
263   gdbarch_single_step_through_delay_ftype *single_step_through_delay;
264   gdbarch_print_insn_ftype *print_insn;
265   gdbarch_skip_trampoline_code_ftype *skip_trampoline_code;
266   gdbarch_skip_solib_resolver_ftype *skip_solib_resolver;
267   gdbarch_in_solib_return_trampoline_ftype *in_solib_return_trampoline;
268   gdbarch_in_indirect_branch_thunk_ftype *in_indirect_branch_thunk;
269   gdbarch_stack_frame_destroyed_p_ftype *stack_frame_destroyed_p;
270   gdbarch_elf_make_msymbol_special_ftype *elf_make_msymbol_special;
271   gdbarch_coff_make_msymbol_special_ftype *coff_make_msymbol_special;
272   gdbarch_make_symbol_special_ftype *make_symbol_special;
273   gdbarch_adjust_dwarf2_addr_ftype *adjust_dwarf2_addr;
274   gdbarch_adjust_dwarf2_line_ftype *adjust_dwarf2_line;
275   int cannot_step_breakpoint;
276   int have_nonsteppable_watchpoint;
277   gdbarch_address_class_type_flags_ftype *address_class_type_flags;
278   gdbarch_address_class_type_flags_to_name_ftype *address_class_type_flags_to_name;
279   gdbarch_execute_dwarf_cfa_vendor_op_ftype *execute_dwarf_cfa_vendor_op;
280   gdbarch_address_class_name_to_type_flags_ftype *address_class_name_to_type_flags;
281   gdbarch_register_reggroup_p_ftype *register_reggroup_p;
282   gdbarch_fetch_pointer_argument_ftype *fetch_pointer_argument;
283   gdbarch_iterate_over_regset_sections_ftype *iterate_over_regset_sections;
284   gdbarch_make_corefile_notes_ftype *make_corefile_notes;
285   gdbarch_find_memory_regions_ftype *find_memory_regions;
286   gdbarch_core_xfer_shared_libraries_ftype *core_xfer_shared_libraries;
287   gdbarch_core_xfer_shared_libraries_aix_ftype *core_xfer_shared_libraries_aix;
288   gdbarch_core_pid_to_str_ftype *core_pid_to_str;
289   gdbarch_core_thread_name_ftype *core_thread_name;
290   gdbarch_core_xfer_siginfo_ftype *core_xfer_siginfo;
291   const char * gcore_bfd_target;
292   int vtable_function_descriptors;
293   int vbit_in_delta;
294   gdbarch_skip_permanent_breakpoint_ftype *skip_permanent_breakpoint;
295   ULONGEST max_insn_length;
296   gdbarch_displaced_step_copy_insn_ftype *displaced_step_copy_insn;
297   gdbarch_displaced_step_hw_singlestep_ftype *displaced_step_hw_singlestep;
298   gdbarch_displaced_step_fixup_ftype *displaced_step_fixup;
299   gdbarch_displaced_step_location_ftype *displaced_step_location;
300   gdbarch_relocate_instruction_ftype *relocate_instruction;
301   gdbarch_overlay_update_ftype *overlay_update;
302   gdbarch_core_read_description_ftype *core_read_description;
303   gdbarch_static_transform_name_ftype *static_transform_name;
304   int sofun_address_maybe_missing;
305   gdbarch_process_record_ftype *process_record;
306   gdbarch_process_record_signal_ftype *process_record_signal;
307   gdbarch_gdb_signal_from_target_ftype *gdb_signal_from_target;
308   gdbarch_gdb_signal_to_target_ftype *gdb_signal_to_target;
309   gdbarch_get_siginfo_type_ftype *get_siginfo_type;
310   gdbarch_record_special_symbol_ftype *record_special_symbol;
311   gdbarch_get_syscall_number_ftype *get_syscall_number;
312   const char * xml_syscall_file;
313   struct syscalls_info * syscalls_info;
314   const char *const * stap_integer_prefixes;
315   const char *const * stap_integer_suffixes;
316   const char *const * stap_register_prefixes;
317   const char *const * stap_register_suffixes;
318   const char *const * stap_register_indirection_prefixes;
319   const char *const * stap_register_indirection_suffixes;
320   const char * stap_gdb_register_prefix;
321   const char * stap_gdb_register_suffix;
322   gdbarch_stap_is_single_operand_ftype *stap_is_single_operand;
323   gdbarch_stap_parse_special_token_ftype *stap_parse_special_token;
324   gdbarch_dtrace_parse_probe_argument_ftype *dtrace_parse_probe_argument;
325   gdbarch_dtrace_probe_is_enabled_ftype *dtrace_probe_is_enabled;
326   gdbarch_dtrace_enable_probe_ftype *dtrace_enable_probe;
327   gdbarch_dtrace_disable_probe_ftype *dtrace_disable_probe;
328   int has_global_solist;
329   int has_global_breakpoints;
330   gdbarch_has_shared_address_space_ftype *has_shared_address_space;
331   gdbarch_fast_tracepoint_valid_at_ftype *fast_tracepoint_valid_at;
332   gdbarch_guess_tracepoint_registers_ftype *guess_tracepoint_registers;
333   gdbarch_auto_charset_ftype *auto_charset;
334   gdbarch_auto_wide_charset_ftype *auto_wide_charset;
335   const char * solib_symbols_extension;
336   int has_dos_based_file_system;
337   gdbarch_gen_return_address_ftype *gen_return_address;
338   gdbarch_info_proc_ftype *info_proc;
339   gdbarch_core_info_proc_ftype *core_info_proc;
340   gdbarch_iterate_over_objfiles_in_search_order_ftype *iterate_over_objfiles_in_search_order;
341   struct ravenscar_arch_ops * ravenscar_ops;
342   gdbarch_insn_is_call_ftype *insn_is_call;
343   gdbarch_insn_is_ret_ftype *insn_is_ret;
344   gdbarch_insn_is_jump_ftype *insn_is_jump;
345   gdbarch_auxv_parse_ftype *auxv_parse;
346   gdbarch_print_auxv_entry_ftype *print_auxv_entry;
347   gdbarch_vsyscall_range_ftype *vsyscall_range;
348   gdbarch_infcall_mmap_ftype *infcall_mmap;
349   gdbarch_infcall_munmap_ftype *infcall_munmap;
350   gdbarch_gcc_target_options_ftype *gcc_target_options;
351   gdbarch_gnu_triplet_regexp_ftype *gnu_triplet_regexp;
352   gdbarch_addressable_memory_unit_size_ftype *addressable_memory_unit_size;
353   char ** disassembler_options;
354   const disasm_options_t * valid_disassembler_options;
355   gdbarch_type_align_ftype *type_align;
356 };
357
358 /* Create a new ``struct gdbarch'' based on information provided by
359    ``struct gdbarch_info''.  */
360
361 struct gdbarch *
362 gdbarch_alloc (const struct gdbarch_info *info,
363                struct gdbarch_tdep *tdep)
364 {
365   struct gdbarch *gdbarch;
366
367   /* Create an obstack for allocating all the per-architecture memory,
368      then use that to allocate the architecture vector.  */
369   struct obstack *obstack = XNEW (struct obstack);
370   obstack_init (obstack);
371   gdbarch = XOBNEW (obstack, struct gdbarch);
372   memset (gdbarch, 0, sizeof (*gdbarch));
373   gdbarch->obstack = obstack;
374
375   alloc_gdbarch_data (gdbarch);
376
377   gdbarch->tdep = tdep;
378
379   gdbarch->bfd_arch_info = info->bfd_arch_info;
380   gdbarch->byte_order = info->byte_order;
381   gdbarch->byte_order_for_code = info->byte_order_for_code;
382   gdbarch->osabi = info->osabi;
383   gdbarch->target_desc = info->target_desc;
384
385   /* Force the explicit initialization of these.  */
386   gdbarch->bits_big_endian = (gdbarch->byte_order == BFD_ENDIAN_BIG);
387   gdbarch->short_bit = 2*TARGET_CHAR_BIT;
388   gdbarch->int_bit = 4*TARGET_CHAR_BIT;
389   gdbarch->long_bit = 4*TARGET_CHAR_BIT;
390   gdbarch->long_long_bit = 2*gdbarch->long_bit;
391   gdbarch->half_bit = 2*TARGET_CHAR_BIT;
392   gdbarch->float_bit = 4*TARGET_CHAR_BIT;
393   gdbarch->double_bit = 8*TARGET_CHAR_BIT;
394   gdbarch->long_double_bit = 8*TARGET_CHAR_BIT;
395   gdbarch->wchar_bit = 4*TARGET_CHAR_BIT;
396   gdbarch->wchar_signed = -1;
397   gdbarch->floatformat_for_type = default_floatformat_for_type;
398   gdbarch->ptr_bit = gdbarch->int_bit;
399   gdbarch->char_signed = -1;
400   gdbarch->virtual_frame_pointer = legacy_virtual_frame_pointer;
401   gdbarch->num_regs = -1;
402   gdbarch->sp_regnum = -1;
403   gdbarch->pc_regnum = -1;
404   gdbarch->ps_regnum = -1;
405   gdbarch->fp0_regnum = -1;
406   gdbarch->stab_reg_to_regnum = no_op_reg_to_regnum;
407   gdbarch->ecoff_reg_to_regnum = no_op_reg_to_regnum;
408   gdbarch->sdb_reg_to_regnum = no_op_reg_to_regnum;
409   gdbarch->dwarf2_reg_to_regnum = no_op_reg_to_regnum;
410   gdbarch->deprecated_fp_regnum = -1;
411   gdbarch->call_dummy_location = AT_ENTRY_POINT;
412   gdbarch->code_of_frame_writable = default_code_of_frame_writable;
413   gdbarch->print_registers_info = default_print_registers_info;
414   gdbarch->print_float_info = default_print_float_info;
415   gdbarch->register_sim_regno = legacy_register_sim_regno;
416   gdbarch->cannot_fetch_register = cannot_register_not;
417   gdbarch->cannot_store_register = cannot_register_not;
418   gdbarch->convert_register_p = generic_convert_register_p;
419   gdbarch->value_from_register = default_value_from_register;
420   gdbarch->pointer_to_address = unsigned_pointer_to_address;
421   gdbarch->address_to_pointer = unsigned_address_to_pointer;
422   gdbarch->return_in_first_hidden_param_p = default_return_in_first_hidden_param_p;
423   gdbarch->breakpoint_from_pc = default_breakpoint_from_pc;
424   gdbarch->sw_breakpoint_from_kind = NULL;
425   gdbarch->breakpoint_kind_from_current_state = default_breakpoint_kind_from_current_state;
426   gdbarch->memory_insert_breakpoint = default_memory_insert_breakpoint;
427   gdbarch->memory_remove_breakpoint = default_memory_remove_breakpoint;
428   gdbarch->remote_register_number = default_remote_register_number;
429   gdbarch->stabs_argument_has_addr = default_stabs_argument_has_addr;
430   gdbarch->convert_from_func_ptr_addr = convert_from_func_ptr_addr_identity;
431   gdbarch->addr_bits_remove = core_addr_identity;
432   gdbarch->print_insn = default_print_insn;
433   gdbarch->skip_trampoline_code = generic_skip_trampoline_code;
434   gdbarch->skip_solib_resolver = generic_skip_solib_resolver;
435   gdbarch->in_solib_return_trampoline = generic_in_solib_return_trampoline;
436   gdbarch->in_indirect_branch_thunk = default_in_indirect_branch_thunk;
437   gdbarch->stack_frame_destroyed_p = generic_stack_frame_destroyed_p;
438   gdbarch->coff_make_msymbol_special = default_coff_make_msymbol_special;
439   gdbarch->make_symbol_special = default_make_symbol_special;
440   gdbarch->adjust_dwarf2_addr = default_adjust_dwarf2_addr;
441   gdbarch->adjust_dwarf2_line = default_adjust_dwarf2_line;
442   gdbarch->execute_dwarf_cfa_vendor_op = default_execute_dwarf_cfa_vendor_op;
443   gdbarch->register_reggroup_p = default_register_reggroup_p;
444   gdbarch->skip_permanent_breakpoint = default_skip_permanent_breakpoint;
445   gdbarch->displaced_step_hw_singlestep = default_displaced_step_hw_singlestep;
446   gdbarch->displaced_step_fixup = NULL;
447   gdbarch->displaced_step_location = NULL;
448   gdbarch->relocate_instruction = NULL;
449   gdbarch->has_shared_address_space = default_has_shared_address_space;
450   gdbarch->fast_tracepoint_valid_at = default_fast_tracepoint_valid_at;
451   gdbarch->guess_tracepoint_registers = default_guess_tracepoint_registers;
452   gdbarch->auto_charset = default_auto_charset;
453   gdbarch->auto_wide_charset = default_auto_wide_charset;
454   gdbarch->gen_return_address = default_gen_return_address;
455   gdbarch->iterate_over_objfiles_in_search_order = default_iterate_over_objfiles_in_search_order;
456   gdbarch->ravenscar_ops = NULL;
457   gdbarch->insn_is_call = default_insn_is_call;
458   gdbarch->insn_is_ret = default_insn_is_ret;
459   gdbarch->insn_is_jump = default_insn_is_jump;
460   gdbarch->print_auxv_entry = default_print_auxv_entry;
461   gdbarch->vsyscall_range = default_vsyscall_range;
462   gdbarch->infcall_mmap = default_infcall_mmap;
463   gdbarch->infcall_munmap = default_infcall_munmap;
464   gdbarch->gcc_target_options = default_gcc_target_options;
465   gdbarch->gnu_triplet_regexp = default_gnu_triplet_regexp;
466   gdbarch->addressable_memory_unit_size = default_addressable_memory_unit_size;
467   gdbarch->type_align = default_type_align;
468   /* gdbarch_alloc() */
469
470   return gdbarch;
471 }
472
473
474
475 obstack *gdbarch_obstack (gdbarch *arch)
476 {
477   return arch->obstack;
478 }
479
480 /* See gdbarch.h.  */
481
482 char *
483 gdbarch_obstack_strdup (struct gdbarch *arch, const char *string)
484 {
485   return obstack_strdup (arch->obstack, string);
486 }
487
488
489 /* Free a gdbarch struct.  This should never happen in normal
490    operation --- once you've created a gdbarch, you keep it around.
491    However, if an architecture's init function encounters an error
492    building the structure, it may need to clean up a partially
493    constructed gdbarch.  */
494
495 void
496 gdbarch_free (struct gdbarch *arch)
497 {
498   struct obstack *obstack;
499
500   gdb_assert (arch != NULL);
501   gdb_assert (!arch->initialized_p);
502   obstack = arch->obstack;
503   obstack_free (obstack, 0); /* Includes the ARCH.  */
504   xfree (obstack);
505 }
506
507
508 /* Ensure that all values in a GDBARCH are reasonable.  */
509
510 static void
511 verify_gdbarch (struct gdbarch *gdbarch)
512 {
513   string_file log;
514
515   /* fundamental */
516   if (gdbarch->byte_order == BFD_ENDIAN_UNKNOWN)
517     log.puts ("\n\tbyte-order");
518   if (gdbarch->bfd_arch_info == NULL)
519     log.puts ("\n\tbfd_arch_info");
520   /* Check those that need to be defined for the given multi-arch level.  */
521   /* Skip verify of bits_big_endian, invalid_p == 0 */
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 half_bit, invalid_p == 0 */
527   if (gdbarch->half_format == 0)
528     gdbarch->half_format = floatformats_ieee_half;
529   /* Skip verify of float_bit, invalid_p == 0 */
530   if (gdbarch->float_format == 0)
531     gdbarch->float_format = floatformats_ieee_single;
532   /* Skip verify of double_bit, invalid_p == 0 */
533   if (gdbarch->double_format == 0)
534     gdbarch->double_format = floatformats_ieee_double;
535   /* Skip verify of long_double_bit, invalid_p == 0 */
536   if (gdbarch->long_double_format == 0)
537     gdbarch->long_double_format = floatformats_ieee_double;
538   /* Skip verify of wchar_bit, invalid_p == 0 */
539   if (gdbarch->wchar_signed == -1)
540     gdbarch->wchar_signed = 1;
541   /* Skip verify of floatformat_for_type, invalid_p == 0 */
542   /* Skip verify of ptr_bit, invalid_p == 0 */
543   if (gdbarch->addr_bit == 0)
544     gdbarch->addr_bit = gdbarch_ptr_bit (gdbarch);
545   if (gdbarch->dwarf2_addr_size == 0)
546     gdbarch->dwarf2_addr_size = gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT;
547   if (gdbarch->char_signed == -1)
548     gdbarch->char_signed = 1;
549   /* Skip verify of read_pc, has predicate.  */
550   /* Skip verify of write_pc, has predicate.  */
551   /* Skip verify of virtual_frame_pointer, invalid_p == 0 */
552   /* Skip verify of pseudo_register_read, has predicate.  */
553   /* Skip verify of pseudo_register_read_value, has predicate.  */
554   /* Skip verify of pseudo_register_write, has predicate.  */
555   if (gdbarch->num_regs == -1)
556     log.puts ("\n\tnum_regs");
557   /* Skip verify of num_pseudo_regs, invalid_p == 0 */
558   /* Skip verify of ax_pseudo_register_collect, has predicate.  */
559   /* Skip verify of ax_pseudo_register_push_stack, has predicate.  */
560   /* Skip verify of handle_segmentation_fault, has predicate.  */
561   /* Skip verify of sp_regnum, invalid_p == 0 */
562   /* Skip verify of pc_regnum, invalid_p == 0 */
563   /* Skip verify of ps_regnum, invalid_p == 0 */
564   /* Skip verify of fp0_regnum, invalid_p == 0 */
565   /* Skip verify of stab_reg_to_regnum, invalid_p == 0 */
566   /* Skip verify of ecoff_reg_to_regnum, invalid_p == 0 */
567   /* Skip verify of sdb_reg_to_regnum, invalid_p == 0 */
568   /* Skip verify of dwarf2_reg_to_regnum, invalid_p == 0 */
569   if (gdbarch->register_name == 0)
570     log.puts ("\n\tregister_name");
571   /* Skip verify of register_type, has predicate.  */
572   /* Skip verify of dummy_id, has predicate.  */
573   /* Skip verify of deprecated_fp_regnum, invalid_p == 0 */
574   /* Skip verify of push_dummy_call, has predicate.  */
575   /* Skip verify of call_dummy_location, invalid_p == 0 */
576   /* Skip verify of push_dummy_code, has predicate.  */
577   /* Skip verify of code_of_frame_writable, invalid_p == 0 */
578   /* Skip verify of print_registers_info, invalid_p == 0 */
579   /* Skip verify of print_float_info, invalid_p == 0 */
580   /* Skip verify of print_vector_info, has predicate.  */
581   /* Skip verify of register_sim_regno, invalid_p == 0 */
582   /* Skip verify of cannot_fetch_register, invalid_p == 0 */
583   /* Skip verify of cannot_store_register, invalid_p == 0 */
584   /* Skip verify of get_longjmp_target, has predicate.  */
585   /* Skip verify of convert_register_p, invalid_p == 0 */
586   /* Skip verify of value_from_register, invalid_p == 0 */
587   /* Skip verify of pointer_to_address, invalid_p == 0 */
588   /* Skip verify of address_to_pointer, invalid_p == 0 */
589   /* Skip verify of integer_to_address, has predicate.  */
590   /* Skip verify of return_value, has predicate.  */
591   /* Skip verify of return_in_first_hidden_param_p, invalid_p == 0 */
592   if (gdbarch->skip_prologue == 0)
593     log.puts ("\n\tskip_prologue");
594   /* Skip verify of skip_main_prologue, has predicate.  */
595   /* Skip verify of skip_entrypoint, has predicate.  */
596   if (gdbarch->inner_than == 0)
597     log.puts ("\n\tinner_than");
598   /* Skip verify of breakpoint_from_pc, invalid_p == 0 */
599   if (gdbarch->breakpoint_kind_from_pc == 0)
600     log.puts ("\n\tbreakpoint_kind_from_pc");
601   /* Skip verify of sw_breakpoint_from_kind, invalid_p == 0 */
602   /* Skip verify of breakpoint_kind_from_current_state, invalid_p == 0 */
603   /* Skip verify of adjust_breakpoint_address, has predicate.  */
604   /* Skip verify of memory_insert_breakpoint, invalid_p == 0 */
605   /* Skip verify of memory_remove_breakpoint, invalid_p == 0 */
606   /* Skip verify of decr_pc_after_break, invalid_p == 0 */
607   /* Skip verify of deprecated_function_start_offset, invalid_p == 0 */
608   /* Skip verify of remote_register_number, invalid_p == 0 */
609   /* Skip verify of fetch_tls_load_module_address, has predicate.  */
610   /* Skip verify of frame_args_skip, invalid_p == 0 */
611   /* Skip verify of unwind_pc, has predicate.  */
612   /* Skip verify of unwind_sp, has predicate.  */
613   /* Skip verify of frame_num_args, has predicate.  */
614   /* Skip verify of frame_align, has predicate.  */
615   /* Skip verify of stabs_argument_has_addr, invalid_p == 0 */
616   /* Skip verify of convert_from_func_ptr_addr, invalid_p == 0 */
617   /* Skip verify of addr_bits_remove, invalid_p == 0 */
618   if (gdbarch->significant_addr_bit == 0)
619     gdbarch->significant_addr_bit = gdbarch_addr_bit (gdbarch);
620   /* Skip verify of software_single_step, has predicate.  */
621   /* Skip verify of single_step_through_delay, has predicate.  */
622   /* Skip verify of print_insn, invalid_p == 0 */
623   /* Skip verify of skip_trampoline_code, invalid_p == 0 */
624   /* Skip verify of skip_solib_resolver, invalid_p == 0 */
625   /* Skip verify of in_solib_return_trampoline, invalid_p == 0 */
626   /* Skip verify of in_indirect_branch_thunk, invalid_p == 0 */
627   /* Skip verify of stack_frame_destroyed_p, invalid_p == 0 */
628   /* Skip verify of elf_make_msymbol_special, has predicate.  */
629   /* Skip verify of coff_make_msymbol_special, invalid_p == 0 */
630   /* Skip verify of make_symbol_special, invalid_p == 0 */
631   /* Skip verify of adjust_dwarf2_addr, invalid_p == 0 */
632   /* Skip verify of adjust_dwarf2_line, invalid_p == 0 */
633   /* Skip verify of cannot_step_breakpoint, invalid_p == 0 */
634   /* Skip verify of have_nonsteppable_watchpoint, invalid_p == 0 */
635   /* Skip verify of address_class_type_flags, has predicate.  */
636   /* Skip verify of address_class_type_flags_to_name, has predicate.  */
637   /* Skip verify of execute_dwarf_cfa_vendor_op, invalid_p == 0 */
638   /* Skip verify of address_class_name_to_type_flags, has predicate.  */
639   /* Skip verify of register_reggroup_p, invalid_p == 0 */
640   /* Skip verify of fetch_pointer_argument, has predicate.  */
641   /* Skip verify of iterate_over_regset_sections, has predicate.  */
642   /* Skip verify of make_corefile_notes, has predicate.  */
643   /* Skip verify of find_memory_regions, has predicate.  */
644   /* Skip verify of core_xfer_shared_libraries, has predicate.  */
645   /* Skip verify of core_xfer_shared_libraries_aix, has predicate.  */
646   /* Skip verify of core_pid_to_str, has predicate.  */
647   /* Skip verify of core_thread_name, has predicate.  */
648   /* Skip verify of core_xfer_siginfo, has predicate.  */
649   /* Skip verify of gcore_bfd_target, has predicate.  */
650   /* Skip verify of vtable_function_descriptors, invalid_p == 0 */
651   /* Skip verify of vbit_in_delta, invalid_p == 0 */
652   /* Skip verify of skip_permanent_breakpoint, invalid_p == 0 */
653   /* Skip verify of max_insn_length, has predicate.  */
654   /* Skip verify of displaced_step_copy_insn, has predicate.  */
655   /* Skip verify of displaced_step_hw_singlestep, invalid_p == 0 */
656   /* Skip verify of displaced_step_fixup, has predicate.  */
657   if ((! gdbarch->displaced_step_location) != (! gdbarch->displaced_step_copy_insn))
658     log.puts ("\n\tdisplaced_step_location");
659   /* Skip verify of relocate_instruction, has predicate.  */
660   /* Skip verify of overlay_update, has predicate.  */
661   /* Skip verify of core_read_description, has predicate.  */
662   /* Skip verify of static_transform_name, has predicate.  */
663   /* Skip verify of sofun_address_maybe_missing, invalid_p == 0 */
664   /* Skip verify of process_record, has predicate.  */
665   /* Skip verify of process_record_signal, has predicate.  */
666   /* Skip verify of gdb_signal_from_target, has predicate.  */
667   /* Skip verify of gdb_signal_to_target, has predicate.  */
668   /* Skip verify of get_siginfo_type, has predicate.  */
669   /* Skip verify of record_special_symbol, has predicate.  */
670   /* Skip verify of get_syscall_number, has predicate.  */
671   /* Skip verify of xml_syscall_file, invalid_p == 0 */
672   /* Skip verify of syscalls_info, invalid_p == 0 */
673   /* Skip verify of stap_integer_prefixes, invalid_p == 0 */
674   /* Skip verify of stap_integer_suffixes, invalid_p == 0 */
675   /* Skip verify of stap_register_prefixes, invalid_p == 0 */
676   /* Skip verify of stap_register_suffixes, invalid_p == 0 */
677   /* Skip verify of stap_register_indirection_prefixes, invalid_p == 0 */
678   /* Skip verify of stap_register_indirection_suffixes, invalid_p == 0 */
679   /* Skip verify of stap_gdb_register_prefix, invalid_p == 0 */
680   /* Skip verify of stap_gdb_register_suffix, invalid_p == 0 */
681   /* Skip verify of stap_is_single_operand, has predicate.  */
682   /* Skip verify of stap_parse_special_token, has predicate.  */
683   /* Skip verify of dtrace_parse_probe_argument, has predicate.  */
684   /* Skip verify of dtrace_probe_is_enabled, has predicate.  */
685   /* Skip verify of dtrace_enable_probe, has predicate.  */
686   /* Skip verify of dtrace_disable_probe, has predicate.  */
687   /* Skip verify of has_global_solist, invalid_p == 0 */
688   /* Skip verify of has_global_breakpoints, invalid_p == 0 */
689   /* Skip verify of has_shared_address_space, invalid_p == 0 */
690   /* Skip verify of fast_tracepoint_valid_at, invalid_p == 0 */
691   /* Skip verify of guess_tracepoint_registers, invalid_p == 0 */
692   /* Skip verify of auto_charset, invalid_p == 0 */
693   /* Skip verify of auto_wide_charset, invalid_p == 0 */
694   /* Skip verify of has_dos_based_file_system, invalid_p == 0 */
695   /* Skip verify of gen_return_address, invalid_p == 0 */
696   /* Skip verify of info_proc, has predicate.  */
697   /* Skip verify of core_info_proc, has predicate.  */
698   /* Skip verify of iterate_over_objfiles_in_search_order, invalid_p == 0 */
699   /* Skip verify of ravenscar_ops, invalid_p == 0 */
700   /* Skip verify of insn_is_call, invalid_p == 0 */
701   /* Skip verify of insn_is_ret, invalid_p == 0 */
702   /* Skip verify of insn_is_jump, invalid_p == 0 */
703   /* Skip verify of auxv_parse, has predicate.  */
704   /* Skip verify of print_auxv_entry, invalid_p == 0 */
705   /* Skip verify of vsyscall_range, invalid_p == 0 */
706   /* Skip verify of infcall_mmap, invalid_p == 0 */
707   /* Skip verify of infcall_munmap, invalid_p == 0 */
708   /* Skip verify of gcc_target_options, invalid_p == 0 */
709   /* Skip verify of gnu_triplet_regexp, invalid_p == 0 */
710   /* Skip verify of addressable_memory_unit_size, invalid_p == 0 */
711   /* Skip verify of disassembler_options, invalid_p == 0 */
712   /* Skip verify of valid_disassembler_options, invalid_p == 0 */
713   /* Skip verify of type_align, invalid_p == 0 */
714   if (!log.empty ())
715     internal_error (__FILE__, __LINE__,
716                     _("verify_gdbarch: the following are invalid ...%s"),
717                     log.c_str ());
718 }
719
720
721 /* Print out the details of the current architecture.  */
722
723 void
724 gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
725 {
726   const char *gdb_nm_file = "<not-defined>";
727
728 #if defined (GDB_NM_FILE)
729   gdb_nm_file = GDB_NM_FILE;
730 #endif
731   fprintf_unfiltered (file,
732                       "gdbarch_dump: GDB_NM_FILE = %s\n",
733                       gdb_nm_file);
734   fprintf_unfiltered (file,
735                       "gdbarch_dump: addr_bit = %s\n",
736                       plongest (gdbarch->addr_bit));
737   fprintf_unfiltered (file,
738                       "gdbarch_dump: addr_bits_remove = <%s>\n",
739                       host_address_to_string (gdbarch->addr_bits_remove));
740   fprintf_unfiltered (file,
741                       "gdbarch_dump: gdbarch_address_class_name_to_type_flags_p() = %d\n",
742                       gdbarch_address_class_name_to_type_flags_p (gdbarch));
743   fprintf_unfiltered (file,
744                       "gdbarch_dump: address_class_name_to_type_flags = <%s>\n",
745                       host_address_to_string (gdbarch->address_class_name_to_type_flags));
746   fprintf_unfiltered (file,
747                       "gdbarch_dump: gdbarch_address_class_type_flags_p() = %d\n",
748                       gdbarch_address_class_type_flags_p (gdbarch));
749   fprintf_unfiltered (file,
750                       "gdbarch_dump: address_class_type_flags = <%s>\n",
751                       host_address_to_string (gdbarch->address_class_type_flags));
752   fprintf_unfiltered (file,
753                       "gdbarch_dump: gdbarch_address_class_type_flags_to_name_p() = %d\n",
754                       gdbarch_address_class_type_flags_to_name_p (gdbarch));
755   fprintf_unfiltered (file,
756                       "gdbarch_dump: address_class_type_flags_to_name = <%s>\n",
757                       host_address_to_string (gdbarch->address_class_type_flags_to_name));
758   fprintf_unfiltered (file,
759                       "gdbarch_dump: address_to_pointer = <%s>\n",
760                       host_address_to_string (gdbarch->address_to_pointer));
761   fprintf_unfiltered (file,
762                       "gdbarch_dump: addressable_memory_unit_size = <%s>\n",
763                       host_address_to_string (gdbarch->addressable_memory_unit_size));
764   fprintf_unfiltered (file,
765                       "gdbarch_dump: gdbarch_adjust_breakpoint_address_p() = %d\n",
766                       gdbarch_adjust_breakpoint_address_p (gdbarch));
767   fprintf_unfiltered (file,
768                       "gdbarch_dump: adjust_breakpoint_address = <%s>\n",
769                       host_address_to_string (gdbarch->adjust_breakpoint_address));
770   fprintf_unfiltered (file,
771                       "gdbarch_dump: adjust_dwarf2_addr = <%s>\n",
772                       host_address_to_string (gdbarch->adjust_dwarf2_addr));
773   fprintf_unfiltered (file,
774                       "gdbarch_dump: adjust_dwarf2_line = <%s>\n",
775                       host_address_to_string (gdbarch->adjust_dwarf2_line));
776   fprintf_unfiltered (file,
777                       "gdbarch_dump: auto_charset = <%s>\n",
778                       host_address_to_string (gdbarch->auto_charset));
779   fprintf_unfiltered (file,
780                       "gdbarch_dump: auto_wide_charset = <%s>\n",
781                       host_address_to_string (gdbarch->auto_wide_charset));
782   fprintf_unfiltered (file,
783                       "gdbarch_dump: gdbarch_auxv_parse_p() = %d\n",
784                       gdbarch_auxv_parse_p (gdbarch));
785   fprintf_unfiltered (file,
786                       "gdbarch_dump: auxv_parse = <%s>\n",
787                       host_address_to_string (gdbarch->auxv_parse));
788   fprintf_unfiltered (file,
789                       "gdbarch_dump: gdbarch_ax_pseudo_register_collect_p() = %d\n",
790                       gdbarch_ax_pseudo_register_collect_p (gdbarch));
791   fprintf_unfiltered (file,
792                       "gdbarch_dump: ax_pseudo_register_collect = <%s>\n",
793                       host_address_to_string (gdbarch->ax_pseudo_register_collect));
794   fprintf_unfiltered (file,
795                       "gdbarch_dump: gdbarch_ax_pseudo_register_push_stack_p() = %d\n",
796                       gdbarch_ax_pseudo_register_push_stack_p (gdbarch));
797   fprintf_unfiltered (file,
798                       "gdbarch_dump: ax_pseudo_register_push_stack = <%s>\n",
799                       host_address_to_string (gdbarch->ax_pseudo_register_push_stack));
800   fprintf_unfiltered (file,
801                       "gdbarch_dump: believe_pcc_promotion = %s\n",
802                       plongest (gdbarch->believe_pcc_promotion));
803   fprintf_unfiltered (file,
804                       "gdbarch_dump: bfd_arch_info = %s\n",
805                       gdbarch_bfd_arch_info (gdbarch)->printable_name);
806   fprintf_unfiltered (file,
807                       "gdbarch_dump: bits_big_endian = %s\n",
808                       plongest (gdbarch->bits_big_endian));
809   fprintf_unfiltered (file,
810                       "gdbarch_dump: breakpoint_from_pc = <%s>\n",
811                       host_address_to_string (gdbarch->breakpoint_from_pc));
812   fprintf_unfiltered (file,
813                       "gdbarch_dump: breakpoint_kind_from_current_state = <%s>\n",
814                       host_address_to_string (gdbarch->breakpoint_kind_from_current_state));
815   fprintf_unfiltered (file,
816                       "gdbarch_dump: breakpoint_kind_from_pc = <%s>\n",
817                       host_address_to_string (gdbarch->breakpoint_kind_from_pc));
818   fprintf_unfiltered (file,
819                       "gdbarch_dump: byte_order = %s\n",
820                       plongest (gdbarch->byte_order));
821   fprintf_unfiltered (file,
822                       "gdbarch_dump: byte_order_for_code = %s\n",
823                       plongest (gdbarch->byte_order_for_code));
824   fprintf_unfiltered (file,
825                       "gdbarch_dump: call_dummy_location = %s\n",
826                       plongest (gdbarch->call_dummy_location));
827   fprintf_unfiltered (file,
828                       "gdbarch_dump: cannot_fetch_register = <%s>\n",
829                       host_address_to_string (gdbarch->cannot_fetch_register));
830   fprintf_unfiltered (file,
831                       "gdbarch_dump: cannot_step_breakpoint = %s\n",
832                       plongest (gdbarch->cannot_step_breakpoint));
833   fprintf_unfiltered (file,
834                       "gdbarch_dump: cannot_store_register = <%s>\n",
835                       host_address_to_string (gdbarch->cannot_store_register));
836   fprintf_unfiltered (file,
837                       "gdbarch_dump: char_signed = %s\n",
838                       plongest (gdbarch->char_signed));
839   fprintf_unfiltered (file,
840                       "gdbarch_dump: code_of_frame_writable = <%s>\n",
841                       host_address_to_string (gdbarch->code_of_frame_writable));
842   fprintf_unfiltered (file,
843                       "gdbarch_dump: coff_make_msymbol_special = <%s>\n",
844                       host_address_to_string (gdbarch->coff_make_msymbol_special));
845   fprintf_unfiltered (file,
846                       "gdbarch_dump: convert_from_func_ptr_addr = <%s>\n",
847                       host_address_to_string (gdbarch->convert_from_func_ptr_addr));
848   fprintf_unfiltered (file,
849                       "gdbarch_dump: convert_register_p = <%s>\n",
850                       host_address_to_string (gdbarch->convert_register_p));
851   fprintf_unfiltered (file,
852                       "gdbarch_dump: gdbarch_core_info_proc_p() = %d\n",
853                       gdbarch_core_info_proc_p (gdbarch));
854   fprintf_unfiltered (file,
855                       "gdbarch_dump: core_info_proc = <%s>\n",
856                       host_address_to_string (gdbarch->core_info_proc));
857   fprintf_unfiltered (file,
858                       "gdbarch_dump: gdbarch_core_pid_to_str_p() = %d\n",
859                       gdbarch_core_pid_to_str_p (gdbarch));
860   fprintf_unfiltered (file,
861                       "gdbarch_dump: core_pid_to_str = <%s>\n",
862                       host_address_to_string (gdbarch->core_pid_to_str));
863   fprintf_unfiltered (file,
864                       "gdbarch_dump: gdbarch_core_read_description_p() = %d\n",
865                       gdbarch_core_read_description_p (gdbarch));
866   fprintf_unfiltered (file,
867                       "gdbarch_dump: core_read_description = <%s>\n",
868                       host_address_to_string (gdbarch->core_read_description));
869   fprintf_unfiltered (file,
870                       "gdbarch_dump: gdbarch_core_thread_name_p() = %d\n",
871                       gdbarch_core_thread_name_p (gdbarch));
872   fprintf_unfiltered (file,
873                       "gdbarch_dump: core_thread_name = <%s>\n",
874                       host_address_to_string (gdbarch->core_thread_name));
875   fprintf_unfiltered (file,
876                       "gdbarch_dump: gdbarch_core_xfer_shared_libraries_p() = %d\n",
877                       gdbarch_core_xfer_shared_libraries_p (gdbarch));
878   fprintf_unfiltered (file,
879                       "gdbarch_dump: core_xfer_shared_libraries = <%s>\n",
880                       host_address_to_string (gdbarch->core_xfer_shared_libraries));
881   fprintf_unfiltered (file,
882                       "gdbarch_dump: gdbarch_core_xfer_shared_libraries_aix_p() = %d\n",
883                       gdbarch_core_xfer_shared_libraries_aix_p (gdbarch));
884   fprintf_unfiltered (file,
885                       "gdbarch_dump: core_xfer_shared_libraries_aix = <%s>\n",
886                       host_address_to_string (gdbarch->core_xfer_shared_libraries_aix));
887   fprintf_unfiltered (file,
888                       "gdbarch_dump: gdbarch_core_xfer_siginfo_p() = %d\n",
889                       gdbarch_core_xfer_siginfo_p (gdbarch));
890   fprintf_unfiltered (file,
891                       "gdbarch_dump: core_xfer_siginfo = <%s>\n",
892                       host_address_to_string (gdbarch->core_xfer_siginfo));
893   fprintf_unfiltered (file,
894                       "gdbarch_dump: decr_pc_after_break = %s\n",
895                       core_addr_to_string_nz (gdbarch->decr_pc_after_break));
896   fprintf_unfiltered (file,
897                       "gdbarch_dump: deprecated_fp_regnum = %s\n",
898                       plongest (gdbarch->deprecated_fp_regnum));
899   fprintf_unfiltered (file,
900                       "gdbarch_dump: deprecated_function_start_offset = %s\n",
901                       core_addr_to_string_nz (gdbarch->deprecated_function_start_offset));
902   fprintf_unfiltered (file,
903                       "gdbarch_dump: disassembler_options = %s\n",
904                       pstring_ptr (gdbarch->disassembler_options));
905   fprintf_unfiltered (file,
906                       "gdbarch_dump: gdbarch_displaced_step_copy_insn_p() = %d\n",
907                       gdbarch_displaced_step_copy_insn_p (gdbarch));
908   fprintf_unfiltered (file,
909                       "gdbarch_dump: displaced_step_copy_insn = <%s>\n",
910                       host_address_to_string (gdbarch->displaced_step_copy_insn));
911   fprintf_unfiltered (file,
912                       "gdbarch_dump: gdbarch_displaced_step_fixup_p() = %d\n",
913                       gdbarch_displaced_step_fixup_p (gdbarch));
914   fprintf_unfiltered (file,
915                       "gdbarch_dump: displaced_step_fixup = <%s>\n",
916                       host_address_to_string (gdbarch->displaced_step_fixup));
917   fprintf_unfiltered (file,
918                       "gdbarch_dump: displaced_step_hw_singlestep = <%s>\n",
919                       host_address_to_string (gdbarch->displaced_step_hw_singlestep));
920   fprintf_unfiltered (file,
921                       "gdbarch_dump: displaced_step_location = <%s>\n",
922                       host_address_to_string (gdbarch->displaced_step_location));
923   fprintf_unfiltered (file,
924                       "gdbarch_dump: double_bit = %s\n",
925                       plongest (gdbarch->double_bit));
926   fprintf_unfiltered (file,
927                       "gdbarch_dump: double_format = %s\n",
928                       pformat (gdbarch->double_format));
929   fprintf_unfiltered (file,
930                       "gdbarch_dump: gdbarch_dtrace_disable_probe_p() = %d\n",
931                       gdbarch_dtrace_disable_probe_p (gdbarch));
932   fprintf_unfiltered (file,
933                       "gdbarch_dump: dtrace_disable_probe = <%s>\n",
934                       host_address_to_string (gdbarch->dtrace_disable_probe));
935   fprintf_unfiltered (file,
936                       "gdbarch_dump: gdbarch_dtrace_enable_probe_p() = %d\n",
937                       gdbarch_dtrace_enable_probe_p (gdbarch));
938   fprintf_unfiltered (file,
939                       "gdbarch_dump: dtrace_enable_probe = <%s>\n",
940                       host_address_to_string (gdbarch->dtrace_enable_probe));
941   fprintf_unfiltered (file,
942                       "gdbarch_dump: gdbarch_dtrace_parse_probe_argument_p() = %d\n",
943                       gdbarch_dtrace_parse_probe_argument_p (gdbarch));
944   fprintf_unfiltered (file,
945                       "gdbarch_dump: dtrace_parse_probe_argument = <%s>\n",
946                       host_address_to_string (gdbarch->dtrace_parse_probe_argument));
947   fprintf_unfiltered (file,
948                       "gdbarch_dump: gdbarch_dtrace_probe_is_enabled_p() = %d\n",
949                       gdbarch_dtrace_probe_is_enabled_p (gdbarch));
950   fprintf_unfiltered (file,
951                       "gdbarch_dump: dtrace_probe_is_enabled = <%s>\n",
952                       host_address_to_string (gdbarch->dtrace_probe_is_enabled));
953   fprintf_unfiltered (file,
954                       "gdbarch_dump: gdbarch_dummy_id_p() = %d\n",
955                       gdbarch_dummy_id_p (gdbarch));
956   fprintf_unfiltered (file,
957                       "gdbarch_dump: dummy_id = <%s>\n",
958                       host_address_to_string (gdbarch->dummy_id));
959   fprintf_unfiltered (file,
960                       "gdbarch_dump: dwarf2_addr_size = %s\n",
961                       plongest (gdbarch->dwarf2_addr_size));
962   fprintf_unfiltered (file,
963                       "gdbarch_dump: dwarf2_reg_to_regnum = <%s>\n",
964                       host_address_to_string (gdbarch->dwarf2_reg_to_regnum));
965   fprintf_unfiltered (file,
966                       "gdbarch_dump: ecoff_reg_to_regnum = <%s>\n",
967                       host_address_to_string (gdbarch->ecoff_reg_to_regnum));
968   fprintf_unfiltered (file,
969                       "gdbarch_dump: gdbarch_elf_make_msymbol_special_p() = %d\n",
970                       gdbarch_elf_make_msymbol_special_p (gdbarch));
971   fprintf_unfiltered (file,
972                       "gdbarch_dump: elf_make_msymbol_special = <%s>\n",
973                       host_address_to_string (gdbarch->elf_make_msymbol_special));
974   fprintf_unfiltered (file,
975                       "gdbarch_dump: execute_dwarf_cfa_vendor_op = <%s>\n",
976                       host_address_to_string (gdbarch->execute_dwarf_cfa_vendor_op));
977   fprintf_unfiltered (file,
978                       "gdbarch_dump: fast_tracepoint_valid_at = <%s>\n",
979                       host_address_to_string (gdbarch->fast_tracepoint_valid_at));
980   fprintf_unfiltered (file,
981                       "gdbarch_dump: gdbarch_fetch_pointer_argument_p() = %d\n",
982                       gdbarch_fetch_pointer_argument_p (gdbarch));
983   fprintf_unfiltered (file,
984                       "gdbarch_dump: fetch_pointer_argument = <%s>\n",
985                       host_address_to_string (gdbarch->fetch_pointer_argument));
986   fprintf_unfiltered (file,
987                       "gdbarch_dump: gdbarch_fetch_tls_load_module_address_p() = %d\n",
988                       gdbarch_fetch_tls_load_module_address_p (gdbarch));
989   fprintf_unfiltered (file,
990                       "gdbarch_dump: fetch_tls_load_module_address = <%s>\n",
991                       host_address_to_string (gdbarch->fetch_tls_load_module_address));
992   fprintf_unfiltered (file,
993                       "gdbarch_dump: gdbarch_find_memory_regions_p() = %d\n",
994                       gdbarch_find_memory_regions_p (gdbarch));
995   fprintf_unfiltered (file,
996                       "gdbarch_dump: find_memory_regions = <%s>\n",
997                       host_address_to_string (gdbarch->find_memory_regions));
998   fprintf_unfiltered (file,
999                       "gdbarch_dump: float_bit = %s\n",
1000                       plongest (gdbarch->float_bit));
1001   fprintf_unfiltered (file,
1002                       "gdbarch_dump: float_format = %s\n",
1003                       pformat (gdbarch->float_format));
1004   fprintf_unfiltered (file,
1005                       "gdbarch_dump: floatformat_for_type = <%s>\n",
1006                       host_address_to_string (gdbarch->floatformat_for_type));
1007   fprintf_unfiltered (file,
1008                       "gdbarch_dump: fp0_regnum = %s\n",
1009                       plongest (gdbarch->fp0_regnum));
1010   fprintf_unfiltered (file,
1011                       "gdbarch_dump: gdbarch_frame_align_p() = %d\n",
1012                       gdbarch_frame_align_p (gdbarch));
1013   fprintf_unfiltered (file,
1014                       "gdbarch_dump: frame_align = <%s>\n",
1015                       host_address_to_string (gdbarch->frame_align));
1016   fprintf_unfiltered (file,
1017                       "gdbarch_dump: frame_args_skip = %s\n",
1018                       core_addr_to_string_nz (gdbarch->frame_args_skip));
1019   fprintf_unfiltered (file,
1020                       "gdbarch_dump: gdbarch_frame_num_args_p() = %d\n",
1021                       gdbarch_frame_num_args_p (gdbarch));
1022   fprintf_unfiltered (file,
1023                       "gdbarch_dump: frame_num_args = <%s>\n",
1024                       host_address_to_string (gdbarch->frame_num_args));
1025   fprintf_unfiltered (file,
1026                       "gdbarch_dump: frame_red_zone_size = %s\n",
1027                       plongest (gdbarch->frame_red_zone_size));
1028   fprintf_unfiltered (file,
1029                       "gdbarch_dump: gcc_target_options = <%s>\n",
1030                       host_address_to_string (gdbarch->gcc_target_options));
1031   fprintf_unfiltered (file,
1032                       "gdbarch_dump: gdbarch_gcore_bfd_target_p() = %d\n",
1033                       gdbarch_gcore_bfd_target_p (gdbarch));
1034   fprintf_unfiltered (file,
1035                       "gdbarch_dump: gcore_bfd_target = %s\n",
1036                       pstring (gdbarch->gcore_bfd_target));
1037   fprintf_unfiltered (file,
1038                       "gdbarch_dump: gdbarch_gdb_signal_from_target_p() = %d\n",
1039                       gdbarch_gdb_signal_from_target_p (gdbarch));
1040   fprintf_unfiltered (file,
1041                       "gdbarch_dump: gdb_signal_from_target = <%s>\n",
1042                       host_address_to_string (gdbarch->gdb_signal_from_target));
1043   fprintf_unfiltered (file,
1044                       "gdbarch_dump: gdbarch_gdb_signal_to_target_p() = %d\n",
1045                       gdbarch_gdb_signal_to_target_p (gdbarch));
1046   fprintf_unfiltered (file,
1047                       "gdbarch_dump: gdb_signal_to_target = <%s>\n",
1048                       host_address_to_string (gdbarch->gdb_signal_to_target));
1049   fprintf_unfiltered (file,
1050                       "gdbarch_dump: gen_return_address = <%s>\n",
1051                       host_address_to_string (gdbarch->gen_return_address));
1052   fprintf_unfiltered (file,
1053                       "gdbarch_dump: gdbarch_get_longjmp_target_p() = %d\n",
1054                       gdbarch_get_longjmp_target_p (gdbarch));
1055   fprintf_unfiltered (file,
1056                       "gdbarch_dump: get_longjmp_target = <%s>\n",
1057                       host_address_to_string (gdbarch->get_longjmp_target));
1058   fprintf_unfiltered (file,
1059                       "gdbarch_dump: gdbarch_get_siginfo_type_p() = %d\n",
1060                       gdbarch_get_siginfo_type_p (gdbarch));
1061   fprintf_unfiltered (file,
1062                       "gdbarch_dump: get_siginfo_type = <%s>\n",
1063                       host_address_to_string (gdbarch->get_siginfo_type));
1064   fprintf_unfiltered (file,
1065                       "gdbarch_dump: gdbarch_get_syscall_number_p() = %d\n",
1066                       gdbarch_get_syscall_number_p (gdbarch));
1067   fprintf_unfiltered (file,
1068                       "gdbarch_dump: get_syscall_number = <%s>\n",
1069                       host_address_to_string (gdbarch->get_syscall_number));
1070   fprintf_unfiltered (file,
1071                       "gdbarch_dump: gnu_triplet_regexp = <%s>\n",
1072                       host_address_to_string (gdbarch->gnu_triplet_regexp));
1073   fprintf_unfiltered (file,
1074                       "gdbarch_dump: guess_tracepoint_registers = <%s>\n",
1075                       host_address_to_string (gdbarch->guess_tracepoint_registers));
1076   fprintf_unfiltered (file,
1077                       "gdbarch_dump: half_bit = %s\n",
1078                       plongest (gdbarch->half_bit));
1079   fprintf_unfiltered (file,
1080                       "gdbarch_dump: half_format = %s\n",
1081                       pformat (gdbarch->half_format));
1082   fprintf_unfiltered (file,
1083                       "gdbarch_dump: gdbarch_handle_segmentation_fault_p() = %d\n",
1084                       gdbarch_handle_segmentation_fault_p (gdbarch));
1085   fprintf_unfiltered (file,
1086                       "gdbarch_dump: handle_segmentation_fault = <%s>\n",
1087                       host_address_to_string (gdbarch->handle_segmentation_fault));
1088   fprintf_unfiltered (file,
1089                       "gdbarch_dump: has_dos_based_file_system = %s\n",
1090                       plongest (gdbarch->has_dos_based_file_system));
1091   fprintf_unfiltered (file,
1092                       "gdbarch_dump: has_global_breakpoints = %s\n",
1093                       plongest (gdbarch->has_global_breakpoints));
1094   fprintf_unfiltered (file,
1095                       "gdbarch_dump: has_global_solist = %s\n",
1096                       plongest (gdbarch->has_global_solist));
1097   fprintf_unfiltered (file,
1098                       "gdbarch_dump: has_shared_address_space = <%s>\n",
1099                       host_address_to_string (gdbarch->has_shared_address_space));
1100   fprintf_unfiltered (file,
1101                       "gdbarch_dump: have_nonsteppable_watchpoint = %s\n",
1102                       plongest (gdbarch->have_nonsteppable_watchpoint));
1103   fprintf_unfiltered (file,
1104                       "gdbarch_dump: in_indirect_branch_thunk = <%s>\n",
1105                       host_address_to_string (gdbarch->in_indirect_branch_thunk));
1106   fprintf_unfiltered (file,
1107                       "gdbarch_dump: in_solib_return_trampoline = <%s>\n",
1108                       host_address_to_string (gdbarch->in_solib_return_trampoline));
1109   fprintf_unfiltered (file,
1110                       "gdbarch_dump: infcall_mmap = <%s>\n",
1111                       host_address_to_string (gdbarch->infcall_mmap));
1112   fprintf_unfiltered (file,
1113                       "gdbarch_dump: infcall_munmap = <%s>\n",
1114                       host_address_to_string (gdbarch->infcall_munmap));
1115   fprintf_unfiltered (file,
1116                       "gdbarch_dump: gdbarch_info_proc_p() = %d\n",
1117                       gdbarch_info_proc_p (gdbarch));
1118   fprintf_unfiltered (file,
1119                       "gdbarch_dump: info_proc = <%s>\n",
1120                       host_address_to_string (gdbarch->info_proc));
1121   fprintf_unfiltered (file,
1122                       "gdbarch_dump: inner_than = <%s>\n",
1123                       host_address_to_string (gdbarch->inner_than));
1124   fprintf_unfiltered (file,
1125                       "gdbarch_dump: insn_is_call = <%s>\n",
1126                       host_address_to_string (gdbarch->insn_is_call));
1127   fprintf_unfiltered (file,
1128                       "gdbarch_dump: insn_is_jump = <%s>\n",
1129                       host_address_to_string (gdbarch->insn_is_jump));
1130   fprintf_unfiltered (file,
1131                       "gdbarch_dump: insn_is_ret = <%s>\n",
1132                       host_address_to_string (gdbarch->insn_is_ret));
1133   fprintf_unfiltered (file,
1134                       "gdbarch_dump: int_bit = %s\n",
1135                       plongest (gdbarch->int_bit));
1136   fprintf_unfiltered (file,
1137                       "gdbarch_dump: gdbarch_integer_to_address_p() = %d\n",
1138                       gdbarch_integer_to_address_p (gdbarch));
1139   fprintf_unfiltered (file,
1140                       "gdbarch_dump: integer_to_address = <%s>\n",
1141                       host_address_to_string (gdbarch->integer_to_address));
1142   fprintf_unfiltered (file,
1143                       "gdbarch_dump: iterate_over_objfiles_in_search_order = <%s>\n",
1144                       host_address_to_string (gdbarch->iterate_over_objfiles_in_search_order));
1145   fprintf_unfiltered (file,
1146                       "gdbarch_dump: gdbarch_iterate_over_regset_sections_p() = %d\n",
1147                       gdbarch_iterate_over_regset_sections_p (gdbarch));
1148   fprintf_unfiltered (file,
1149                       "gdbarch_dump: iterate_over_regset_sections = <%s>\n",
1150                       host_address_to_string (gdbarch->iterate_over_regset_sections));
1151   fprintf_unfiltered (file,
1152                       "gdbarch_dump: long_bit = %s\n",
1153                       plongest (gdbarch->long_bit));
1154   fprintf_unfiltered (file,
1155                       "gdbarch_dump: long_double_bit = %s\n",
1156                       plongest (gdbarch->long_double_bit));
1157   fprintf_unfiltered (file,
1158                       "gdbarch_dump: long_double_format = %s\n",
1159                       pformat (gdbarch->long_double_format));
1160   fprintf_unfiltered (file,
1161                       "gdbarch_dump: long_long_bit = %s\n",
1162                       plongest (gdbarch->long_long_bit));
1163   fprintf_unfiltered (file,
1164                       "gdbarch_dump: gdbarch_make_corefile_notes_p() = %d\n",
1165                       gdbarch_make_corefile_notes_p (gdbarch));
1166   fprintf_unfiltered (file,
1167                       "gdbarch_dump: make_corefile_notes = <%s>\n",
1168                       host_address_to_string (gdbarch->make_corefile_notes));
1169   fprintf_unfiltered (file,
1170                       "gdbarch_dump: make_symbol_special = <%s>\n",
1171                       host_address_to_string (gdbarch->make_symbol_special));
1172   fprintf_unfiltered (file,
1173                       "gdbarch_dump: gdbarch_max_insn_length_p() = %d\n",
1174                       gdbarch_max_insn_length_p (gdbarch));
1175   fprintf_unfiltered (file,
1176                       "gdbarch_dump: max_insn_length = %s\n",
1177                       plongest (gdbarch->max_insn_length));
1178   fprintf_unfiltered (file,
1179                       "gdbarch_dump: memory_insert_breakpoint = <%s>\n",
1180                       host_address_to_string (gdbarch->memory_insert_breakpoint));
1181   fprintf_unfiltered (file,
1182                       "gdbarch_dump: memory_remove_breakpoint = <%s>\n",
1183                       host_address_to_string (gdbarch->memory_remove_breakpoint));
1184   fprintf_unfiltered (file,
1185                       "gdbarch_dump: num_pseudo_regs = %s\n",
1186                       plongest (gdbarch->num_pseudo_regs));
1187   fprintf_unfiltered (file,
1188                       "gdbarch_dump: num_regs = %s\n",
1189                       plongest (gdbarch->num_regs));
1190   fprintf_unfiltered (file,
1191                       "gdbarch_dump: osabi = %s\n",
1192                       plongest (gdbarch->osabi));
1193   fprintf_unfiltered (file,
1194                       "gdbarch_dump: gdbarch_overlay_update_p() = %d\n",
1195                       gdbarch_overlay_update_p (gdbarch));
1196   fprintf_unfiltered (file,
1197                       "gdbarch_dump: overlay_update = <%s>\n",
1198                       host_address_to_string (gdbarch->overlay_update));
1199   fprintf_unfiltered (file,
1200                       "gdbarch_dump: pc_regnum = %s\n",
1201                       plongest (gdbarch->pc_regnum));
1202   fprintf_unfiltered (file,
1203                       "gdbarch_dump: pointer_to_address = <%s>\n",
1204                       host_address_to_string (gdbarch->pointer_to_address));
1205   fprintf_unfiltered (file,
1206                       "gdbarch_dump: print_auxv_entry = <%s>\n",
1207                       host_address_to_string (gdbarch->print_auxv_entry));
1208   fprintf_unfiltered (file,
1209                       "gdbarch_dump: print_float_info = <%s>\n",
1210                       host_address_to_string (gdbarch->print_float_info));
1211   fprintf_unfiltered (file,
1212                       "gdbarch_dump: print_insn = <%s>\n",
1213                       host_address_to_string (gdbarch->print_insn));
1214   fprintf_unfiltered (file,
1215                       "gdbarch_dump: print_registers_info = <%s>\n",
1216                       host_address_to_string (gdbarch->print_registers_info));
1217   fprintf_unfiltered (file,
1218                       "gdbarch_dump: gdbarch_print_vector_info_p() = %d\n",
1219                       gdbarch_print_vector_info_p (gdbarch));
1220   fprintf_unfiltered (file,
1221                       "gdbarch_dump: print_vector_info = <%s>\n",
1222                       host_address_to_string (gdbarch->print_vector_info));
1223   fprintf_unfiltered (file,
1224                       "gdbarch_dump: gdbarch_process_record_p() = %d\n",
1225                       gdbarch_process_record_p (gdbarch));
1226   fprintf_unfiltered (file,
1227                       "gdbarch_dump: process_record = <%s>\n",
1228                       host_address_to_string (gdbarch->process_record));
1229   fprintf_unfiltered (file,
1230                       "gdbarch_dump: gdbarch_process_record_signal_p() = %d\n",
1231                       gdbarch_process_record_signal_p (gdbarch));
1232   fprintf_unfiltered (file,
1233                       "gdbarch_dump: process_record_signal = <%s>\n",
1234                       host_address_to_string (gdbarch->process_record_signal));
1235   fprintf_unfiltered (file,
1236                       "gdbarch_dump: ps_regnum = %s\n",
1237                       plongest (gdbarch->ps_regnum));
1238   fprintf_unfiltered (file,
1239                       "gdbarch_dump: gdbarch_pseudo_register_read_p() = %d\n",
1240                       gdbarch_pseudo_register_read_p (gdbarch));
1241   fprintf_unfiltered (file,
1242                       "gdbarch_dump: pseudo_register_read = <%s>\n",
1243                       host_address_to_string (gdbarch->pseudo_register_read));
1244   fprintf_unfiltered (file,
1245                       "gdbarch_dump: gdbarch_pseudo_register_read_value_p() = %d\n",
1246                       gdbarch_pseudo_register_read_value_p (gdbarch));
1247   fprintf_unfiltered (file,
1248                       "gdbarch_dump: pseudo_register_read_value = <%s>\n",
1249                       host_address_to_string (gdbarch->pseudo_register_read_value));
1250   fprintf_unfiltered (file,
1251                       "gdbarch_dump: gdbarch_pseudo_register_write_p() = %d\n",
1252                       gdbarch_pseudo_register_write_p (gdbarch));
1253   fprintf_unfiltered (file,
1254                       "gdbarch_dump: pseudo_register_write = <%s>\n",
1255                       host_address_to_string (gdbarch->pseudo_register_write));
1256   fprintf_unfiltered (file,
1257                       "gdbarch_dump: ptr_bit = %s\n",
1258                       plongest (gdbarch->ptr_bit));
1259   fprintf_unfiltered (file,
1260                       "gdbarch_dump: gdbarch_push_dummy_call_p() = %d\n",
1261                       gdbarch_push_dummy_call_p (gdbarch));
1262   fprintf_unfiltered (file,
1263                       "gdbarch_dump: push_dummy_call = <%s>\n",
1264                       host_address_to_string (gdbarch->push_dummy_call));
1265   fprintf_unfiltered (file,
1266                       "gdbarch_dump: gdbarch_push_dummy_code_p() = %d\n",
1267                       gdbarch_push_dummy_code_p (gdbarch));
1268   fprintf_unfiltered (file,
1269                       "gdbarch_dump: push_dummy_code = <%s>\n",
1270                       host_address_to_string (gdbarch->push_dummy_code));
1271   fprintf_unfiltered (file,
1272                       "gdbarch_dump: ravenscar_ops = %s\n",
1273                       host_address_to_string (gdbarch->ravenscar_ops));
1274   fprintf_unfiltered (file,
1275                       "gdbarch_dump: gdbarch_read_pc_p() = %d\n",
1276                       gdbarch_read_pc_p (gdbarch));
1277   fprintf_unfiltered (file,
1278                       "gdbarch_dump: read_pc = <%s>\n",
1279                       host_address_to_string (gdbarch->read_pc));
1280   fprintf_unfiltered (file,
1281                       "gdbarch_dump: gdbarch_record_special_symbol_p() = %d\n",
1282                       gdbarch_record_special_symbol_p (gdbarch));
1283   fprintf_unfiltered (file,
1284                       "gdbarch_dump: record_special_symbol = <%s>\n",
1285                       host_address_to_string (gdbarch->record_special_symbol));
1286   fprintf_unfiltered (file,
1287                       "gdbarch_dump: register_name = <%s>\n",
1288                       host_address_to_string (gdbarch->register_name));
1289   fprintf_unfiltered (file,
1290                       "gdbarch_dump: register_reggroup_p = <%s>\n",
1291                       host_address_to_string (gdbarch->register_reggroup_p));
1292   fprintf_unfiltered (file,
1293                       "gdbarch_dump: register_sim_regno = <%s>\n",
1294                       host_address_to_string (gdbarch->register_sim_regno));
1295   fprintf_unfiltered (file,
1296                       "gdbarch_dump: register_to_value = <%s>\n",
1297                       host_address_to_string (gdbarch->register_to_value));
1298   fprintf_unfiltered (file,
1299                       "gdbarch_dump: gdbarch_register_type_p() = %d\n",
1300                       gdbarch_register_type_p (gdbarch));
1301   fprintf_unfiltered (file,
1302                       "gdbarch_dump: register_type = <%s>\n",
1303                       host_address_to_string (gdbarch->register_type));
1304   fprintf_unfiltered (file,
1305                       "gdbarch_dump: gdbarch_relocate_instruction_p() = %d\n",
1306                       gdbarch_relocate_instruction_p (gdbarch));
1307   fprintf_unfiltered (file,
1308                       "gdbarch_dump: relocate_instruction = <%s>\n",
1309                       host_address_to_string (gdbarch->relocate_instruction));
1310   fprintf_unfiltered (file,
1311                       "gdbarch_dump: remote_register_number = <%s>\n",
1312                       host_address_to_string (gdbarch->remote_register_number));
1313   fprintf_unfiltered (file,
1314                       "gdbarch_dump: return_in_first_hidden_param_p = <%s>\n",
1315                       host_address_to_string (gdbarch->return_in_first_hidden_param_p));
1316   fprintf_unfiltered (file,
1317                       "gdbarch_dump: gdbarch_return_value_p() = %d\n",
1318                       gdbarch_return_value_p (gdbarch));
1319   fprintf_unfiltered (file,
1320                       "gdbarch_dump: return_value = <%s>\n",
1321                       host_address_to_string (gdbarch->return_value));
1322   fprintf_unfiltered (file,
1323                       "gdbarch_dump: sdb_reg_to_regnum = <%s>\n",
1324                       host_address_to_string (gdbarch->sdb_reg_to_regnum));
1325   fprintf_unfiltered (file,
1326                       "gdbarch_dump: short_bit = %s\n",
1327                       plongest (gdbarch->short_bit));
1328   fprintf_unfiltered (file,
1329                       "gdbarch_dump: significant_addr_bit = %s\n",
1330                       plongest (gdbarch->significant_addr_bit));
1331   fprintf_unfiltered (file,
1332                       "gdbarch_dump: gdbarch_single_step_through_delay_p() = %d\n",
1333                       gdbarch_single_step_through_delay_p (gdbarch));
1334   fprintf_unfiltered (file,
1335                       "gdbarch_dump: single_step_through_delay = <%s>\n",
1336                       host_address_to_string (gdbarch->single_step_through_delay));
1337   fprintf_unfiltered (file,
1338                       "gdbarch_dump: gdbarch_skip_entrypoint_p() = %d\n",
1339                       gdbarch_skip_entrypoint_p (gdbarch));
1340   fprintf_unfiltered (file,
1341                       "gdbarch_dump: skip_entrypoint = <%s>\n",
1342                       host_address_to_string (gdbarch->skip_entrypoint));
1343   fprintf_unfiltered (file,
1344                       "gdbarch_dump: gdbarch_skip_main_prologue_p() = %d\n",
1345                       gdbarch_skip_main_prologue_p (gdbarch));
1346   fprintf_unfiltered (file,
1347                       "gdbarch_dump: skip_main_prologue = <%s>\n",
1348                       host_address_to_string (gdbarch->skip_main_prologue));
1349   fprintf_unfiltered (file,
1350                       "gdbarch_dump: skip_permanent_breakpoint = <%s>\n",
1351                       host_address_to_string (gdbarch->skip_permanent_breakpoint));
1352   fprintf_unfiltered (file,
1353                       "gdbarch_dump: skip_prologue = <%s>\n",
1354                       host_address_to_string (gdbarch->skip_prologue));
1355   fprintf_unfiltered (file,
1356                       "gdbarch_dump: skip_solib_resolver = <%s>\n",
1357                       host_address_to_string (gdbarch->skip_solib_resolver));
1358   fprintf_unfiltered (file,
1359                       "gdbarch_dump: skip_trampoline_code = <%s>\n",
1360                       host_address_to_string (gdbarch->skip_trampoline_code));
1361   fprintf_unfiltered (file,
1362                       "gdbarch_dump: gdbarch_software_single_step_p() = %d\n",
1363                       gdbarch_software_single_step_p (gdbarch));
1364   fprintf_unfiltered (file,
1365                       "gdbarch_dump: software_single_step = <%s>\n",
1366                       host_address_to_string (gdbarch->software_single_step));
1367   fprintf_unfiltered (file,
1368                       "gdbarch_dump: sofun_address_maybe_missing = %s\n",
1369                       plongest (gdbarch->sofun_address_maybe_missing));
1370   fprintf_unfiltered (file,
1371                       "gdbarch_dump: solib_symbols_extension = %s\n",
1372                       pstring (gdbarch->solib_symbols_extension));
1373   fprintf_unfiltered (file,
1374                       "gdbarch_dump: sp_regnum = %s\n",
1375                       plongest (gdbarch->sp_regnum));
1376   fprintf_unfiltered (file,
1377                       "gdbarch_dump: stab_reg_to_regnum = <%s>\n",
1378                       host_address_to_string (gdbarch->stab_reg_to_regnum));
1379   fprintf_unfiltered (file,
1380                       "gdbarch_dump: stabs_argument_has_addr = <%s>\n",
1381                       host_address_to_string (gdbarch->stabs_argument_has_addr));
1382   fprintf_unfiltered (file,
1383                       "gdbarch_dump: stack_frame_destroyed_p = <%s>\n",
1384                       host_address_to_string (gdbarch->stack_frame_destroyed_p));
1385   fprintf_unfiltered (file,
1386                       "gdbarch_dump: stap_gdb_register_prefix = %s\n",
1387                       pstring (gdbarch->stap_gdb_register_prefix));
1388   fprintf_unfiltered (file,
1389                       "gdbarch_dump: stap_gdb_register_suffix = %s\n",
1390                       pstring (gdbarch->stap_gdb_register_suffix));
1391   fprintf_unfiltered (file,
1392                       "gdbarch_dump: stap_integer_prefixes = %s\n",
1393                       pstring_list (gdbarch->stap_integer_prefixes));
1394   fprintf_unfiltered (file,
1395                       "gdbarch_dump: stap_integer_suffixes = %s\n",
1396                       pstring_list (gdbarch->stap_integer_suffixes));
1397   fprintf_unfiltered (file,
1398                       "gdbarch_dump: gdbarch_stap_is_single_operand_p() = %d\n",
1399                       gdbarch_stap_is_single_operand_p (gdbarch));
1400   fprintf_unfiltered (file,
1401                       "gdbarch_dump: stap_is_single_operand = <%s>\n",
1402                       host_address_to_string (gdbarch->stap_is_single_operand));
1403   fprintf_unfiltered (file,
1404                       "gdbarch_dump: gdbarch_stap_parse_special_token_p() = %d\n",
1405                       gdbarch_stap_parse_special_token_p (gdbarch));
1406   fprintf_unfiltered (file,
1407                       "gdbarch_dump: stap_parse_special_token = <%s>\n",
1408                       host_address_to_string (gdbarch->stap_parse_special_token));
1409   fprintf_unfiltered (file,
1410                       "gdbarch_dump: stap_register_indirection_prefixes = %s\n",
1411                       pstring_list (gdbarch->stap_register_indirection_prefixes));
1412   fprintf_unfiltered (file,
1413                       "gdbarch_dump: stap_register_indirection_suffixes = %s\n",
1414                       pstring_list (gdbarch->stap_register_indirection_suffixes));
1415   fprintf_unfiltered (file,
1416                       "gdbarch_dump: stap_register_prefixes = %s\n",
1417                       pstring_list (gdbarch->stap_register_prefixes));
1418   fprintf_unfiltered (file,
1419                       "gdbarch_dump: stap_register_suffixes = %s\n",
1420                       pstring_list (gdbarch->stap_register_suffixes));
1421   fprintf_unfiltered (file,
1422                       "gdbarch_dump: gdbarch_static_transform_name_p() = %d\n",
1423                       gdbarch_static_transform_name_p (gdbarch));
1424   fprintf_unfiltered (file,
1425                       "gdbarch_dump: static_transform_name = <%s>\n",
1426                       host_address_to_string (gdbarch->static_transform_name));
1427   fprintf_unfiltered (file,
1428                       "gdbarch_dump: sw_breakpoint_from_kind = <%s>\n",
1429                       host_address_to_string (gdbarch->sw_breakpoint_from_kind));
1430   fprintf_unfiltered (file,
1431                       "gdbarch_dump: syscalls_info = %s\n",
1432                       host_address_to_string (gdbarch->syscalls_info));
1433   fprintf_unfiltered (file,
1434                       "gdbarch_dump: target_desc = %s\n",
1435                       host_address_to_string (gdbarch->target_desc));
1436   fprintf_unfiltered (file,
1437                       "gdbarch_dump: type_align = <%s>\n",
1438                       host_address_to_string (gdbarch->type_align));
1439   fprintf_unfiltered (file,
1440                       "gdbarch_dump: gdbarch_unwind_pc_p() = %d\n",
1441                       gdbarch_unwind_pc_p (gdbarch));
1442   fprintf_unfiltered (file,
1443                       "gdbarch_dump: unwind_pc = <%s>\n",
1444                       host_address_to_string (gdbarch->unwind_pc));
1445   fprintf_unfiltered (file,
1446                       "gdbarch_dump: gdbarch_unwind_sp_p() = %d\n",
1447                       gdbarch_unwind_sp_p (gdbarch));
1448   fprintf_unfiltered (file,
1449                       "gdbarch_dump: unwind_sp = <%s>\n",
1450                       host_address_to_string (gdbarch->unwind_sp));
1451   fprintf_unfiltered (file,
1452                       "gdbarch_dump: valid_disassembler_options = %s\n",
1453                       host_address_to_string (gdbarch->valid_disassembler_options));
1454   fprintf_unfiltered (file,
1455                       "gdbarch_dump: value_from_register = <%s>\n",
1456                       host_address_to_string (gdbarch->value_from_register));
1457   fprintf_unfiltered (file,
1458                       "gdbarch_dump: value_to_register = <%s>\n",
1459                       host_address_to_string (gdbarch->value_to_register));
1460   fprintf_unfiltered (file,
1461                       "gdbarch_dump: vbit_in_delta = %s\n",
1462                       plongest (gdbarch->vbit_in_delta));
1463   fprintf_unfiltered (file,
1464                       "gdbarch_dump: virtual_frame_pointer = <%s>\n",
1465                       host_address_to_string (gdbarch->virtual_frame_pointer));
1466   fprintf_unfiltered (file,
1467                       "gdbarch_dump: vsyscall_range = <%s>\n",
1468                       host_address_to_string (gdbarch->vsyscall_range));
1469   fprintf_unfiltered (file,
1470                       "gdbarch_dump: vtable_function_descriptors = %s\n",
1471                       plongest (gdbarch->vtable_function_descriptors));
1472   fprintf_unfiltered (file,
1473                       "gdbarch_dump: wchar_bit = %s\n",
1474                       plongest (gdbarch->wchar_bit));
1475   fprintf_unfiltered (file,
1476                       "gdbarch_dump: wchar_signed = %s\n",
1477                       plongest (gdbarch->wchar_signed));
1478   fprintf_unfiltered (file,
1479                       "gdbarch_dump: gdbarch_write_pc_p() = %d\n",
1480                       gdbarch_write_pc_p (gdbarch));
1481   fprintf_unfiltered (file,
1482                       "gdbarch_dump: write_pc = <%s>\n",
1483                       host_address_to_string (gdbarch->write_pc));
1484   fprintf_unfiltered (file,
1485                       "gdbarch_dump: xml_syscall_file = %s\n",
1486                       pstring (gdbarch->xml_syscall_file));
1487   if (gdbarch->dump_tdep != NULL)
1488     gdbarch->dump_tdep (gdbarch, file);
1489 }
1490
1491 struct gdbarch_tdep *
1492 gdbarch_tdep (struct gdbarch *gdbarch)
1493 {
1494   if (gdbarch_debug >= 2)
1495     fprintf_unfiltered (gdb_stdlog, "gdbarch_tdep called\n");
1496   return gdbarch->tdep;
1497 }
1498
1499
1500 const struct bfd_arch_info *
1501 gdbarch_bfd_arch_info (struct gdbarch *gdbarch)
1502 {
1503   gdb_assert (gdbarch != NULL);
1504   if (gdbarch_debug >= 2)
1505     fprintf_unfiltered (gdb_stdlog, "gdbarch_bfd_arch_info called\n");
1506   return gdbarch->bfd_arch_info;
1507 }
1508
1509 enum bfd_endian
1510 gdbarch_byte_order (struct gdbarch *gdbarch)
1511 {
1512   gdb_assert (gdbarch != NULL);
1513   if (gdbarch_debug >= 2)
1514     fprintf_unfiltered (gdb_stdlog, "gdbarch_byte_order called\n");
1515   return gdbarch->byte_order;
1516 }
1517
1518 enum bfd_endian
1519 gdbarch_byte_order_for_code (struct gdbarch *gdbarch)
1520 {
1521   gdb_assert (gdbarch != NULL);
1522   if (gdbarch_debug >= 2)
1523     fprintf_unfiltered (gdb_stdlog, "gdbarch_byte_order_for_code called\n");
1524   return gdbarch->byte_order_for_code;
1525 }
1526
1527 enum gdb_osabi
1528 gdbarch_osabi (struct gdbarch *gdbarch)
1529 {
1530   gdb_assert (gdbarch != NULL);
1531   if (gdbarch_debug >= 2)
1532     fprintf_unfiltered (gdb_stdlog, "gdbarch_osabi called\n");
1533   return gdbarch->osabi;
1534 }
1535
1536 const struct target_desc *
1537 gdbarch_target_desc (struct gdbarch *gdbarch)
1538 {
1539   gdb_assert (gdbarch != NULL);
1540   if (gdbarch_debug >= 2)
1541     fprintf_unfiltered (gdb_stdlog, "gdbarch_target_desc called\n");
1542   return gdbarch->target_desc;
1543 }
1544
1545 int
1546 gdbarch_bits_big_endian (struct gdbarch *gdbarch)
1547 {
1548   gdb_assert (gdbarch != NULL);
1549   /* Skip verify of bits_big_endian, invalid_p == 0 */
1550   if (gdbarch_debug >= 2)
1551     fprintf_unfiltered (gdb_stdlog, "gdbarch_bits_big_endian called\n");
1552   return gdbarch->bits_big_endian;
1553 }
1554
1555 void
1556 set_gdbarch_bits_big_endian (struct gdbarch *gdbarch,
1557                              int bits_big_endian)
1558 {
1559   gdbarch->bits_big_endian = bits_big_endian;
1560 }
1561
1562 int
1563 gdbarch_short_bit (struct gdbarch *gdbarch)
1564 {
1565   gdb_assert (gdbarch != NULL);
1566   /* Skip verify of short_bit, invalid_p == 0 */
1567   if (gdbarch_debug >= 2)
1568     fprintf_unfiltered (gdb_stdlog, "gdbarch_short_bit called\n");
1569   return gdbarch->short_bit;
1570 }
1571
1572 void
1573 set_gdbarch_short_bit (struct gdbarch *gdbarch,
1574                        int short_bit)
1575 {
1576   gdbarch->short_bit = short_bit;
1577 }
1578
1579 int
1580 gdbarch_int_bit (struct gdbarch *gdbarch)
1581 {
1582   gdb_assert (gdbarch != NULL);
1583   /* Skip verify of int_bit, invalid_p == 0 */
1584   if (gdbarch_debug >= 2)
1585     fprintf_unfiltered (gdb_stdlog, "gdbarch_int_bit called\n");
1586   return gdbarch->int_bit;
1587 }
1588
1589 void
1590 set_gdbarch_int_bit (struct gdbarch *gdbarch,
1591                      int int_bit)
1592 {
1593   gdbarch->int_bit = int_bit;
1594 }
1595
1596 int
1597 gdbarch_long_bit (struct gdbarch *gdbarch)
1598 {
1599   gdb_assert (gdbarch != NULL);
1600   /* Skip verify of long_bit, invalid_p == 0 */
1601   if (gdbarch_debug >= 2)
1602     fprintf_unfiltered (gdb_stdlog, "gdbarch_long_bit called\n");
1603   return gdbarch->long_bit;
1604 }
1605
1606 void
1607 set_gdbarch_long_bit (struct gdbarch *gdbarch,
1608                       int long_bit)
1609 {
1610   gdbarch->long_bit = long_bit;
1611 }
1612
1613 int
1614 gdbarch_long_long_bit (struct gdbarch *gdbarch)
1615 {
1616   gdb_assert (gdbarch != NULL);
1617   /* Skip verify of long_long_bit, invalid_p == 0 */
1618   if (gdbarch_debug >= 2)
1619     fprintf_unfiltered (gdb_stdlog, "gdbarch_long_long_bit called\n");
1620   return gdbarch->long_long_bit;
1621 }
1622
1623 void
1624 set_gdbarch_long_long_bit (struct gdbarch *gdbarch,
1625                            int long_long_bit)
1626 {
1627   gdbarch->long_long_bit = long_long_bit;
1628 }
1629
1630 int
1631 gdbarch_half_bit (struct gdbarch *gdbarch)
1632 {
1633   gdb_assert (gdbarch != NULL);
1634   /* Skip verify of half_bit, invalid_p == 0 */
1635   if (gdbarch_debug >= 2)
1636     fprintf_unfiltered (gdb_stdlog, "gdbarch_half_bit called\n");
1637   return gdbarch->half_bit;
1638 }
1639
1640 void
1641 set_gdbarch_half_bit (struct gdbarch *gdbarch,
1642                       int half_bit)
1643 {
1644   gdbarch->half_bit = half_bit;
1645 }
1646
1647 const struct floatformat **
1648 gdbarch_half_format (struct gdbarch *gdbarch)
1649 {
1650   gdb_assert (gdbarch != NULL);
1651   if (gdbarch_debug >= 2)
1652     fprintf_unfiltered (gdb_stdlog, "gdbarch_half_format called\n");
1653   return gdbarch->half_format;
1654 }
1655
1656 void
1657 set_gdbarch_half_format (struct gdbarch *gdbarch,
1658                          const struct floatformat ** half_format)
1659 {
1660   gdbarch->half_format = half_format;
1661 }
1662
1663 int
1664 gdbarch_float_bit (struct gdbarch *gdbarch)
1665 {
1666   gdb_assert (gdbarch != NULL);
1667   /* Skip verify of float_bit, invalid_p == 0 */
1668   if (gdbarch_debug >= 2)
1669     fprintf_unfiltered (gdb_stdlog, "gdbarch_float_bit called\n");
1670   return gdbarch->float_bit;
1671 }
1672
1673 void
1674 set_gdbarch_float_bit (struct gdbarch *gdbarch,
1675                        int float_bit)
1676 {
1677   gdbarch->float_bit = float_bit;
1678 }
1679
1680 const struct floatformat **
1681 gdbarch_float_format (struct gdbarch *gdbarch)
1682 {
1683   gdb_assert (gdbarch != NULL);
1684   if (gdbarch_debug >= 2)
1685     fprintf_unfiltered (gdb_stdlog, "gdbarch_float_format called\n");
1686   return gdbarch->float_format;
1687 }
1688
1689 void
1690 set_gdbarch_float_format (struct gdbarch *gdbarch,
1691                           const struct floatformat ** float_format)
1692 {
1693   gdbarch->float_format = float_format;
1694 }
1695
1696 int
1697 gdbarch_double_bit (struct gdbarch *gdbarch)
1698 {
1699   gdb_assert (gdbarch != NULL);
1700   /* Skip verify of double_bit, invalid_p == 0 */
1701   if (gdbarch_debug >= 2)
1702     fprintf_unfiltered (gdb_stdlog, "gdbarch_double_bit called\n");
1703   return gdbarch->double_bit;
1704 }
1705
1706 void
1707 set_gdbarch_double_bit (struct gdbarch *gdbarch,
1708                         int double_bit)
1709 {
1710   gdbarch->double_bit = double_bit;
1711 }
1712
1713 const struct floatformat **
1714 gdbarch_double_format (struct gdbarch *gdbarch)
1715 {
1716   gdb_assert (gdbarch != NULL);
1717   if (gdbarch_debug >= 2)
1718     fprintf_unfiltered (gdb_stdlog, "gdbarch_double_format called\n");
1719   return gdbarch->double_format;
1720 }
1721
1722 void
1723 set_gdbarch_double_format (struct gdbarch *gdbarch,
1724                            const struct floatformat ** double_format)
1725 {
1726   gdbarch->double_format = double_format;
1727 }
1728
1729 int
1730 gdbarch_long_double_bit (struct gdbarch *gdbarch)
1731 {
1732   gdb_assert (gdbarch != NULL);
1733   /* Skip verify of long_double_bit, invalid_p == 0 */
1734   if (gdbarch_debug >= 2)
1735     fprintf_unfiltered (gdb_stdlog, "gdbarch_long_double_bit called\n");
1736   return gdbarch->long_double_bit;
1737 }
1738
1739 void
1740 set_gdbarch_long_double_bit (struct gdbarch *gdbarch,
1741                              int long_double_bit)
1742 {
1743   gdbarch->long_double_bit = long_double_bit;
1744 }
1745
1746 const struct floatformat **
1747 gdbarch_long_double_format (struct gdbarch *gdbarch)
1748 {
1749   gdb_assert (gdbarch != NULL);
1750   if (gdbarch_debug >= 2)
1751     fprintf_unfiltered (gdb_stdlog, "gdbarch_long_double_format called\n");
1752   return gdbarch->long_double_format;
1753 }
1754
1755 void
1756 set_gdbarch_long_double_format (struct gdbarch *gdbarch,
1757                                 const struct floatformat ** long_double_format)
1758 {
1759   gdbarch->long_double_format = long_double_format;
1760 }
1761
1762 int
1763 gdbarch_wchar_bit (struct gdbarch *gdbarch)
1764 {
1765   gdb_assert (gdbarch != NULL);
1766   /* Skip verify of wchar_bit, invalid_p == 0 */
1767   if (gdbarch_debug >= 2)
1768     fprintf_unfiltered (gdb_stdlog, "gdbarch_wchar_bit called\n");
1769   return gdbarch->wchar_bit;
1770 }
1771
1772 void
1773 set_gdbarch_wchar_bit (struct gdbarch *gdbarch,
1774                        int wchar_bit)
1775 {
1776   gdbarch->wchar_bit = wchar_bit;
1777 }
1778
1779 int
1780 gdbarch_wchar_signed (struct gdbarch *gdbarch)
1781 {
1782   gdb_assert (gdbarch != NULL);
1783   /* Check variable changed from pre-default.  */
1784   gdb_assert (gdbarch->wchar_signed != -1);
1785   if (gdbarch_debug >= 2)
1786     fprintf_unfiltered (gdb_stdlog, "gdbarch_wchar_signed called\n");
1787   return gdbarch->wchar_signed;
1788 }
1789
1790 void
1791 set_gdbarch_wchar_signed (struct gdbarch *gdbarch,
1792                           int wchar_signed)
1793 {
1794   gdbarch->wchar_signed = wchar_signed;
1795 }
1796
1797 const struct floatformat **
1798 gdbarch_floatformat_for_type (struct gdbarch *gdbarch, const char *name, int length)
1799 {
1800   gdb_assert (gdbarch != NULL);
1801   gdb_assert (gdbarch->floatformat_for_type != NULL);
1802   if (gdbarch_debug >= 2)
1803     fprintf_unfiltered (gdb_stdlog, "gdbarch_floatformat_for_type called\n");
1804   return gdbarch->floatformat_for_type (gdbarch, name, length);
1805 }
1806
1807 void
1808 set_gdbarch_floatformat_for_type (struct gdbarch *gdbarch,
1809                                   gdbarch_floatformat_for_type_ftype floatformat_for_type)
1810 {
1811   gdbarch->floatformat_for_type = floatformat_for_type;
1812 }
1813
1814 int
1815 gdbarch_ptr_bit (struct gdbarch *gdbarch)
1816 {
1817   gdb_assert (gdbarch != NULL);
1818   /* Skip verify of ptr_bit, invalid_p == 0 */
1819   if (gdbarch_debug >= 2)
1820     fprintf_unfiltered (gdb_stdlog, "gdbarch_ptr_bit called\n");
1821   return gdbarch->ptr_bit;
1822 }
1823
1824 void
1825 set_gdbarch_ptr_bit (struct gdbarch *gdbarch,
1826                      int ptr_bit)
1827 {
1828   gdbarch->ptr_bit = ptr_bit;
1829 }
1830
1831 int
1832 gdbarch_addr_bit (struct gdbarch *gdbarch)
1833 {
1834   gdb_assert (gdbarch != NULL);
1835   /* Check variable changed from pre-default.  */
1836   gdb_assert (gdbarch->addr_bit != 0);
1837   if (gdbarch_debug >= 2)
1838     fprintf_unfiltered (gdb_stdlog, "gdbarch_addr_bit called\n");
1839   return gdbarch->addr_bit;
1840 }
1841
1842 void
1843 set_gdbarch_addr_bit (struct gdbarch *gdbarch,
1844                       int addr_bit)
1845 {
1846   gdbarch->addr_bit = addr_bit;
1847 }
1848
1849 int
1850 gdbarch_dwarf2_addr_size (struct gdbarch *gdbarch)
1851 {
1852   gdb_assert (gdbarch != NULL);
1853   /* Check variable changed from pre-default.  */
1854   gdb_assert (gdbarch->dwarf2_addr_size != 0);
1855   if (gdbarch_debug >= 2)
1856     fprintf_unfiltered (gdb_stdlog, "gdbarch_dwarf2_addr_size called\n");
1857   return gdbarch->dwarf2_addr_size;
1858 }
1859
1860 void
1861 set_gdbarch_dwarf2_addr_size (struct gdbarch *gdbarch,
1862                               int dwarf2_addr_size)
1863 {
1864   gdbarch->dwarf2_addr_size = dwarf2_addr_size;
1865 }
1866
1867 int
1868 gdbarch_char_signed (struct gdbarch *gdbarch)
1869 {
1870   gdb_assert (gdbarch != NULL);
1871   /* Check variable changed from pre-default.  */
1872   gdb_assert (gdbarch->char_signed != -1);
1873   if (gdbarch_debug >= 2)
1874     fprintf_unfiltered (gdb_stdlog, "gdbarch_char_signed called\n");
1875   return gdbarch->char_signed;
1876 }
1877
1878 void
1879 set_gdbarch_char_signed (struct gdbarch *gdbarch,
1880                          int char_signed)
1881 {
1882   gdbarch->char_signed = char_signed;
1883 }
1884
1885 int
1886 gdbarch_read_pc_p (struct gdbarch *gdbarch)
1887 {
1888   gdb_assert (gdbarch != NULL);
1889   return gdbarch->read_pc != NULL;
1890 }
1891
1892 CORE_ADDR
1893 gdbarch_read_pc (struct gdbarch *gdbarch, readable_regcache *regcache)
1894 {
1895   gdb_assert (gdbarch != NULL);
1896   gdb_assert (gdbarch->read_pc != NULL);
1897   if (gdbarch_debug >= 2)
1898     fprintf_unfiltered (gdb_stdlog, "gdbarch_read_pc called\n");
1899   return gdbarch->read_pc (regcache);
1900 }
1901
1902 void
1903 set_gdbarch_read_pc (struct gdbarch *gdbarch,
1904                      gdbarch_read_pc_ftype read_pc)
1905 {
1906   gdbarch->read_pc = read_pc;
1907 }
1908
1909 int
1910 gdbarch_write_pc_p (struct gdbarch *gdbarch)
1911 {
1912   gdb_assert (gdbarch != NULL);
1913   return gdbarch->write_pc != NULL;
1914 }
1915
1916 void
1917 gdbarch_write_pc (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR val)
1918 {
1919   gdb_assert (gdbarch != NULL);
1920   gdb_assert (gdbarch->write_pc != NULL);
1921   if (gdbarch_debug >= 2)
1922     fprintf_unfiltered (gdb_stdlog, "gdbarch_write_pc called\n");
1923   gdbarch->write_pc (regcache, val);
1924 }
1925
1926 void
1927 set_gdbarch_write_pc (struct gdbarch *gdbarch,
1928                       gdbarch_write_pc_ftype write_pc)
1929 {
1930   gdbarch->write_pc = write_pc;
1931 }
1932
1933 void
1934 gdbarch_virtual_frame_pointer (struct gdbarch *gdbarch, CORE_ADDR pc, int *frame_regnum, LONGEST *frame_offset)
1935 {
1936   gdb_assert (gdbarch != NULL);
1937   gdb_assert (gdbarch->virtual_frame_pointer != NULL);
1938   if (gdbarch_debug >= 2)
1939     fprintf_unfiltered (gdb_stdlog, "gdbarch_virtual_frame_pointer called\n");
1940   gdbarch->virtual_frame_pointer (gdbarch, pc, frame_regnum, frame_offset);
1941 }
1942
1943 void
1944 set_gdbarch_virtual_frame_pointer (struct gdbarch *gdbarch,
1945                                    gdbarch_virtual_frame_pointer_ftype virtual_frame_pointer)
1946 {
1947   gdbarch->virtual_frame_pointer = virtual_frame_pointer;
1948 }
1949
1950 int
1951 gdbarch_pseudo_register_read_p (struct gdbarch *gdbarch)
1952 {
1953   gdb_assert (gdbarch != NULL);
1954   return gdbarch->pseudo_register_read != NULL;
1955 }
1956
1957 enum register_status
1958 gdbarch_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache, int cookednum, gdb_byte *buf)
1959 {
1960   gdb_assert (gdbarch != NULL);
1961   gdb_assert (gdbarch->pseudo_register_read != NULL);
1962   if (gdbarch_debug >= 2)
1963     fprintf_unfiltered (gdb_stdlog, "gdbarch_pseudo_register_read called\n");
1964   return gdbarch->pseudo_register_read (gdbarch, regcache, cookednum, buf);
1965 }
1966
1967 void
1968 set_gdbarch_pseudo_register_read (struct gdbarch *gdbarch,
1969                                   gdbarch_pseudo_register_read_ftype pseudo_register_read)
1970 {
1971   gdbarch->pseudo_register_read = pseudo_register_read;
1972 }
1973
1974 int
1975 gdbarch_pseudo_register_read_value_p (struct gdbarch *gdbarch)
1976 {
1977   gdb_assert (gdbarch != NULL);
1978   return gdbarch->pseudo_register_read_value != NULL;
1979 }
1980
1981 struct value *
1982 gdbarch_pseudo_register_read_value (struct gdbarch *gdbarch, readable_regcache *regcache, int cookednum)
1983 {
1984   gdb_assert (gdbarch != NULL);
1985   gdb_assert (gdbarch->pseudo_register_read_value != NULL);
1986   if (gdbarch_debug >= 2)
1987     fprintf_unfiltered (gdb_stdlog, "gdbarch_pseudo_register_read_value called\n");
1988   return gdbarch->pseudo_register_read_value (gdbarch, regcache, cookednum);
1989 }
1990
1991 void
1992 set_gdbarch_pseudo_register_read_value (struct gdbarch *gdbarch,
1993                                         gdbarch_pseudo_register_read_value_ftype pseudo_register_read_value)
1994 {
1995   gdbarch->pseudo_register_read_value = pseudo_register_read_value;
1996 }
1997
1998 int
1999 gdbarch_pseudo_register_write_p (struct gdbarch *gdbarch)
2000 {
2001   gdb_assert (gdbarch != NULL);
2002   return gdbarch->pseudo_register_write != NULL;
2003 }
2004
2005 void
2006 gdbarch_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, const gdb_byte *buf)
2007 {
2008   gdb_assert (gdbarch != NULL);
2009   gdb_assert (gdbarch->pseudo_register_write != NULL);
2010   if (gdbarch_debug >= 2)
2011     fprintf_unfiltered (gdb_stdlog, "gdbarch_pseudo_register_write called\n");
2012   gdbarch->pseudo_register_write (gdbarch, regcache, cookednum, buf);
2013 }
2014
2015 void
2016 set_gdbarch_pseudo_register_write (struct gdbarch *gdbarch,
2017                                    gdbarch_pseudo_register_write_ftype pseudo_register_write)
2018 {
2019   gdbarch->pseudo_register_write = pseudo_register_write;
2020 }
2021
2022 int
2023 gdbarch_num_regs (struct gdbarch *gdbarch)
2024 {
2025   gdb_assert (gdbarch != NULL);
2026   /* Check variable changed from pre-default.  */
2027   gdb_assert (gdbarch->num_regs != -1);
2028   if (gdbarch_debug >= 2)
2029     fprintf_unfiltered (gdb_stdlog, "gdbarch_num_regs called\n");
2030   return gdbarch->num_regs;
2031 }
2032
2033 void
2034 set_gdbarch_num_regs (struct gdbarch *gdbarch,
2035                       int num_regs)
2036 {
2037   gdbarch->num_regs = num_regs;
2038 }
2039
2040 int
2041 gdbarch_num_pseudo_regs (struct gdbarch *gdbarch)
2042 {
2043   gdb_assert (gdbarch != NULL);
2044   /* Skip verify of num_pseudo_regs, invalid_p == 0 */
2045   if (gdbarch_debug >= 2)
2046     fprintf_unfiltered (gdb_stdlog, "gdbarch_num_pseudo_regs called\n");
2047   return gdbarch->num_pseudo_regs;
2048 }
2049
2050 void
2051 set_gdbarch_num_pseudo_regs (struct gdbarch *gdbarch,
2052                              int num_pseudo_regs)
2053 {
2054   gdbarch->num_pseudo_regs = num_pseudo_regs;
2055 }
2056
2057 int
2058 gdbarch_ax_pseudo_register_collect_p (struct gdbarch *gdbarch)
2059 {
2060   gdb_assert (gdbarch != NULL);
2061   return gdbarch->ax_pseudo_register_collect != NULL;
2062 }
2063
2064 int
2065 gdbarch_ax_pseudo_register_collect (struct gdbarch *gdbarch, struct agent_expr *ax, int reg)
2066 {
2067   gdb_assert (gdbarch != NULL);
2068   gdb_assert (gdbarch->ax_pseudo_register_collect != NULL);
2069   if (gdbarch_debug >= 2)
2070     fprintf_unfiltered (gdb_stdlog, "gdbarch_ax_pseudo_register_collect called\n");
2071   return gdbarch->ax_pseudo_register_collect (gdbarch, ax, reg);
2072 }
2073
2074 void
2075 set_gdbarch_ax_pseudo_register_collect (struct gdbarch *gdbarch,
2076                                         gdbarch_ax_pseudo_register_collect_ftype ax_pseudo_register_collect)
2077 {
2078   gdbarch->ax_pseudo_register_collect = ax_pseudo_register_collect;
2079 }
2080
2081 int
2082 gdbarch_ax_pseudo_register_push_stack_p (struct gdbarch *gdbarch)
2083 {
2084   gdb_assert (gdbarch != NULL);
2085   return gdbarch->ax_pseudo_register_push_stack != NULL;
2086 }
2087
2088 int
2089 gdbarch_ax_pseudo_register_push_stack (struct gdbarch *gdbarch, struct agent_expr *ax, int reg)
2090 {
2091   gdb_assert (gdbarch != NULL);
2092   gdb_assert (gdbarch->ax_pseudo_register_push_stack != NULL);
2093   if (gdbarch_debug >= 2)
2094     fprintf_unfiltered (gdb_stdlog, "gdbarch_ax_pseudo_register_push_stack called\n");
2095   return gdbarch->ax_pseudo_register_push_stack (gdbarch, ax, reg);
2096 }
2097
2098 void
2099 set_gdbarch_ax_pseudo_register_push_stack (struct gdbarch *gdbarch,
2100                                            gdbarch_ax_pseudo_register_push_stack_ftype ax_pseudo_register_push_stack)
2101 {
2102   gdbarch->ax_pseudo_register_push_stack = ax_pseudo_register_push_stack;
2103 }
2104
2105 int
2106 gdbarch_handle_segmentation_fault_p (struct gdbarch *gdbarch)
2107 {
2108   gdb_assert (gdbarch != NULL);
2109   return gdbarch->handle_segmentation_fault != NULL;
2110 }
2111
2112 void
2113 gdbarch_handle_segmentation_fault (struct gdbarch *gdbarch, struct ui_out *uiout)
2114 {
2115   gdb_assert (gdbarch != NULL);
2116   gdb_assert (gdbarch->handle_segmentation_fault != NULL);
2117   if (gdbarch_debug >= 2)
2118     fprintf_unfiltered (gdb_stdlog, "gdbarch_handle_segmentation_fault called\n");
2119   gdbarch->handle_segmentation_fault (gdbarch, uiout);
2120 }
2121
2122 void
2123 set_gdbarch_handle_segmentation_fault (struct gdbarch *gdbarch,
2124                                        gdbarch_handle_segmentation_fault_ftype handle_segmentation_fault)
2125 {
2126   gdbarch->handle_segmentation_fault = handle_segmentation_fault;
2127 }
2128
2129 int
2130 gdbarch_sp_regnum (struct gdbarch *gdbarch)
2131 {
2132   gdb_assert (gdbarch != NULL);
2133   /* Skip verify of sp_regnum, invalid_p == 0 */
2134   if (gdbarch_debug >= 2)
2135     fprintf_unfiltered (gdb_stdlog, "gdbarch_sp_regnum called\n");
2136   return gdbarch->sp_regnum;
2137 }
2138
2139 void
2140 set_gdbarch_sp_regnum (struct gdbarch *gdbarch,
2141                        int sp_regnum)
2142 {
2143   gdbarch->sp_regnum = sp_regnum;
2144 }
2145
2146 int
2147 gdbarch_pc_regnum (struct gdbarch *gdbarch)
2148 {
2149   gdb_assert (gdbarch != NULL);
2150   /* Skip verify of pc_regnum, invalid_p == 0 */
2151   if (gdbarch_debug >= 2)
2152     fprintf_unfiltered (gdb_stdlog, "gdbarch_pc_regnum called\n");
2153   return gdbarch->pc_regnum;
2154 }
2155
2156 void
2157 set_gdbarch_pc_regnum (struct gdbarch *gdbarch,
2158                        int pc_regnum)
2159 {
2160   gdbarch->pc_regnum = pc_regnum;
2161 }
2162
2163 int
2164 gdbarch_ps_regnum (struct gdbarch *gdbarch)
2165 {
2166   gdb_assert (gdbarch != NULL);
2167   /* Skip verify of ps_regnum, invalid_p == 0 */
2168   if (gdbarch_debug >= 2)
2169     fprintf_unfiltered (gdb_stdlog, "gdbarch_ps_regnum called\n");
2170   return gdbarch->ps_regnum;
2171 }
2172
2173 void
2174 set_gdbarch_ps_regnum (struct gdbarch *gdbarch,
2175                        int ps_regnum)
2176 {
2177   gdbarch->ps_regnum = ps_regnum;
2178 }
2179
2180 int
2181 gdbarch_fp0_regnum (struct gdbarch *gdbarch)
2182 {
2183   gdb_assert (gdbarch != NULL);
2184   /* Skip verify of fp0_regnum, invalid_p == 0 */
2185   if (gdbarch_debug >= 2)
2186     fprintf_unfiltered (gdb_stdlog, "gdbarch_fp0_regnum called\n");
2187   return gdbarch->fp0_regnum;
2188 }
2189
2190 void
2191 set_gdbarch_fp0_regnum (struct gdbarch *gdbarch,
2192                         int fp0_regnum)
2193 {
2194   gdbarch->fp0_regnum = fp0_regnum;
2195 }
2196
2197 int
2198 gdbarch_stab_reg_to_regnum (struct gdbarch *gdbarch, int stab_regnr)
2199 {
2200   gdb_assert (gdbarch != NULL);
2201   gdb_assert (gdbarch->stab_reg_to_regnum != NULL);
2202   if (gdbarch_debug >= 2)
2203     fprintf_unfiltered (gdb_stdlog, "gdbarch_stab_reg_to_regnum called\n");
2204   return gdbarch->stab_reg_to_regnum (gdbarch, stab_regnr);
2205 }
2206
2207 void
2208 set_gdbarch_stab_reg_to_regnum (struct gdbarch *gdbarch,
2209                                 gdbarch_stab_reg_to_regnum_ftype stab_reg_to_regnum)
2210 {
2211   gdbarch->stab_reg_to_regnum = stab_reg_to_regnum;
2212 }
2213
2214 int
2215 gdbarch_ecoff_reg_to_regnum (struct gdbarch *gdbarch, int ecoff_regnr)
2216 {
2217   gdb_assert (gdbarch != NULL);
2218   gdb_assert (gdbarch->ecoff_reg_to_regnum != NULL);
2219   if (gdbarch_debug >= 2)
2220     fprintf_unfiltered (gdb_stdlog, "gdbarch_ecoff_reg_to_regnum called\n");
2221   return gdbarch->ecoff_reg_to_regnum (gdbarch, ecoff_regnr);
2222 }
2223
2224 void
2225 set_gdbarch_ecoff_reg_to_regnum (struct gdbarch *gdbarch,
2226                                  gdbarch_ecoff_reg_to_regnum_ftype ecoff_reg_to_regnum)
2227 {
2228   gdbarch->ecoff_reg_to_regnum = ecoff_reg_to_regnum;
2229 }
2230
2231 int
2232 gdbarch_sdb_reg_to_regnum (struct gdbarch *gdbarch, int sdb_regnr)
2233 {
2234   gdb_assert (gdbarch != NULL);
2235   gdb_assert (gdbarch->sdb_reg_to_regnum != NULL);
2236   if (gdbarch_debug >= 2)
2237     fprintf_unfiltered (gdb_stdlog, "gdbarch_sdb_reg_to_regnum called\n");
2238   return gdbarch->sdb_reg_to_regnum (gdbarch, sdb_regnr);
2239 }
2240
2241 void
2242 set_gdbarch_sdb_reg_to_regnum (struct gdbarch *gdbarch,
2243                                gdbarch_sdb_reg_to_regnum_ftype sdb_reg_to_regnum)
2244 {
2245   gdbarch->sdb_reg_to_regnum = sdb_reg_to_regnum;
2246 }
2247
2248 int
2249 gdbarch_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, int dwarf2_regnr)
2250 {
2251   gdb_assert (gdbarch != NULL);
2252   gdb_assert (gdbarch->dwarf2_reg_to_regnum != NULL);
2253   if (gdbarch_debug >= 2)
2254     fprintf_unfiltered (gdb_stdlog, "gdbarch_dwarf2_reg_to_regnum called\n");
2255   return gdbarch->dwarf2_reg_to_regnum (gdbarch, dwarf2_regnr);
2256 }
2257
2258 void
2259 set_gdbarch_dwarf2_reg_to_regnum (struct gdbarch *gdbarch,
2260                                   gdbarch_dwarf2_reg_to_regnum_ftype dwarf2_reg_to_regnum)
2261 {
2262   gdbarch->dwarf2_reg_to_regnum = dwarf2_reg_to_regnum;
2263 }
2264
2265 const char *
2266 gdbarch_register_name (struct gdbarch *gdbarch, int regnr)
2267 {
2268   gdb_assert (gdbarch != NULL);
2269   gdb_assert (gdbarch->register_name != NULL);
2270   if (gdbarch_debug >= 2)
2271     fprintf_unfiltered (gdb_stdlog, "gdbarch_register_name called\n");
2272   return gdbarch->register_name (gdbarch, regnr);
2273 }
2274
2275 void
2276 set_gdbarch_register_name (struct gdbarch *gdbarch,
2277                            gdbarch_register_name_ftype register_name)
2278 {
2279   gdbarch->register_name = register_name;
2280 }
2281
2282 int
2283 gdbarch_register_type_p (struct gdbarch *gdbarch)
2284 {
2285   gdb_assert (gdbarch != NULL);
2286   return gdbarch->register_type != NULL;
2287 }
2288
2289 struct type *
2290 gdbarch_register_type (struct gdbarch *gdbarch, int reg_nr)
2291 {
2292   gdb_assert (gdbarch != NULL);
2293   gdb_assert (gdbarch->register_type != NULL);
2294   if (gdbarch_debug >= 2)
2295     fprintf_unfiltered (gdb_stdlog, "gdbarch_register_type called\n");
2296   return gdbarch->register_type (gdbarch, reg_nr);
2297 }
2298
2299 void
2300 set_gdbarch_register_type (struct gdbarch *gdbarch,
2301                            gdbarch_register_type_ftype register_type)
2302 {
2303   gdbarch->register_type = register_type;
2304 }
2305
2306 int
2307 gdbarch_dummy_id_p (struct gdbarch *gdbarch)
2308 {
2309   gdb_assert (gdbarch != NULL);
2310   return gdbarch->dummy_id != NULL;
2311 }
2312
2313 struct frame_id
2314 gdbarch_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
2315 {
2316   gdb_assert (gdbarch != NULL);
2317   gdb_assert (gdbarch->dummy_id != NULL);
2318   if (gdbarch_debug >= 2)
2319     fprintf_unfiltered (gdb_stdlog, "gdbarch_dummy_id called\n");
2320   return gdbarch->dummy_id (gdbarch, this_frame);
2321 }
2322
2323 void
2324 set_gdbarch_dummy_id (struct gdbarch *gdbarch,
2325                       gdbarch_dummy_id_ftype dummy_id)
2326 {
2327   gdbarch->dummy_id = dummy_id;
2328 }
2329
2330 int
2331 gdbarch_deprecated_fp_regnum (struct gdbarch *gdbarch)
2332 {
2333   gdb_assert (gdbarch != NULL);
2334   /* Skip verify of deprecated_fp_regnum, invalid_p == 0 */
2335   if (gdbarch_debug >= 2)
2336     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_fp_regnum called\n");
2337   return gdbarch->deprecated_fp_regnum;
2338 }
2339
2340 void
2341 set_gdbarch_deprecated_fp_regnum (struct gdbarch *gdbarch,
2342                                   int deprecated_fp_regnum)
2343 {
2344   gdbarch->deprecated_fp_regnum = deprecated_fp_regnum;
2345 }
2346
2347 int
2348 gdbarch_push_dummy_call_p (struct gdbarch *gdbarch)
2349 {
2350   gdb_assert (gdbarch != NULL);
2351   return gdbarch->push_dummy_call != NULL;
2352 }
2353
2354 CORE_ADDR
2355 gdbarch_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)
2356 {
2357   gdb_assert (gdbarch != NULL);
2358   gdb_assert (gdbarch->push_dummy_call != NULL);
2359   if (gdbarch_debug >= 2)
2360     fprintf_unfiltered (gdb_stdlog, "gdbarch_push_dummy_call called\n");
2361   return gdbarch->push_dummy_call (gdbarch, function, regcache, bp_addr, nargs, args, sp, struct_return, struct_addr);
2362 }
2363
2364 void
2365 set_gdbarch_push_dummy_call (struct gdbarch *gdbarch,
2366                              gdbarch_push_dummy_call_ftype push_dummy_call)
2367 {
2368   gdbarch->push_dummy_call = push_dummy_call;
2369 }
2370
2371 int
2372 gdbarch_call_dummy_location (struct gdbarch *gdbarch)
2373 {
2374   gdb_assert (gdbarch != NULL);
2375   /* Skip verify of call_dummy_location, invalid_p == 0 */
2376   if (gdbarch_debug >= 2)
2377     fprintf_unfiltered (gdb_stdlog, "gdbarch_call_dummy_location called\n");
2378   return gdbarch->call_dummy_location;
2379 }
2380
2381 void
2382 set_gdbarch_call_dummy_location (struct gdbarch *gdbarch,
2383                                  int call_dummy_location)
2384 {
2385   gdbarch->call_dummy_location = call_dummy_location;
2386 }
2387
2388 int
2389 gdbarch_push_dummy_code_p (struct gdbarch *gdbarch)
2390 {
2391   gdb_assert (gdbarch != NULL);
2392   return gdbarch->push_dummy_code != NULL;
2393 }
2394
2395 CORE_ADDR
2396 gdbarch_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)
2397 {
2398   gdb_assert (gdbarch != NULL);
2399   gdb_assert (gdbarch->push_dummy_code != NULL);
2400   if (gdbarch_debug >= 2)
2401     fprintf_unfiltered (gdb_stdlog, "gdbarch_push_dummy_code called\n");
2402   return gdbarch->push_dummy_code (gdbarch, sp, funaddr, args, nargs, value_type, real_pc, bp_addr, regcache);
2403 }
2404
2405 void
2406 set_gdbarch_push_dummy_code (struct gdbarch *gdbarch,
2407                              gdbarch_push_dummy_code_ftype push_dummy_code)
2408 {
2409   gdbarch->push_dummy_code = push_dummy_code;
2410 }
2411
2412 int
2413 gdbarch_code_of_frame_writable (struct gdbarch *gdbarch, struct frame_info *frame)
2414 {
2415   gdb_assert (gdbarch != NULL);
2416   gdb_assert (gdbarch->code_of_frame_writable != NULL);
2417   if (gdbarch_debug >= 2)
2418     fprintf_unfiltered (gdb_stdlog, "gdbarch_code_of_frame_writable called\n");
2419   return gdbarch->code_of_frame_writable (gdbarch, frame);
2420 }
2421
2422 void
2423 set_gdbarch_code_of_frame_writable (struct gdbarch *gdbarch,
2424                                     gdbarch_code_of_frame_writable_ftype code_of_frame_writable)
2425 {
2426   gdbarch->code_of_frame_writable = code_of_frame_writable;
2427 }
2428
2429 void
2430 gdbarch_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, int regnum, int all)
2431 {
2432   gdb_assert (gdbarch != NULL);
2433   gdb_assert (gdbarch->print_registers_info != NULL);
2434   if (gdbarch_debug >= 2)
2435     fprintf_unfiltered (gdb_stdlog, "gdbarch_print_registers_info called\n");
2436   gdbarch->print_registers_info (gdbarch, file, frame, regnum, all);
2437 }
2438
2439 void
2440 set_gdbarch_print_registers_info (struct gdbarch *gdbarch,
2441                                   gdbarch_print_registers_info_ftype print_registers_info)
2442 {
2443   gdbarch->print_registers_info = print_registers_info;
2444 }
2445
2446 void
2447 gdbarch_print_float_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, const char *args)
2448 {
2449   gdb_assert (gdbarch != NULL);
2450   gdb_assert (gdbarch->print_float_info != NULL);
2451   if (gdbarch_debug >= 2)
2452     fprintf_unfiltered (gdb_stdlog, "gdbarch_print_float_info called\n");
2453   gdbarch->print_float_info (gdbarch, file, frame, args);
2454 }
2455
2456 void
2457 set_gdbarch_print_float_info (struct gdbarch *gdbarch,
2458                               gdbarch_print_float_info_ftype print_float_info)
2459 {
2460   gdbarch->print_float_info = print_float_info;
2461 }
2462
2463 int
2464 gdbarch_print_vector_info_p (struct gdbarch *gdbarch)
2465 {
2466   gdb_assert (gdbarch != NULL);
2467   return gdbarch->print_vector_info != NULL;
2468 }
2469
2470 void
2471 gdbarch_print_vector_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, const char *args)
2472 {
2473   gdb_assert (gdbarch != NULL);
2474   gdb_assert (gdbarch->print_vector_info != NULL);
2475   if (gdbarch_debug >= 2)
2476     fprintf_unfiltered (gdb_stdlog, "gdbarch_print_vector_info called\n");
2477   gdbarch->print_vector_info (gdbarch, file, frame, args);
2478 }
2479
2480 void
2481 set_gdbarch_print_vector_info (struct gdbarch *gdbarch,
2482                                gdbarch_print_vector_info_ftype print_vector_info)
2483 {
2484   gdbarch->print_vector_info = print_vector_info;
2485 }
2486
2487 int
2488 gdbarch_register_sim_regno (struct gdbarch *gdbarch, int reg_nr)
2489 {
2490   gdb_assert (gdbarch != NULL);
2491   gdb_assert (gdbarch->register_sim_regno != NULL);
2492   if (gdbarch_debug >= 2)
2493     fprintf_unfiltered (gdb_stdlog, "gdbarch_register_sim_regno called\n");
2494   return gdbarch->register_sim_regno (gdbarch, reg_nr);
2495 }
2496
2497 void
2498 set_gdbarch_register_sim_regno (struct gdbarch *gdbarch,
2499                                 gdbarch_register_sim_regno_ftype register_sim_regno)
2500 {
2501   gdbarch->register_sim_regno = register_sim_regno;
2502 }
2503
2504 int
2505 gdbarch_cannot_fetch_register (struct gdbarch *gdbarch, int regnum)
2506 {
2507   gdb_assert (gdbarch != NULL);
2508   gdb_assert (gdbarch->cannot_fetch_register != NULL);
2509   if (gdbarch_debug >= 2)
2510     fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_fetch_register called\n");
2511   return gdbarch->cannot_fetch_register (gdbarch, regnum);
2512 }
2513
2514 void
2515 set_gdbarch_cannot_fetch_register (struct gdbarch *gdbarch,
2516                                    gdbarch_cannot_fetch_register_ftype cannot_fetch_register)
2517 {
2518   gdbarch->cannot_fetch_register = cannot_fetch_register;
2519 }
2520
2521 int
2522 gdbarch_cannot_store_register (struct gdbarch *gdbarch, int regnum)
2523 {
2524   gdb_assert (gdbarch != NULL);
2525   gdb_assert (gdbarch->cannot_store_register != NULL);
2526   if (gdbarch_debug >= 2)
2527     fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_store_register called\n");
2528   return gdbarch->cannot_store_register (gdbarch, regnum);
2529 }
2530
2531 void
2532 set_gdbarch_cannot_store_register (struct gdbarch *gdbarch,
2533                                    gdbarch_cannot_store_register_ftype cannot_store_register)
2534 {
2535   gdbarch->cannot_store_register = cannot_store_register;
2536 }
2537
2538 int
2539 gdbarch_get_longjmp_target_p (struct gdbarch *gdbarch)
2540 {
2541   gdb_assert (gdbarch != NULL);
2542   return gdbarch->get_longjmp_target != NULL;
2543 }
2544
2545 int
2546 gdbarch_get_longjmp_target (struct gdbarch *gdbarch, struct frame_info *frame, CORE_ADDR *pc)
2547 {
2548   gdb_assert (gdbarch != NULL);
2549   gdb_assert (gdbarch->get_longjmp_target != NULL);
2550   if (gdbarch_debug >= 2)
2551     fprintf_unfiltered (gdb_stdlog, "gdbarch_get_longjmp_target called\n");
2552   return gdbarch->get_longjmp_target (frame, pc);
2553 }
2554
2555 void
2556 set_gdbarch_get_longjmp_target (struct gdbarch *gdbarch,
2557                                 gdbarch_get_longjmp_target_ftype get_longjmp_target)
2558 {
2559   gdbarch->get_longjmp_target = get_longjmp_target;
2560 }
2561
2562 int
2563 gdbarch_believe_pcc_promotion (struct gdbarch *gdbarch)
2564 {
2565   gdb_assert (gdbarch != NULL);
2566   if (gdbarch_debug >= 2)
2567     fprintf_unfiltered (gdb_stdlog, "gdbarch_believe_pcc_promotion called\n");
2568   return gdbarch->believe_pcc_promotion;
2569 }
2570
2571 void
2572 set_gdbarch_believe_pcc_promotion (struct gdbarch *gdbarch,
2573                                    int believe_pcc_promotion)
2574 {
2575   gdbarch->believe_pcc_promotion = believe_pcc_promotion;
2576 }
2577
2578 int
2579 gdbarch_convert_register_p (struct gdbarch *gdbarch, int regnum, struct type *type)
2580 {
2581   gdb_assert (gdbarch != NULL);
2582   gdb_assert (gdbarch->convert_register_p != NULL);
2583   if (gdbarch_debug >= 2)
2584     fprintf_unfiltered (gdb_stdlog, "gdbarch_convert_register_p called\n");
2585   return gdbarch->convert_register_p (gdbarch, regnum, type);
2586 }
2587
2588 void
2589 set_gdbarch_convert_register_p (struct gdbarch *gdbarch,
2590                                 gdbarch_convert_register_p_ftype convert_register_p)
2591 {
2592   gdbarch->convert_register_p = convert_register_p;
2593 }
2594
2595 int
2596 gdbarch_register_to_value (struct gdbarch *gdbarch, struct frame_info *frame, int regnum, struct type *type, gdb_byte *buf, int *optimizedp, int *unavailablep)
2597 {
2598   gdb_assert (gdbarch != NULL);
2599   gdb_assert (gdbarch->register_to_value != NULL);
2600   if (gdbarch_debug >= 2)
2601     fprintf_unfiltered (gdb_stdlog, "gdbarch_register_to_value called\n");
2602   return gdbarch->register_to_value (frame, regnum, type, buf, optimizedp, unavailablep);
2603 }
2604
2605 void
2606 set_gdbarch_register_to_value (struct gdbarch *gdbarch,
2607                                gdbarch_register_to_value_ftype register_to_value)
2608 {
2609   gdbarch->register_to_value = register_to_value;
2610 }
2611
2612 void
2613 gdbarch_value_to_register (struct gdbarch *gdbarch, struct frame_info *frame, int regnum, struct type *type, const gdb_byte *buf)
2614 {
2615   gdb_assert (gdbarch != NULL);
2616   gdb_assert (gdbarch->value_to_register != NULL);
2617   if (gdbarch_debug >= 2)
2618     fprintf_unfiltered (gdb_stdlog, "gdbarch_value_to_register called\n");
2619   gdbarch->value_to_register (frame, regnum, type, buf);
2620 }
2621
2622 void
2623 set_gdbarch_value_to_register (struct gdbarch *gdbarch,
2624                                gdbarch_value_to_register_ftype value_to_register)
2625 {
2626   gdbarch->value_to_register = value_to_register;
2627 }
2628
2629 struct value *
2630 gdbarch_value_from_register (struct gdbarch *gdbarch, struct type *type, int regnum, struct frame_id frame_id)
2631 {
2632   gdb_assert (gdbarch != NULL);
2633   gdb_assert (gdbarch->value_from_register != NULL);
2634   if (gdbarch_debug >= 2)
2635     fprintf_unfiltered (gdb_stdlog, "gdbarch_value_from_register called\n");
2636   return gdbarch->value_from_register (gdbarch, type, regnum, frame_id);
2637 }
2638
2639 void
2640 set_gdbarch_value_from_register (struct gdbarch *gdbarch,
2641                                  gdbarch_value_from_register_ftype value_from_register)
2642 {
2643   gdbarch->value_from_register = value_from_register;
2644 }
2645
2646 CORE_ADDR
2647 gdbarch_pointer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
2648 {
2649   gdb_assert (gdbarch != NULL);
2650   gdb_assert (gdbarch->pointer_to_address != NULL);
2651   if (gdbarch_debug >= 2)
2652     fprintf_unfiltered (gdb_stdlog, "gdbarch_pointer_to_address called\n");
2653   return gdbarch->pointer_to_address (gdbarch, type, buf);
2654 }
2655
2656 void
2657 set_gdbarch_pointer_to_address (struct gdbarch *gdbarch,
2658                                 gdbarch_pointer_to_address_ftype pointer_to_address)
2659 {
2660   gdbarch->pointer_to_address = pointer_to_address;
2661 }
2662
2663 void
2664 gdbarch_address_to_pointer (struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr)
2665 {
2666   gdb_assert (gdbarch != NULL);
2667   gdb_assert (gdbarch->address_to_pointer != NULL);
2668   if (gdbarch_debug >= 2)
2669     fprintf_unfiltered (gdb_stdlog, "gdbarch_address_to_pointer called\n");
2670   gdbarch->address_to_pointer (gdbarch, type, buf, addr);
2671 }
2672
2673 void
2674 set_gdbarch_address_to_pointer (struct gdbarch *gdbarch,
2675                                 gdbarch_address_to_pointer_ftype address_to_pointer)
2676 {
2677   gdbarch->address_to_pointer = address_to_pointer;
2678 }
2679
2680 int
2681 gdbarch_integer_to_address_p (struct gdbarch *gdbarch)
2682 {
2683   gdb_assert (gdbarch != NULL);
2684   return gdbarch->integer_to_address != NULL;
2685 }
2686
2687 CORE_ADDR
2688 gdbarch_integer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
2689 {
2690   gdb_assert (gdbarch != NULL);
2691   gdb_assert (gdbarch->integer_to_address != NULL);
2692   if (gdbarch_debug >= 2)
2693     fprintf_unfiltered (gdb_stdlog, "gdbarch_integer_to_address called\n");
2694   return gdbarch->integer_to_address (gdbarch, type, buf);
2695 }
2696
2697 void
2698 set_gdbarch_integer_to_address (struct gdbarch *gdbarch,
2699                                 gdbarch_integer_to_address_ftype integer_to_address)
2700 {
2701   gdbarch->integer_to_address = integer_to_address;
2702 }
2703
2704 int
2705 gdbarch_return_value_p (struct gdbarch *gdbarch)
2706 {
2707   gdb_assert (gdbarch != NULL);
2708   return gdbarch->return_value != NULL;
2709 }
2710
2711 enum return_value_convention
2712 gdbarch_return_value (struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
2713 {
2714   gdb_assert (gdbarch != NULL);
2715   gdb_assert (gdbarch->return_value != NULL);
2716   if (gdbarch_debug >= 2)
2717     fprintf_unfiltered (gdb_stdlog, "gdbarch_return_value called\n");
2718   return gdbarch->return_value (gdbarch, function, valtype, regcache, readbuf, writebuf);
2719 }
2720
2721 void
2722 set_gdbarch_return_value (struct gdbarch *gdbarch,
2723                           gdbarch_return_value_ftype return_value)
2724 {
2725   gdbarch->return_value = return_value;
2726 }
2727
2728 int
2729 gdbarch_return_in_first_hidden_param_p (struct gdbarch *gdbarch, struct type *type)
2730 {
2731   gdb_assert (gdbarch != NULL);
2732   gdb_assert (gdbarch->return_in_first_hidden_param_p != NULL);
2733   if (gdbarch_debug >= 2)
2734     fprintf_unfiltered (gdb_stdlog, "gdbarch_return_in_first_hidden_param_p called\n");
2735   return gdbarch->return_in_first_hidden_param_p (gdbarch, type);
2736 }
2737
2738 void
2739 set_gdbarch_return_in_first_hidden_param_p (struct gdbarch *gdbarch,
2740                                             gdbarch_return_in_first_hidden_param_p_ftype return_in_first_hidden_param_p)
2741 {
2742   gdbarch->return_in_first_hidden_param_p = return_in_first_hidden_param_p;
2743 }
2744
2745 CORE_ADDR
2746 gdbarch_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR ip)
2747 {
2748   gdb_assert (gdbarch != NULL);
2749   gdb_assert (gdbarch->skip_prologue != NULL);
2750   if (gdbarch_debug >= 2)
2751     fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_prologue called\n");
2752   return gdbarch->skip_prologue (gdbarch, ip);
2753 }
2754
2755 void
2756 set_gdbarch_skip_prologue (struct gdbarch *gdbarch,
2757                            gdbarch_skip_prologue_ftype skip_prologue)
2758 {
2759   gdbarch->skip_prologue = skip_prologue;
2760 }
2761
2762 int
2763 gdbarch_skip_main_prologue_p (struct gdbarch *gdbarch)
2764 {
2765   gdb_assert (gdbarch != NULL);
2766   return gdbarch->skip_main_prologue != NULL;
2767 }
2768
2769 CORE_ADDR
2770 gdbarch_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR ip)
2771 {
2772   gdb_assert (gdbarch != NULL);
2773   gdb_assert (gdbarch->skip_main_prologue != NULL);
2774   if (gdbarch_debug >= 2)
2775     fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_main_prologue called\n");
2776   return gdbarch->skip_main_prologue (gdbarch, ip);
2777 }
2778
2779 void
2780 set_gdbarch_skip_main_prologue (struct gdbarch *gdbarch,
2781                                 gdbarch_skip_main_prologue_ftype skip_main_prologue)
2782 {
2783   gdbarch->skip_main_prologue = skip_main_prologue;
2784 }
2785
2786 int
2787 gdbarch_skip_entrypoint_p (struct gdbarch *gdbarch)
2788 {
2789   gdb_assert (gdbarch != NULL);
2790   return gdbarch->skip_entrypoint != NULL;
2791 }
2792
2793 CORE_ADDR
2794 gdbarch_skip_entrypoint (struct gdbarch *gdbarch, CORE_ADDR ip)
2795 {
2796   gdb_assert (gdbarch != NULL);
2797   gdb_assert (gdbarch->skip_entrypoint != NULL);
2798   if (gdbarch_debug >= 2)
2799     fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_entrypoint called\n");
2800   return gdbarch->skip_entrypoint (gdbarch, ip);
2801 }
2802
2803 void
2804 set_gdbarch_skip_entrypoint (struct gdbarch *gdbarch,
2805                              gdbarch_skip_entrypoint_ftype skip_entrypoint)
2806 {
2807   gdbarch->skip_entrypoint = skip_entrypoint;
2808 }
2809
2810 int
2811 gdbarch_inner_than (struct gdbarch *gdbarch, CORE_ADDR lhs, CORE_ADDR rhs)
2812 {
2813   gdb_assert (gdbarch != NULL);
2814   gdb_assert (gdbarch->inner_than != NULL);
2815   if (gdbarch_debug >= 2)
2816     fprintf_unfiltered (gdb_stdlog, "gdbarch_inner_than called\n");
2817   return gdbarch->inner_than (lhs, rhs);
2818 }
2819
2820 void
2821 set_gdbarch_inner_than (struct gdbarch *gdbarch,
2822                         gdbarch_inner_than_ftype inner_than)
2823 {
2824   gdbarch->inner_than = inner_than;
2825 }
2826
2827 const gdb_byte *
2828 gdbarch_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
2829 {
2830   gdb_assert (gdbarch != NULL);
2831   gdb_assert (gdbarch->breakpoint_from_pc != NULL);
2832   if (gdbarch_debug >= 2)
2833     fprintf_unfiltered (gdb_stdlog, "gdbarch_breakpoint_from_pc called\n");
2834   return gdbarch->breakpoint_from_pc (gdbarch, pcptr, lenptr);
2835 }
2836
2837 void
2838 set_gdbarch_breakpoint_from_pc (struct gdbarch *gdbarch,
2839                                 gdbarch_breakpoint_from_pc_ftype breakpoint_from_pc)
2840 {
2841   gdbarch->breakpoint_from_pc = breakpoint_from_pc;
2842 }
2843
2844 int
2845 gdbarch_breakpoint_kind_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr)
2846 {
2847   gdb_assert (gdbarch != NULL);
2848   gdb_assert (gdbarch->breakpoint_kind_from_pc != NULL);
2849   if (gdbarch_debug >= 2)
2850     fprintf_unfiltered (gdb_stdlog, "gdbarch_breakpoint_kind_from_pc called\n");
2851   return gdbarch->breakpoint_kind_from_pc (gdbarch, pcptr);
2852 }
2853
2854 void
2855 set_gdbarch_breakpoint_kind_from_pc (struct gdbarch *gdbarch,
2856                                      gdbarch_breakpoint_kind_from_pc_ftype breakpoint_kind_from_pc)
2857 {
2858   gdbarch->breakpoint_kind_from_pc = breakpoint_kind_from_pc;
2859 }
2860
2861 const gdb_byte *
2862 gdbarch_sw_breakpoint_from_kind (struct gdbarch *gdbarch, int kind, int *size)
2863 {
2864   gdb_assert (gdbarch != NULL);
2865   gdb_assert (gdbarch->sw_breakpoint_from_kind != NULL);
2866   if (gdbarch_debug >= 2)
2867     fprintf_unfiltered (gdb_stdlog, "gdbarch_sw_breakpoint_from_kind called\n");
2868   return gdbarch->sw_breakpoint_from_kind (gdbarch, kind, size);
2869 }
2870
2871 void
2872 set_gdbarch_sw_breakpoint_from_kind (struct gdbarch *gdbarch,
2873                                      gdbarch_sw_breakpoint_from_kind_ftype sw_breakpoint_from_kind)
2874 {
2875   gdbarch->sw_breakpoint_from_kind = sw_breakpoint_from_kind;
2876 }
2877
2878 int
2879 gdbarch_breakpoint_kind_from_current_state (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR *pcptr)
2880 {
2881   gdb_assert (gdbarch != NULL);
2882   gdb_assert (gdbarch->breakpoint_kind_from_current_state != NULL);
2883   if (gdbarch_debug >= 2)
2884     fprintf_unfiltered (gdb_stdlog, "gdbarch_breakpoint_kind_from_current_state called\n");
2885   return gdbarch->breakpoint_kind_from_current_state (gdbarch, regcache, pcptr);
2886 }
2887
2888 void
2889 set_gdbarch_breakpoint_kind_from_current_state (struct gdbarch *gdbarch,
2890                                                 gdbarch_breakpoint_kind_from_current_state_ftype breakpoint_kind_from_current_state)
2891 {
2892   gdbarch->breakpoint_kind_from_current_state = breakpoint_kind_from_current_state;
2893 }
2894
2895 int
2896 gdbarch_adjust_breakpoint_address_p (struct gdbarch *gdbarch)
2897 {
2898   gdb_assert (gdbarch != NULL);
2899   return gdbarch->adjust_breakpoint_address != NULL;
2900 }
2901
2902 CORE_ADDR
2903 gdbarch_adjust_breakpoint_address (struct gdbarch *gdbarch, CORE_ADDR bpaddr)
2904 {
2905   gdb_assert (gdbarch != NULL);
2906   gdb_assert (gdbarch->adjust_breakpoint_address != NULL);
2907   if (gdbarch_debug >= 2)
2908     fprintf_unfiltered (gdb_stdlog, "gdbarch_adjust_breakpoint_address called\n");
2909   return gdbarch->adjust_breakpoint_address (gdbarch, bpaddr);
2910 }
2911
2912 void
2913 set_gdbarch_adjust_breakpoint_address (struct gdbarch *gdbarch,
2914                                        gdbarch_adjust_breakpoint_address_ftype adjust_breakpoint_address)
2915 {
2916   gdbarch->adjust_breakpoint_address = adjust_breakpoint_address;
2917 }
2918
2919 int
2920 gdbarch_memory_insert_breakpoint (struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
2921 {
2922   gdb_assert (gdbarch != NULL);
2923   gdb_assert (gdbarch->memory_insert_breakpoint != NULL);
2924   if (gdbarch_debug >= 2)
2925     fprintf_unfiltered (gdb_stdlog, "gdbarch_memory_insert_breakpoint called\n");
2926   return gdbarch->memory_insert_breakpoint (gdbarch, bp_tgt);
2927 }
2928
2929 void
2930 set_gdbarch_memory_insert_breakpoint (struct gdbarch *gdbarch,
2931                                       gdbarch_memory_insert_breakpoint_ftype memory_insert_breakpoint)
2932 {
2933   gdbarch->memory_insert_breakpoint = memory_insert_breakpoint;
2934 }
2935
2936 int
2937 gdbarch_memory_remove_breakpoint (struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
2938 {
2939   gdb_assert (gdbarch != NULL);
2940   gdb_assert (gdbarch->memory_remove_breakpoint != NULL);
2941   if (gdbarch_debug >= 2)
2942     fprintf_unfiltered (gdb_stdlog, "gdbarch_memory_remove_breakpoint called\n");
2943   return gdbarch->memory_remove_breakpoint (gdbarch, bp_tgt);
2944 }
2945
2946 void
2947 set_gdbarch_memory_remove_breakpoint (struct gdbarch *gdbarch,
2948                                       gdbarch_memory_remove_breakpoint_ftype memory_remove_breakpoint)
2949 {
2950   gdbarch->memory_remove_breakpoint = memory_remove_breakpoint;
2951 }
2952
2953 CORE_ADDR
2954 gdbarch_decr_pc_after_break (struct gdbarch *gdbarch)
2955 {
2956   gdb_assert (gdbarch != NULL);
2957   /* Skip verify of decr_pc_after_break, invalid_p == 0 */
2958   if (gdbarch_debug >= 2)
2959     fprintf_unfiltered (gdb_stdlog, "gdbarch_decr_pc_after_break called\n");
2960   return gdbarch->decr_pc_after_break;
2961 }
2962
2963 void
2964 set_gdbarch_decr_pc_after_break (struct gdbarch *gdbarch,
2965                                  CORE_ADDR decr_pc_after_break)
2966 {
2967   gdbarch->decr_pc_after_break = decr_pc_after_break;
2968 }
2969
2970 CORE_ADDR
2971 gdbarch_deprecated_function_start_offset (struct gdbarch *gdbarch)
2972 {
2973   gdb_assert (gdbarch != NULL);
2974   /* Skip verify of deprecated_function_start_offset, invalid_p == 0 */
2975   if (gdbarch_debug >= 2)
2976     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_function_start_offset called\n");
2977   return gdbarch->deprecated_function_start_offset;
2978 }
2979
2980 void
2981 set_gdbarch_deprecated_function_start_offset (struct gdbarch *gdbarch,
2982                                               CORE_ADDR deprecated_function_start_offset)
2983 {
2984   gdbarch->deprecated_function_start_offset = deprecated_function_start_offset;
2985 }
2986
2987 int
2988 gdbarch_remote_register_number (struct gdbarch *gdbarch, int regno)
2989 {
2990   gdb_assert (gdbarch != NULL);
2991   gdb_assert (gdbarch->remote_register_number != NULL);
2992   if (gdbarch_debug >= 2)
2993     fprintf_unfiltered (gdb_stdlog, "gdbarch_remote_register_number called\n");
2994   return gdbarch->remote_register_number (gdbarch, regno);
2995 }
2996
2997 void
2998 set_gdbarch_remote_register_number (struct gdbarch *gdbarch,
2999                                     gdbarch_remote_register_number_ftype remote_register_number)
3000 {
3001   gdbarch->remote_register_number = remote_register_number;
3002 }
3003
3004 int
3005 gdbarch_fetch_tls_load_module_address_p (struct gdbarch *gdbarch)
3006 {
3007   gdb_assert (gdbarch != NULL);
3008   return gdbarch->fetch_tls_load_module_address != NULL;
3009 }
3010
3011 CORE_ADDR
3012 gdbarch_fetch_tls_load_module_address (struct gdbarch *gdbarch, struct objfile *objfile)
3013 {
3014   gdb_assert (gdbarch != NULL);
3015   gdb_assert (gdbarch->fetch_tls_load_module_address != NULL);
3016   if (gdbarch_debug >= 2)
3017     fprintf_unfiltered (gdb_stdlog, "gdbarch_fetch_tls_load_module_address called\n");
3018   return gdbarch->fetch_tls_load_module_address (objfile);
3019 }
3020
3021 void
3022 set_gdbarch_fetch_tls_load_module_address (struct gdbarch *gdbarch,
3023                                            gdbarch_fetch_tls_load_module_address_ftype fetch_tls_load_module_address)
3024 {
3025   gdbarch->fetch_tls_load_module_address = fetch_tls_load_module_address;
3026 }
3027
3028 CORE_ADDR
3029 gdbarch_frame_args_skip (struct gdbarch *gdbarch)
3030 {
3031   gdb_assert (gdbarch != NULL);
3032   /* Skip verify of frame_args_skip, invalid_p == 0 */
3033   if (gdbarch_debug >= 2)
3034     fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_args_skip called\n");
3035   return gdbarch->frame_args_skip;
3036 }
3037
3038 void
3039 set_gdbarch_frame_args_skip (struct gdbarch *gdbarch,
3040                              CORE_ADDR frame_args_skip)
3041 {
3042   gdbarch->frame_args_skip = frame_args_skip;
3043 }
3044
3045 int
3046 gdbarch_unwind_pc_p (struct gdbarch *gdbarch)
3047 {
3048   gdb_assert (gdbarch != NULL);
3049   return gdbarch->unwind_pc != NULL;
3050 }
3051
3052 CORE_ADDR
3053 gdbarch_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
3054 {
3055   gdb_assert (gdbarch != NULL);
3056   gdb_assert (gdbarch->unwind_pc != NULL);
3057   if (gdbarch_debug >= 2)
3058     fprintf_unfiltered (gdb_stdlog, "gdbarch_unwind_pc called\n");
3059   return gdbarch->unwind_pc (gdbarch, next_frame);
3060 }
3061
3062 void
3063 set_gdbarch_unwind_pc (struct gdbarch *gdbarch,
3064                        gdbarch_unwind_pc_ftype unwind_pc)
3065 {
3066   gdbarch->unwind_pc = unwind_pc;
3067 }
3068
3069 int
3070 gdbarch_unwind_sp_p (struct gdbarch *gdbarch)
3071 {
3072   gdb_assert (gdbarch != NULL);
3073   return gdbarch->unwind_sp != NULL;
3074 }
3075
3076 CORE_ADDR
3077 gdbarch_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
3078 {
3079   gdb_assert (gdbarch != NULL);
3080   gdb_assert (gdbarch->unwind_sp != NULL);
3081   if (gdbarch_debug >= 2)
3082     fprintf_unfiltered (gdb_stdlog, "gdbarch_unwind_sp called\n");
3083   return gdbarch->unwind_sp (gdbarch, next_frame);
3084 }
3085
3086 void
3087 set_gdbarch_unwind_sp (struct gdbarch *gdbarch,
3088                        gdbarch_unwind_sp_ftype unwind_sp)
3089 {
3090   gdbarch->unwind_sp = unwind_sp;
3091 }
3092
3093 int
3094 gdbarch_frame_num_args_p (struct gdbarch *gdbarch)
3095 {
3096   gdb_assert (gdbarch != NULL);
3097   return gdbarch->frame_num_args != NULL;
3098 }
3099
3100 int
3101 gdbarch_frame_num_args (struct gdbarch *gdbarch, struct frame_info *frame)
3102 {
3103   gdb_assert (gdbarch != NULL);
3104   gdb_assert (gdbarch->frame_num_args != NULL);
3105   if (gdbarch_debug >= 2)
3106     fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_num_args called\n");
3107   return gdbarch->frame_num_args (frame);
3108 }
3109
3110 void
3111 set_gdbarch_frame_num_args (struct gdbarch *gdbarch,
3112                             gdbarch_frame_num_args_ftype frame_num_args)
3113 {
3114   gdbarch->frame_num_args = frame_num_args;
3115 }
3116
3117 int
3118 gdbarch_frame_align_p (struct gdbarch *gdbarch)
3119 {
3120   gdb_assert (gdbarch != NULL);
3121   return gdbarch->frame_align != NULL;
3122 }
3123
3124 CORE_ADDR
3125 gdbarch_frame_align (struct gdbarch *gdbarch, CORE_ADDR address)
3126 {
3127   gdb_assert (gdbarch != NULL);
3128   gdb_assert (gdbarch->frame_align != NULL);
3129   if (gdbarch_debug >= 2)
3130     fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_align called\n");
3131   return gdbarch->frame_align (gdbarch, address);
3132 }
3133
3134 void
3135 set_gdbarch_frame_align (struct gdbarch *gdbarch,
3136                          gdbarch_frame_align_ftype frame_align)
3137 {
3138   gdbarch->frame_align = frame_align;
3139 }
3140
3141 int
3142 gdbarch_stabs_argument_has_addr (struct gdbarch *gdbarch, struct type *type)
3143 {
3144   gdb_assert (gdbarch != NULL);
3145   gdb_assert (gdbarch->stabs_argument_has_addr != NULL);
3146   if (gdbarch_debug >= 2)
3147     fprintf_unfiltered (gdb_stdlog, "gdbarch_stabs_argument_has_addr called\n");
3148   return gdbarch->stabs_argument_has_addr (gdbarch, type);
3149 }
3150
3151 void
3152 set_gdbarch_stabs_argument_has_addr (struct gdbarch *gdbarch,
3153                                      gdbarch_stabs_argument_has_addr_ftype stabs_argument_has_addr)
3154 {
3155   gdbarch->stabs_argument_has_addr = stabs_argument_has_addr;
3156 }
3157
3158 int
3159 gdbarch_frame_red_zone_size (struct gdbarch *gdbarch)
3160 {
3161   gdb_assert (gdbarch != NULL);
3162   if (gdbarch_debug >= 2)
3163     fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_red_zone_size called\n");
3164   return gdbarch->frame_red_zone_size;
3165 }
3166
3167 void
3168 set_gdbarch_frame_red_zone_size (struct gdbarch *gdbarch,
3169                                  int frame_red_zone_size)
3170 {
3171   gdbarch->frame_red_zone_size = frame_red_zone_size;
3172 }
3173
3174 CORE_ADDR
3175 gdbarch_convert_from_func_ptr_addr (struct gdbarch *gdbarch, CORE_ADDR addr, struct target_ops *targ)
3176 {
3177   gdb_assert (gdbarch != NULL);
3178   gdb_assert (gdbarch->convert_from_func_ptr_addr != NULL);
3179   if (gdbarch_debug >= 2)
3180     fprintf_unfiltered (gdb_stdlog, "gdbarch_convert_from_func_ptr_addr called\n");
3181   return gdbarch->convert_from_func_ptr_addr (gdbarch, addr, targ);
3182 }
3183
3184 void
3185 set_gdbarch_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
3186                                         gdbarch_convert_from_func_ptr_addr_ftype convert_from_func_ptr_addr)
3187 {
3188   gdbarch->convert_from_func_ptr_addr = convert_from_func_ptr_addr;
3189 }
3190
3191 CORE_ADDR
3192 gdbarch_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr)
3193 {
3194   gdb_assert (gdbarch != NULL);
3195   gdb_assert (gdbarch->addr_bits_remove != NULL);
3196   if (gdbarch_debug >= 2)
3197     fprintf_unfiltered (gdb_stdlog, "gdbarch_addr_bits_remove called\n");
3198   return gdbarch->addr_bits_remove (gdbarch, addr);
3199 }
3200
3201 void
3202 set_gdbarch_addr_bits_remove (struct gdbarch *gdbarch,
3203                               gdbarch_addr_bits_remove_ftype addr_bits_remove)
3204 {
3205   gdbarch->addr_bits_remove = addr_bits_remove;
3206 }
3207
3208 int
3209 gdbarch_significant_addr_bit (struct gdbarch *gdbarch)
3210 {
3211   gdb_assert (gdbarch != NULL);
3212   if (gdbarch_debug >= 2)
3213     fprintf_unfiltered (gdb_stdlog, "gdbarch_significant_addr_bit called\n");
3214   return gdbarch->significant_addr_bit;
3215 }
3216
3217 void
3218 set_gdbarch_significant_addr_bit (struct gdbarch *gdbarch,
3219                                   int significant_addr_bit)
3220 {
3221   gdbarch->significant_addr_bit = significant_addr_bit;
3222 }
3223
3224 int
3225 gdbarch_software_single_step_p (struct gdbarch *gdbarch)
3226 {
3227   gdb_assert (gdbarch != NULL);
3228   return gdbarch->software_single_step != NULL;
3229 }
3230
3231 std::vector<CORE_ADDR>
3232 gdbarch_software_single_step (struct gdbarch *gdbarch, struct regcache *regcache)
3233 {
3234   gdb_assert (gdbarch != NULL);
3235   gdb_assert (gdbarch->software_single_step != NULL);
3236   if (gdbarch_debug >= 2)
3237     fprintf_unfiltered (gdb_stdlog, "gdbarch_software_single_step called\n");
3238   return gdbarch->software_single_step (regcache);
3239 }
3240
3241 void
3242 set_gdbarch_software_single_step (struct gdbarch *gdbarch,
3243                                   gdbarch_software_single_step_ftype software_single_step)
3244 {
3245   gdbarch->software_single_step = software_single_step;
3246 }
3247
3248 int
3249 gdbarch_single_step_through_delay_p (struct gdbarch *gdbarch)
3250 {
3251   gdb_assert (gdbarch != NULL);
3252   return gdbarch->single_step_through_delay != NULL;
3253 }
3254
3255 int
3256 gdbarch_single_step_through_delay (struct gdbarch *gdbarch, struct frame_info *frame)
3257 {
3258   gdb_assert (gdbarch != NULL);
3259   gdb_assert (gdbarch->single_step_through_delay != NULL);
3260   if (gdbarch_debug >= 2)
3261     fprintf_unfiltered (gdb_stdlog, "gdbarch_single_step_through_delay called\n");
3262   return gdbarch->single_step_through_delay (gdbarch, frame);
3263 }
3264
3265 void
3266 set_gdbarch_single_step_through_delay (struct gdbarch *gdbarch,
3267                                        gdbarch_single_step_through_delay_ftype single_step_through_delay)
3268 {
3269   gdbarch->single_step_through_delay = single_step_through_delay;
3270 }
3271
3272 int
3273 gdbarch_print_insn (struct gdbarch *gdbarch, bfd_vma vma, struct disassemble_info *info)
3274 {
3275   gdb_assert (gdbarch != NULL);
3276   gdb_assert (gdbarch->print_insn != NULL);
3277   if (gdbarch_debug >= 2)
3278     fprintf_unfiltered (gdb_stdlog, "gdbarch_print_insn called\n");
3279   return gdbarch->print_insn (vma, info);
3280 }
3281
3282 void
3283 set_gdbarch_print_insn (struct gdbarch *gdbarch,
3284                         gdbarch_print_insn_ftype print_insn)
3285 {
3286   gdbarch->print_insn = print_insn;
3287 }
3288
3289 CORE_ADDR
3290 gdbarch_skip_trampoline_code (struct gdbarch *gdbarch, struct frame_info *frame, CORE_ADDR pc)
3291 {
3292   gdb_assert (gdbarch != NULL);
3293   gdb_assert (gdbarch->skip_trampoline_code != NULL);
3294   if (gdbarch_debug >= 2)
3295     fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_trampoline_code called\n");
3296   return gdbarch->skip_trampoline_code (frame, pc);
3297 }
3298
3299 void
3300 set_gdbarch_skip_trampoline_code (struct gdbarch *gdbarch,
3301                                   gdbarch_skip_trampoline_code_ftype skip_trampoline_code)
3302 {
3303   gdbarch->skip_trampoline_code = skip_trampoline_code;
3304 }
3305
3306 CORE_ADDR
3307 gdbarch_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc)
3308 {
3309   gdb_assert (gdbarch != NULL);
3310   gdb_assert (gdbarch->skip_solib_resolver != NULL);
3311   if (gdbarch_debug >= 2)
3312     fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_solib_resolver called\n");
3313   return gdbarch->skip_solib_resolver (gdbarch, pc);
3314 }
3315
3316 void
3317 set_gdbarch_skip_solib_resolver (struct gdbarch *gdbarch,
3318                                  gdbarch_skip_solib_resolver_ftype skip_solib_resolver)
3319 {
3320   gdbarch->skip_solib_resolver = skip_solib_resolver;
3321 }
3322
3323 int
3324 gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, const char *name)
3325 {
3326   gdb_assert (gdbarch != NULL);
3327   gdb_assert (gdbarch->in_solib_return_trampoline != NULL);
3328   if (gdbarch_debug >= 2)
3329     fprintf_unfiltered (gdb_stdlog, "gdbarch_in_solib_return_trampoline called\n");
3330   return gdbarch->in_solib_return_trampoline (gdbarch, pc, name);
3331 }
3332
3333 void
3334 set_gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch,
3335                                         gdbarch_in_solib_return_trampoline_ftype in_solib_return_trampoline)
3336 {
3337   gdbarch->in_solib_return_trampoline = in_solib_return_trampoline;
3338 }
3339
3340 bool
3341 gdbarch_in_indirect_branch_thunk (struct gdbarch *gdbarch, CORE_ADDR pc)
3342 {
3343   gdb_assert (gdbarch != NULL);
3344   gdb_assert (gdbarch->in_indirect_branch_thunk != NULL);
3345   if (gdbarch_debug >= 2)
3346     fprintf_unfiltered (gdb_stdlog, "gdbarch_in_indirect_branch_thunk called\n");
3347   return gdbarch->in_indirect_branch_thunk (gdbarch, pc);
3348 }
3349
3350 void
3351 set_gdbarch_in_indirect_branch_thunk (struct gdbarch *gdbarch,
3352                                       gdbarch_in_indirect_branch_thunk_ftype in_indirect_branch_thunk)
3353 {
3354   gdbarch->in_indirect_branch_thunk = in_indirect_branch_thunk;
3355 }
3356
3357 int
3358 gdbarch_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR addr)
3359 {
3360   gdb_assert (gdbarch != NULL);
3361   gdb_assert (gdbarch->stack_frame_destroyed_p != NULL);
3362   if (gdbarch_debug >= 2)
3363     fprintf_unfiltered (gdb_stdlog, "gdbarch_stack_frame_destroyed_p called\n");
3364   return gdbarch->stack_frame_destroyed_p (gdbarch, addr);
3365 }
3366
3367 void
3368 set_gdbarch_stack_frame_destroyed_p (struct gdbarch *gdbarch,
3369                                      gdbarch_stack_frame_destroyed_p_ftype stack_frame_destroyed_p)
3370 {
3371   gdbarch->stack_frame_destroyed_p = stack_frame_destroyed_p;
3372 }
3373
3374 int
3375 gdbarch_elf_make_msymbol_special_p (struct gdbarch *gdbarch)
3376 {
3377   gdb_assert (gdbarch != NULL);
3378   return gdbarch->elf_make_msymbol_special != NULL;
3379 }
3380
3381 void
3382 gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch, asymbol *sym, struct minimal_symbol *msym)
3383 {
3384   gdb_assert (gdbarch != NULL);
3385   gdb_assert (gdbarch->elf_make_msymbol_special != NULL);
3386   if (gdbarch_debug >= 2)
3387     fprintf_unfiltered (gdb_stdlog, "gdbarch_elf_make_msymbol_special called\n");
3388   gdbarch->elf_make_msymbol_special (sym, msym);
3389 }
3390
3391 void
3392 set_gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch,
3393                                       gdbarch_elf_make_msymbol_special_ftype elf_make_msymbol_special)
3394 {
3395   gdbarch->elf_make_msymbol_special = elf_make_msymbol_special;
3396 }
3397
3398 void
3399 gdbarch_coff_make_msymbol_special (struct gdbarch *gdbarch, int val, struct minimal_symbol *msym)
3400 {
3401   gdb_assert (gdbarch != NULL);
3402   gdb_assert (gdbarch->coff_make_msymbol_special != NULL);
3403   if (gdbarch_debug >= 2)
3404     fprintf_unfiltered (gdb_stdlog, "gdbarch_coff_make_msymbol_special called\n");
3405   gdbarch->coff_make_msymbol_special (val, msym);
3406 }
3407
3408 void
3409 set_gdbarch_coff_make_msymbol_special (struct gdbarch *gdbarch,
3410                                        gdbarch_coff_make_msymbol_special_ftype coff_make_msymbol_special)
3411 {
3412   gdbarch->coff_make_msymbol_special = coff_make_msymbol_special;
3413 }
3414
3415 void
3416 gdbarch_make_symbol_special (struct gdbarch *gdbarch, struct symbol *sym, struct objfile *objfile)
3417 {
3418   gdb_assert (gdbarch != NULL);
3419   gdb_assert (gdbarch->make_symbol_special != NULL);
3420   if (gdbarch_debug >= 2)
3421     fprintf_unfiltered (gdb_stdlog, "gdbarch_make_symbol_special called\n");
3422   gdbarch->make_symbol_special (sym, objfile);
3423 }
3424
3425 void
3426 set_gdbarch_make_symbol_special (struct gdbarch *gdbarch,
3427                                  gdbarch_make_symbol_special_ftype make_symbol_special)
3428 {
3429   gdbarch->make_symbol_special = make_symbol_special;
3430 }
3431
3432 CORE_ADDR
3433 gdbarch_adjust_dwarf2_addr (struct gdbarch *gdbarch, CORE_ADDR pc)
3434 {
3435   gdb_assert (gdbarch != NULL);
3436   gdb_assert (gdbarch->adjust_dwarf2_addr != NULL);
3437   if (gdbarch_debug >= 2)
3438     fprintf_unfiltered (gdb_stdlog, "gdbarch_adjust_dwarf2_addr called\n");
3439   return gdbarch->adjust_dwarf2_addr (pc);
3440 }
3441
3442 void
3443 set_gdbarch_adjust_dwarf2_addr (struct gdbarch *gdbarch,
3444                                 gdbarch_adjust_dwarf2_addr_ftype adjust_dwarf2_addr)
3445 {
3446   gdbarch->adjust_dwarf2_addr = adjust_dwarf2_addr;
3447 }
3448
3449 CORE_ADDR
3450 gdbarch_adjust_dwarf2_line (struct gdbarch *gdbarch, CORE_ADDR addr, int rel)
3451 {
3452   gdb_assert (gdbarch != NULL);
3453   gdb_assert (gdbarch->adjust_dwarf2_line != NULL);
3454   if (gdbarch_debug >= 2)
3455     fprintf_unfiltered (gdb_stdlog, "gdbarch_adjust_dwarf2_line called\n");
3456   return gdbarch->adjust_dwarf2_line (addr, rel);
3457 }
3458
3459 void
3460 set_gdbarch_adjust_dwarf2_line (struct gdbarch *gdbarch,
3461                                 gdbarch_adjust_dwarf2_line_ftype adjust_dwarf2_line)
3462 {
3463   gdbarch->adjust_dwarf2_line = adjust_dwarf2_line;
3464 }
3465
3466 int
3467 gdbarch_cannot_step_breakpoint (struct gdbarch *gdbarch)
3468 {
3469   gdb_assert (gdbarch != NULL);
3470   /* Skip verify of cannot_step_breakpoint, invalid_p == 0 */
3471   if (gdbarch_debug >= 2)
3472     fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_step_breakpoint called\n");
3473   return gdbarch->cannot_step_breakpoint;
3474 }
3475
3476 void
3477 set_gdbarch_cannot_step_breakpoint (struct gdbarch *gdbarch,
3478                                     int cannot_step_breakpoint)
3479 {
3480   gdbarch->cannot_step_breakpoint = cannot_step_breakpoint;
3481 }
3482
3483 int
3484 gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch)
3485 {
3486   gdb_assert (gdbarch != NULL);
3487   /* Skip verify of have_nonsteppable_watchpoint, invalid_p == 0 */
3488   if (gdbarch_debug >= 2)
3489     fprintf_unfiltered (gdb_stdlog, "gdbarch_have_nonsteppable_watchpoint called\n");
3490   return gdbarch->have_nonsteppable_watchpoint;
3491 }
3492
3493 void
3494 set_gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch,
3495                                           int have_nonsteppable_watchpoint)
3496 {
3497   gdbarch->have_nonsteppable_watchpoint = have_nonsteppable_watchpoint;
3498 }
3499
3500 int
3501 gdbarch_address_class_type_flags_p (struct gdbarch *gdbarch)
3502 {
3503   gdb_assert (gdbarch != NULL);
3504   return gdbarch->address_class_type_flags != NULL;
3505 }
3506
3507 int
3508 gdbarch_address_class_type_flags (struct gdbarch *gdbarch, int byte_size, int dwarf2_addr_class)
3509 {
3510   gdb_assert (gdbarch != NULL);
3511   gdb_assert (gdbarch->address_class_type_flags != NULL);
3512   if (gdbarch_debug >= 2)
3513     fprintf_unfiltered (gdb_stdlog, "gdbarch_address_class_type_flags called\n");
3514   return gdbarch->address_class_type_flags (byte_size, dwarf2_addr_class);
3515 }
3516
3517 void
3518 set_gdbarch_address_class_type_flags (struct gdbarch *gdbarch,
3519                                       gdbarch_address_class_type_flags_ftype address_class_type_flags)
3520 {
3521   gdbarch->address_class_type_flags = address_class_type_flags;
3522 }
3523
3524 int
3525 gdbarch_address_class_type_flags_to_name_p (struct gdbarch *gdbarch)
3526 {
3527   gdb_assert (gdbarch != NULL);
3528   return gdbarch->address_class_type_flags_to_name != NULL;
3529 }
3530
3531 const char *
3532 gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags)
3533 {
3534   gdb_assert (gdbarch != NULL);
3535   gdb_assert (gdbarch->address_class_type_flags_to_name != NULL);
3536   if (gdbarch_debug >= 2)
3537     fprintf_unfiltered (gdb_stdlog, "gdbarch_address_class_type_flags_to_name called\n");
3538   return gdbarch->address_class_type_flags_to_name (gdbarch, type_flags);
3539 }
3540
3541 void
3542 set_gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch,
3543                                               gdbarch_address_class_type_flags_to_name_ftype address_class_type_flags_to_name)
3544 {
3545   gdbarch->address_class_type_flags_to_name = address_class_type_flags_to_name;
3546 }
3547
3548 bool
3549 gdbarch_execute_dwarf_cfa_vendor_op (struct gdbarch *gdbarch, gdb_byte op, struct dwarf2_frame_state *fs)
3550 {
3551   gdb_assert (gdbarch != NULL);
3552   gdb_assert (gdbarch->execute_dwarf_cfa_vendor_op != NULL);
3553   if (gdbarch_debug >= 2)
3554     fprintf_unfiltered (gdb_stdlog, "gdbarch_execute_dwarf_cfa_vendor_op called\n");
3555   return gdbarch->execute_dwarf_cfa_vendor_op (gdbarch, op, fs);
3556 }
3557
3558 void
3559 set_gdbarch_execute_dwarf_cfa_vendor_op (struct gdbarch *gdbarch,
3560                                          gdbarch_execute_dwarf_cfa_vendor_op_ftype execute_dwarf_cfa_vendor_op)
3561 {
3562   gdbarch->execute_dwarf_cfa_vendor_op = execute_dwarf_cfa_vendor_op;
3563 }
3564
3565 int
3566 gdbarch_address_class_name_to_type_flags_p (struct gdbarch *gdbarch)
3567 {
3568   gdb_assert (gdbarch != NULL);
3569   return gdbarch->address_class_name_to_type_flags != NULL;
3570 }
3571
3572 int
3573 gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, const char *name, int *type_flags_ptr)
3574 {
3575   gdb_assert (gdbarch != NULL);
3576   gdb_assert (gdbarch->address_class_name_to_type_flags != NULL);
3577   if (gdbarch_debug >= 2)
3578     fprintf_unfiltered (gdb_stdlog, "gdbarch_address_class_name_to_type_flags called\n");
3579   return gdbarch->address_class_name_to_type_flags (gdbarch, name, type_flags_ptr);
3580 }
3581
3582 void
3583 set_gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch,
3584                                               gdbarch_address_class_name_to_type_flags_ftype address_class_name_to_type_flags)
3585 {
3586   gdbarch->address_class_name_to_type_flags = address_class_name_to_type_flags;
3587 }
3588
3589 int
3590 gdbarch_register_reggroup_p (struct gdbarch *gdbarch, int regnum, struct reggroup *reggroup)
3591 {
3592   gdb_assert (gdbarch != NULL);
3593   gdb_assert (gdbarch->register_reggroup_p != NULL);
3594   if (gdbarch_debug >= 2)
3595     fprintf_unfiltered (gdb_stdlog, "gdbarch_register_reggroup_p called\n");
3596   return gdbarch->register_reggroup_p (gdbarch, regnum, reggroup);
3597 }
3598
3599 void
3600 set_gdbarch_register_reggroup_p (struct gdbarch *gdbarch,
3601                                  gdbarch_register_reggroup_p_ftype register_reggroup_p)
3602 {
3603   gdbarch->register_reggroup_p = register_reggroup_p;
3604 }
3605
3606 int
3607 gdbarch_fetch_pointer_argument_p (struct gdbarch *gdbarch)
3608 {
3609   gdb_assert (gdbarch != NULL);
3610   return gdbarch->fetch_pointer_argument != NULL;
3611 }
3612
3613 CORE_ADDR
3614 gdbarch_fetch_pointer_argument (struct gdbarch *gdbarch, struct frame_info *frame, int argi, struct type *type)
3615 {
3616   gdb_assert (gdbarch != NULL);
3617   gdb_assert (gdbarch->fetch_pointer_argument != NULL);
3618   if (gdbarch_debug >= 2)
3619     fprintf_unfiltered (gdb_stdlog, "gdbarch_fetch_pointer_argument called\n");
3620   return gdbarch->fetch_pointer_argument (frame, argi, type);
3621 }
3622
3623 void
3624 set_gdbarch_fetch_pointer_argument (struct gdbarch *gdbarch,
3625                                     gdbarch_fetch_pointer_argument_ftype fetch_pointer_argument)
3626 {
3627   gdbarch->fetch_pointer_argument = fetch_pointer_argument;
3628 }
3629
3630 int
3631 gdbarch_iterate_over_regset_sections_p (struct gdbarch *gdbarch)
3632 {
3633   gdb_assert (gdbarch != NULL);
3634   return gdbarch->iterate_over_regset_sections != NULL;
3635 }
3636
3637 void
3638 gdbarch_iterate_over_regset_sections (struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
3639 {
3640   gdb_assert (gdbarch != NULL);
3641   gdb_assert (gdbarch->iterate_over_regset_sections != NULL);
3642   if (gdbarch_debug >= 2)
3643     fprintf_unfiltered (gdb_stdlog, "gdbarch_iterate_over_regset_sections called\n");
3644   gdbarch->iterate_over_regset_sections (gdbarch, cb, cb_data, regcache);
3645 }
3646
3647 void
3648 set_gdbarch_iterate_over_regset_sections (struct gdbarch *gdbarch,
3649                                           gdbarch_iterate_over_regset_sections_ftype iterate_over_regset_sections)
3650 {
3651   gdbarch->iterate_over_regset_sections = iterate_over_regset_sections;
3652 }
3653
3654 int
3655 gdbarch_make_corefile_notes_p (struct gdbarch *gdbarch)
3656 {
3657   gdb_assert (gdbarch != NULL);
3658   return gdbarch->make_corefile_notes != NULL;
3659 }
3660
3661 char *
3662 gdbarch_make_corefile_notes (struct gdbarch *gdbarch, bfd *obfd, int *note_size)
3663 {
3664   gdb_assert (gdbarch != NULL);
3665   gdb_assert (gdbarch->make_corefile_notes != NULL);
3666   if (gdbarch_debug >= 2)
3667     fprintf_unfiltered (gdb_stdlog, "gdbarch_make_corefile_notes called\n");
3668   return gdbarch->make_corefile_notes (gdbarch, obfd, note_size);
3669 }
3670
3671 void
3672 set_gdbarch_make_corefile_notes (struct gdbarch *gdbarch,
3673                                  gdbarch_make_corefile_notes_ftype make_corefile_notes)
3674 {
3675   gdbarch->make_corefile_notes = make_corefile_notes;
3676 }
3677
3678 int
3679 gdbarch_find_memory_regions_p (struct gdbarch *gdbarch)
3680 {
3681   gdb_assert (gdbarch != NULL);
3682   return gdbarch->find_memory_regions != NULL;
3683 }
3684
3685 int
3686 gdbarch_find_memory_regions (struct gdbarch *gdbarch, find_memory_region_ftype func, void *data)
3687 {
3688   gdb_assert (gdbarch != NULL);
3689   gdb_assert (gdbarch->find_memory_regions != NULL);
3690   if (gdbarch_debug >= 2)
3691     fprintf_unfiltered (gdb_stdlog, "gdbarch_find_memory_regions called\n");
3692   return gdbarch->find_memory_regions (gdbarch, func, data);
3693 }
3694
3695 void
3696 set_gdbarch_find_memory_regions (struct gdbarch *gdbarch,
3697                                  gdbarch_find_memory_regions_ftype find_memory_regions)
3698 {
3699   gdbarch->find_memory_regions = find_memory_regions;
3700 }
3701
3702 int
3703 gdbarch_core_xfer_shared_libraries_p (struct gdbarch *gdbarch)
3704 {
3705   gdb_assert (gdbarch != NULL);
3706   return gdbarch->core_xfer_shared_libraries != NULL;
3707 }
3708
3709 ULONGEST
3710 gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len)
3711 {
3712   gdb_assert (gdbarch != NULL);
3713   gdb_assert (gdbarch->core_xfer_shared_libraries != NULL);
3714   if (gdbarch_debug >= 2)
3715     fprintf_unfiltered (gdb_stdlog, "gdbarch_core_xfer_shared_libraries called\n");
3716   return gdbarch->core_xfer_shared_libraries (gdbarch, readbuf, offset, len);
3717 }
3718
3719 void
3720 set_gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch,
3721                                         gdbarch_core_xfer_shared_libraries_ftype core_xfer_shared_libraries)
3722 {
3723   gdbarch->core_xfer_shared_libraries = core_xfer_shared_libraries;
3724 }
3725
3726 int
3727 gdbarch_core_xfer_shared_libraries_aix_p (struct gdbarch *gdbarch)
3728 {
3729   gdb_assert (gdbarch != NULL);
3730   return gdbarch->core_xfer_shared_libraries_aix != NULL;
3731 }
3732
3733 ULONGEST
3734 gdbarch_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len)
3735 {
3736   gdb_assert (gdbarch != NULL);
3737   gdb_assert (gdbarch->core_xfer_shared_libraries_aix != NULL);
3738   if (gdbarch_debug >= 2)
3739     fprintf_unfiltered (gdb_stdlog, "gdbarch_core_xfer_shared_libraries_aix called\n");
3740   return gdbarch->core_xfer_shared_libraries_aix (gdbarch, readbuf, offset, len);
3741 }
3742
3743 void
3744 set_gdbarch_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch,
3745                                             gdbarch_core_xfer_shared_libraries_aix_ftype core_xfer_shared_libraries_aix)
3746 {
3747   gdbarch->core_xfer_shared_libraries_aix = core_xfer_shared_libraries_aix;
3748 }
3749
3750 int
3751 gdbarch_core_pid_to_str_p (struct gdbarch *gdbarch)
3752 {
3753   gdb_assert (gdbarch != NULL);
3754   return gdbarch->core_pid_to_str != NULL;
3755 }
3756
3757 const char *
3758 gdbarch_core_pid_to_str (struct gdbarch *gdbarch, ptid_t ptid)
3759 {
3760   gdb_assert (gdbarch != NULL);
3761   gdb_assert (gdbarch->core_pid_to_str != NULL);
3762   if (gdbarch_debug >= 2)
3763     fprintf_unfiltered (gdb_stdlog, "gdbarch_core_pid_to_str called\n");
3764   return gdbarch->core_pid_to_str (gdbarch, ptid);
3765 }
3766
3767 void
3768 set_gdbarch_core_pid_to_str (struct gdbarch *gdbarch,
3769                              gdbarch_core_pid_to_str_ftype core_pid_to_str)
3770 {
3771   gdbarch->core_pid_to_str = core_pid_to_str;
3772 }
3773
3774 int
3775 gdbarch_core_thread_name_p (struct gdbarch *gdbarch)
3776 {
3777   gdb_assert (gdbarch != NULL);
3778   return gdbarch->core_thread_name != NULL;
3779 }
3780
3781 const char *
3782 gdbarch_core_thread_name (struct gdbarch *gdbarch, struct thread_info *thr)
3783 {
3784   gdb_assert (gdbarch != NULL);
3785   gdb_assert (gdbarch->core_thread_name != NULL);
3786   if (gdbarch_debug >= 2)
3787     fprintf_unfiltered (gdb_stdlog, "gdbarch_core_thread_name called\n");
3788   return gdbarch->core_thread_name (gdbarch, thr);
3789 }
3790
3791 void
3792 set_gdbarch_core_thread_name (struct gdbarch *gdbarch,
3793                               gdbarch_core_thread_name_ftype core_thread_name)
3794 {
3795   gdbarch->core_thread_name = core_thread_name;
3796 }
3797
3798 int
3799 gdbarch_core_xfer_siginfo_p (struct gdbarch *gdbarch)
3800 {
3801   gdb_assert (gdbarch != NULL);
3802   return gdbarch->core_xfer_siginfo != NULL;
3803 }
3804
3805 LONGEST
3806 gdbarch_core_xfer_siginfo (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len)
3807 {
3808   gdb_assert (gdbarch != NULL);
3809   gdb_assert (gdbarch->core_xfer_siginfo != NULL);
3810   if (gdbarch_debug >= 2)
3811     fprintf_unfiltered (gdb_stdlog, "gdbarch_core_xfer_siginfo called\n");
3812   return gdbarch->core_xfer_siginfo (gdbarch,  readbuf, offset, len);
3813 }
3814
3815 void
3816 set_gdbarch_core_xfer_siginfo (struct gdbarch *gdbarch,
3817                                gdbarch_core_xfer_siginfo_ftype core_xfer_siginfo)
3818 {
3819   gdbarch->core_xfer_siginfo = core_xfer_siginfo;
3820 }
3821
3822 int
3823 gdbarch_gcore_bfd_target_p (struct gdbarch *gdbarch)
3824 {
3825   gdb_assert (gdbarch != NULL);
3826   return gdbarch->gcore_bfd_target != 0;
3827 }
3828
3829 const char *
3830 gdbarch_gcore_bfd_target (struct gdbarch *gdbarch)
3831 {
3832   gdb_assert (gdbarch != NULL);
3833   /* Check variable changed from pre-default.  */
3834   gdb_assert (gdbarch->gcore_bfd_target != 0);
3835   if (gdbarch_debug >= 2)
3836     fprintf_unfiltered (gdb_stdlog, "gdbarch_gcore_bfd_target called\n");
3837   return gdbarch->gcore_bfd_target;
3838 }
3839
3840 void
3841 set_gdbarch_gcore_bfd_target (struct gdbarch *gdbarch,
3842                               const char * gcore_bfd_target)
3843 {
3844   gdbarch->gcore_bfd_target = gcore_bfd_target;
3845 }
3846
3847 int
3848 gdbarch_vtable_function_descriptors (struct gdbarch *gdbarch)
3849 {
3850   gdb_assert (gdbarch != NULL);
3851   /* Skip verify of vtable_function_descriptors, invalid_p == 0 */
3852   if (gdbarch_debug >= 2)
3853     fprintf_unfiltered (gdb_stdlog, "gdbarch_vtable_function_descriptors called\n");
3854   return gdbarch->vtable_function_descriptors;
3855 }
3856
3857 void
3858 set_gdbarch_vtable_function_descriptors (struct gdbarch *gdbarch,
3859                                          int vtable_function_descriptors)
3860 {
3861   gdbarch->vtable_function_descriptors = vtable_function_descriptors;
3862 }
3863
3864 int
3865 gdbarch_vbit_in_delta (struct gdbarch *gdbarch)
3866 {
3867   gdb_assert (gdbarch != NULL);
3868   /* Skip verify of vbit_in_delta, invalid_p == 0 */
3869   if (gdbarch_debug >= 2)
3870     fprintf_unfiltered (gdb_stdlog, "gdbarch_vbit_in_delta called\n");
3871   return gdbarch->vbit_in_delta;
3872 }
3873
3874 void
3875 set_gdbarch_vbit_in_delta (struct gdbarch *gdbarch,
3876                            int vbit_in_delta)
3877 {
3878   gdbarch->vbit_in_delta = vbit_in_delta;
3879 }
3880
3881 void
3882 gdbarch_skip_permanent_breakpoint (struct gdbarch *gdbarch, struct regcache *regcache)
3883 {
3884   gdb_assert (gdbarch != NULL);
3885   gdb_assert (gdbarch->skip_permanent_breakpoint != NULL);
3886   if (gdbarch_debug >= 2)
3887     fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_permanent_breakpoint called\n");
3888   gdbarch->skip_permanent_breakpoint (regcache);
3889 }
3890
3891 void
3892 set_gdbarch_skip_permanent_breakpoint (struct gdbarch *gdbarch,
3893                                        gdbarch_skip_permanent_breakpoint_ftype skip_permanent_breakpoint)
3894 {
3895   gdbarch->skip_permanent_breakpoint = skip_permanent_breakpoint;
3896 }
3897
3898 int
3899 gdbarch_max_insn_length_p (struct gdbarch *gdbarch)
3900 {
3901   gdb_assert (gdbarch != NULL);
3902   return gdbarch->max_insn_length != 0;
3903 }
3904
3905 ULONGEST
3906 gdbarch_max_insn_length (struct gdbarch *gdbarch)
3907 {
3908   gdb_assert (gdbarch != NULL);
3909   /* Check variable changed from pre-default.  */
3910   gdb_assert (gdbarch->max_insn_length != 0);
3911   if (gdbarch_debug >= 2)
3912     fprintf_unfiltered (gdb_stdlog, "gdbarch_max_insn_length called\n");
3913   return gdbarch->max_insn_length;
3914 }
3915
3916 void
3917 set_gdbarch_max_insn_length (struct gdbarch *gdbarch,
3918                              ULONGEST max_insn_length)
3919 {
3920   gdbarch->max_insn_length = max_insn_length;
3921 }
3922
3923 int
3924 gdbarch_displaced_step_copy_insn_p (struct gdbarch *gdbarch)
3925 {
3926   gdb_assert (gdbarch != NULL);
3927   return gdbarch->displaced_step_copy_insn != NULL;
3928 }
3929
3930 struct displaced_step_closure *
3931 gdbarch_displaced_step_copy_insn (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
3932 {
3933   gdb_assert (gdbarch != NULL);
3934   gdb_assert (gdbarch->displaced_step_copy_insn != NULL);
3935   if (gdbarch_debug >= 2)
3936     fprintf_unfiltered (gdb_stdlog, "gdbarch_displaced_step_copy_insn called\n");
3937   return gdbarch->displaced_step_copy_insn (gdbarch, from, to, regs);
3938 }
3939
3940 void
3941 set_gdbarch_displaced_step_copy_insn (struct gdbarch *gdbarch,
3942                                       gdbarch_displaced_step_copy_insn_ftype displaced_step_copy_insn)
3943 {
3944   gdbarch->displaced_step_copy_insn = displaced_step_copy_insn;
3945 }
3946
3947 int
3948 gdbarch_displaced_step_hw_singlestep (struct gdbarch *gdbarch, struct displaced_step_closure *closure)
3949 {
3950   gdb_assert (gdbarch != NULL);
3951   gdb_assert (gdbarch->displaced_step_hw_singlestep != NULL);
3952   if (gdbarch_debug >= 2)
3953     fprintf_unfiltered (gdb_stdlog, "gdbarch_displaced_step_hw_singlestep called\n");
3954   return gdbarch->displaced_step_hw_singlestep (gdbarch, closure);
3955 }
3956
3957 void
3958 set_gdbarch_displaced_step_hw_singlestep (struct gdbarch *gdbarch,
3959                                           gdbarch_displaced_step_hw_singlestep_ftype displaced_step_hw_singlestep)
3960 {
3961   gdbarch->displaced_step_hw_singlestep = displaced_step_hw_singlestep;
3962 }
3963
3964 int
3965 gdbarch_displaced_step_fixup_p (struct gdbarch *gdbarch)
3966 {
3967   gdb_assert (gdbarch != NULL);
3968   return gdbarch->displaced_step_fixup != NULL;
3969 }
3970
3971 void
3972 gdbarch_displaced_step_fixup (struct gdbarch *gdbarch, struct displaced_step_closure *closure, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
3973 {
3974   gdb_assert (gdbarch != NULL);
3975   gdb_assert (gdbarch->displaced_step_fixup != NULL);
3976   /* Do not check predicate: gdbarch->displaced_step_fixup != NULL, allow call.  */
3977   if (gdbarch_debug >= 2)
3978     fprintf_unfiltered (gdb_stdlog, "gdbarch_displaced_step_fixup called\n");
3979   gdbarch->displaced_step_fixup (gdbarch, closure, from, to, regs);
3980 }
3981
3982 void
3983 set_gdbarch_displaced_step_fixup (struct gdbarch *gdbarch,
3984                                   gdbarch_displaced_step_fixup_ftype displaced_step_fixup)
3985 {
3986   gdbarch->displaced_step_fixup = displaced_step_fixup;
3987 }
3988
3989 CORE_ADDR
3990 gdbarch_displaced_step_location (struct gdbarch *gdbarch)
3991 {
3992   gdb_assert (gdbarch != NULL);
3993   gdb_assert (gdbarch->displaced_step_location != NULL);
3994   if (gdbarch_debug >= 2)
3995     fprintf_unfiltered (gdb_stdlog, "gdbarch_displaced_step_location called\n");
3996   return gdbarch->displaced_step_location (gdbarch);
3997 }
3998
3999 void
4000 set_gdbarch_displaced_step_location (struct gdbarch *gdbarch,
4001                                      gdbarch_displaced_step_location_ftype displaced_step_location)
4002 {
4003   gdbarch->displaced_step_location = displaced_step_location;
4004 }
4005
4006 int
4007 gdbarch_relocate_instruction_p (struct gdbarch *gdbarch)
4008 {
4009   gdb_assert (gdbarch != NULL);
4010   return gdbarch->relocate_instruction != NULL;
4011 }
4012
4013 void
4014 gdbarch_relocate_instruction (struct gdbarch *gdbarch, CORE_ADDR *to, CORE_ADDR from)
4015 {
4016   gdb_assert (gdbarch != NULL);
4017   gdb_assert (gdbarch->relocate_instruction != NULL);
4018   /* Do not check predicate: gdbarch->relocate_instruction != NULL, allow call.  */
4019   if (gdbarch_debug >= 2)
4020     fprintf_unfiltered (gdb_stdlog, "gdbarch_relocate_instruction called\n");
4021   gdbarch->relocate_instruction (gdbarch, to, from);
4022 }
4023
4024 void
4025 set_gdbarch_relocate_instruction (struct gdbarch *gdbarch,
4026                                   gdbarch_relocate_instruction_ftype relocate_instruction)
4027 {
4028   gdbarch->relocate_instruction = relocate_instruction;
4029 }
4030
4031 int
4032 gdbarch_overlay_update_p (struct gdbarch *gdbarch)
4033 {
4034   gdb_assert (gdbarch != NULL);
4035   return gdbarch->overlay_update != NULL;
4036 }
4037
4038 void
4039 gdbarch_overlay_update (struct gdbarch *gdbarch, struct obj_section *osect)
4040 {
4041   gdb_assert (gdbarch != NULL);
4042   gdb_assert (gdbarch->overlay_update != NULL);
4043   if (gdbarch_debug >= 2)
4044     fprintf_unfiltered (gdb_stdlog, "gdbarch_overlay_update called\n");
4045   gdbarch->overlay_update (osect);
4046 }
4047
4048 void
4049 set_gdbarch_overlay_update (struct gdbarch *gdbarch,
4050                             gdbarch_overlay_update_ftype overlay_update)
4051 {
4052   gdbarch->overlay_update = overlay_update;
4053 }
4054
4055 int
4056 gdbarch_core_read_description_p (struct gdbarch *gdbarch)
4057 {
4058   gdb_assert (gdbarch != NULL);
4059   return gdbarch->core_read_description != NULL;
4060 }
4061
4062 const struct target_desc *
4063 gdbarch_core_read_description (struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd)
4064 {
4065   gdb_assert (gdbarch != NULL);
4066   gdb_assert (gdbarch->core_read_description != NULL);
4067   if (gdbarch_debug >= 2)
4068     fprintf_unfiltered (gdb_stdlog, "gdbarch_core_read_description called\n");
4069   return gdbarch->core_read_description (gdbarch, target, abfd);
4070 }
4071
4072 void
4073 set_gdbarch_core_read_description (struct gdbarch *gdbarch,
4074                                    gdbarch_core_read_description_ftype core_read_description)
4075 {
4076   gdbarch->core_read_description = core_read_description;
4077 }
4078
4079 int
4080 gdbarch_static_transform_name_p (struct gdbarch *gdbarch)
4081 {
4082   gdb_assert (gdbarch != NULL);
4083   return gdbarch->static_transform_name != NULL;
4084 }
4085
4086 const char *
4087 gdbarch_static_transform_name (struct gdbarch *gdbarch, const char *name)
4088 {
4089   gdb_assert (gdbarch != NULL);
4090   gdb_assert (gdbarch->static_transform_name != NULL);
4091   if (gdbarch_debug >= 2)
4092     fprintf_unfiltered (gdb_stdlog, "gdbarch_static_transform_name called\n");
4093   return gdbarch->static_transform_name (name);
4094 }
4095
4096 void
4097 set_gdbarch_static_transform_name (struct gdbarch *gdbarch,
4098                                    gdbarch_static_transform_name_ftype static_transform_name)
4099 {
4100   gdbarch->static_transform_name = static_transform_name;
4101 }
4102
4103 int
4104 gdbarch_sofun_address_maybe_missing (struct gdbarch *gdbarch)
4105 {
4106   gdb_assert (gdbarch != NULL);
4107   /* Skip verify of sofun_address_maybe_missing, invalid_p == 0 */
4108   if (gdbarch_debug >= 2)
4109     fprintf_unfiltered (gdb_stdlog, "gdbarch_sofun_address_maybe_missing called\n");
4110   return gdbarch->sofun_address_maybe_missing;
4111 }
4112
4113 void
4114 set_gdbarch_sofun_address_maybe_missing (struct gdbarch *gdbarch,
4115                                          int sofun_address_maybe_missing)
4116 {
4117   gdbarch->sofun_address_maybe_missing = sofun_address_maybe_missing;
4118 }
4119
4120 int
4121 gdbarch_process_record_p (struct gdbarch *gdbarch)
4122 {
4123   gdb_assert (gdbarch != NULL);
4124   return gdbarch->process_record != NULL;
4125 }
4126
4127 int
4128 gdbarch_process_record (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr)
4129 {
4130   gdb_assert (gdbarch != NULL);
4131   gdb_assert (gdbarch->process_record != NULL);
4132   if (gdbarch_debug >= 2)
4133     fprintf_unfiltered (gdb_stdlog, "gdbarch_process_record called\n");
4134   return gdbarch->process_record (gdbarch, regcache, addr);
4135 }
4136
4137 void
4138 set_gdbarch_process_record (struct gdbarch *gdbarch,
4139                             gdbarch_process_record_ftype process_record)
4140 {
4141   gdbarch->process_record = process_record;
4142 }
4143
4144 int
4145 gdbarch_process_record_signal_p (struct gdbarch *gdbarch)
4146 {
4147   gdb_assert (gdbarch != NULL);
4148   return gdbarch->process_record_signal != NULL;
4149 }
4150
4151 int
4152 gdbarch_process_record_signal (struct gdbarch *gdbarch, struct regcache *regcache, enum gdb_signal signal)
4153 {
4154   gdb_assert (gdbarch != NULL);
4155   gdb_assert (gdbarch->process_record_signal != NULL);
4156   if (gdbarch_debug >= 2)
4157     fprintf_unfiltered (gdb_stdlog, "gdbarch_process_record_signal called\n");
4158   return gdbarch->process_record_signal (gdbarch, regcache, signal);
4159 }
4160
4161 void
4162 set_gdbarch_process_record_signal (struct gdbarch *gdbarch,
4163                                    gdbarch_process_record_signal_ftype process_record_signal)
4164 {
4165   gdbarch->process_record_signal = process_record_signal;
4166 }
4167
4168 int
4169 gdbarch_gdb_signal_from_target_p (struct gdbarch *gdbarch)
4170 {
4171   gdb_assert (gdbarch != NULL);
4172   return gdbarch->gdb_signal_from_target != NULL;
4173 }
4174
4175 enum gdb_signal
4176 gdbarch_gdb_signal_from_target (struct gdbarch *gdbarch, int signo)
4177 {
4178   gdb_assert (gdbarch != NULL);
4179   gdb_assert (gdbarch->gdb_signal_from_target != NULL);
4180   if (gdbarch_debug >= 2)
4181     fprintf_unfiltered (gdb_stdlog, "gdbarch_gdb_signal_from_target called\n");
4182   return gdbarch->gdb_signal_from_target (gdbarch, signo);
4183 }
4184
4185 void
4186 set_gdbarch_gdb_signal_from_target (struct gdbarch *gdbarch,
4187                                     gdbarch_gdb_signal_from_target_ftype gdb_signal_from_target)
4188 {
4189   gdbarch->gdb_signal_from_target = gdb_signal_from_target;
4190 }
4191
4192 int
4193 gdbarch_gdb_signal_to_target_p (struct gdbarch *gdbarch)
4194 {
4195   gdb_assert (gdbarch != NULL);
4196   return gdbarch->gdb_signal_to_target != NULL;
4197 }
4198
4199 int
4200 gdbarch_gdb_signal_to_target (struct gdbarch *gdbarch, enum gdb_signal signal)
4201 {
4202   gdb_assert (gdbarch != NULL);
4203   gdb_assert (gdbarch->gdb_signal_to_target != NULL);
4204   if (gdbarch_debug >= 2)
4205     fprintf_unfiltered (gdb_stdlog, "gdbarch_gdb_signal_to_target called\n");
4206   return gdbarch->gdb_signal_to_target (gdbarch, signal);
4207 }
4208
4209 void
4210 set_gdbarch_gdb_signal_to_target (struct gdbarch *gdbarch,
4211                                   gdbarch_gdb_signal_to_target_ftype gdb_signal_to_target)
4212 {
4213   gdbarch->gdb_signal_to_target = gdb_signal_to_target;
4214 }
4215
4216 int
4217 gdbarch_get_siginfo_type_p (struct gdbarch *gdbarch)
4218 {
4219   gdb_assert (gdbarch != NULL);
4220   return gdbarch->get_siginfo_type != NULL;
4221 }
4222
4223 struct type *
4224 gdbarch_get_siginfo_type (struct gdbarch *gdbarch)
4225 {
4226   gdb_assert (gdbarch != NULL);
4227   gdb_assert (gdbarch->get_siginfo_type != NULL);
4228   if (gdbarch_debug >= 2)
4229     fprintf_unfiltered (gdb_stdlog, "gdbarch_get_siginfo_type called\n");
4230   return gdbarch->get_siginfo_type (gdbarch);
4231 }
4232
4233 void
4234 set_gdbarch_get_siginfo_type (struct gdbarch *gdbarch,
4235                               gdbarch_get_siginfo_type_ftype get_siginfo_type)
4236 {
4237   gdbarch->get_siginfo_type = get_siginfo_type;
4238 }
4239
4240 int
4241 gdbarch_record_special_symbol_p (struct gdbarch *gdbarch)
4242 {
4243   gdb_assert (gdbarch != NULL);
4244   return gdbarch->record_special_symbol != NULL;
4245 }
4246
4247 void
4248 gdbarch_record_special_symbol (struct gdbarch *gdbarch, struct objfile *objfile, asymbol *sym)
4249 {
4250   gdb_assert (gdbarch != NULL);
4251   gdb_assert (gdbarch->record_special_symbol != NULL);
4252   if (gdbarch_debug >= 2)
4253     fprintf_unfiltered (gdb_stdlog, "gdbarch_record_special_symbol called\n");
4254   gdbarch->record_special_symbol (gdbarch, objfile, sym);
4255 }
4256
4257 void
4258 set_gdbarch_record_special_symbol (struct gdbarch *gdbarch,
4259                                    gdbarch_record_special_symbol_ftype record_special_symbol)
4260 {
4261   gdbarch->record_special_symbol = record_special_symbol;
4262 }
4263
4264 int
4265 gdbarch_get_syscall_number_p (struct gdbarch *gdbarch)
4266 {
4267   gdb_assert (gdbarch != NULL);
4268   return gdbarch->get_syscall_number != NULL;
4269 }
4270
4271 LONGEST
4272 gdbarch_get_syscall_number (struct gdbarch *gdbarch, ptid_t ptid)
4273 {
4274   gdb_assert (gdbarch != NULL);
4275   gdb_assert (gdbarch->get_syscall_number != NULL);
4276   if (gdbarch_debug >= 2)
4277     fprintf_unfiltered (gdb_stdlog, "gdbarch_get_syscall_number called\n");
4278   return gdbarch->get_syscall_number (gdbarch, ptid);
4279 }
4280
4281 void
4282 set_gdbarch_get_syscall_number (struct gdbarch *gdbarch,
4283                                 gdbarch_get_syscall_number_ftype get_syscall_number)
4284 {
4285   gdbarch->get_syscall_number = get_syscall_number;
4286 }
4287
4288 const char *
4289 gdbarch_xml_syscall_file (struct gdbarch *gdbarch)
4290 {
4291   gdb_assert (gdbarch != NULL);
4292   /* Skip verify of xml_syscall_file, invalid_p == 0 */
4293   if (gdbarch_debug >= 2)
4294     fprintf_unfiltered (gdb_stdlog, "gdbarch_xml_syscall_file called\n");
4295   return gdbarch->xml_syscall_file;
4296 }
4297
4298 void
4299 set_gdbarch_xml_syscall_file (struct gdbarch *gdbarch,
4300                               const char * xml_syscall_file)
4301 {
4302   gdbarch->xml_syscall_file = xml_syscall_file;
4303 }
4304
4305 struct syscalls_info *
4306 gdbarch_syscalls_info (struct gdbarch *gdbarch)
4307 {
4308   gdb_assert (gdbarch != NULL);
4309   /* Skip verify of syscalls_info, invalid_p == 0 */
4310   if (gdbarch_debug >= 2)
4311     fprintf_unfiltered (gdb_stdlog, "gdbarch_syscalls_info called\n");
4312   return gdbarch->syscalls_info;
4313 }
4314
4315 void
4316 set_gdbarch_syscalls_info (struct gdbarch *gdbarch,
4317                            struct syscalls_info * syscalls_info)
4318 {
4319   gdbarch->syscalls_info = syscalls_info;
4320 }
4321
4322 const char *const *
4323 gdbarch_stap_integer_prefixes (struct gdbarch *gdbarch)
4324 {
4325   gdb_assert (gdbarch != NULL);
4326   /* Skip verify of stap_integer_prefixes, invalid_p == 0 */
4327   if (gdbarch_debug >= 2)
4328     fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_integer_prefixes called\n");
4329   return gdbarch->stap_integer_prefixes;
4330 }
4331
4332 void
4333 set_gdbarch_stap_integer_prefixes (struct gdbarch *gdbarch,
4334                                    const char *const * stap_integer_prefixes)
4335 {
4336   gdbarch->stap_integer_prefixes = stap_integer_prefixes;
4337 }
4338
4339 const char *const *
4340 gdbarch_stap_integer_suffixes (struct gdbarch *gdbarch)
4341 {
4342   gdb_assert (gdbarch != NULL);
4343   /* Skip verify of stap_integer_suffixes, invalid_p == 0 */
4344   if (gdbarch_debug >= 2)
4345     fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_integer_suffixes called\n");
4346   return gdbarch->stap_integer_suffixes;
4347 }
4348
4349 void
4350 set_gdbarch_stap_integer_suffixes (struct gdbarch *gdbarch,
4351                                    const char *const * stap_integer_suffixes)
4352 {
4353   gdbarch->stap_integer_suffixes = stap_integer_suffixes;
4354 }
4355
4356 const char *const *
4357 gdbarch_stap_register_prefixes (struct gdbarch *gdbarch)
4358 {
4359   gdb_assert (gdbarch != NULL);
4360   /* Skip verify of stap_register_prefixes, invalid_p == 0 */
4361   if (gdbarch_debug >= 2)
4362     fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_register_prefixes called\n");
4363   return gdbarch->stap_register_prefixes;
4364 }
4365
4366 void
4367 set_gdbarch_stap_register_prefixes (struct gdbarch *gdbarch,
4368                                     const char *const * stap_register_prefixes)
4369 {
4370   gdbarch->stap_register_prefixes = stap_register_prefixes;
4371 }
4372
4373 const char *const *
4374 gdbarch_stap_register_suffixes (struct gdbarch *gdbarch)
4375 {
4376   gdb_assert (gdbarch != NULL);
4377   /* Skip verify of stap_register_suffixes, invalid_p == 0 */
4378   if (gdbarch_debug >= 2)
4379     fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_register_suffixes called\n");
4380   return gdbarch->stap_register_suffixes;
4381 }
4382
4383 void
4384 set_gdbarch_stap_register_suffixes (struct gdbarch *gdbarch,
4385                                     const char *const * stap_register_suffixes)
4386 {
4387   gdbarch->stap_register_suffixes = stap_register_suffixes;
4388 }
4389
4390 const char *const *
4391 gdbarch_stap_register_indirection_prefixes (struct gdbarch *gdbarch)
4392 {
4393   gdb_assert (gdbarch != NULL);
4394   /* Skip verify of stap_register_indirection_prefixes, invalid_p == 0 */
4395   if (gdbarch_debug >= 2)
4396     fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_register_indirection_prefixes called\n");
4397   return gdbarch->stap_register_indirection_prefixes;
4398 }
4399
4400 void
4401 set_gdbarch_stap_register_indirection_prefixes (struct gdbarch *gdbarch,
4402                                                 const char *const * stap_register_indirection_prefixes)
4403 {
4404   gdbarch->stap_register_indirection_prefixes = stap_register_indirection_prefixes;
4405 }
4406
4407 const char *const *
4408 gdbarch_stap_register_indirection_suffixes (struct gdbarch *gdbarch)
4409 {
4410   gdb_assert (gdbarch != NULL);
4411   /* Skip verify of stap_register_indirection_suffixes, invalid_p == 0 */
4412   if (gdbarch_debug >= 2)
4413     fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_register_indirection_suffixes called\n");
4414   return gdbarch->stap_register_indirection_suffixes;
4415 }
4416
4417 void
4418 set_gdbarch_stap_register_indirection_suffixes (struct gdbarch *gdbarch,
4419                                                 const char *const * stap_register_indirection_suffixes)
4420 {
4421   gdbarch->stap_register_indirection_suffixes = stap_register_indirection_suffixes;
4422 }
4423
4424 const char *
4425 gdbarch_stap_gdb_register_prefix (struct gdbarch *gdbarch)
4426 {
4427   gdb_assert (gdbarch != NULL);
4428   /* Skip verify of stap_gdb_register_prefix, invalid_p == 0 */
4429   if (gdbarch_debug >= 2)
4430     fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_gdb_register_prefix called\n");
4431   return gdbarch->stap_gdb_register_prefix;
4432 }
4433
4434 void
4435 set_gdbarch_stap_gdb_register_prefix (struct gdbarch *gdbarch,
4436                                       const char * stap_gdb_register_prefix)
4437 {
4438   gdbarch->stap_gdb_register_prefix = stap_gdb_register_prefix;
4439 }
4440
4441 const char *
4442 gdbarch_stap_gdb_register_suffix (struct gdbarch *gdbarch)
4443 {
4444   gdb_assert (gdbarch != NULL);
4445   /* Skip verify of stap_gdb_register_suffix, invalid_p == 0 */
4446   if (gdbarch_debug >= 2)
4447     fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_gdb_register_suffix called\n");
4448   return gdbarch->stap_gdb_register_suffix;
4449 }
4450
4451 void
4452 set_gdbarch_stap_gdb_register_suffix (struct gdbarch *gdbarch,
4453                                       const char * stap_gdb_register_suffix)
4454 {
4455   gdbarch->stap_gdb_register_suffix = stap_gdb_register_suffix;
4456 }
4457
4458 int
4459 gdbarch_stap_is_single_operand_p (struct gdbarch *gdbarch)
4460 {
4461   gdb_assert (gdbarch != NULL);
4462   return gdbarch->stap_is_single_operand != NULL;
4463 }
4464
4465 int
4466 gdbarch_stap_is_single_operand (struct gdbarch *gdbarch, const char *s)
4467 {
4468   gdb_assert (gdbarch != NULL);
4469   gdb_assert (gdbarch->stap_is_single_operand != NULL);
4470   if (gdbarch_debug >= 2)
4471     fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_is_single_operand called\n");
4472   return gdbarch->stap_is_single_operand (gdbarch, s);
4473 }
4474
4475 void
4476 set_gdbarch_stap_is_single_operand (struct gdbarch *gdbarch,
4477                                     gdbarch_stap_is_single_operand_ftype stap_is_single_operand)
4478 {
4479   gdbarch->stap_is_single_operand = stap_is_single_operand;
4480 }
4481
4482 int
4483 gdbarch_stap_parse_special_token_p (struct gdbarch *gdbarch)
4484 {
4485   gdb_assert (gdbarch != NULL);
4486   return gdbarch->stap_parse_special_token != NULL;
4487 }
4488
4489 int
4490 gdbarch_stap_parse_special_token (struct gdbarch *gdbarch, struct stap_parse_info *p)
4491 {
4492   gdb_assert (gdbarch != NULL);
4493   gdb_assert (gdbarch->stap_parse_special_token != NULL);
4494   if (gdbarch_debug >= 2)
4495     fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_parse_special_token called\n");
4496   return gdbarch->stap_parse_special_token (gdbarch, p);
4497 }
4498
4499 void
4500 set_gdbarch_stap_parse_special_token (struct gdbarch *gdbarch,
4501                                       gdbarch_stap_parse_special_token_ftype stap_parse_special_token)
4502 {
4503   gdbarch->stap_parse_special_token = stap_parse_special_token;
4504 }
4505
4506 int
4507 gdbarch_dtrace_parse_probe_argument_p (struct gdbarch *gdbarch)
4508 {
4509   gdb_assert (gdbarch != NULL);
4510   return gdbarch->dtrace_parse_probe_argument != NULL;
4511 }
4512
4513 void
4514 gdbarch_dtrace_parse_probe_argument (struct gdbarch *gdbarch, struct parser_state *pstate, int narg)
4515 {
4516   gdb_assert (gdbarch != NULL);
4517   gdb_assert (gdbarch->dtrace_parse_probe_argument != NULL);
4518   if (gdbarch_debug >= 2)
4519     fprintf_unfiltered (gdb_stdlog, "gdbarch_dtrace_parse_probe_argument called\n");
4520   gdbarch->dtrace_parse_probe_argument (gdbarch, pstate, narg);
4521 }
4522
4523 void
4524 set_gdbarch_dtrace_parse_probe_argument (struct gdbarch *gdbarch,
4525                                          gdbarch_dtrace_parse_probe_argument_ftype dtrace_parse_probe_argument)
4526 {
4527   gdbarch->dtrace_parse_probe_argument = dtrace_parse_probe_argument;
4528 }
4529
4530 int
4531 gdbarch_dtrace_probe_is_enabled_p (struct gdbarch *gdbarch)
4532 {
4533   gdb_assert (gdbarch != NULL);
4534   return gdbarch->dtrace_probe_is_enabled != NULL;
4535 }
4536
4537 int
4538 gdbarch_dtrace_probe_is_enabled (struct gdbarch *gdbarch, CORE_ADDR addr)
4539 {
4540   gdb_assert (gdbarch != NULL);
4541   gdb_assert (gdbarch->dtrace_probe_is_enabled != NULL);
4542   if (gdbarch_debug >= 2)
4543     fprintf_unfiltered (gdb_stdlog, "gdbarch_dtrace_probe_is_enabled called\n");
4544   return gdbarch->dtrace_probe_is_enabled (gdbarch, addr);
4545 }
4546
4547 void
4548 set_gdbarch_dtrace_probe_is_enabled (struct gdbarch *gdbarch,
4549                                      gdbarch_dtrace_probe_is_enabled_ftype dtrace_probe_is_enabled)
4550 {
4551   gdbarch->dtrace_probe_is_enabled = dtrace_probe_is_enabled;
4552 }
4553
4554 int
4555 gdbarch_dtrace_enable_probe_p (struct gdbarch *gdbarch)
4556 {
4557   gdb_assert (gdbarch != NULL);
4558   return gdbarch->dtrace_enable_probe != NULL;
4559 }
4560
4561 void
4562 gdbarch_dtrace_enable_probe (struct gdbarch *gdbarch, CORE_ADDR addr)
4563 {
4564   gdb_assert (gdbarch != NULL);
4565   gdb_assert (gdbarch->dtrace_enable_probe != NULL);
4566   if (gdbarch_debug >= 2)
4567     fprintf_unfiltered (gdb_stdlog, "gdbarch_dtrace_enable_probe called\n");
4568   gdbarch->dtrace_enable_probe (gdbarch, addr);
4569 }
4570
4571 void
4572 set_gdbarch_dtrace_enable_probe (struct gdbarch *gdbarch,
4573                                  gdbarch_dtrace_enable_probe_ftype dtrace_enable_probe)
4574 {
4575   gdbarch->dtrace_enable_probe = dtrace_enable_probe;
4576 }
4577
4578 int
4579 gdbarch_dtrace_disable_probe_p (struct gdbarch *gdbarch)
4580 {
4581   gdb_assert (gdbarch != NULL);
4582   return gdbarch->dtrace_disable_probe != NULL;
4583 }
4584
4585 void
4586 gdbarch_dtrace_disable_probe (struct gdbarch *gdbarch, CORE_ADDR addr)
4587 {
4588   gdb_assert (gdbarch != NULL);
4589   gdb_assert (gdbarch->dtrace_disable_probe != NULL);
4590   if (gdbarch_debug >= 2)
4591     fprintf_unfiltered (gdb_stdlog, "gdbarch_dtrace_disable_probe called\n");
4592   gdbarch->dtrace_disable_probe (gdbarch, addr);
4593 }
4594
4595 void
4596 set_gdbarch_dtrace_disable_probe (struct gdbarch *gdbarch,
4597                                   gdbarch_dtrace_disable_probe_ftype dtrace_disable_probe)
4598 {
4599   gdbarch->dtrace_disable_probe = dtrace_disable_probe;
4600 }
4601
4602 int
4603 gdbarch_has_global_solist (struct gdbarch *gdbarch)
4604 {
4605   gdb_assert (gdbarch != NULL);
4606   /* Skip verify of has_global_solist, invalid_p == 0 */
4607   if (gdbarch_debug >= 2)
4608     fprintf_unfiltered (gdb_stdlog, "gdbarch_has_global_solist called\n");
4609   return gdbarch->has_global_solist;
4610 }
4611
4612 void
4613 set_gdbarch_has_global_solist (struct gdbarch *gdbarch,
4614                                int has_global_solist)
4615 {
4616   gdbarch->has_global_solist = has_global_solist;
4617 }
4618
4619 int
4620 gdbarch_has_global_breakpoints (struct gdbarch *gdbarch)
4621 {
4622   gdb_assert (gdbarch != NULL);
4623   /* Skip verify of has_global_breakpoints, invalid_p == 0 */
4624   if (gdbarch_debug >= 2)
4625     fprintf_unfiltered (gdb_stdlog, "gdbarch_has_global_breakpoints called\n");
4626   return gdbarch->has_global_breakpoints;
4627 }
4628
4629 void
4630 set_gdbarch_has_global_breakpoints (struct gdbarch *gdbarch,
4631                                     int has_global_breakpoints)
4632 {
4633   gdbarch->has_global_breakpoints = has_global_breakpoints;
4634 }
4635
4636 int
4637 gdbarch_has_shared_address_space (struct gdbarch *gdbarch)
4638 {
4639   gdb_assert (gdbarch != NULL);
4640   gdb_assert (gdbarch->has_shared_address_space != NULL);
4641   if (gdbarch_debug >= 2)
4642     fprintf_unfiltered (gdb_stdlog, "gdbarch_has_shared_address_space called\n");
4643   return gdbarch->has_shared_address_space (gdbarch);
4644 }
4645
4646 void
4647 set_gdbarch_has_shared_address_space (struct gdbarch *gdbarch,
4648                                       gdbarch_has_shared_address_space_ftype has_shared_address_space)
4649 {
4650   gdbarch->has_shared_address_space = has_shared_address_space;
4651 }
4652
4653 int
4654 gdbarch_fast_tracepoint_valid_at (struct gdbarch *gdbarch, CORE_ADDR addr, std::string *msg)
4655 {
4656   gdb_assert (gdbarch != NULL);
4657   gdb_assert (gdbarch->fast_tracepoint_valid_at != NULL);
4658   if (gdbarch_debug >= 2)
4659     fprintf_unfiltered (gdb_stdlog, "gdbarch_fast_tracepoint_valid_at called\n");
4660   return gdbarch->fast_tracepoint_valid_at (gdbarch, addr, msg);
4661 }
4662
4663 void
4664 set_gdbarch_fast_tracepoint_valid_at (struct gdbarch *gdbarch,
4665                                       gdbarch_fast_tracepoint_valid_at_ftype fast_tracepoint_valid_at)
4666 {
4667   gdbarch->fast_tracepoint_valid_at = fast_tracepoint_valid_at;
4668 }
4669
4670 void
4671 gdbarch_guess_tracepoint_registers (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr)
4672 {
4673   gdb_assert (gdbarch != NULL);
4674   gdb_assert (gdbarch->guess_tracepoint_registers != NULL);
4675   if (gdbarch_debug >= 2)
4676     fprintf_unfiltered (gdb_stdlog, "gdbarch_guess_tracepoint_registers called\n");
4677   gdbarch->guess_tracepoint_registers (gdbarch, regcache, addr);
4678 }
4679
4680 void
4681 set_gdbarch_guess_tracepoint_registers (struct gdbarch *gdbarch,
4682                                         gdbarch_guess_tracepoint_registers_ftype guess_tracepoint_registers)
4683 {
4684   gdbarch->guess_tracepoint_registers = guess_tracepoint_registers;
4685 }
4686
4687 const char *
4688 gdbarch_auto_charset (struct gdbarch *gdbarch)
4689 {
4690   gdb_assert (gdbarch != NULL);
4691   gdb_assert (gdbarch->auto_charset != NULL);
4692   if (gdbarch_debug >= 2)
4693     fprintf_unfiltered (gdb_stdlog, "gdbarch_auto_charset called\n");
4694   return gdbarch->auto_charset ();
4695 }
4696
4697 void
4698 set_gdbarch_auto_charset (struct gdbarch *gdbarch,
4699                           gdbarch_auto_charset_ftype auto_charset)
4700 {
4701   gdbarch->auto_charset = auto_charset;
4702 }
4703
4704 const char *
4705 gdbarch_auto_wide_charset (struct gdbarch *gdbarch)
4706 {
4707   gdb_assert (gdbarch != NULL);
4708   gdb_assert (gdbarch->auto_wide_charset != NULL);
4709   if (gdbarch_debug >= 2)
4710     fprintf_unfiltered (gdb_stdlog, "gdbarch_auto_wide_charset called\n");
4711   return gdbarch->auto_wide_charset ();
4712 }
4713
4714 void
4715 set_gdbarch_auto_wide_charset (struct gdbarch *gdbarch,
4716                                gdbarch_auto_wide_charset_ftype auto_wide_charset)
4717 {
4718   gdbarch->auto_wide_charset = auto_wide_charset;
4719 }
4720
4721 const char *
4722 gdbarch_solib_symbols_extension (struct gdbarch *gdbarch)
4723 {
4724   gdb_assert (gdbarch != NULL);
4725   if (gdbarch_debug >= 2)
4726     fprintf_unfiltered (gdb_stdlog, "gdbarch_solib_symbols_extension called\n");
4727   return gdbarch->solib_symbols_extension;
4728 }
4729
4730 void
4731 set_gdbarch_solib_symbols_extension (struct gdbarch *gdbarch,
4732                                      const char * solib_symbols_extension)
4733 {
4734   gdbarch->solib_symbols_extension = solib_symbols_extension;
4735 }
4736
4737 int
4738 gdbarch_has_dos_based_file_system (struct gdbarch *gdbarch)
4739 {
4740   gdb_assert (gdbarch != NULL);
4741   /* Skip verify of has_dos_based_file_system, invalid_p == 0 */
4742   if (gdbarch_debug >= 2)
4743     fprintf_unfiltered (gdb_stdlog, "gdbarch_has_dos_based_file_system called\n");
4744   return gdbarch->has_dos_based_file_system;
4745 }
4746
4747 void
4748 set_gdbarch_has_dos_based_file_system (struct gdbarch *gdbarch,
4749                                        int has_dos_based_file_system)
4750 {
4751   gdbarch->has_dos_based_file_system = has_dos_based_file_system;
4752 }
4753
4754 void
4755 gdbarch_gen_return_address (struct gdbarch *gdbarch, struct agent_expr *ax, struct axs_value *value, CORE_ADDR scope)
4756 {
4757   gdb_assert (gdbarch != NULL);
4758   gdb_assert (gdbarch->gen_return_address != NULL);
4759   if (gdbarch_debug >= 2)
4760     fprintf_unfiltered (gdb_stdlog, "gdbarch_gen_return_address called\n");
4761   gdbarch->gen_return_address (gdbarch, ax, value, scope);
4762 }
4763
4764 void
4765 set_gdbarch_gen_return_address (struct gdbarch *gdbarch,
4766                                 gdbarch_gen_return_address_ftype gen_return_address)
4767 {
4768   gdbarch->gen_return_address = gen_return_address;
4769 }
4770
4771 int
4772 gdbarch_info_proc_p (struct gdbarch *gdbarch)
4773 {
4774   gdb_assert (gdbarch != NULL);
4775   return gdbarch->info_proc != NULL;
4776 }
4777
4778 void
4779 gdbarch_info_proc (struct gdbarch *gdbarch, const char *args, enum info_proc_what what)
4780 {
4781   gdb_assert (gdbarch != NULL);
4782   gdb_assert (gdbarch->info_proc != NULL);
4783   if (gdbarch_debug >= 2)
4784     fprintf_unfiltered (gdb_stdlog, "gdbarch_info_proc called\n");
4785   gdbarch->info_proc (gdbarch, args, what);
4786 }
4787
4788 void
4789 set_gdbarch_info_proc (struct gdbarch *gdbarch,
4790                        gdbarch_info_proc_ftype info_proc)
4791 {
4792   gdbarch->info_proc = info_proc;
4793 }
4794
4795 int
4796 gdbarch_core_info_proc_p (struct gdbarch *gdbarch)
4797 {
4798   gdb_assert (gdbarch != NULL);
4799   return gdbarch->core_info_proc != NULL;
4800 }
4801
4802 void
4803 gdbarch_core_info_proc (struct gdbarch *gdbarch, const char *args, enum info_proc_what what)
4804 {
4805   gdb_assert (gdbarch != NULL);
4806   gdb_assert (gdbarch->core_info_proc != NULL);
4807   if (gdbarch_debug >= 2)
4808     fprintf_unfiltered (gdb_stdlog, "gdbarch_core_info_proc called\n");
4809   gdbarch->core_info_proc (gdbarch, args, what);
4810 }
4811
4812 void
4813 set_gdbarch_core_info_proc (struct gdbarch *gdbarch,
4814                             gdbarch_core_info_proc_ftype core_info_proc)
4815 {
4816   gdbarch->core_info_proc = core_info_proc;
4817 }
4818
4819 void
4820 gdbarch_iterate_over_objfiles_in_search_order (struct gdbarch *gdbarch, iterate_over_objfiles_in_search_order_cb_ftype *cb, void *cb_data, struct objfile *current_objfile)
4821 {
4822   gdb_assert (gdbarch != NULL);
4823   gdb_assert (gdbarch->iterate_over_objfiles_in_search_order != NULL);
4824   if (gdbarch_debug >= 2)
4825     fprintf_unfiltered (gdb_stdlog, "gdbarch_iterate_over_objfiles_in_search_order called\n");
4826   gdbarch->iterate_over_objfiles_in_search_order (gdbarch, cb, cb_data, current_objfile);
4827 }
4828
4829 void
4830 set_gdbarch_iterate_over_objfiles_in_search_order (struct gdbarch *gdbarch,
4831                                                    gdbarch_iterate_over_objfiles_in_search_order_ftype iterate_over_objfiles_in_search_order)
4832 {
4833   gdbarch->iterate_over_objfiles_in_search_order = iterate_over_objfiles_in_search_order;
4834 }
4835
4836 struct ravenscar_arch_ops *
4837 gdbarch_ravenscar_ops (struct gdbarch *gdbarch)
4838 {
4839   gdb_assert (gdbarch != NULL);
4840   /* Skip verify of ravenscar_ops, invalid_p == 0 */
4841   if (gdbarch_debug >= 2)
4842     fprintf_unfiltered (gdb_stdlog, "gdbarch_ravenscar_ops called\n");
4843   return gdbarch->ravenscar_ops;
4844 }
4845
4846 void
4847 set_gdbarch_ravenscar_ops (struct gdbarch *gdbarch,
4848                            struct ravenscar_arch_ops * ravenscar_ops)
4849 {
4850   gdbarch->ravenscar_ops = ravenscar_ops;
4851 }
4852
4853 int
4854 gdbarch_insn_is_call (struct gdbarch *gdbarch, CORE_ADDR addr)
4855 {
4856   gdb_assert (gdbarch != NULL);
4857   gdb_assert (gdbarch->insn_is_call != NULL);
4858   if (gdbarch_debug >= 2)
4859     fprintf_unfiltered (gdb_stdlog, "gdbarch_insn_is_call called\n");
4860   return gdbarch->insn_is_call (gdbarch, addr);
4861 }
4862
4863 void
4864 set_gdbarch_insn_is_call (struct gdbarch *gdbarch,
4865                           gdbarch_insn_is_call_ftype insn_is_call)
4866 {
4867   gdbarch->insn_is_call = insn_is_call;
4868 }
4869
4870 int
4871 gdbarch_insn_is_ret (struct gdbarch *gdbarch, CORE_ADDR addr)
4872 {
4873   gdb_assert (gdbarch != NULL);
4874   gdb_assert (gdbarch->insn_is_ret != NULL);
4875   if (gdbarch_debug >= 2)
4876     fprintf_unfiltered (gdb_stdlog, "gdbarch_insn_is_ret called\n");
4877   return gdbarch->insn_is_ret (gdbarch, addr);
4878 }
4879
4880 void
4881 set_gdbarch_insn_is_ret (struct gdbarch *gdbarch,
4882                          gdbarch_insn_is_ret_ftype insn_is_ret)
4883 {
4884   gdbarch->insn_is_ret = insn_is_ret;
4885 }
4886
4887 int
4888 gdbarch_insn_is_jump (struct gdbarch *gdbarch, CORE_ADDR addr)
4889 {
4890   gdb_assert (gdbarch != NULL);
4891   gdb_assert (gdbarch->insn_is_jump != NULL);
4892   if (gdbarch_debug >= 2)
4893     fprintf_unfiltered (gdb_stdlog, "gdbarch_insn_is_jump called\n");
4894   return gdbarch->insn_is_jump (gdbarch, addr);
4895 }
4896
4897 void
4898 set_gdbarch_insn_is_jump (struct gdbarch *gdbarch,
4899                           gdbarch_insn_is_jump_ftype insn_is_jump)
4900 {
4901   gdbarch->insn_is_jump = insn_is_jump;
4902 }
4903
4904 int
4905 gdbarch_auxv_parse_p (struct gdbarch *gdbarch)
4906 {
4907   gdb_assert (gdbarch != NULL);
4908   return gdbarch->auxv_parse != NULL;
4909 }
4910
4911 int
4912 gdbarch_auxv_parse (struct gdbarch *gdbarch, gdb_byte **readptr, gdb_byte *endptr, CORE_ADDR *typep, CORE_ADDR *valp)
4913 {
4914   gdb_assert (gdbarch != NULL);
4915   gdb_assert (gdbarch->auxv_parse != NULL);
4916   if (gdbarch_debug >= 2)
4917     fprintf_unfiltered (gdb_stdlog, "gdbarch_auxv_parse called\n");
4918   return gdbarch->auxv_parse (gdbarch, readptr, endptr, typep, valp);
4919 }
4920
4921 void
4922 set_gdbarch_auxv_parse (struct gdbarch *gdbarch,
4923                         gdbarch_auxv_parse_ftype auxv_parse)
4924 {
4925   gdbarch->auxv_parse = auxv_parse;
4926 }
4927
4928 void
4929 gdbarch_print_auxv_entry (struct gdbarch *gdbarch, struct ui_file *file, CORE_ADDR type, CORE_ADDR val)
4930 {
4931   gdb_assert (gdbarch != NULL);
4932   gdb_assert (gdbarch->print_auxv_entry != NULL);
4933   if (gdbarch_debug >= 2)
4934     fprintf_unfiltered (gdb_stdlog, "gdbarch_print_auxv_entry called\n");
4935   gdbarch->print_auxv_entry (gdbarch, file, type, val);
4936 }
4937
4938 void
4939 set_gdbarch_print_auxv_entry (struct gdbarch *gdbarch,
4940                               gdbarch_print_auxv_entry_ftype print_auxv_entry)
4941 {
4942   gdbarch->print_auxv_entry = print_auxv_entry;
4943 }
4944
4945 int
4946 gdbarch_vsyscall_range (struct gdbarch *gdbarch, struct mem_range *range)
4947 {
4948   gdb_assert (gdbarch != NULL);
4949   gdb_assert (gdbarch->vsyscall_range != NULL);
4950   if (gdbarch_debug >= 2)
4951     fprintf_unfiltered (gdb_stdlog, "gdbarch_vsyscall_range called\n");
4952   return gdbarch->vsyscall_range (gdbarch, range);
4953 }
4954
4955 void
4956 set_gdbarch_vsyscall_range (struct gdbarch *gdbarch,
4957                             gdbarch_vsyscall_range_ftype vsyscall_range)
4958 {
4959   gdbarch->vsyscall_range = vsyscall_range;
4960 }
4961
4962 CORE_ADDR
4963 gdbarch_infcall_mmap (struct gdbarch *gdbarch, CORE_ADDR size, unsigned prot)
4964 {
4965   gdb_assert (gdbarch != NULL);
4966   gdb_assert (gdbarch->infcall_mmap != NULL);
4967   if (gdbarch_debug >= 2)
4968     fprintf_unfiltered (gdb_stdlog, "gdbarch_infcall_mmap called\n");
4969   return gdbarch->infcall_mmap (size, prot);
4970 }
4971
4972 void
4973 set_gdbarch_infcall_mmap (struct gdbarch *gdbarch,
4974                           gdbarch_infcall_mmap_ftype infcall_mmap)
4975 {
4976   gdbarch->infcall_mmap = infcall_mmap;
4977 }
4978
4979 void
4980 gdbarch_infcall_munmap (struct gdbarch *gdbarch, CORE_ADDR addr, CORE_ADDR size)
4981 {
4982   gdb_assert (gdbarch != NULL);
4983   gdb_assert (gdbarch->infcall_munmap != NULL);
4984   if (gdbarch_debug >= 2)
4985     fprintf_unfiltered (gdb_stdlog, "gdbarch_infcall_munmap called\n");
4986   gdbarch->infcall_munmap (addr, size);
4987 }
4988
4989 void
4990 set_gdbarch_infcall_munmap (struct gdbarch *gdbarch,
4991                             gdbarch_infcall_munmap_ftype infcall_munmap)
4992 {
4993   gdbarch->infcall_munmap = infcall_munmap;
4994 }
4995
4996 char *
4997 gdbarch_gcc_target_options (struct gdbarch *gdbarch)
4998 {
4999   gdb_assert (gdbarch != NULL);
5000   gdb_assert (gdbarch->gcc_target_options != NULL);
5001   if (gdbarch_debug >= 2)
5002     fprintf_unfiltered (gdb_stdlog, "gdbarch_gcc_target_options called\n");
5003   return gdbarch->gcc_target_options (gdbarch);
5004 }
5005
5006 void
5007 set_gdbarch_gcc_target_options (struct gdbarch *gdbarch,
5008                                 gdbarch_gcc_target_options_ftype gcc_target_options)
5009 {
5010   gdbarch->gcc_target_options = gcc_target_options;
5011 }
5012
5013 const char *
5014 gdbarch_gnu_triplet_regexp (struct gdbarch *gdbarch)
5015 {
5016   gdb_assert (gdbarch != NULL);
5017   gdb_assert (gdbarch->gnu_triplet_regexp != NULL);
5018   if (gdbarch_debug >= 2)
5019     fprintf_unfiltered (gdb_stdlog, "gdbarch_gnu_triplet_regexp called\n");
5020   return gdbarch->gnu_triplet_regexp (gdbarch);
5021 }
5022
5023 void
5024 set_gdbarch_gnu_triplet_regexp (struct gdbarch *gdbarch,
5025                                 gdbarch_gnu_triplet_regexp_ftype gnu_triplet_regexp)
5026 {
5027   gdbarch->gnu_triplet_regexp = gnu_triplet_regexp;
5028 }
5029
5030 int
5031 gdbarch_addressable_memory_unit_size (struct gdbarch *gdbarch)
5032 {
5033   gdb_assert (gdbarch != NULL);
5034   gdb_assert (gdbarch->addressable_memory_unit_size != NULL);
5035   if (gdbarch_debug >= 2)
5036     fprintf_unfiltered (gdb_stdlog, "gdbarch_addressable_memory_unit_size called\n");
5037   return gdbarch->addressable_memory_unit_size (gdbarch);
5038 }
5039
5040 void
5041 set_gdbarch_addressable_memory_unit_size (struct gdbarch *gdbarch,
5042                                           gdbarch_addressable_memory_unit_size_ftype addressable_memory_unit_size)
5043 {
5044   gdbarch->addressable_memory_unit_size = addressable_memory_unit_size;
5045 }
5046
5047 char **
5048 gdbarch_disassembler_options (struct gdbarch *gdbarch)
5049 {
5050   gdb_assert (gdbarch != NULL);
5051   /* Skip verify of disassembler_options, invalid_p == 0 */
5052   if (gdbarch_debug >= 2)
5053     fprintf_unfiltered (gdb_stdlog, "gdbarch_disassembler_options called\n");
5054   return gdbarch->disassembler_options;
5055 }
5056
5057 void
5058 set_gdbarch_disassembler_options (struct gdbarch *gdbarch,
5059                                   char ** disassembler_options)
5060 {
5061   gdbarch->disassembler_options = disassembler_options;
5062 }
5063
5064 const disasm_options_t *
5065 gdbarch_valid_disassembler_options (struct gdbarch *gdbarch)
5066 {
5067   gdb_assert (gdbarch != NULL);
5068   /* Skip verify of valid_disassembler_options, invalid_p == 0 */
5069   if (gdbarch_debug >= 2)
5070     fprintf_unfiltered (gdb_stdlog, "gdbarch_valid_disassembler_options called\n");
5071   return gdbarch->valid_disassembler_options;
5072 }
5073
5074 void
5075 set_gdbarch_valid_disassembler_options (struct gdbarch *gdbarch,
5076                                         const disasm_options_t * valid_disassembler_options)
5077 {
5078   gdbarch->valid_disassembler_options = valid_disassembler_options;
5079 }
5080
5081 ULONGEST
5082 gdbarch_type_align (struct gdbarch *gdbarch, struct type *type)
5083 {
5084   gdb_assert (gdbarch != NULL);
5085   gdb_assert (gdbarch->type_align != NULL);
5086   if (gdbarch_debug >= 2)
5087     fprintf_unfiltered (gdb_stdlog, "gdbarch_type_align called\n");
5088   return gdbarch->type_align (gdbarch, type);
5089 }
5090
5091 void
5092 set_gdbarch_type_align (struct gdbarch *gdbarch,
5093                         gdbarch_type_align_ftype type_align)
5094 {
5095   gdbarch->type_align = type_align;
5096 }
5097
5098
5099 /* Keep a registry of per-architecture data-pointers required by GDB
5100    modules.  */
5101
5102 struct gdbarch_data
5103 {
5104   unsigned index;
5105   int init_p;
5106   gdbarch_data_pre_init_ftype *pre_init;
5107   gdbarch_data_post_init_ftype *post_init;
5108 };
5109
5110 struct gdbarch_data_registration
5111 {
5112   struct gdbarch_data *data;
5113   struct gdbarch_data_registration *next;
5114 };
5115
5116 struct gdbarch_data_registry
5117 {
5118   unsigned nr;
5119   struct gdbarch_data_registration *registrations;
5120 };
5121
5122 struct gdbarch_data_registry gdbarch_data_registry =
5123 {
5124   0, NULL,
5125 };
5126
5127 static struct gdbarch_data *
5128 gdbarch_data_register (gdbarch_data_pre_init_ftype *pre_init,
5129                        gdbarch_data_post_init_ftype *post_init)
5130 {
5131   struct gdbarch_data_registration **curr;
5132
5133   /* Append the new registration.  */
5134   for (curr = &gdbarch_data_registry.registrations;
5135        (*curr) != NULL;
5136        curr = &(*curr)->next);
5137   (*curr) = XNEW (struct gdbarch_data_registration);
5138   (*curr)->next = NULL;
5139   (*curr)->data = XNEW (struct gdbarch_data);
5140   (*curr)->data->index = gdbarch_data_registry.nr++;
5141   (*curr)->data->pre_init = pre_init;
5142   (*curr)->data->post_init = post_init;
5143   (*curr)->data->init_p = 1;
5144   return (*curr)->data;
5145 }
5146
5147 struct gdbarch_data *
5148 gdbarch_data_register_pre_init (gdbarch_data_pre_init_ftype *pre_init)
5149 {
5150   return gdbarch_data_register (pre_init, NULL);
5151 }
5152
5153 struct gdbarch_data *
5154 gdbarch_data_register_post_init (gdbarch_data_post_init_ftype *post_init)
5155 {
5156   return gdbarch_data_register (NULL, post_init);
5157 }
5158
5159 /* Create/delete the gdbarch data vector.  */
5160
5161 static void
5162 alloc_gdbarch_data (struct gdbarch *gdbarch)
5163 {
5164   gdb_assert (gdbarch->data == NULL);
5165   gdbarch->nr_data = gdbarch_data_registry.nr;
5166   gdbarch->data = GDBARCH_OBSTACK_CALLOC (gdbarch, gdbarch->nr_data, void *);
5167 }
5168
5169 /* Initialize the current value of the specified per-architecture
5170    data-pointer.  */
5171
5172 void
5173 deprecated_set_gdbarch_data (struct gdbarch *gdbarch,
5174                              struct gdbarch_data *data,
5175                              void *pointer)
5176 {
5177   gdb_assert (data->index < gdbarch->nr_data);
5178   gdb_assert (gdbarch->data[data->index] == NULL);
5179   gdb_assert (data->pre_init == NULL);
5180   gdbarch->data[data->index] = pointer;
5181 }
5182
5183 /* Return the current value of the specified per-architecture
5184    data-pointer.  */
5185
5186 void *
5187 gdbarch_data (struct gdbarch *gdbarch, struct gdbarch_data *data)
5188 {
5189   gdb_assert (data->index < gdbarch->nr_data);
5190   if (gdbarch->data[data->index] == NULL)
5191     {
5192       /* The data-pointer isn't initialized, call init() to get a
5193          value.  */
5194       if (data->pre_init != NULL)
5195         /* Mid architecture creation: pass just the obstack, and not
5196            the entire architecture, as that way it isn't possible for
5197            pre-init code to refer to undefined architecture
5198            fields.  */
5199         gdbarch->data[data->index] = data->pre_init (gdbarch->obstack);
5200       else if (gdbarch->initialized_p
5201                && data->post_init != NULL)
5202         /* Post architecture creation: pass the entire architecture
5203            (as all fields are valid), but be careful to also detect
5204            recursive references.  */
5205         {
5206           gdb_assert (data->init_p);
5207           data->init_p = 0;
5208           gdbarch->data[data->index] = data->post_init (gdbarch);
5209           data->init_p = 1;
5210         }
5211       else
5212         /* The architecture initialization hasn't completed - punt -
5213          hope that the caller knows what they are doing.  Once
5214          deprecated_set_gdbarch_data has been initialized, this can be
5215          changed to an internal error.  */
5216         return NULL;
5217       gdb_assert (gdbarch->data[data->index] != NULL);
5218     }
5219   return gdbarch->data[data->index];
5220 }
5221
5222
5223 /* Keep a registry of the architectures known by GDB.  */
5224
5225 struct gdbarch_registration
5226 {
5227   enum bfd_architecture bfd_architecture;
5228   gdbarch_init_ftype *init;
5229   gdbarch_dump_tdep_ftype *dump_tdep;
5230   struct gdbarch_list *arches;
5231   struct gdbarch_registration *next;
5232 };
5233
5234 static struct gdbarch_registration *gdbarch_registry = NULL;
5235
5236 static void
5237 append_name (const char ***buf, int *nr, const char *name)
5238 {
5239   *buf = XRESIZEVEC (const char *, *buf, *nr + 1);
5240   (*buf)[*nr] = name;
5241   *nr += 1;
5242 }
5243
5244 const char **
5245 gdbarch_printable_names (void)
5246 {
5247   /* Accumulate a list of names based on the registed list of
5248      architectures.  */
5249   int nr_arches = 0;
5250   const char **arches = NULL;
5251   struct gdbarch_registration *rego;
5252
5253   for (rego = gdbarch_registry;
5254        rego != NULL;
5255        rego = rego->next)
5256     {
5257       const struct bfd_arch_info *ap;
5258       ap = bfd_lookup_arch (rego->bfd_architecture, 0);
5259       if (ap == NULL)
5260         internal_error (__FILE__, __LINE__,
5261                         _("gdbarch_architecture_names: multi-arch unknown"));
5262       do
5263         {
5264           append_name (&arches, &nr_arches, ap->printable_name);
5265           ap = ap->next;
5266         }
5267       while (ap != NULL);
5268     }
5269   append_name (&arches, &nr_arches, NULL);
5270   return arches;
5271 }
5272
5273
5274 void
5275 gdbarch_register (enum bfd_architecture bfd_architecture,
5276                   gdbarch_init_ftype *init,
5277                   gdbarch_dump_tdep_ftype *dump_tdep)
5278 {
5279   struct gdbarch_registration **curr;
5280   const struct bfd_arch_info *bfd_arch_info;
5281
5282   /* Check that BFD recognizes this architecture */
5283   bfd_arch_info = bfd_lookup_arch (bfd_architecture, 0);
5284   if (bfd_arch_info == NULL)
5285     {
5286       internal_error (__FILE__, __LINE__,
5287                       _("gdbarch: Attempt to register "
5288                         "unknown architecture (%d)"),
5289                       bfd_architecture);
5290     }
5291   /* Check that we haven't seen this architecture before.  */
5292   for (curr = &gdbarch_registry;
5293        (*curr) != NULL;
5294        curr = &(*curr)->next)
5295     {
5296       if (bfd_architecture == (*curr)->bfd_architecture)
5297         internal_error (__FILE__, __LINE__,
5298                         _("gdbarch: Duplicate registration "
5299                           "of architecture (%s)"),
5300                         bfd_arch_info->printable_name);
5301     }
5302   /* log it */
5303   if (gdbarch_debug)
5304     fprintf_unfiltered (gdb_stdlog, "register_gdbarch_init (%s, %s)\n",
5305                         bfd_arch_info->printable_name,
5306                         host_address_to_string (init));
5307   /* Append it */
5308   (*curr) = XNEW (struct gdbarch_registration);
5309   (*curr)->bfd_architecture = bfd_architecture;
5310   (*curr)->init = init;
5311   (*curr)->dump_tdep = dump_tdep;
5312   (*curr)->arches = NULL;
5313   (*curr)->next = NULL;
5314 }
5315
5316 void
5317 register_gdbarch_init (enum bfd_architecture bfd_architecture,
5318                        gdbarch_init_ftype *init)
5319 {
5320   gdbarch_register (bfd_architecture, init, NULL);
5321 }
5322
5323
5324 /* Look for an architecture using gdbarch_info.  */
5325
5326 struct gdbarch_list *
5327 gdbarch_list_lookup_by_info (struct gdbarch_list *arches,
5328                              const struct gdbarch_info *info)
5329 {
5330   for (; arches != NULL; arches = arches->next)
5331     {
5332       if (info->bfd_arch_info != arches->gdbarch->bfd_arch_info)
5333         continue;
5334       if (info->byte_order != arches->gdbarch->byte_order)
5335         continue;
5336       if (info->osabi != arches->gdbarch->osabi)
5337         continue;
5338       if (info->target_desc != arches->gdbarch->target_desc)
5339         continue;
5340       return arches;
5341     }
5342   return NULL;
5343 }
5344
5345
5346 /* Find an architecture that matches the specified INFO.  Create a new
5347    architecture if needed.  Return that new architecture.  */
5348
5349 struct gdbarch *
5350 gdbarch_find_by_info (struct gdbarch_info info)
5351 {
5352   struct gdbarch *new_gdbarch;
5353   struct gdbarch_registration *rego;
5354
5355   /* Fill in missing parts of the INFO struct using a number of
5356      sources: "set ..."; INFOabfd supplied; and the global
5357      defaults.  */
5358   gdbarch_info_fill (&info);
5359
5360   /* Must have found some sort of architecture.  */
5361   gdb_assert (info.bfd_arch_info != NULL);
5362
5363   if (gdbarch_debug)
5364     {
5365       fprintf_unfiltered (gdb_stdlog,
5366                           "gdbarch_find_by_info: info.bfd_arch_info %s\n",
5367                           (info.bfd_arch_info != NULL
5368                            ? info.bfd_arch_info->printable_name
5369                            : "(null)"));
5370       fprintf_unfiltered (gdb_stdlog,
5371                           "gdbarch_find_by_info: info.byte_order %d (%s)\n",
5372                           info.byte_order,
5373                           (info.byte_order == BFD_ENDIAN_BIG ? "big"
5374                            : info.byte_order == BFD_ENDIAN_LITTLE ? "little"
5375                            : "default"));
5376       fprintf_unfiltered (gdb_stdlog,
5377                           "gdbarch_find_by_info: info.osabi %d (%s)\n",
5378                           info.osabi, gdbarch_osabi_name (info.osabi));
5379       fprintf_unfiltered (gdb_stdlog,
5380                           "gdbarch_find_by_info: info.abfd %s\n",
5381                           host_address_to_string (info.abfd));
5382       fprintf_unfiltered (gdb_stdlog,
5383                           "gdbarch_find_by_info: info.tdep_info %s\n",
5384                           host_address_to_string (info.tdep_info));
5385     }
5386
5387   /* Find the tdep code that knows about this architecture.  */
5388   for (rego = gdbarch_registry;
5389        rego != NULL;
5390        rego = rego->next)
5391     if (rego->bfd_architecture == info.bfd_arch_info->arch)
5392       break;
5393   if (rego == NULL)
5394     {
5395       if (gdbarch_debug)
5396         fprintf_unfiltered (gdb_stdlog, "gdbarch_find_by_info: "
5397                             "No matching architecture\n");
5398       return 0;
5399     }
5400
5401   /* Ask the tdep code for an architecture that matches "info".  */
5402   new_gdbarch = rego->init (info, rego->arches);
5403
5404   /* Did the tdep code like it?  No.  Reject the change and revert to
5405      the old architecture.  */
5406   if (new_gdbarch == NULL)
5407     {
5408       if (gdbarch_debug)
5409         fprintf_unfiltered (gdb_stdlog, "gdbarch_find_by_info: "
5410                             "Target rejected architecture\n");
5411       return NULL;
5412     }
5413
5414   /* Is this a pre-existing architecture (as determined by already
5415      being initialized)?  Move it to the front of the architecture
5416      list (keeping the list sorted Most Recently Used).  */
5417   if (new_gdbarch->initialized_p)
5418     {
5419       struct gdbarch_list **list;
5420       struct gdbarch_list *self;
5421       if (gdbarch_debug)
5422         fprintf_unfiltered (gdb_stdlog, "gdbarch_find_by_info: "
5423                             "Previous architecture %s (%s) selected\n",
5424                             host_address_to_string (new_gdbarch),
5425                             new_gdbarch->bfd_arch_info->printable_name);
5426       /* Find the existing arch in the list.  */
5427       for (list = &rego->arches;
5428            (*list) != NULL && (*list)->gdbarch != new_gdbarch;
5429            list = &(*list)->next);
5430       /* It had better be in the list of architectures.  */
5431       gdb_assert ((*list) != NULL && (*list)->gdbarch == new_gdbarch);
5432       /* Unlink SELF.  */
5433       self = (*list);
5434       (*list) = self->next;
5435       /* Insert SELF at the front.  */
5436       self->next = rego->arches;
5437       rego->arches = self;
5438       /* Return it.  */
5439       return new_gdbarch;
5440     }
5441
5442   /* It's a new architecture.  */
5443   if (gdbarch_debug)
5444     fprintf_unfiltered (gdb_stdlog, "gdbarch_find_by_info: "
5445                         "New architecture %s (%s) selected\n",
5446                         host_address_to_string (new_gdbarch),
5447                         new_gdbarch->bfd_arch_info->printable_name);
5448   
5449   /* Insert the new architecture into the front of the architecture
5450      list (keep the list sorted Most Recently Used).  */
5451   {
5452     struct gdbarch_list *self = XNEW (struct gdbarch_list);
5453     self->next = rego->arches;
5454     self->gdbarch = new_gdbarch;
5455     rego->arches = self;
5456   }    
5457
5458   /* Check that the newly installed architecture is valid.  Plug in
5459      any post init values.  */
5460   new_gdbarch->dump_tdep = rego->dump_tdep;
5461   verify_gdbarch (new_gdbarch);
5462   new_gdbarch->initialized_p = 1;
5463
5464   if (gdbarch_debug)
5465     gdbarch_dump (new_gdbarch, gdb_stdlog);
5466
5467   return new_gdbarch;
5468 }
5469
5470 /* Make the specified architecture current.  */
5471
5472 void
5473 set_target_gdbarch (struct gdbarch *new_gdbarch)
5474 {
5475   gdb_assert (new_gdbarch != NULL);
5476   gdb_assert (new_gdbarch->initialized_p);
5477   current_inferior ()->gdbarch = new_gdbarch;
5478   gdb::observers::architecture_changed.notify (new_gdbarch);
5479   registers_changed ();
5480 }
5481
5482 /* Return the current inferior's arch.  */
5483
5484 struct gdbarch *
5485 target_gdbarch (void)
5486 {
5487   return current_inferior ()->gdbarch;
5488 }
5489
5490 void
5491 _initialize_gdbarch (void)
5492 {
5493   add_setshow_zuinteger_cmd ("arch", class_maintenance, &gdbarch_debug, _("\
5494 Set architecture debugging."), _("\
5495 Show architecture debugging."), _("\
5496 When non-zero, architecture debugging is enabled."),
5497                             NULL,
5498                             show_gdbarch_debug,
5499                             &setdebuglist, &showdebuglist);
5500 }