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