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