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