2003-03-29 Andrew Cagney <cagney@redhat.com>
[external/binutils.git] / gdb / gdbarch.c
1 /* *INDENT-OFF* */ /* THIS FILE IS GENERATED */
2
3 /* Dynamic architecture support for GDB, the GNU debugger.
4    Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
5
6    This file is part of GDB.
7
8    This program is free software; you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation; either version 2 of the License, or
11    (at your option) any later version.
12
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17
18    You should have received a copy of the GNU General Public License
19    along with this program; if not, write to the Free Software
20    Foundation, Inc., 59 Temple Place - Suite 330,
21    Boston, MA 02111-1307, USA.  */
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 #if GDB_MULTI_ARCH
40 #include "gdbcmd.h"
41 #include "inferior.h" /* enum CALL_DUMMY_LOCATION et.al. */
42 #else
43 /* Just include everything in sight so that the every old definition
44    of macro is visible. */
45 #include "gdb_string.h"
46 #include <ctype.h>
47 #include "symtab.h"
48 #include "frame.h"
49 #include "inferior.h"
50 #include "breakpoint.h"
51 #include "gdb_wait.h"
52 #include "gdbcore.h"
53 #include "gdbcmd.h"
54 #include "target.h"
55 #include "gdbthread.h"
56 #include "annotate.h"
57 #include "symfile.h"            /* for overlay functions */
58 #include "value.h"              /* For old tm.h/nm.h macros.  */
59 #endif
60 #include "symcat.h"
61
62 #include "floatformat.h"
63
64 #include "gdb_assert.h"
65 #include "gdb_string.h"
66 #include "gdb-events.h"
67 #include "reggroups.h"
68 #include "osabi.h"
69
70 /* Static function declarations */
71
72 static void verify_gdbarch (struct gdbarch *gdbarch);
73 static void alloc_gdbarch_data (struct gdbarch *);
74 static void free_gdbarch_data (struct gdbarch *);
75 static void init_gdbarch_swap (struct gdbarch *);
76 static void clear_gdbarch_swap (struct gdbarch *);
77 static void swapout_gdbarch_swap (struct gdbarch *);
78 static void swapin_gdbarch_swap (struct gdbarch *);
79
80 /* Non-zero if we want to trace architecture code.  */
81
82 #ifndef GDBARCH_DEBUG
83 #define GDBARCH_DEBUG 0
84 #endif
85 int gdbarch_debug = GDBARCH_DEBUG;
86
87
88 /* Maintain the struct gdbarch object */
89
90 struct gdbarch
91 {
92   /* Has this architecture been fully initialized?  */
93   int initialized_p;
94   /* basic architectural information */
95   const struct bfd_arch_info * bfd_arch_info;
96   int byte_order;
97   enum gdb_osabi osabi;
98
99   /* target specific vector. */
100   struct gdbarch_tdep *tdep;
101   gdbarch_dump_tdep_ftype *dump_tdep;
102
103   /* per-architecture data-pointers */
104   unsigned nr_data;
105   void **data;
106
107   /* per-architecture swap-regions */
108   struct gdbarch_swap *swap;
109
110   /* Multi-arch values.
111
112      When extending this structure you must:
113
114      Add the field below.
115
116      Declare set/get functions and define the corresponding
117      macro in gdbarch.h.
118
119      gdbarch_alloc(): If zero/NULL is not a suitable default,
120      initialize the new field.
121
122      verify_gdbarch(): Confirm that the target updated the field
123      correctly.
124
125      gdbarch_dump(): Add a fprintf_unfiltered call so that the new
126      field is dumped out
127
128      ``startup_gdbarch()'': Append an initial value to the static
129      variable (base values on the host's c-type system).
130
131      get_gdbarch(): Implement the set/get functions (probably using
132      the macro's as shortcuts).
133
134      */
135
136   int short_bit;
137   int int_bit;
138   int long_bit;
139   int long_long_bit;
140   int float_bit;
141   int double_bit;
142   int long_double_bit;
143   int ptr_bit;
144   int addr_bit;
145   int bfd_vma_bit;
146   int char_signed;
147   gdbarch_read_pc_ftype *read_pc;
148   gdbarch_write_pc_ftype *write_pc;
149   gdbarch_read_fp_ftype *read_fp;
150   gdbarch_read_sp_ftype *read_sp;
151   gdbarch_write_sp_ftype *write_sp;
152   gdbarch_virtual_frame_pointer_ftype *virtual_frame_pointer;
153   gdbarch_pseudo_register_read_ftype *pseudo_register_read;
154   gdbarch_pseudo_register_write_ftype *pseudo_register_write;
155   int num_regs;
156   int num_pseudo_regs;
157   int sp_regnum;
158   int fp_regnum;
159   int pc_regnum;
160   int ps_regnum;
161   int fp0_regnum;
162   int npc_regnum;
163   gdbarch_stab_reg_to_regnum_ftype *stab_reg_to_regnum;
164   gdbarch_ecoff_reg_to_regnum_ftype *ecoff_reg_to_regnum;
165   gdbarch_dwarf_reg_to_regnum_ftype *dwarf_reg_to_regnum;
166   gdbarch_sdb_reg_to_regnum_ftype *sdb_reg_to_regnum;
167   gdbarch_dwarf2_reg_to_regnum_ftype *dwarf2_reg_to_regnum;
168   gdbarch_register_name_ftype *register_name;
169   int register_size;
170   int register_bytes;
171   gdbarch_register_byte_ftype *register_byte;
172   gdbarch_register_raw_size_ftype *register_raw_size;
173   int deprecated_max_register_raw_size;
174   gdbarch_register_virtual_size_ftype *register_virtual_size;
175   int deprecated_max_register_virtual_size;
176   gdbarch_register_virtual_type_ftype *register_virtual_type;
177   gdbarch_register_type_ftype *register_type;
178   gdbarch_deprecated_do_registers_info_ftype *deprecated_do_registers_info;
179   gdbarch_print_registers_info_ftype *print_registers_info;
180   gdbarch_print_float_info_ftype *print_float_info;
181   gdbarch_print_vector_info_ftype *print_vector_info;
182   gdbarch_register_sim_regno_ftype *register_sim_regno;
183   gdbarch_register_bytes_ok_ftype *register_bytes_ok;
184   gdbarch_cannot_fetch_register_ftype *cannot_fetch_register;
185   gdbarch_cannot_store_register_ftype *cannot_store_register;
186   gdbarch_get_longjmp_target_ftype *get_longjmp_target;
187   int deprecated_use_generic_dummy_frames;
188   int call_dummy_location;
189   gdbarch_call_dummy_address_ftype *call_dummy_address;
190   CORE_ADDR call_dummy_start_offset;
191   CORE_ADDR call_dummy_breakpoint_offset;
192   int call_dummy_breakpoint_offset_p;
193   int call_dummy_length;
194   gdbarch_deprecated_pc_in_call_dummy_ftype *deprecated_pc_in_call_dummy;
195   int call_dummy_p;
196   LONGEST * call_dummy_words;
197   int sizeof_call_dummy_words;
198   int deprecated_call_dummy_stack_adjust;
199   gdbarch_fix_call_dummy_ftype *fix_call_dummy;
200   gdbarch_deprecated_init_frame_pc_first_ftype *deprecated_init_frame_pc_first;
201   gdbarch_deprecated_init_frame_pc_ftype *deprecated_init_frame_pc;
202   int believe_pcc_promotion;
203   int believe_pcc_promotion_type;
204   gdbarch_deprecated_get_saved_register_ftype *deprecated_get_saved_register;
205   gdbarch_register_convertible_ftype *register_convertible;
206   gdbarch_register_convert_to_virtual_ftype *register_convert_to_virtual;
207   gdbarch_register_convert_to_raw_ftype *register_convert_to_raw;
208   gdbarch_convert_register_p_ftype *convert_register_p;
209   gdbarch_register_to_value_ftype *register_to_value;
210   gdbarch_value_to_register_ftype *value_to_register;
211   gdbarch_pointer_to_address_ftype *pointer_to_address;
212   gdbarch_address_to_pointer_ftype *address_to_pointer;
213   gdbarch_integer_to_address_ftype *integer_to_address;
214   gdbarch_return_value_on_stack_ftype *return_value_on_stack;
215   gdbarch_deprecated_push_arguments_ftype *deprecated_push_arguments;
216   gdbarch_push_dummy_call_ftype *push_dummy_call;
217   gdbarch_deprecated_push_dummy_frame_ftype *deprecated_push_dummy_frame;
218   gdbarch_push_return_address_ftype *push_return_address;
219   gdbarch_deprecated_pop_frame_ftype *deprecated_pop_frame;
220   gdbarch_deprecated_store_struct_return_ftype *deprecated_store_struct_return;
221   gdbarch_extract_return_value_ftype *extract_return_value;
222   gdbarch_store_return_value_ftype *store_return_value;
223   gdbarch_deprecated_extract_return_value_ftype *deprecated_extract_return_value;
224   gdbarch_deprecated_store_return_value_ftype *deprecated_store_return_value;
225   gdbarch_extract_struct_value_address_ftype *extract_struct_value_address;
226   gdbarch_deprecated_extract_struct_value_address_ftype *deprecated_extract_struct_value_address;
227   gdbarch_use_struct_convention_ftype *use_struct_convention;
228   gdbarch_deprecated_frame_init_saved_regs_ftype *deprecated_frame_init_saved_regs;
229   gdbarch_deprecated_init_extra_frame_info_ftype *deprecated_init_extra_frame_info;
230   gdbarch_skip_prologue_ftype *skip_prologue;
231   gdbarch_prologue_frameless_p_ftype *prologue_frameless_p;
232   gdbarch_inner_than_ftype *inner_than;
233   gdbarch_breakpoint_from_pc_ftype *breakpoint_from_pc;
234   gdbarch_memory_insert_breakpoint_ftype *memory_insert_breakpoint;
235   gdbarch_memory_remove_breakpoint_ftype *memory_remove_breakpoint;
236   CORE_ADDR decr_pc_after_break;
237   gdbarch_prepare_to_proceed_ftype *prepare_to_proceed;
238   CORE_ADDR function_start_offset;
239   gdbarch_remote_translate_xfer_address_ftype *remote_translate_xfer_address;
240   CORE_ADDR frame_args_skip;
241   gdbarch_frameless_function_invocation_ftype *frameless_function_invocation;
242   gdbarch_deprecated_frame_chain_ftype *deprecated_frame_chain;
243   gdbarch_deprecated_frame_chain_valid_ftype *deprecated_frame_chain_valid;
244   gdbarch_deprecated_frame_saved_pc_ftype *deprecated_frame_saved_pc;
245   gdbarch_unwind_pc_ftype *unwind_pc;
246   gdbarch_frame_args_address_ftype *frame_args_address;
247   gdbarch_frame_locals_address_ftype *frame_locals_address;
248   gdbarch_saved_pc_after_call_ftype *saved_pc_after_call;
249   gdbarch_frame_num_args_ftype *frame_num_args;
250   gdbarch_stack_align_ftype *stack_align;
251   gdbarch_frame_align_ftype *frame_align;
252   int deprecated_extra_stack_alignment_needed;
253   gdbarch_reg_struct_has_addr_ftype *reg_struct_has_addr;
254   gdbarch_save_dummy_frame_tos_ftype *save_dummy_frame_tos;
255   gdbarch_unwind_dummy_id_ftype *unwind_dummy_id;
256   int parm_boundary;
257   const struct floatformat * float_format;
258   const struct floatformat * double_format;
259   const struct floatformat * long_double_format;
260   gdbarch_convert_from_func_ptr_addr_ftype *convert_from_func_ptr_addr;
261   gdbarch_addr_bits_remove_ftype *addr_bits_remove;
262   gdbarch_smash_text_address_ftype *smash_text_address;
263   gdbarch_software_single_step_ftype *software_single_step;
264   gdbarch_print_insn_ftype *print_insn;
265   gdbarch_skip_trampoline_code_ftype *skip_trampoline_code;
266   gdbarch_in_solib_call_trampoline_ftype *in_solib_call_trampoline;
267   gdbarch_in_solib_return_trampoline_ftype *in_solib_return_trampoline;
268   gdbarch_pc_in_sigtramp_ftype *pc_in_sigtramp;
269   gdbarch_sigtramp_start_ftype *sigtramp_start;
270   gdbarch_sigtramp_end_ftype *sigtramp_end;
271   gdbarch_in_function_epilogue_p_ftype *in_function_epilogue_p;
272   gdbarch_construct_inferior_arguments_ftype *construct_inferior_arguments;
273   gdbarch_dwarf2_build_frame_info_ftype *dwarf2_build_frame_info;
274   gdbarch_elf_make_msymbol_special_ftype *elf_make_msymbol_special;
275   gdbarch_coff_make_msymbol_special_ftype *coff_make_msymbol_special;
276   const char * name_of_malloc;
277   int cannot_step_breakpoint;
278   int have_nonsteppable_watchpoint;
279   gdbarch_address_class_type_flags_ftype *address_class_type_flags;
280   gdbarch_address_class_type_flags_to_name_ftype *address_class_type_flags_to_name;
281   gdbarch_address_class_name_to_type_flags_ftype *address_class_name_to_type_flags;
282   gdbarch_register_reggroup_p_ftype *register_reggroup_p;
283 };
284
285
286 /* The default architecture uses host values (for want of a better
287    choice). */
288
289 extern const struct bfd_arch_info bfd_default_arch_struct;
290
291 struct gdbarch startup_gdbarch =
292 {
293   1, /* Always initialized.  */
294   /* basic architecture information */
295   &bfd_default_arch_struct,
296   BFD_ENDIAN_BIG,
297   GDB_OSABI_UNKNOWN,
298   /* target specific vector and its dump routine */
299   NULL, NULL,
300   /*per-architecture data-pointers and swap regions */
301   0, NULL, NULL,
302   /* Multi-arch values */
303   8 * sizeof (short),
304   8 * sizeof (int),
305   8 * sizeof (long),
306   8 * sizeof (LONGEST),
307   8 * sizeof (float),
308   8 * sizeof (double),
309   8 * sizeof (long double),
310   8 * sizeof (void*),
311   8 * sizeof (void*),
312   8 * sizeof (void*),
313   1,
314   0,
315   0,
316   0,
317   0,
318   0,
319   0,
320   0,
321   0,
322   0,
323   0,
324   -1,
325   -1,
326   -1,
327   -1,
328   0,
329   0,
330   0,
331   0,
332   0,
333   0,
334   0,
335   0,
336   0,
337   0,
338   generic_register_byte,
339   generic_register_size,
340   0,
341   generic_register_size,
342   0,
343   0,
344   0,
345   0,
346   default_print_registers_info,
347   0,
348   0,
349   0,
350   0,
351   0,
352   0,
353   0,
354   0,
355   0,
356   0,
357   0,
358   0,
359   0,
360   0,
361   generic_pc_in_call_dummy,
362   0,
363   0,
364   0,
365   0,
366   0,
367   0,
368   0,
369   0,
370   0,
371   0,
372   0,
373   0,
374   0,
375   0,
376   0,
377   0,
378   0,
379   0,
380   0,
381   0,
382   0,
383   0,
384   0,
385   0,
386   0,
387   0,
388   0,
389   0,
390   0,
391   0,
392   0,
393   0,
394   0,
395   0,
396   0,
397   0,
398   0,
399   0,
400   0,
401   0,
402   0,
403   0,
404   0,
405   0,
406   0,
407   0,
408   0,
409   0,
410   0,
411   0,
412   0,
413   0,
414   0,
415   0,
416   0,
417   0,
418   0,
419   0,
420   0,
421   0,
422   0,
423   0,
424   0,
425   0,
426   0,
427   0,
428   0,
429   0,
430   0,
431   0,
432   0,
433   0,
434   0,
435   0,
436   0,
437   0,
438   generic_in_function_epilogue_p,
439   construct_inferior_arguments,
440   0,
441   0,
442   0,
443   "malloc",
444   0,
445   0,
446   0,
447   0,
448   0,
449   default_register_reggroup_p,
450   /* startup_gdbarch() */
451 };
452
453 struct gdbarch *current_gdbarch = &startup_gdbarch;
454
455 /* Do any initialization needed for a non-multiarch configuration
456    after the _initialize_MODULE functions have been run.  */
457 void
458 initialize_non_multiarch (void)
459 {
460   alloc_gdbarch_data (&startup_gdbarch);
461   /* Ensure that all swap areas are zeroed so that they again think
462      they are starting from scratch.  */
463   clear_gdbarch_swap (&startup_gdbarch);
464   init_gdbarch_swap (&startup_gdbarch);
465 }
466
467
468 /* Create a new ``struct gdbarch'' based on information provided by
469    ``struct gdbarch_info''. */
470
471 struct gdbarch *
472 gdbarch_alloc (const struct gdbarch_info *info,
473                struct gdbarch_tdep *tdep)
474 {
475   /* NOTE: The new architecture variable is named ``current_gdbarch''
476      so that macros such as TARGET_DOUBLE_BIT, when expanded, refer to
477      the current local architecture and not the previous global
478      architecture.  This ensures that the new architectures initial
479      values are not influenced by the previous architecture.  Once
480      everything is parameterised with gdbarch, this will go away.  */
481   struct gdbarch *current_gdbarch = XMALLOC (struct gdbarch);
482   memset (current_gdbarch, 0, sizeof (*current_gdbarch));
483
484   alloc_gdbarch_data (current_gdbarch);
485
486   current_gdbarch->tdep = tdep;
487
488   current_gdbarch->bfd_arch_info = info->bfd_arch_info;
489   current_gdbarch->byte_order = info->byte_order;
490   current_gdbarch->osabi = info->osabi;
491
492   /* Force the explicit initialization of these. */
493   current_gdbarch->short_bit = 2*TARGET_CHAR_BIT;
494   current_gdbarch->int_bit = 4*TARGET_CHAR_BIT;
495   current_gdbarch->long_bit = 4*TARGET_CHAR_BIT;
496   current_gdbarch->long_long_bit = 2*TARGET_LONG_BIT;
497   current_gdbarch->float_bit = 4*TARGET_CHAR_BIT;
498   current_gdbarch->double_bit = 8*TARGET_CHAR_BIT;
499   current_gdbarch->long_double_bit = 8*TARGET_CHAR_BIT;
500   current_gdbarch->ptr_bit = TARGET_INT_BIT;
501   current_gdbarch->bfd_vma_bit = TARGET_ARCHITECTURE->bits_per_address;
502   current_gdbarch->char_signed = -1;
503   current_gdbarch->read_pc = generic_target_read_pc;
504   current_gdbarch->write_pc = generic_target_write_pc;
505   current_gdbarch->read_fp = generic_target_read_fp;
506   current_gdbarch->read_sp = generic_target_read_sp;
507   current_gdbarch->write_sp = generic_target_write_sp;
508   current_gdbarch->virtual_frame_pointer = legacy_virtual_frame_pointer;
509   current_gdbarch->num_regs = -1;
510   current_gdbarch->sp_regnum = -1;
511   current_gdbarch->fp_regnum = -1;
512   current_gdbarch->pc_regnum = -1;
513   current_gdbarch->ps_regnum = -1;
514   current_gdbarch->fp0_regnum = -1;
515   current_gdbarch->npc_regnum = -1;
516   current_gdbarch->stab_reg_to_regnum = no_op_reg_to_regnum;
517   current_gdbarch->ecoff_reg_to_regnum = no_op_reg_to_regnum;
518   current_gdbarch->dwarf_reg_to_regnum = no_op_reg_to_regnum;
519   current_gdbarch->sdb_reg_to_regnum = no_op_reg_to_regnum;
520   current_gdbarch->dwarf2_reg_to_regnum = no_op_reg_to_regnum;
521   current_gdbarch->register_name = legacy_register_name;
522   current_gdbarch->register_size = -1;
523   current_gdbarch->register_bytes = -1;
524   current_gdbarch->register_byte = generic_register_byte;
525   current_gdbarch->register_raw_size = generic_register_size;
526   current_gdbarch->register_virtual_size = generic_register_size;
527   current_gdbarch->print_registers_info = default_print_registers_info;
528   current_gdbarch->register_sim_regno = legacy_register_sim_regno;
529   current_gdbarch->cannot_fetch_register = cannot_register_not;
530   current_gdbarch->cannot_store_register = cannot_register_not;
531   current_gdbarch->deprecated_use_generic_dummy_frames = 1;
532   current_gdbarch->call_dummy_location = AT_ENTRY_POINT;
533   current_gdbarch->call_dummy_start_offset = -1;
534   current_gdbarch->call_dummy_breakpoint_offset = -1;
535   current_gdbarch->call_dummy_breakpoint_offset_p = -1;
536   current_gdbarch->call_dummy_length = -1;
537   current_gdbarch->deprecated_pc_in_call_dummy = generic_pc_in_call_dummy;
538   current_gdbarch->call_dummy_p = -1;
539   current_gdbarch->call_dummy_words = legacy_call_dummy_words;
540   current_gdbarch->sizeof_call_dummy_words = legacy_sizeof_call_dummy_words;
541   current_gdbarch->register_convertible = generic_register_convertible_not;
542   current_gdbarch->convert_register_p = legacy_convert_register_p;
543   current_gdbarch->register_to_value = legacy_register_to_value;
544   current_gdbarch->value_to_register = legacy_value_to_register;
545   current_gdbarch->pointer_to_address = unsigned_pointer_to_address;
546   current_gdbarch->address_to_pointer = unsigned_address_to_pointer;
547   current_gdbarch->return_value_on_stack = generic_return_value_on_stack_not;
548   current_gdbarch->extract_return_value = legacy_extract_return_value;
549   current_gdbarch->store_return_value = legacy_store_return_value;
550   current_gdbarch->use_struct_convention = generic_use_struct_convention;
551   current_gdbarch->prologue_frameless_p = generic_prologue_frameless_p;
552   current_gdbarch->breakpoint_from_pc = legacy_breakpoint_from_pc;
553   current_gdbarch->memory_insert_breakpoint = default_memory_insert_breakpoint;
554   current_gdbarch->memory_remove_breakpoint = default_memory_remove_breakpoint;
555   current_gdbarch->decr_pc_after_break = -1;
556   current_gdbarch->prepare_to_proceed = default_prepare_to_proceed;
557   current_gdbarch->function_start_offset = -1;
558   current_gdbarch->remote_translate_xfer_address = generic_remote_translate_xfer_address;
559   current_gdbarch->frame_args_skip = -1;
560   current_gdbarch->frameless_function_invocation = generic_frameless_function_invocation_not;
561   current_gdbarch->frame_args_address = get_frame_base;
562   current_gdbarch->frame_locals_address = get_frame_base;
563   current_gdbarch->convert_from_func_ptr_addr = core_addr_identity;
564   current_gdbarch->addr_bits_remove = core_addr_identity;
565   current_gdbarch->smash_text_address = core_addr_identity;
566   current_gdbarch->print_insn = legacy_print_insn;
567   current_gdbarch->skip_trampoline_code = generic_skip_trampoline_code;
568   current_gdbarch->in_solib_call_trampoline = generic_in_solib_call_trampoline;
569   current_gdbarch->in_solib_return_trampoline = generic_in_solib_return_trampoline;
570   current_gdbarch->pc_in_sigtramp = legacy_pc_in_sigtramp;
571   current_gdbarch->in_function_epilogue_p = generic_in_function_epilogue_p;
572   current_gdbarch->construct_inferior_arguments = construct_inferior_arguments;
573   current_gdbarch->elf_make_msymbol_special = default_elf_make_msymbol_special;
574   current_gdbarch->coff_make_msymbol_special = default_coff_make_msymbol_special;
575   current_gdbarch->name_of_malloc = "malloc";
576   current_gdbarch->register_reggroup_p = default_register_reggroup_p;
577   /* gdbarch_alloc() */
578
579   return current_gdbarch;
580 }
581
582
583 /* Free a gdbarch struct.  This should never happen in normal
584    operation --- once you've created a gdbarch, you keep it around.
585    However, if an architecture's init function encounters an error
586    building the structure, it may need to clean up a partially
587    constructed gdbarch.  */
588
589 void
590 gdbarch_free (struct gdbarch *arch)
591 {
592   gdb_assert (arch != NULL);
593   free_gdbarch_data (arch);
594   xfree (arch);
595 }
596
597
598 /* Ensure that all values in a GDBARCH are reasonable. */
599
600 static void
601 verify_gdbarch (struct gdbarch *gdbarch)
602 {
603   struct ui_file *log;
604   struct cleanup *cleanups;
605   long dummy;
606   char *buf;
607   /* Only perform sanity checks on a multi-arch target. */
608   if (!GDB_MULTI_ARCH)
609     return;
610   log = mem_fileopen ();
611   cleanups = make_cleanup_ui_file_delete (log);
612   /* fundamental */
613   if (gdbarch->byte_order == BFD_ENDIAN_UNKNOWN)
614     fprintf_unfiltered (log, "\n\tbyte-order");
615   if (gdbarch->bfd_arch_info == NULL)
616     fprintf_unfiltered (log, "\n\tbfd_arch_info");
617   /* Check those that need to be defined for the given multi-arch level. */
618   /* Skip verify of short_bit, invalid_p == 0 */
619   /* Skip verify of int_bit, invalid_p == 0 */
620   /* Skip verify of long_bit, invalid_p == 0 */
621   /* Skip verify of long_long_bit, invalid_p == 0 */
622   /* Skip verify of float_bit, invalid_p == 0 */
623   /* Skip verify of double_bit, invalid_p == 0 */
624   /* Skip verify of long_double_bit, invalid_p == 0 */
625   /* Skip verify of ptr_bit, invalid_p == 0 */
626   if (gdbarch->addr_bit == 0)
627     gdbarch->addr_bit = TARGET_PTR_BIT;
628   /* Skip verify of bfd_vma_bit, invalid_p == 0 */
629   if (gdbarch->char_signed == -1)
630     gdbarch->char_signed = 1;
631   /* Skip verify of read_pc, invalid_p == 0 */
632   /* Skip verify of write_pc, invalid_p == 0 */
633   /* Skip verify of read_fp, invalid_p == 0 */
634   /* Skip verify of read_sp, invalid_p == 0 */
635   /* Skip verify of write_sp, invalid_p == 0 */
636   /* Skip verify of virtual_frame_pointer, invalid_p == 0 */
637   /* Skip verify of pseudo_register_read, has predicate */
638   /* Skip verify of pseudo_register_write, has predicate */
639   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
640       && (gdbarch->num_regs == -1))
641     fprintf_unfiltered (log, "\n\tnum_regs");
642   /* Skip verify of num_pseudo_regs, invalid_p == 0 */
643   /* Skip verify of sp_regnum, invalid_p == 0 */
644   /* Skip verify of fp_regnum, invalid_p == 0 */
645   /* Skip verify of pc_regnum, invalid_p == 0 */
646   /* Skip verify of ps_regnum, invalid_p == 0 */
647   /* Skip verify of fp0_regnum, invalid_p == 0 */
648   /* Skip verify of npc_regnum, invalid_p == 0 */
649   /* Skip verify of stab_reg_to_regnum, invalid_p == 0 */
650   /* Skip verify of ecoff_reg_to_regnum, invalid_p == 0 */
651   /* Skip verify of dwarf_reg_to_regnum, invalid_p == 0 */
652   /* Skip verify of sdb_reg_to_regnum, invalid_p == 0 */
653   /* Skip verify of dwarf2_reg_to_regnum, invalid_p == 0 */
654   /* Skip verify of register_name, invalid_p == 0 */
655   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
656       && (gdbarch->register_size == -1))
657     fprintf_unfiltered (log, "\n\tregister_size");
658   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
659       && (gdbarch->register_bytes == -1))
660     fprintf_unfiltered (log, "\n\tregister_bytes");
661   /* Skip verify of register_byte, invalid_p == 0 */
662   /* Skip verify of register_raw_size, invalid_p == 0 */
663   /* Skip verify of deprecated_max_register_raw_size, has predicate */
664   /* Skip verify of register_virtual_size, invalid_p == 0 */
665   /* Skip verify of deprecated_max_register_virtual_size, has predicate */
666   /* Skip verify of register_virtual_type, has predicate */
667   /* Skip verify of register_type, has predicate */
668   /* Skip verify of deprecated_do_registers_info, has predicate */
669   /* Skip verify of print_registers_info, invalid_p == 0 */
670   /* Skip verify of print_float_info, has predicate */
671   /* Skip verify of print_vector_info, has predicate */
672   /* Skip verify of register_sim_regno, invalid_p == 0 */
673   /* Skip verify of register_bytes_ok, has predicate */
674   /* Skip verify of cannot_fetch_register, invalid_p == 0 */
675   /* Skip verify of cannot_store_register, invalid_p == 0 */
676   /* Skip verify of get_longjmp_target, has predicate */
677   /* Skip verify of deprecated_use_generic_dummy_frames, invalid_p == 0 */
678   /* Skip verify of call_dummy_location, invalid_p == 0 */
679   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
680       && (gdbarch->call_dummy_location == AT_ENTRY_POINT && gdbarch->call_dummy_address == 0))
681     fprintf_unfiltered (log, "\n\tcall_dummy_address");
682   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
683       && (gdbarch->call_dummy_start_offset == -1))
684     fprintf_unfiltered (log, "\n\tcall_dummy_start_offset");
685   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
686       && (gdbarch->call_dummy_breakpoint_offset_p && gdbarch->call_dummy_breakpoint_offset == -1))
687     fprintf_unfiltered (log, "\n\tcall_dummy_breakpoint_offset");
688   if ((GDB_MULTI_ARCH >= GDB_MULTI_ARCH_PARTIAL)
689       && (gdbarch->call_dummy_breakpoint_offset_p == -1))
690     fprintf_unfiltered (log, "\n\tcall_dummy_breakpoint_offset_p");
691   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
692       && (gdbarch->call_dummy_length == -1))
693     fprintf_unfiltered (log, "\n\tcall_dummy_length");
694   /* Skip verify of deprecated_pc_in_call_dummy, has predicate */
695   if ((GDB_MULTI_ARCH >= GDB_MULTI_ARCH_PARTIAL)
696       && (gdbarch->call_dummy_p == -1))
697     fprintf_unfiltered (log, "\n\tcall_dummy_p");
698   /* Skip verify of call_dummy_words, invalid_p == 0 */
699   /* Skip verify of sizeof_call_dummy_words, invalid_p == 0 */
700   /* Skip verify of deprecated_call_dummy_stack_adjust, has predicate */
701   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
702       && (gdbarch->fix_call_dummy == 0))
703     fprintf_unfiltered (log, "\n\tfix_call_dummy");
704   /* Skip verify of deprecated_init_frame_pc_first, has predicate */
705   /* Skip verify of deprecated_init_frame_pc, has predicate */
706   /* Skip verify of deprecated_get_saved_register, has predicate */
707   /* Skip verify of register_convertible, invalid_p == 0 */
708   /* Skip verify of register_convert_to_virtual, invalid_p == 0 */
709   /* Skip verify of register_convert_to_raw, invalid_p == 0 */
710   /* Skip verify of convert_register_p, invalid_p == 0 */
711   /* Skip verify of register_to_value, invalid_p == 0 */
712   /* Skip verify of value_to_register, invalid_p == 0 */
713   /* Skip verify of pointer_to_address, invalid_p == 0 */
714   /* Skip verify of address_to_pointer, invalid_p == 0 */
715   /* Skip verify of integer_to_address, has predicate */
716   /* Skip verify of return_value_on_stack, invalid_p == 0 */
717   /* Skip verify of deprecated_push_arguments, has predicate */
718   /* Skip verify of push_dummy_call, has predicate */
719   /* Skip verify of deprecated_push_dummy_frame, has predicate */
720   /* Skip verify of push_return_address, has predicate */
721   /* Skip verify of deprecated_pop_frame, has predicate */
722   /* Skip verify of deprecated_store_struct_return, has predicate */
723   /* Skip verify of extract_return_value, invalid_p == 0 */
724   /* Skip verify of store_return_value, invalid_p == 0 */
725   /* Skip verify of extract_struct_value_address, has predicate */
726   /* Skip verify of deprecated_extract_struct_value_address, has predicate */
727   /* Skip verify of use_struct_convention, invalid_p == 0 */
728   /* Skip verify of deprecated_frame_init_saved_regs, has predicate */
729   /* Skip verify of deprecated_init_extra_frame_info, has predicate */
730   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
731       && (gdbarch->skip_prologue == 0))
732     fprintf_unfiltered (log, "\n\tskip_prologue");
733   /* Skip verify of prologue_frameless_p, invalid_p == 0 */
734   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
735       && (gdbarch->inner_than == 0))
736     fprintf_unfiltered (log, "\n\tinner_than");
737   /* Skip verify of breakpoint_from_pc, invalid_p == 0 */
738   /* Skip verify of memory_insert_breakpoint, invalid_p == 0 */
739   /* Skip verify of memory_remove_breakpoint, invalid_p == 0 */
740   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
741       && (gdbarch->decr_pc_after_break == -1))
742     fprintf_unfiltered (log, "\n\tdecr_pc_after_break");
743   /* Skip verify of prepare_to_proceed, invalid_p == 0 */
744   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
745       && (gdbarch->function_start_offset == -1))
746     fprintf_unfiltered (log, "\n\tfunction_start_offset");
747   /* Skip verify of remote_translate_xfer_address, invalid_p == 0 */
748   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
749       && (gdbarch->frame_args_skip == -1))
750     fprintf_unfiltered (log, "\n\tframe_args_skip");
751   /* Skip verify of frameless_function_invocation, invalid_p == 0 */
752   /* Skip verify of deprecated_frame_chain, has predicate */
753   /* Skip verify of deprecated_frame_chain_valid, has predicate */
754   /* Skip verify of deprecated_frame_saved_pc, has predicate */
755   /* Skip verify of unwind_pc, has predicate */
756   /* Skip verify of frame_args_address, invalid_p == 0 */
757   /* Skip verify of frame_locals_address, invalid_p == 0 */
758   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
759       && (gdbarch->saved_pc_after_call == 0))
760     fprintf_unfiltered (log, "\n\tsaved_pc_after_call");
761   if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
762       && (gdbarch->frame_num_args == 0))
763     fprintf_unfiltered (log, "\n\tframe_num_args");
764   /* Skip verify of stack_align, has predicate */
765   /* Skip verify of frame_align, has predicate */
766   /* Skip verify of deprecated_extra_stack_alignment_needed, invalid_p == 0 */
767   /* Skip verify of reg_struct_has_addr, has predicate */
768   /* Skip verify of save_dummy_frame_tos, has predicate */
769   /* Skip verify of unwind_dummy_id, has predicate */
770   if (gdbarch->float_format == 0)
771     gdbarch->float_format = default_float_format (gdbarch);
772   if (gdbarch->double_format == 0)
773     gdbarch->double_format = default_double_format (gdbarch);
774   if (gdbarch->long_double_format == 0)
775     gdbarch->long_double_format = default_double_format (gdbarch);
776   /* Skip verify of convert_from_func_ptr_addr, invalid_p == 0 */
777   /* Skip verify of addr_bits_remove, invalid_p == 0 */
778   /* Skip verify of smash_text_address, invalid_p == 0 */
779   /* Skip verify of software_single_step, has predicate */
780   /* Skip verify of print_insn, invalid_p == 0 */
781   /* Skip verify of skip_trampoline_code, invalid_p == 0 */
782   /* Skip verify of in_solib_call_trampoline, invalid_p == 0 */
783   /* Skip verify of in_solib_return_trampoline, invalid_p == 0 */
784   /* Skip verify of pc_in_sigtramp, invalid_p == 0 */
785   /* Skip verify of sigtramp_start, has predicate */
786   /* Skip verify of sigtramp_end, has predicate */
787   /* Skip verify of in_function_epilogue_p, invalid_p == 0 */
788   /* Skip verify of construct_inferior_arguments, invalid_p == 0 */
789   /* Skip verify of dwarf2_build_frame_info, has predicate */
790   /* Skip verify of elf_make_msymbol_special, invalid_p == 0 */
791   /* Skip verify of coff_make_msymbol_special, invalid_p == 0 */
792   /* Skip verify of name_of_malloc, invalid_p == 0 */
793   /* Skip verify of cannot_step_breakpoint, invalid_p == 0 */
794   /* Skip verify of have_nonsteppable_watchpoint, invalid_p == 0 */
795   /* Skip verify of address_class_type_flags, has predicate */
796   /* Skip verify of address_class_type_flags_to_name, has predicate */
797   /* Skip verify of address_class_name_to_type_flags, has predicate */
798   /* Skip verify of register_reggroup_p, invalid_p == 0 */
799   buf = ui_file_xstrdup (log, &dummy);
800   make_cleanup (xfree, buf);
801   if (strlen (buf) > 0)
802     internal_error (__FILE__, __LINE__,
803                     "verify_gdbarch: the following are invalid ...%s",
804                     buf);
805   do_cleanups (cleanups);
806 }
807
808
809 /* Print out the details of the current architecture. */
810
811 /* NOTE/WARNING: The parameter is called ``current_gdbarch'' so that it
812    just happens to match the global variable ``current_gdbarch''.  That
813    way macros refering to that variable get the local and not the global
814    version - ulgh.  Once everything is parameterised with gdbarch, this
815    will go away. */
816
817 void
818 gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
819 {
820   fprintf_unfiltered (file,
821                       "gdbarch_dump: GDB_MULTI_ARCH = %d\n",
822                       GDB_MULTI_ARCH);
823   if (GDB_MULTI_ARCH)
824     fprintf_unfiltered (file,
825                         "gdbarch_dump: gdbarch_frame_align_p() = %d\n",
826                         gdbarch_frame_align_p (current_gdbarch));
827   if (GDB_MULTI_ARCH)
828     fprintf_unfiltered (file,
829                         "gdbarch_dump: frame_align = 0x%08lx\n",
830                         (long) current_gdbarch->frame_align);
831   if (GDB_MULTI_ARCH)
832     fprintf_unfiltered (file,
833                         "gdbarch_dump: in_function_epilogue_p = 0x%08lx\n",
834                         (long) current_gdbarch->in_function_epilogue_p);
835   if (GDB_MULTI_ARCH)
836     fprintf_unfiltered (file,
837                         "gdbarch_dump: register_reggroup_p = 0x%08lx\n",
838                         (long) current_gdbarch->register_reggroup_p);
839   if (GDB_MULTI_ARCH)
840     fprintf_unfiltered (file,
841                         "gdbarch_dump: gdbarch_pseudo_register_read_p() = %d\n",
842                         gdbarch_pseudo_register_read_p (current_gdbarch));
843   if (GDB_MULTI_ARCH)
844     fprintf_unfiltered (file,
845                         "gdbarch_dump: pseudo_register_read = 0x%08lx\n",
846                         (long) current_gdbarch->pseudo_register_read);
847   if (GDB_MULTI_ARCH)
848     fprintf_unfiltered (file,
849                         "gdbarch_dump: gdbarch_pseudo_register_write_p() = %d\n",
850                         gdbarch_pseudo_register_write_p (current_gdbarch));
851   if (GDB_MULTI_ARCH)
852     fprintf_unfiltered (file,
853                         "gdbarch_dump: pseudo_register_write = 0x%08lx\n",
854                         (long) current_gdbarch->pseudo_register_write);
855   if (GDB_MULTI_ARCH)
856     fprintf_unfiltered (file,
857                         "gdbarch_dump: gdbarch_address_class_name_to_type_flags_p() = %d\n",
858                         gdbarch_address_class_name_to_type_flags_p (current_gdbarch));
859   if (GDB_MULTI_ARCH)
860     fprintf_unfiltered (file,
861                         "gdbarch_dump: address_class_name_to_type_flags = 0x%08lx\n",
862                         (long) current_gdbarch->address_class_name_to_type_flags);
863 #ifdef ADDRESS_CLASS_TYPE_FLAGS_P
864   fprintf_unfiltered (file,
865                       "gdbarch_dump: %s # %s\n",
866                       "ADDRESS_CLASS_TYPE_FLAGS_P()",
867                       XSTRING (ADDRESS_CLASS_TYPE_FLAGS_P ()));
868   fprintf_unfiltered (file,
869                       "gdbarch_dump: ADDRESS_CLASS_TYPE_FLAGS_P() = %d\n",
870                       ADDRESS_CLASS_TYPE_FLAGS_P ());
871 #endif
872 #ifdef ADDRESS_CLASS_TYPE_FLAGS
873   fprintf_unfiltered (file,
874                       "gdbarch_dump: %s # %s\n",
875                       "ADDRESS_CLASS_TYPE_FLAGS(byte_size, dwarf2_addr_class)",
876                       XSTRING (ADDRESS_CLASS_TYPE_FLAGS (byte_size, dwarf2_addr_class)));
877   if (GDB_MULTI_ARCH)
878     fprintf_unfiltered (file,
879                         "gdbarch_dump: ADDRESS_CLASS_TYPE_FLAGS = <0x%08lx>\n",
880                         (long) current_gdbarch->address_class_type_flags
881                         /*ADDRESS_CLASS_TYPE_FLAGS ()*/);
882 #endif
883   if (GDB_MULTI_ARCH)
884     fprintf_unfiltered (file,
885                         "gdbarch_dump: gdbarch_address_class_type_flags_to_name_p() = %d\n",
886                         gdbarch_address_class_type_flags_to_name_p (current_gdbarch));
887   if (GDB_MULTI_ARCH)
888     fprintf_unfiltered (file,
889                         "gdbarch_dump: address_class_type_flags_to_name = 0x%08lx\n",
890                         (long) current_gdbarch->address_class_type_flags_to_name);
891 #ifdef ADDRESS_TO_POINTER
892 #if GDB_MULTI_ARCH
893   /* Macro might contain `[{}]' when not multi-arch */
894   fprintf_unfiltered (file,
895                       "gdbarch_dump: %s # %s\n",
896                       "ADDRESS_TO_POINTER(type, buf, addr)",
897                       XSTRING (ADDRESS_TO_POINTER (type, buf, addr)));
898 #endif
899   if (GDB_MULTI_ARCH)
900     fprintf_unfiltered (file,
901                         "gdbarch_dump: ADDRESS_TO_POINTER = <0x%08lx>\n",
902                         (long) current_gdbarch->address_to_pointer
903                         /*ADDRESS_TO_POINTER ()*/);
904 #endif
905 #ifdef ADDR_BITS_REMOVE
906   fprintf_unfiltered (file,
907                       "gdbarch_dump: %s # %s\n",
908                       "ADDR_BITS_REMOVE(addr)",
909                       XSTRING (ADDR_BITS_REMOVE (addr)));
910   if (GDB_MULTI_ARCH)
911     fprintf_unfiltered (file,
912                         "gdbarch_dump: ADDR_BITS_REMOVE = <0x%08lx>\n",
913                         (long) current_gdbarch->addr_bits_remove
914                         /*ADDR_BITS_REMOVE ()*/);
915 #endif
916 #ifdef BELIEVE_PCC_PROMOTION
917   fprintf_unfiltered (file,
918                       "gdbarch_dump: BELIEVE_PCC_PROMOTION # %s\n",
919                       XSTRING (BELIEVE_PCC_PROMOTION));
920   fprintf_unfiltered (file,
921                       "gdbarch_dump: BELIEVE_PCC_PROMOTION = %d\n",
922                       BELIEVE_PCC_PROMOTION);
923 #endif
924 #ifdef BELIEVE_PCC_PROMOTION_TYPE
925   fprintf_unfiltered (file,
926                       "gdbarch_dump: BELIEVE_PCC_PROMOTION_TYPE # %s\n",
927                       XSTRING (BELIEVE_PCC_PROMOTION_TYPE));
928   fprintf_unfiltered (file,
929                       "gdbarch_dump: BELIEVE_PCC_PROMOTION_TYPE = %d\n",
930                       BELIEVE_PCC_PROMOTION_TYPE);
931 #endif
932 #ifdef BREAKPOINT_FROM_PC
933   fprintf_unfiltered (file,
934                       "gdbarch_dump: %s # %s\n",
935                       "BREAKPOINT_FROM_PC(pcptr, lenptr)",
936                       XSTRING (BREAKPOINT_FROM_PC (pcptr, lenptr)));
937   if (GDB_MULTI_ARCH)
938     fprintf_unfiltered (file,
939                         "gdbarch_dump: BREAKPOINT_FROM_PC = <0x%08lx>\n",
940                         (long) current_gdbarch->breakpoint_from_pc
941                         /*BREAKPOINT_FROM_PC ()*/);
942 #endif
943 #ifdef CALL_DUMMY_ADDRESS
944   fprintf_unfiltered (file,
945                       "gdbarch_dump: %s # %s\n",
946                       "CALL_DUMMY_ADDRESS()",
947                       XSTRING (CALL_DUMMY_ADDRESS ()));
948   if (GDB_MULTI_ARCH)
949     fprintf_unfiltered (file,
950                         "gdbarch_dump: CALL_DUMMY_ADDRESS = <0x%08lx>\n",
951                         (long) current_gdbarch->call_dummy_address
952                         /*CALL_DUMMY_ADDRESS ()*/);
953 #endif
954 #ifdef CALL_DUMMY_BREAKPOINT_OFFSET
955   fprintf_unfiltered (file,
956                       "gdbarch_dump: CALL_DUMMY_BREAKPOINT_OFFSET # %s\n",
957                       XSTRING (CALL_DUMMY_BREAKPOINT_OFFSET));
958   if (CALL_DUMMY_BREAKPOINT_OFFSET_P)
959     fprintf_unfiltered (file,
960                         "gdbarch_dump: CALL_DUMMY_BREAKPOINT_OFFSET = 0x%08lx\n",
961                         (long) CALL_DUMMY_BREAKPOINT_OFFSET);
962 #endif
963 #ifdef CALL_DUMMY_BREAKPOINT_OFFSET_P
964   fprintf_unfiltered (file,
965                       "gdbarch_dump: CALL_DUMMY_BREAKPOINT_OFFSET_P # %s\n",
966                       XSTRING (CALL_DUMMY_BREAKPOINT_OFFSET_P));
967   fprintf_unfiltered (file,
968                       "gdbarch_dump: CALL_DUMMY_BREAKPOINT_OFFSET_P = %d\n",
969                       CALL_DUMMY_BREAKPOINT_OFFSET_P);
970 #endif
971 #ifdef CALL_DUMMY_LENGTH
972   fprintf_unfiltered (file,
973                       "gdbarch_dump: CALL_DUMMY_LENGTH # %s\n",
974                       XSTRING (CALL_DUMMY_LENGTH));
975   if (gdbarch->call_dummy_length >= 0)
976     fprintf_unfiltered (file,
977                         "gdbarch_dump: CALL_DUMMY_LENGTH = %d\n",
978                         CALL_DUMMY_LENGTH);
979 #endif
980 #ifdef CALL_DUMMY_LOCATION
981   fprintf_unfiltered (file,
982                       "gdbarch_dump: CALL_DUMMY_LOCATION # %s\n",
983                       XSTRING (CALL_DUMMY_LOCATION));
984   fprintf_unfiltered (file,
985                       "gdbarch_dump: CALL_DUMMY_LOCATION = %d\n",
986                       CALL_DUMMY_LOCATION);
987 #endif
988 #ifdef CALL_DUMMY_P
989   fprintf_unfiltered (file,
990                       "gdbarch_dump: CALL_DUMMY_P # %s\n",
991                       XSTRING (CALL_DUMMY_P));
992   fprintf_unfiltered (file,
993                       "gdbarch_dump: CALL_DUMMY_P = %d\n",
994                       CALL_DUMMY_P);
995 #endif
996 #ifdef CALL_DUMMY_START_OFFSET
997   fprintf_unfiltered (file,
998                       "gdbarch_dump: CALL_DUMMY_START_OFFSET # %s\n",
999                       XSTRING (CALL_DUMMY_START_OFFSET));
1000   fprintf_unfiltered (file,
1001                       "gdbarch_dump: CALL_DUMMY_START_OFFSET = 0x%08lx\n",
1002                       (long) CALL_DUMMY_START_OFFSET);
1003 #endif
1004 #ifdef CALL_DUMMY_WORDS
1005   fprintf_unfiltered (file,
1006                       "gdbarch_dump: CALL_DUMMY_WORDS # %s\n",
1007                       XSTRING (CALL_DUMMY_WORDS));
1008   fprintf_unfiltered (file,
1009                       "gdbarch_dump: CALL_DUMMY_WORDS = 0x%08lx\n",
1010                       (long) CALL_DUMMY_WORDS);
1011 #endif
1012 #ifdef CANNOT_FETCH_REGISTER
1013   fprintf_unfiltered (file,
1014                       "gdbarch_dump: %s # %s\n",
1015                       "CANNOT_FETCH_REGISTER(regnum)",
1016                       XSTRING (CANNOT_FETCH_REGISTER (regnum)));
1017   if (GDB_MULTI_ARCH)
1018     fprintf_unfiltered (file,
1019                         "gdbarch_dump: CANNOT_FETCH_REGISTER = <0x%08lx>\n",
1020                         (long) current_gdbarch->cannot_fetch_register
1021                         /*CANNOT_FETCH_REGISTER ()*/);
1022 #endif
1023 #ifdef CANNOT_STEP_BREAKPOINT
1024   fprintf_unfiltered (file,
1025                       "gdbarch_dump: CANNOT_STEP_BREAKPOINT # %s\n",
1026                       XSTRING (CANNOT_STEP_BREAKPOINT));
1027   fprintf_unfiltered (file,
1028                       "gdbarch_dump: CANNOT_STEP_BREAKPOINT = %d\n",
1029                       CANNOT_STEP_BREAKPOINT);
1030 #endif
1031 #ifdef CANNOT_STORE_REGISTER
1032   fprintf_unfiltered (file,
1033                       "gdbarch_dump: %s # %s\n",
1034                       "CANNOT_STORE_REGISTER(regnum)",
1035                       XSTRING (CANNOT_STORE_REGISTER (regnum)));
1036   if (GDB_MULTI_ARCH)
1037     fprintf_unfiltered (file,
1038                         "gdbarch_dump: CANNOT_STORE_REGISTER = <0x%08lx>\n",
1039                         (long) current_gdbarch->cannot_store_register
1040                         /*CANNOT_STORE_REGISTER ()*/);
1041 #endif
1042 #ifdef COFF_MAKE_MSYMBOL_SPECIAL
1043 #if GDB_MULTI_ARCH
1044   /* Macro might contain `[{}]' when not multi-arch */
1045   fprintf_unfiltered (file,
1046                       "gdbarch_dump: %s # %s\n",
1047                       "COFF_MAKE_MSYMBOL_SPECIAL(val, msym)",
1048                       XSTRING (COFF_MAKE_MSYMBOL_SPECIAL (val, msym)));
1049 #endif
1050   if (GDB_MULTI_ARCH)
1051     fprintf_unfiltered (file,
1052                         "gdbarch_dump: COFF_MAKE_MSYMBOL_SPECIAL = <0x%08lx>\n",
1053                         (long) current_gdbarch->coff_make_msymbol_special
1054                         /*COFF_MAKE_MSYMBOL_SPECIAL ()*/);
1055 #endif
1056   if (GDB_MULTI_ARCH)
1057     fprintf_unfiltered (file,
1058                         "gdbarch_dump: construct_inferior_arguments = 0x%08lx\n",
1059                         (long) current_gdbarch->construct_inferior_arguments);
1060 #ifdef CONVERT_FROM_FUNC_PTR_ADDR
1061   fprintf_unfiltered (file,
1062                       "gdbarch_dump: %s # %s\n",
1063                       "CONVERT_FROM_FUNC_PTR_ADDR(addr)",
1064                       XSTRING (CONVERT_FROM_FUNC_PTR_ADDR (addr)));
1065   if (GDB_MULTI_ARCH)
1066     fprintf_unfiltered (file,
1067                         "gdbarch_dump: CONVERT_FROM_FUNC_PTR_ADDR = <0x%08lx>\n",
1068                         (long) current_gdbarch->convert_from_func_ptr_addr
1069                         /*CONVERT_FROM_FUNC_PTR_ADDR ()*/);
1070 #endif
1071 #ifdef CONVERT_REGISTER_P
1072   fprintf_unfiltered (file,
1073                       "gdbarch_dump: %s # %s\n",
1074                       "CONVERT_REGISTER_P(regnum)",
1075                       XSTRING (CONVERT_REGISTER_P (regnum)));
1076   if (GDB_MULTI_ARCH)
1077     fprintf_unfiltered (file,
1078                         "gdbarch_dump: CONVERT_REGISTER_P = <0x%08lx>\n",
1079                         (long) current_gdbarch->convert_register_p
1080                         /*CONVERT_REGISTER_P ()*/);
1081 #endif
1082 #ifdef DECR_PC_AFTER_BREAK
1083   fprintf_unfiltered (file,
1084                       "gdbarch_dump: DECR_PC_AFTER_BREAK # %s\n",
1085                       XSTRING (DECR_PC_AFTER_BREAK));
1086   fprintf_unfiltered (file,
1087                       "gdbarch_dump: DECR_PC_AFTER_BREAK = %ld\n",
1088                       (long) DECR_PC_AFTER_BREAK);
1089 #endif
1090 #ifdef DEPRECATED_CALL_DUMMY_STACK_ADJUST_P
1091   fprintf_unfiltered (file,
1092                       "gdbarch_dump: %s # %s\n",
1093                       "DEPRECATED_CALL_DUMMY_STACK_ADJUST_P()",
1094                       XSTRING (DEPRECATED_CALL_DUMMY_STACK_ADJUST_P ()));
1095   fprintf_unfiltered (file,
1096                       "gdbarch_dump: DEPRECATED_CALL_DUMMY_STACK_ADJUST_P() = %d\n",
1097                       DEPRECATED_CALL_DUMMY_STACK_ADJUST_P ());
1098 #endif
1099 #ifdef DEPRECATED_CALL_DUMMY_STACK_ADJUST
1100   fprintf_unfiltered (file,
1101                       "gdbarch_dump: DEPRECATED_CALL_DUMMY_STACK_ADJUST # %s\n",
1102                       XSTRING (DEPRECATED_CALL_DUMMY_STACK_ADJUST));
1103   fprintf_unfiltered (file,
1104                       "gdbarch_dump: DEPRECATED_CALL_DUMMY_STACK_ADJUST = %d\n",
1105                       DEPRECATED_CALL_DUMMY_STACK_ADJUST);
1106 #endif
1107 #ifdef DEPRECATED_DO_REGISTERS_INFO_P
1108   fprintf_unfiltered (file,
1109                       "gdbarch_dump: %s # %s\n",
1110                       "DEPRECATED_DO_REGISTERS_INFO_P()",
1111                       XSTRING (DEPRECATED_DO_REGISTERS_INFO_P ()));
1112   fprintf_unfiltered (file,
1113                       "gdbarch_dump: DEPRECATED_DO_REGISTERS_INFO_P() = %d\n",
1114                       DEPRECATED_DO_REGISTERS_INFO_P ());
1115 #endif
1116 #ifdef DEPRECATED_DO_REGISTERS_INFO
1117 #if GDB_MULTI_ARCH
1118   /* Macro might contain `[{}]' when not multi-arch */
1119   fprintf_unfiltered (file,
1120                       "gdbarch_dump: %s # %s\n",
1121                       "DEPRECATED_DO_REGISTERS_INFO(reg_nr, fpregs)",
1122                       XSTRING (DEPRECATED_DO_REGISTERS_INFO (reg_nr, fpregs)));
1123 #endif
1124   if (GDB_MULTI_ARCH)
1125     fprintf_unfiltered (file,
1126                         "gdbarch_dump: DEPRECATED_DO_REGISTERS_INFO = <0x%08lx>\n",
1127                         (long) current_gdbarch->deprecated_do_registers_info
1128                         /*DEPRECATED_DO_REGISTERS_INFO ()*/);
1129 #endif
1130 #ifdef DEPRECATED_EXTRACT_RETURN_VALUE
1131 #if GDB_MULTI_ARCH
1132   /* Macro might contain `[{}]' when not multi-arch */
1133   fprintf_unfiltered (file,
1134                       "gdbarch_dump: %s # %s\n",
1135                       "DEPRECATED_EXTRACT_RETURN_VALUE(type, regbuf, valbuf)",
1136                       XSTRING (DEPRECATED_EXTRACT_RETURN_VALUE (type, regbuf, valbuf)));
1137 #endif
1138   if (GDB_MULTI_ARCH)
1139     fprintf_unfiltered (file,
1140                         "gdbarch_dump: DEPRECATED_EXTRACT_RETURN_VALUE = <0x%08lx>\n",
1141                         (long) current_gdbarch->deprecated_extract_return_value
1142                         /*DEPRECATED_EXTRACT_RETURN_VALUE ()*/);
1143 #endif
1144 #ifdef DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P
1145   fprintf_unfiltered (file,
1146                       "gdbarch_dump: %s # %s\n",
1147                       "DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P()",
1148                       XSTRING (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P ()));
1149   fprintf_unfiltered (file,
1150                       "gdbarch_dump: DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P() = %d\n",
1151                       DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P ());
1152 #endif
1153 #ifdef DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS
1154   fprintf_unfiltered (file,
1155                       "gdbarch_dump: %s # %s\n",
1156                       "DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS(regbuf)",
1157                       XSTRING (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS (regbuf)));
1158   if (GDB_MULTI_ARCH)
1159     fprintf_unfiltered (file,
1160                         "gdbarch_dump: DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS = <0x%08lx>\n",
1161                         (long) current_gdbarch->deprecated_extract_struct_value_address
1162                         /*DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS ()*/);
1163 #endif
1164 #ifdef DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED
1165   fprintf_unfiltered (file,
1166                       "gdbarch_dump: DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED # %s\n",
1167                       XSTRING (DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED));
1168   fprintf_unfiltered (file,
1169                       "gdbarch_dump: DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED = %d\n",
1170                       DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED);
1171 #endif
1172 #ifdef DEPRECATED_FRAME_CHAIN_P
1173   fprintf_unfiltered (file,
1174                       "gdbarch_dump: %s # %s\n",
1175                       "DEPRECATED_FRAME_CHAIN_P()",
1176                       XSTRING (DEPRECATED_FRAME_CHAIN_P ()));
1177   fprintf_unfiltered (file,
1178                       "gdbarch_dump: DEPRECATED_FRAME_CHAIN_P() = %d\n",
1179                       DEPRECATED_FRAME_CHAIN_P ());
1180 #endif
1181 #ifdef DEPRECATED_FRAME_CHAIN
1182   fprintf_unfiltered (file,
1183                       "gdbarch_dump: %s # %s\n",
1184                       "DEPRECATED_FRAME_CHAIN(frame)",
1185                       XSTRING (DEPRECATED_FRAME_CHAIN (frame)));
1186   if (GDB_MULTI_ARCH)
1187     fprintf_unfiltered (file,
1188                         "gdbarch_dump: DEPRECATED_FRAME_CHAIN = <0x%08lx>\n",
1189                         (long) current_gdbarch->deprecated_frame_chain
1190                         /*DEPRECATED_FRAME_CHAIN ()*/);
1191 #endif
1192 #ifdef DEPRECATED_FRAME_CHAIN_VALID_P
1193   fprintf_unfiltered (file,
1194                       "gdbarch_dump: %s # %s\n",
1195                       "DEPRECATED_FRAME_CHAIN_VALID_P()",
1196                       XSTRING (DEPRECATED_FRAME_CHAIN_VALID_P ()));
1197   fprintf_unfiltered (file,
1198                       "gdbarch_dump: DEPRECATED_FRAME_CHAIN_VALID_P() = %d\n",
1199                       DEPRECATED_FRAME_CHAIN_VALID_P ());
1200 #endif
1201 #ifdef DEPRECATED_FRAME_CHAIN_VALID
1202   fprintf_unfiltered (file,
1203                       "gdbarch_dump: %s # %s\n",
1204                       "DEPRECATED_FRAME_CHAIN_VALID(chain, thisframe)",
1205                       XSTRING (DEPRECATED_FRAME_CHAIN_VALID (chain, thisframe)));
1206   if (GDB_MULTI_ARCH)
1207     fprintf_unfiltered (file,
1208                         "gdbarch_dump: DEPRECATED_FRAME_CHAIN_VALID = <0x%08lx>\n",
1209                         (long) current_gdbarch->deprecated_frame_chain_valid
1210                         /*DEPRECATED_FRAME_CHAIN_VALID ()*/);
1211 #endif
1212 #ifdef DEPRECATED_FRAME_INIT_SAVED_REGS_P
1213   fprintf_unfiltered (file,
1214                       "gdbarch_dump: %s # %s\n",
1215                       "DEPRECATED_FRAME_INIT_SAVED_REGS_P()",
1216                       XSTRING (DEPRECATED_FRAME_INIT_SAVED_REGS_P ()));
1217   fprintf_unfiltered (file,
1218                       "gdbarch_dump: DEPRECATED_FRAME_INIT_SAVED_REGS_P() = %d\n",
1219                       DEPRECATED_FRAME_INIT_SAVED_REGS_P ());
1220 #endif
1221 #ifdef DEPRECATED_FRAME_INIT_SAVED_REGS
1222 #if GDB_MULTI_ARCH
1223   /* Macro might contain `[{}]' when not multi-arch */
1224   fprintf_unfiltered (file,
1225                       "gdbarch_dump: %s # %s\n",
1226                       "DEPRECATED_FRAME_INIT_SAVED_REGS(frame)",
1227                       XSTRING (DEPRECATED_FRAME_INIT_SAVED_REGS (frame)));
1228 #endif
1229   if (GDB_MULTI_ARCH)
1230     fprintf_unfiltered (file,
1231                         "gdbarch_dump: DEPRECATED_FRAME_INIT_SAVED_REGS = <0x%08lx>\n",
1232                         (long) current_gdbarch->deprecated_frame_init_saved_regs
1233                         /*DEPRECATED_FRAME_INIT_SAVED_REGS ()*/);
1234 #endif
1235 #ifdef DEPRECATED_FRAME_SAVED_PC_P
1236   fprintf_unfiltered (file,
1237                       "gdbarch_dump: %s # %s\n",
1238                       "DEPRECATED_FRAME_SAVED_PC_P()",
1239                       XSTRING (DEPRECATED_FRAME_SAVED_PC_P ()));
1240   fprintf_unfiltered (file,
1241                       "gdbarch_dump: DEPRECATED_FRAME_SAVED_PC_P() = %d\n",
1242                       DEPRECATED_FRAME_SAVED_PC_P ());
1243 #endif
1244 #ifdef DEPRECATED_FRAME_SAVED_PC
1245   fprintf_unfiltered (file,
1246                       "gdbarch_dump: %s # %s\n",
1247                       "DEPRECATED_FRAME_SAVED_PC(fi)",
1248                       XSTRING (DEPRECATED_FRAME_SAVED_PC (fi)));
1249   if (GDB_MULTI_ARCH)
1250     fprintf_unfiltered (file,
1251                         "gdbarch_dump: DEPRECATED_FRAME_SAVED_PC = <0x%08lx>\n",
1252                         (long) current_gdbarch->deprecated_frame_saved_pc
1253                         /*DEPRECATED_FRAME_SAVED_PC ()*/);
1254 #endif
1255 #ifdef DEPRECATED_GET_SAVED_REGISTER_P
1256   fprintf_unfiltered (file,
1257                       "gdbarch_dump: %s # %s\n",
1258                       "DEPRECATED_GET_SAVED_REGISTER_P()",
1259                       XSTRING (DEPRECATED_GET_SAVED_REGISTER_P ()));
1260   fprintf_unfiltered (file,
1261                       "gdbarch_dump: DEPRECATED_GET_SAVED_REGISTER_P() = %d\n",
1262                       DEPRECATED_GET_SAVED_REGISTER_P ());
1263 #endif
1264 #ifdef DEPRECATED_GET_SAVED_REGISTER
1265 #if GDB_MULTI_ARCH
1266   /* Macro might contain `[{}]' when not multi-arch */
1267   fprintf_unfiltered (file,
1268                       "gdbarch_dump: %s # %s\n",
1269                       "DEPRECATED_GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval)",
1270                       XSTRING (DEPRECATED_GET_SAVED_REGISTER (raw_buffer, optimized, addrp, frame, regnum, lval)));
1271 #endif
1272   if (GDB_MULTI_ARCH)
1273     fprintf_unfiltered (file,
1274                         "gdbarch_dump: DEPRECATED_GET_SAVED_REGISTER = <0x%08lx>\n",
1275                         (long) current_gdbarch->deprecated_get_saved_register
1276                         /*DEPRECATED_GET_SAVED_REGISTER ()*/);
1277 #endif
1278 #ifdef DEPRECATED_INIT_EXTRA_FRAME_INFO_P
1279   fprintf_unfiltered (file,
1280                       "gdbarch_dump: %s # %s\n",
1281                       "DEPRECATED_INIT_EXTRA_FRAME_INFO_P()",
1282                       XSTRING (DEPRECATED_INIT_EXTRA_FRAME_INFO_P ()));
1283   fprintf_unfiltered (file,
1284                       "gdbarch_dump: DEPRECATED_INIT_EXTRA_FRAME_INFO_P() = %d\n",
1285                       DEPRECATED_INIT_EXTRA_FRAME_INFO_P ());
1286 #endif
1287 #ifdef DEPRECATED_INIT_EXTRA_FRAME_INFO
1288 #if GDB_MULTI_ARCH
1289   /* Macro might contain `[{}]' when not multi-arch */
1290   fprintf_unfiltered (file,
1291                       "gdbarch_dump: %s # %s\n",
1292                       "DEPRECATED_INIT_EXTRA_FRAME_INFO(fromleaf, frame)",
1293                       XSTRING (DEPRECATED_INIT_EXTRA_FRAME_INFO (fromleaf, frame)));
1294 #endif
1295   if (GDB_MULTI_ARCH)
1296     fprintf_unfiltered (file,
1297                         "gdbarch_dump: DEPRECATED_INIT_EXTRA_FRAME_INFO = <0x%08lx>\n",
1298                         (long) current_gdbarch->deprecated_init_extra_frame_info
1299                         /*DEPRECATED_INIT_EXTRA_FRAME_INFO ()*/);
1300 #endif
1301 #ifdef DEPRECATED_INIT_FRAME_PC_P
1302   fprintf_unfiltered (file,
1303                       "gdbarch_dump: %s # %s\n",
1304                       "DEPRECATED_INIT_FRAME_PC_P()",
1305                       XSTRING (DEPRECATED_INIT_FRAME_PC_P ()));
1306   fprintf_unfiltered (file,
1307                       "gdbarch_dump: DEPRECATED_INIT_FRAME_PC_P() = %d\n",
1308                       DEPRECATED_INIT_FRAME_PC_P ());
1309 #endif
1310 #ifdef DEPRECATED_INIT_FRAME_PC
1311   fprintf_unfiltered (file,
1312                       "gdbarch_dump: %s # %s\n",
1313                       "DEPRECATED_INIT_FRAME_PC(fromleaf, prev)",
1314                       XSTRING (DEPRECATED_INIT_FRAME_PC (fromleaf, prev)));
1315   if (GDB_MULTI_ARCH)
1316     fprintf_unfiltered (file,
1317                         "gdbarch_dump: DEPRECATED_INIT_FRAME_PC = <0x%08lx>\n",
1318                         (long) current_gdbarch->deprecated_init_frame_pc
1319                         /*DEPRECATED_INIT_FRAME_PC ()*/);
1320 #endif
1321 #ifdef DEPRECATED_INIT_FRAME_PC_FIRST_P
1322   fprintf_unfiltered (file,
1323                       "gdbarch_dump: %s # %s\n",
1324                       "DEPRECATED_INIT_FRAME_PC_FIRST_P()",
1325                       XSTRING (DEPRECATED_INIT_FRAME_PC_FIRST_P ()));
1326   fprintf_unfiltered (file,
1327                       "gdbarch_dump: DEPRECATED_INIT_FRAME_PC_FIRST_P() = %d\n",
1328                       DEPRECATED_INIT_FRAME_PC_FIRST_P ());
1329 #endif
1330 #ifdef DEPRECATED_INIT_FRAME_PC_FIRST
1331   fprintf_unfiltered (file,
1332                       "gdbarch_dump: %s # %s\n",
1333                       "DEPRECATED_INIT_FRAME_PC_FIRST(fromleaf, prev)",
1334                       XSTRING (DEPRECATED_INIT_FRAME_PC_FIRST (fromleaf, prev)));
1335   if (GDB_MULTI_ARCH)
1336     fprintf_unfiltered (file,
1337                         "gdbarch_dump: DEPRECATED_INIT_FRAME_PC_FIRST = <0x%08lx>\n",
1338                         (long) current_gdbarch->deprecated_init_frame_pc_first
1339                         /*DEPRECATED_INIT_FRAME_PC_FIRST ()*/);
1340 #endif
1341 #ifdef DEPRECATED_MAX_REGISTER_RAW_SIZE_P
1342   fprintf_unfiltered (file,
1343                       "gdbarch_dump: %s # %s\n",
1344                       "DEPRECATED_MAX_REGISTER_RAW_SIZE_P()",
1345                       XSTRING (DEPRECATED_MAX_REGISTER_RAW_SIZE_P ()));
1346   fprintf_unfiltered (file,
1347                       "gdbarch_dump: DEPRECATED_MAX_REGISTER_RAW_SIZE_P() = %d\n",
1348                       DEPRECATED_MAX_REGISTER_RAW_SIZE_P ());
1349 #endif
1350 #ifdef DEPRECATED_MAX_REGISTER_RAW_SIZE
1351   fprintf_unfiltered (file,
1352                       "gdbarch_dump: DEPRECATED_MAX_REGISTER_RAW_SIZE # %s\n",
1353                       XSTRING (DEPRECATED_MAX_REGISTER_RAW_SIZE));
1354   fprintf_unfiltered (file,
1355                       "gdbarch_dump: DEPRECATED_MAX_REGISTER_RAW_SIZE = %d\n",
1356                       DEPRECATED_MAX_REGISTER_RAW_SIZE);
1357 #endif
1358 #ifdef DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE_P
1359   fprintf_unfiltered (file,
1360                       "gdbarch_dump: %s # %s\n",
1361                       "DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE_P()",
1362                       XSTRING (DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE_P ()));
1363   fprintf_unfiltered (file,
1364                       "gdbarch_dump: DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE_P() = %d\n",
1365                       DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE_P ());
1366 #endif
1367 #ifdef DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE
1368   fprintf_unfiltered (file,
1369                       "gdbarch_dump: DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE # %s\n",
1370                       XSTRING (DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE));
1371   fprintf_unfiltered (file,
1372                       "gdbarch_dump: DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE = %d\n",
1373                       DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE);
1374 #endif
1375 #ifdef DEPRECATED_PC_IN_CALL_DUMMY_P
1376   fprintf_unfiltered (file,
1377                       "gdbarch_dump: %s # %s\n",
1378                       "DEPRECATED_PC_IN_CALL_DUMMY_P()",
1379                       XSTRING (DEPRECATED_PC_IN_CALL_DUMMY_P ()));
1380   fprintf_unfiltered (file,
1381                       "gdbarch_dump: DEPRECATED_PC_IN_CALL_DUMMY_P() = %d\n",
1382                       DEPRECATED_PC_IN_CALL_DUMMY_P ());
1383 #endif
1384 #ifdef DEPRECATED_PC_IN_CALL_DUMMY
1385   fprintf_unfiltered (file,
1386                       "gdbarch_dump: %s # %s\n",
1387                       "DEPRECATED_PC_IN_CALL_DUMMY(pc, sp, frame_address)",
1388                       XSTRING (DEPRECATED_PC_IN_CALL_DUMMY (pc, sp, frame_address)));
1389   if (GDB_MULTI_ARCH)
1390     fprintf_unfiltered (file,
1391                         "gdbarch_dump: DEPRECATED_PC_IN_CALL_DUMMY = <0x%08lx>\n",
1392                         (long) current_gdbarch->deprecated_pc_in_call_dummy
1393                         /*DEPRECATED_PC_IN_CALL_DUMMY ()*/);
1394 #endif
1395 #ifdef DEPRECATED_POP_FRAME_P
1396   fprintf_unfiltered (file,
1397                       "gdbarch_dump: %s # %s\n",
1398                       "DEPRECATED_POP_FRAME_P()",
1399                       XSTRING (DEPRECATED_POP_FRAME_P ()));
1400   fprintf_unfiltered (file,
1401                       "gdbarch_dump: DEPRECATED_POP_FRAME_P() = %d\n",
1402                       DEPRECATED_POP_FRAME_P ());
1403 #endif
1404 #ifdef DEPRECATED_POP_FRAME
1405 #if GDB_MULTI_ARCH
1406   /* Macro might contain `[{}]' when not multi-arch */
1407   fprintf_unfiltered (file,
1408                       "gdbarch_dump: %s # %s\n",
1409                       "DEPRECATED_POP_FRAME(-)",
1410                       XSTRING (DEPRECATED_POP_FRAME (-)));
1411 #endif
1412   if (GDB_MULTI_ARCH)
1413     fprintf_unfiltered (file,
1414                         "gdbarch_dump: DEPRECATED_POP_FRAME = <0x%08lx>\n",
1415                         (long) current_gdbarch->deprecated_pop_frame
1416                         /*DEPRECATED_POP_FRAME ()*/);
1417 #endif
1418 #ifdef DEPRECATED_PUSH_ARGUMENTS_P
1419   fprintf_unfiltered (file,
1420                       "gdbarch_dump: %s # %s\n",
1421                       "DEPRECATED_PUSH_ARGUMENTS_P()",
1422                       XSTRING (DEPRECATED_PUSH_ARGUMENTS_P ()));
1423   fprintf_unfiltered (file,
1424                       "gdbarch_dump: DEPRECATED_PUSH_ARGUMENTS_P() = %d\n",
1425                       DEPRECATED_PUSH_ARGUMENTS_P ());
1426 #endif
1427 #ifdef DEPRECATED_PUSH_ARGUMENTS
1428   fprintf_unfiltered (file,
1429                       "gdbarch_dump: %s # %s\n",
1430                       "DEPRECATED_PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr)",
1431                       XSTRING (DEPRECATED_PUSH_ARGUMENTS (nargs, args, sp, struct_return, struct_addr)));
1432   if (GDB_MULTI_ARCH)
1433     fprintf_unfiltered (file,
1434                         "gdbarch_dump: DEPRECATED_PUSH_ARGUMENTS = <0x%08lx>\n",
1435                         (long) current_gdbarch->deprecated_push_arguments
1436                         /*DEPRECATED_PUSH_ARGUMENTS ()*/);
1437 #endif
1438 #ifdef DEPRECATED_PUSH_DUMMY_FRAME_P
1439   fprintf_unfiltered (file,
1440                       "gdbarch_dump: %s # %s\n",
1441                       "DEPRECATED_PUSH_DUMMY_FRAME_P()",
1442                       XSTRING (DEPRECATED_PUSH_DUMMY_FRAME_P ()));
1443   fprintf_unfiltered (file,
1444                       "gdbarch_dump: DEPRECATED_PUSH_DUMMY_FRAME_P() = %d\n",
1445                       DEPRECATED_PUSH_DUMMY_FRAME_P ());
1446 #endif
1447 #ifdef DEPRECATED_PUSH_DUMMY_FRAME
1448 #if GDB_MULTI_ARCH
1449   /* Macro might contain `[{}]' when not multi-arch */
1450   fprintf_unfiltered (file,
1451                       "gdbarch_dump: %s # %s\n",
1452                       "DEPRECATED_PUSH_DUMMY_FRAME(-)",
1453                       XSTRING (DEPRECATED_PUSH_DUMMY_FRAME (-)));
1454 #endif
1455   if (GDB_MULTI_ARCH)
1456     fprintf_unfiltered (file,
1457                         "gdbarch_dump: DEPRECATED_PUSH_DUMMY_FRAME = <0x%08lx>\n",
1458                         (long) current_gdbarch->deprecated_push_dummy_frame
1459                         /*DEPRECATED_PUSH_DUMMY_FRAME ()*/);
1460 #endif
1461 #ifdef DEPRECATED_STORE_RETURN_VALUE
1462 #if GDB_MULTI_ARCH
1463   /* Macro might contain `[{}]' when not multi-arch */
1464   fprintf_unfiltered (file,
1465                       "gdbarch_dump: %s # %s\n",
1466                       "DEPRECATED_STORE_RETURN_VALUE(type, valbuf)",
1467                       XSTRING (DEPRECATED_STORE_RETURN_VALUE (type, valbuf)));
1468 #endif
1469   if (GDB_MULTI_ARCH)
1470     fprintf_unfiltered (file,
1471                         "gdbarch_dump: DEPRECATED_STORE_RETURN_VALUE = <0x%08lx>\n",
1472                         (long) current_gdbarch->deprecated_store_return_value
1473                         /*DEPRECATED_STORE_RETURN_VALUE ()*/);
1474 #endif
1475 #ifdef DEPRECATED_STORE_STRUCT_RETURN_P
1476   fprintf_unfiltered (file,
1477                       "gdbarch_dump: %s # %s\n",
1478                       "DEPRECATED_STORE_STRUCT_RETURN_P()",
1479                       XSTRING (DEPRECATED_STORE_STRUCT_RETURN_P ()));
1480   fprintf_unfiltered (file,
1481                       "gdbarch_dump: DEPRECATED_STORE_STRUCT_RETURN_P() = %d\n",
1482                       DEPRECATED_STORE_STRUCT_RETURN_P ());
1483 #endif
1484 #ifdef DEPRECATED_STORE_STRUCT_RETURN
1485 #if GDB_MULTI_ARCH
1486   /* Macro might contain `[{}]' when not multi-arch */
1487   fprintf_unfiltered (file,
1488                       "gdbarch_dump: %s # %s\n",
1489                       "DEPRECATED_STORE_STRUCT_RETURN(addr, sp)",
1490                       XSTRING (DEPRECATED_STORE_STRUCT_RETURN (addr, sp)));
1491 #endif
1492   if (GDB_MULTI_ARCH)
1493     fprintf_unfiltered (file,
1494                         "gdbarch_dump: DEPRECATED_STORE_STRUCT_RETURN = <0x%08lx>\n",
1495                         (long) current_gdbarch->deprecated_store_struct_return
1496                         /*DEPRECATED_STORE_STRUCT_RETURN ()*/);
1497 #endif
1498 #ifdef DEPRECATED_USE_GENERIC_DUMMY_FRAMES
1499   fprintf_unfiltered (file,
1500                       "gdbarch_dump: DEPRECATED_USE_GENERIC_DUMMY_FRAMES # %s\n",
1501                       XSTRING (DEPRECATED_USE_GENERIC_DUMMY_FRAMES));
1502   fprintf_unfiltered (file,
1503                       "gdbarch_dump: DEPRECATED_USE_GENERIC_DUMMY_FRAMES = %d\n",
1504                       DEPRECATED_USE_GENERIC_DUMMY_FRAMES);
1505 #endif
1506 #ifdef DWARF2_BUILD_FRAME_INFO_P
1507   fprintf_unfiltered (file,
1508                       "gdbarch_dump: %s # %s\n",
1509                       "DWARF2_BUILD_FRAME_INFO_P()",
1510                       XSTRING (DWARF2_BUILD_FRAME_INFO_P ()));
1511   fprintf_unfiltered (file,
1512                       "gdbarch_dump: DWARF2_BUILD_FRAME_INFO_P() = %d\n",
1513                       DWARF2_BUILD_FRAME_INFO_P ());
1514 #endif
1515 #ifdef DWARF2_BUILD_FRAME_INFO
1516 #if GDB_MULTI_ARCH
1517   /* Macro might contain `[{}]' when not multi-arch */
1518   fprintf_unfiltered (file,
1519                       "gdbarch_dump: %s # %s\n",
1520                       "DWARF2_BUILD_FRAME_INFO(objfile)",
1521                       XSTRING (DWARF2_BUILD_FRAME_INFO (objfile)));
1522 #endif
1523   if (GDB_MULTI_ARCH)
1524     fprintf_unfiltered (file,
1525                         "gdbarch_dump: DWARF2_BUILD_FRAME_INFO = <0x%08lx>\n",
1526                         (long) current_gdbarch->dwarf2_build_frame_info
1527                         /*DWARF2_BUILD_FRAME_INFO ()*/);
1528 #endif
1529 #ifdef DWARF2_REG_TO_REGNUM
1530   fprintf_unfiltered (file,
1531                       "gdbarch_dump: %s # %s\n",
1532                       "DWARF2_REG_TO_REGNUM(dwarf2_regnr)",
1533                       XSTRING (DWARF2_REG_TO_REGNUM (dwarf2_regnr)));
1534   if (GDB_MULTI_ARCH)
1535     fprintf_unfiltered (file,
1536                         "gdbarch_dump: DWARF2_REG_TO_REGNUM = <0x%08lx>\n",
1537                         (long) current_gdbarch->dwarf2_reg_to_regnum
1538                         /*DWARF2_REG_TO_REGNUM ()*/);
1539 #endif
1540 #ifdef DWARF_REG_TO_REGNUM
1541   fprintf_unfiltered (file,
1542                       "gdbarch_dump: %s # %s\n",
1543                       "DWARF_REG_TO_REGNUM(dwarf_regnr)",
1544                       XSTRING (DWARF_REG_TO_REGNUM (dwarf_regnr)));
1545   if (GDB_MULTI_ARCH)
1546     fprintf_unfiltered (file,
1547                         "gdbarch_dump: DWARF_REG_TO_REGNUM = <0x%08lx>\n",
1548                         (long) current_gdbarch->dwarf_reg_to_regnum
1549                         /*DWARF_REG_TO_REGNUM ()*/);
1550 #endif
1551 #ifdef ECOFF_REG_TO_REGNUM
1552   fprintf_unfiltered (file,
1553                       "gdbarch_dump: %s # %s\n",
1554                       "ECOFF_REG_TO_REGNUM(ecoff_regnr)",
1555                       XSTRING (ECOFF_REG_TO_REGNUM (ecoff_regnr)));
1556   if (GDB_MULTI_ARCH)
1557     fprintf_unfiltered (file,
1558                         "gdbarch_dump: ECOFF_REG_TO_REGNUM = <0x%08lx>\n",
1559                         (long) current_gdbarch->ecoff_reg_to_regnum
1560                         /*ECOFF_REG_TO_REGNUM ()*/);
1561 #endif
1562 #ifdef ELF_MAKE_MSYMBOL_SPECIAL
1563 #if GDB_MULTI_ARCH
1564   /* Macro might contain `[{}]' when not multi-arch */
1565   fprintf_unfiltered (file,
1566                       "gdbarch_dump: %s # %s\n",
1567                       "ELF_MAKE_MSYMBOL_SPECIAL(sym, msym)",
1568                       XSTRING (ELF_MAKE_MSYMBOL_SPECIAL (sym, msym)));
1569 #endif
1570   if (GDB_MULTI_ARCH)
1571     fprintf_unfiltered (file,
1572                         "gdbarch_dump: ELF_MAKE_MSYMBOL_SPECIAL = <0x%08lx>\n",
1573                         (long) current_gdbarch->elf_make_msymbol_special
1574                         /*ELF_MAKE_MSYMBOL_SPECIAL ()*/);
1575 #endif
1576 #ifdef EXTRACT_RETURN_VALUE
1577 #if GDB_MULTI_ARCH
1578   /* Macro might contain `[{}]' when not multi-arch */
1579   fprintf_unfiltered (file,
1580                       "gdbarch_dump: %s # %s\n",
1581                       "EXTRACT_RETURN_VALUE(type, regcache, valbuf)",
1582                       XSTRING (EXTRACT_RETURN_VALUE (type, regcache, valbuf)));
1583 #endif
1584   if (GDB_MULTI_ARCH)
1585     fprintf_unfiltered (file,
1586                         "gdbarch_dump: EXTRACT_RETURN_VALUE = <0x%08lx>\n",
1587                         (long) current_gdbarch->extract_return_value
1588                         /*EXTRACT_RETURN_VALUE ()*/);
1589 #endif
1590 #ifdef EXTRACT_STRUCT_VALUE_ADDRESS_P
1591   fprintf_unfiltered (file,
1592                       "gdbarch_dump: %s # %s\n",
1593                       "EXTRACT_STRUCT_VALUE_ADDRESS_P()",
1594                       XSTRING (EXTRACT_STRUCT_VALUE_ADDRESS_P ()));
1595   fprintf_unfiltered (file,
1596                       "gdbarch_dump: EXTRACT_STRUCT_VALUE_ADDRESS_P() = %d\n",
1597                       EXTRACT_STRUCT_VALUE_ADDRESS_P ());
1598 #endif
1599 #ifdef EXTRACT_STRUCT_VALUE_ADDRESS
1600   fprintf_unfiltered (file,
1601                       "gdbarch_dump: %s # %s\n",
1602                       "EXTRACT_STRUCT_VALUE_ADDRESS(regcache)",
1603                       XSTRING (EXTRACT_STRUCT_VALUE_ADDRESS (regcache)));
1604   if (GDB_MULTI_ARCH)
1605     fprintf_unfiltered (file,
1606                         "gdbarch_dump: EXTRACT_STRUCT_VALUE_ADDRESS = <0x%08lx>\n",
1607                         (long) current_gdbarch->extract_struct_value_address
1608                         /*EXTRACT_STRUCT_VALUE_ADDRESS ()*/);
1609 #endif
1610 #ifdef FIX_CALL_DUMMY
1611 #if GDB_MULTI_ARCH
1612   /* Macro might contain `[{}]' when not multi-arch */
1613   fprintf_unfiltered (file,
1614                       "gdbarch_dump: %s # %s\n",
1615                       "FIX_CALL_DUMMY(dummy, pc, fun, nargs, args, type, gcc_p)",
1616                       XSTRING (FIX_CALL_DUMMY (dummy, pc, fun, nargs, args, type, gcc_p)));
1617 #endif
1618   if (GDB_MULTI_ARCH)
1619     fprintf_unfiltered (file,
1620                         "gdbarch_dump: FIX_CALL_DUMMY = <0x%08lx>\n",
1621                         (long) current_gdbarch->fix_call_dummy
1622                         /*FIX_CALL_DUMMY ()*/);
1623 #endif
1624 #ifdef FP0_REGNUM
1625   fprintf_unfiltered (file,
1626                       "gdbarch_dump: FP0_REGNUM # %s\n",
1627                       XSTRING (FP0_REGNUM));
1628   fprintf_unfiltered (file,
1629                       "gdbarch_dump: FP0_REGNUM = %d\n",
1630                       FP0_REGNUM);
1631 #endif
1632 #ifdef FP_REGNUM
1633   fprintf_unfiltered (file,
1634                       "gdbarch_dump: FP_REGNUM # %s\n",
1635                       XSTRING (FP_REGNUM));
1636   fprintf_unfiltered (file,
1637                       "gdbarch_dump: FP_REGNUM = %d\n",
1638                       FP_REGNUM);
1639 #endif
1640 #ifdef FRAMELESS_FUNCTION_INVOCATION
1641   fprintf_unfiltered (file,
1642                       "gdbarch_dump: %s # %s\n",
1643                       "FRAMELESS_FUNCTION_INVOCATION(fi)",
1644                       XSTRING (FRAMELESS_FUNCTION_INVOCATION (fi)));
1645   if (GDB_MULTI_ARCH)
1646     fprintf_unfiltered (file,
1647                         "gdbarch_dump: FRAMELESS_FUNCTION_INVOCATION = <0x%08lx>\n",
1648                         (long) current_gdbarch->frameless_function_invocation
1649                         /*FRAMELESS_FUNCTION_INVOCATION ()*/);
1650 #endif
1651 #ifdef FRAME_ARGS_ADDRESS
1652   fprintf_unfiltered (file,
1653                       "gdbarch_dump: %s # %s\n",
1654                       "FRAME_ARGS_ADDRESS(fi)",
1655                       XSTRING (FRAME_ARGS_ADDRESS (fi)));
1656   if (GDB_MULTI_ARCH)
1657     fprintf_unfiltered (file,
1658                         "gdbarch_dump: FRAME_ARGS_ADDRESS = <0x%08lx>\n",
1659                         (long) current_gdbarch->frame_args_address
1660                         /*FRAME_ARGS_ADDRESS ()*/);
1661 #endif
1662 #ifdef FRAME_ARGS_SKIP
1663   fprintf_unfiltered (file,
1664                       "gdbarch_dump: FRAME_ARGS_SKIP # %s\n",
1665                       XSTRING (FRAME_ARGS_SKIP));
1666   fprintf_unfiltered (file,
1667                       "gdbarch_dump: FRAME_ARGS_SKIP = %ld\n",
1668                       (long) FRAME_ARGS_SKIP);
1669 #endif
1670 #ifdef FRAME_LOCALS_ADDRESS
1671   fprintf_unfiltered (file,
1672                       "gdbarch_dump: %s # %s\n",
1673                       "FRAME_LOCALS_ADDRESS(fi)",
1674                       XSTRING (FRAME_LOCALS_ADDRESS (fi)));
1675   if (GDB_MULTI_ARCH)
1676     fprintf_unfiltered (file,
1677                         "gdbarch_dump: FRAME_LOCALS_ADDRESS = <0x%08lx>\n",
1678                         (long) current_gdbarch->frame_locals_address
1679                         /*FRAME_LOCALS_ADDRESS ()*/);
1680 #endif
1681 #ifdef FRAME_NUM_ARGS
1682   fprintf_unfiltered (file,
1683                       "gdbarch_dump: %s # %s\n",
1684                       "FRAME_NUM_ARGS(frame)",
1685                       XSTRING (FRAME_NUM_ARGS (frame)));
1686   if (GDB_MULTI_ARCH)
1687     fprintf_unfiltered (file,
1688                         "gdbarch_dump: FRAME_NUM_ARGS = <0x%08lx>\n",
1689                         (long) current_gdbarch->frame_num_args
1690                         /*FRAME_NUM_ARGS ()*/);
1691 #endif
1692 #ifdef FUNCTION_START_OFFSET
1693   fprintf_unfiltered (file,
1694                       "gdbarch_dump: FUNCTION_START_OFFSET # %s\n",
1695                       XSTRING (FUNCTION_START_OFFSET));
1696   fprintf_unfiltered (file,
1697                       "gdbarch_dump: FUNCTION_START_OFFSET = %ld\n",
1698                       (long) FUNCTION_START_OFFSET);
1699 #endif
1700 #ifdef GET_LONGJMP_TARGET_P
1701   fprintf_unfiltered (file,
1702                       "gdbarch_dump: %s # %s\n",
1703                       "GET_LONGJMP_TARGET_P()",
1704                       XSTRING (GET_LONGJMP_TARGET_P ()));
1705   fprintf_unfiltered (file,
1706                       "gdbarch_dump: GET_LONGJMP_TARGET_P() = %d\n",
1707                       GET_LONGJMP_TARGET_P ());
1708 #endif
1709 #ifdef GET_LONGJMP_TARGET
1710   fprintf_unfiltered (file,
1711                       "gdbarch_dump: %s # %s\n",
1712                       "GET_LONGJMP_TARGET(pc)",
1713                       XSTRING (GET_LONGJMP_TARGET (pc)));
1714   if (GDB_MULTI_ARCH)
1715     fprintf_unfiltered (file,
1716                         "gdbarch_dump: GET_LONGJMP_TARGET = <0x%08lx>\n",
1717                         (long) current_gdbarch->get_longjmp_target
1718                         /*GET_LONGJMP_TARGET ()*/);
1719 #endif
1720 #ifdef HAVE_NONSTEPPABLE_WATCHPOINT
1721   fprintf_unfiltered (file,
1722                       "gdbarch_dump: HAVE_NONSTEPPABLE_WATCHPOINT # %s\n",
1723                       XSTRING (HAVE_NONSTEPPABLE_WATCHPOINT));
1724   fprintf_unfiltered (file,
1725                       "gdbarch_dump: HAVE_NONSTEPPABLE_WATCHPOINT = %d\n",
1726                       HAVE_NONSTEPPABLE_WATCHPOINT);
1727 #endif
1728 #ifdef INNER_THAN
1729   fprintf_unfiltered (file,
1730                       "gdbarch_dump: %s # %s\n",
1731                       "INNER_THAN(lhs, rhs)",
1732                       XSTRING (INNER_THAN (lhs, rhs)));
1733   if (GDB_MULTI_ARCH)
1734     fprintf_unfiltered (file,
1735                         "gdbarch_dump: INNER_THAN = <0x%08lx>\n",
1736                         (long) current_gdbarch->inner_than
1737                         /*INNER_THAN ()*/);
1738 #endif
1739 #ifdef INTEGER_TO_ADDRESS_P
1740   fprintf_unfiltered (file,
1741                       "gdbarch_dump: %s # %s\n",
1742                       "INTEGER_TO_ADDRESS_P()",
1743                       XSTRING (INTEGER_TO_ADDRESS_P ()));
1744   fprintf_unfiltered (file,
1745                       "gdbarch_dump: INTEGER_TO_ADDRESS_P() = %d\n",
1746                       INTEGER_TO_ADDRESS_P ());
1747 #endif
1748 #ifdef INTEGER_TO_ADDRESS
1749   fprintf_unfiltered (file,
1750                       "gdbarch_dump: %s # %s\n",
1751                       "INTEGER_TO_ADDRESS(type, buf)",
1752                       XSTRING (INTEGER_TO_ADDRESS (type, buf)));
1753   if (GDB_MULTI_ARCH)
1754     fprintf_unfiltered (file,
1755                         "gdbarch_dump: INTEGER_TO_ADDRESS = <0x%08lx>\n",
1756                         (long) current_gdbarch->integer_to_address
1757                         /*INTEGER_TO_ADDRESS ()*/);
1758 #endif
1759 #ifdef IN_SOLIB_CALL_TRAMPOLINE
1760   fprintf_unfiltered (file,
1761                       "gdbarch_dump: %s # %s\n",
1762                       "IN_SOLIB_CALL_TRAMPOLINE(pc, name)",
1763                       XSTRING (IN_SOLIB_CALL_TRAMPOLINE (pc, name)));
1764   if (GDB_MULTI_ARCH)
1765     fprintf_unfiltered (file,
1766                         "gdbarch_dump: IN_SOLIB_CALL_TRAMPOLINE = <0x%08lx>\n",
1767                         (long) current_gdbarch->in_solib_call_trampoline
1768                         /*IN_SOLIB_CALL_TRAMPOLINE ()*/);
1769 #endif
1770 #ifdef IN_SOLIB_RETURN_TRAMPOLINE
1771   fprintf_unfiltered (file,
1772                       "gdbarch_dump: %s # %s\n",
1773                       "IN_SOLIB_RETURN_TRAMPOLINE(pc, name)",
1774                       XSTRING (IN_SOLIB_RETURN_TRAMPOLINE (pc, name)));
1775   if (GDB_MULTI_ARCH)
1776     fprintf_unfiltered (file,
1777                         "gdbarch_dump: IN_SOLIB_RETURN_TRAMPOLINE = <0x%08lx>\n",
1778                         (long) current_gdbarch->in_solib_return_trampoline
1779                         /*IN_SOLIB_RETURN_TRAMPOLINE ()*/);
1780 #endif
1781 #ifdef MEMORY_INSERT_BREAKPOINT
1782   fprintf_unfiltered (file,
1783                       "gdbarch_dump: %s # %s\n",
1784                       "MEMORY_INSERT_BREAKPOINT(addr, contents_cache)",
1785                       XSTRING (MEMORY_INSERT_BREAKPOINT (addr, contents_cache)));
1786   if (GDB_MULTI_ARCH)
1787     fprintf_unfiltered (file,
1788                         "gdbarch_dump: MEMORY_INSERT_BREAKPOINT = <0x%08lx>\n",
1789                         (long) current_gdbarch->memory_insert_breakpoint
1790                         /*MEMORY_INSERT_BREAKPOINT ()*/);
1791 #endif
1792 #ifdef MEMORY_REMOVE_BREAKPOINT
1793   fprintf_unfiltered (file,
1794                       "gdbarch_dump: %s # %s\n",
1795                       "MEMORY_REMOVE_BREAKPOINT(addr, contents_cache)",
1796                       XSTRING (MEMORY_REMOVE_BREAKPOINT (addr, contents_cache)));
1797   if (GDB_MULTI_ARCH)
1798     fprintf_unfiltered (file,
1799                         "gdbarch_dump: MEMORY_REMOVE_BREAKPOINT = <0x%08lx>\n",
1800                         (long) current_gdbarch->memory_remove_breakpoint
1801                         /*MEMORY_REMOVE_BREAKPOINT ()*/);
1802 #endif
1803 #ifdef NAME_OF_MALLOC
1804   fprintf_unfiltered (file,
1805                       "gdbarch_dump: NAME_OF_MALLOC # %s\n",
1806                       XSTRING (NAME_OF_MALLOC));
1807   fprintf_unfiltered (file,
1808                       "gdbarch_dump: NAME_OF_MALLOC = %s\n",
1809                       NAME_OF_MALLOC);
1810 #endif
1811 #ifdef NPC_REGNUM
1812   fprintf_unfiltered (file,
1813                       "gdbarch_dump: NPC_REGNUM # %s\n",
1814                       XSTRING (NPC_REGNUM));
1815   fprintf_unfiltered (file,
1816                       "gdbarch_dump: NPC_REGNUM = %d\n",
1817                       NPC_REGNUM);
1818 #endif
1819 #ifdef NUM_PSEUDO_REGS
1820   fprintf_unfiltered (file,
1821                       "gdbarch_dump: NUM_PSEUDO_REGS # %s\n",
1822                       XSTRING (NUM_PSEUDO_REGS));
1823   fprintf_unfiltered (file,
1824                       "gdbarch_dump: NUM_PSEUDO_REGS = %d\n",
1825                       NUM_PSEUDO_REGS);
1826 #endif
1827 #ifdef NUM_REGS
1828   fprintf_unfiltered (file,
1829                       "gdbarch_dump: NUM_REGS # %s\n",
1830                       XSTRING (NUM_REGS));
1831   fprintf_unfiltered (file,
1832                       "gdbarch_dump: NUM_REGS = %d\n",
1833                       NUM_REGS);
1834 #endif
1835 #ifdef PARM_BOUNDARY
1836   fprintf_unfiltered (file,
1837                       "gdbarch_dump: PARM_BOUNDARY # %s\n",
1838                       XSTRING (PARM_BOUNDARY));
1839   fprintf_unfiltered (file,
1840                       "gdbarch_dump: PARM_BOUNDARY = %d\n",
1841                       PARM_BOUNDARY);
1842 #endif
1843 #ifdef PC_IN_SIGTRAMP
1844   fprintf_unfiltered (file,
1845                       "gdbarch_dump: %s # %s\n",
1846                       "PC_IN_SIGTRAMP(pc, name)",
1847                       XSTRING (PC_IN_SIGTRAMP (pc, name)));
1848   if (GDB_MULTI_ARCH)
1849     fprintf_unfiltered (file,
1850                         "gdbarch_dump: PC_IN_SIGTRAMP = <0x%08lx>\n",
1851                         (long) current_gdbarch->pc_in_sigtramp
1852                         /*PC_IN_SIGTRAMP ()*/);
1853 #endif
1854 #ifdef PC_REGNUM
1855   fprintf_unfiltered (file,
1856                       "gdbarch_dump: PC_REGNUM # %s\n",
1857                       XSTRING (PC_REGNUM));
1858   fprintf_unfiltered (file,
1859                       "gdbarch_dump: PC_REGNUM = %d\n",
1860                       PC_REGNUM);
1861 #endif
1862 #ifdef POINTER_TO_ADDRESS
1863   fprintf_unfiltered (file,
1864                       "gdbarch_dump: %s # %s\n",
1865                       "POINTER_TO_ADDRESS(type, buf)",
1866                       XSTRING (POINTER_TO_ADDRESS (type, buf)));
1867   if (GDB_MULTI_ARCH)
1868     fprintf_unfiltered (file,
1869                         "gdbarch_dump: POINTER_TO_ADDRESS = <0x%08lx>\n",
1870                         (long) current_gdbarch->pointer_to_address
1871                         /*POINTER_TO_ADDRESS ()*/);
1872 #endif
1873 #ifdef PREPARE_TO_PROCEED
1874   fprintf_unfiltered (file,
1875                       "gdbarch_dump: %s # %s\n",
1876                       "PREPARE_TO_PROCEED(select_it)",
1877                       XSTRING (PREPARE_TO_PROCEED (select_it)));
1878   if (GDB_MULTI_ARCH)
1879     fprintf_unfiltered (file,
1880                         "gdbarch_dump: PREPARE_TO_PROCEED = <0x%08lx>\n",
1881                         (long) current_gdbarch->prepare_to_proceed
1882                         /*PREPARE_TO_PROCEED ()*/);
1883 #endif
1884   if (GDB_MULTI_ARCH)
1885     fprintf_unfiltered (file,
1886                         "gdbarch_dump: gdbarch_print_float_info_p() = %d\n",
1887                         gdbarch_print_float_info_p (current_gdbarch));
1888   if (GDB_MULTI_ARCH)
1889     fprintf_unfiltered (file,
1890                         "gdbarch_dump: print_float_info = 0x%08lx\n",
1891                         (long) current_gdbarch->print_float_info);
1892   if (GDB_MULTI_ARCH)
1893     fprintf_unfiltered (file,
1894                         "gdbarch_dump: print_registers_info = 0x%08lx\n",
1895                         (long) current_gdbarch->print_registers_info);
1896   if (GDB_MULTI_ARCH)
1897     fprintf_unfiltered (file,
1898                         "gdbarch_dump: gdbarch_print_vector_info_p() = %d\n",
1899                         gdbarch_print_vector_info_p (current_gdbarch));
1900   if (GDB_MULTI_ARCH)
1901     fprintf_unfiltered (file,
1902                         "gdbarch_dump: print_vector_info = 0x%08lx\n",
1903                         (long) current_gdbarch->print_vector_info);
1904 #ifdef PROLOGUE_FRAMELESS_P
1905   fprintf_unfiltered (file,
1906                       "gdbarch_dump: %s # %s\n",
1907                       "PROLOGUE_FRAMELESS_P(ip)",
1908                       XSTRING (PROLOGUE_FRAMELESS_P (ip)));
1909   if (GDB_MULTI_ARCH)
1910     fprintf_unfiltered (file,
1911                         "gdbarch_dump: PROLOGUE_FRAMELESS_P = <0x%08lx>\n",
1912                         (long) current_gdbarch->prologue_frameless_p
1913                         /*PROLOGUE_FRAMELESS_P ()*/);
1914 #endif
1915 #ifdef PS_REGNUM
1916   fprintf_unfiltered (file,
1917                       "gdbarch_dump: PS_REGNUM # %s\n",
1918                       XSTRING (PS_REGNUM));
1919   fprintf_unfiltered (file,
1920                       "gdbarch_dump: PS_REGNUM = %d\n",
1921                       PS_REGNUM);
1922 #endif
1923   if (GDB_MULTI_ARCH)
1924     fprintf_unfiltered (file,
1925                         "gdbarch_dump: gdbarch_push_dummy_call_p() = %d\n",
1926                         gdbarch_push_dummy_call_p (current_gdbarch));
1927   if (GDB_MULTI_ARCH)
1928     fprintf_unfiltered (file,
1929                         "gdbarch_dump: push_dummy_call = 0x%08lx\n",
1930                         (long) current_gdbarch->push_dummy_call);
1931 #ifdef PUSH_RETURN_ADDRESS_P
1932   fprintf_unfiltered (file,
1933                       "gdbarch_dump: %s # %s\n",
1934                       "PUSH_RETURN_ADDRESS_P()",
1935                       XSTRING (PUSH_RETURN_ADDRESS_P ()));
1936   fprintf_unfiltered (file,
1937                       "gdbarch_dump: PUSH_RETURN_ADDRESS_P() = %d\n",
1938                       PUSH_RETURN_ADDRESS_P ());
1939 #endif
1940 #ifdef PUSH_RETURN_ADDRESS
1941   fprintf_unfiltered (file,
1942                       "gdbarch_dump: %s # %s\n",
1943                       "PUSH_RETURN_ADDRESS(pc, sp)",
1944                       XSTRING (PUSH_RETURN_ADDRESS (pc, sp)));
1945   if (GDB_MULTI_ARCH)
1946     fprintf_unfiltered (file,
1947                         "gdbarch_dump: PUSH_RETURN_ADDRESS = <0x%08lx>\n",
1948                         (long) current_gdbarch->push_return_address
1949                         /*PUSH_RETURN_ADDRESS ()*/);
1950 #endif
1951 #ifdef REGISTER_BYTE
1952   fprintf_unfiltered (file,
1953                       "gdbarch_dump: %s # %s\n",
1954                       "REGISTER_BYTE(reg_nr)",
1955                       XSTRING (REGISTER_BYTE (reg_nr)));
1956   if (GDB_MULTI_ARCH)
1957     fprintf_unfiltered (file,
1958                         "gdbarch_dump: REGISTER_BYTE = <0x%08lx>\n",
1959                         (long) current_gdbarch->register_byte
1960                         /*REGISTER_BYTE ()*/);
1961 #endif
1962 #ifdef REGISTER_BYTES
1963   fprintf_unfiltered (file,
1964                       "gdbarch_dump: REGISTER_BYTES # %s\n",
1965                       XSTRING (REGISTER_BYTES));
1966   fprintf_unfiltered (file,
1967                       "gdbarch_dump: REGISTER_BYTES = %d\n",
1968                       REGISTER_BYTES);
1969 #endif
1970 #ifdef REGISTER_BYTES_OK_P
1971   fprintf_unfiltered (file,
1972                       "gdbarch_dump: %s # %s\n",
1973                       "REGISTER_BYTES_OK_P()",
1974                       XSTRING (REGISTER_BYTES_OK_P ()));
1975   fprintf_unfiltered (file,
1976                       "gdbarch_dump: REGISTER_BYTES_OK_P() = %d\n",
1977                       REGISTER_BYTES_OK_P ());
1978 #endif
1979 #ifdef REGISTER_BYTES_OK
1980   fprintf_unfiltered (file,
1981                       "gdbarch_dump: %s # %s\n",
1982                       "REGISTER_BYTES_OK(nr_bytes)",
1983                       XSTRING (REGISTER_BYTES_OK (nr_bytes)));
1984   if (GDB_MULTI_ARCH)
1985     fprintf_unfiltered (file,
1986                         "gdbarch_dump: REGISTER_BYTES_OK = <0x%08lx>\n",
1987                         (long) current_gdbarch->register_bytes_ok
1988                         /*REGISTER_BYTES_OK ()*/);
1989 #endif
1990 #ifdef REGISTER_CONVERTIBLE
1991   fprintf_unfiltered (file,
1992                       "gdbarch_dump: %s # %s\n",
1993                       "REGISTER_CONVERTIBLE(nr)",
1994                       XSTRING (REGISTER_CONVERTIBLE (nr)));
1995   if (GDB_MULTI_ARCH)
1996     fprintf_unfiltered (file,
1997                         "gdbarch_dump: REGISTER_CONVERTIBLE = <0x%08lx>\n",
1998                         (long) current_gdbarch->register_convertible
1999                         /*REGISTER_CONVERTIBLE ()*/);
2000 #endif
2001 #ifdef REGISTER_CONVERT_TO_RAW
2002 #if GDB_MULTI_ARCH
2003   /* Macro might contain `[{}]' when not multi-arch */
2004   fprintf_unfiltered (file,
2005                       "gdbarch_dump: %s # %s\n",
2006                       "REGISTER_CONVERT_TO_RAW(type, regnum, from, to)",
2007                       XSTRING (REGISTER_CONVERT_TO_RAW (type, regnum, from, to)));
2008 #endif
2009   if (GDB_MULTI_ARCH)
2010     fprintf_unfiltered (file,
2011                         "gdbarch_dump: REGISTER_CONVERT_TO_RAW = <0x%08lx>\n",
2012                         (long) current_gdbarch->register_convert_to_raw
2013                         /*REGISTER_CONVERT_TO_RAW ()*/);
2014 #endif
2015 #ifdef REGISTER_CONVERT_TO_VIRTUAL
2016 #if GDB_MULTI_ARCH
2017   /* Macro might contain `[{}]' when not multi-arch */
2018   fprintf_unfiltered (file,
2019                       "gdbarch_dump: %s # %s\n",
2020                       "REGISTER_CONVERT_TO_VIRTUAL(regnum, type, from, to)",
2021                       XSTRING (REGISTER_CONVERT_TO_VIRTUAL (regnum, type, from, to)));
2022 #endif
2023   if (GDB_MULTI_ARCH)
2024     fprintf_unfiltered (file,
2025                         "gdbarch_dump: REGISTER_CONVERT_TO_VIRTUAL = <0x%08lx>\n",
2026                         (long) current_gdbarch->register_convert_to_virtual
2027                         /*REGISTER_CONVERT_TO_VIRTUAL ()*/);
2028 #endif
2029 #ifdef REGISTER_NAME
2030   fprintf_unfiltered (file,
2031                       "gdbarch_dump: %s # %s\n",
2032                       "REGISTER_NAME(regnr)",
2033                       XSTRING (REGISTER_NAME (regnr)));
2034   if (GDB_MULTI_ARCH)
2035     fprintf_unfiltered (file,
2036                         "gdbarch_dump: REGISTER_NAME = <0x%08lx>\n",
2037                         (long) current_gdbarch->register_name
2038                         /*REGISTER_NAME ()*/);
2039 #endif
2040 #ifdef REGISTER_RAW_SIZE
2041   fprintf_unfiltered (file,
2042                       "gdbarch_dump: %s # %s\n",
2043                       "REGISTER_RAW_SIZE(reg_nr)",
2044                       XSTRING (REGISTER_RAW_SIZE (reg_nr)));
2045   if (GDB_MULTI_ARCH)
2046     fprintf_unfiltered (file,
2047                         "gdbarch_dump: REGISTER_RAW_SIZE = <0x%08lx>\n",
2048                         (long) current_gdbarch->register_raw_size
2049                         /*REGISTER_RAW_SIZE ()*/);
2050 #endif
2051 #ifdef REGISTER_SIM_REGNO
2052   fprintf_unfiltered (file,
2053                       "gdbarch_dump: %s # %s\n",
2054                       "REGISTER_SIM_REGNO(reg_nr)",
2055                       XSTRING (REGISTER_SIM_REGNO (reg_nr)));
2056   if (GDB_MULTI_ARCH)
2057     fprintf_unfiltered (file,
2058                         "gdbarch_dump: REGISTER_SIM_REGNO = <0x%08lx>\n",
2059                         (long) current_gdbarch->register_sim_regno
2060                         /*REGISTER_SIM_REGNO ()*/);
2061 #endif
2062 #ifdef REGISTER_SIZE
2063   fprintf_unfiltered (file,
2064                       "gdbarch_dump: REGISTER_SIZE # %s\n",
2065                       XSTRING (REGISTER_SIZE));
2066   fprintf_unfiltered (file,
2067                       "gdbarch_dump: REGISTER_SIZE = %d\n",
2068                       REGISTER_SIZE);
2069 #endif
2070 #ifdef REGISTER_TO_VALUE
2071 #if GDB_MULTI_ARCH
2072   /* Macro might contain `[{}]' when not multi-arch */
2073   fprintf_unfiltered (file,
2074                       "gdbarch_dump: %s # %s\n",
2075                       "REGISTER_TO_VALUE(regnum, type, from, to)",
2076                       XSTRING (REGISTER_TO_VALUE (regnum, type, from, to)));
2077 #endif
2078   if (GDB_MULTI_ARCH)
2079     fprintf_unfiltered (file,
2080                         "gdbarch_dump: REGISTER_TO_VALUE = <0x%08lx>\n",
2081                         (long) current_gdbarch->register_to_value
2082                         /*REGISTER_TO_VALUE ()*/);
2083 #endif
2084   if (GDB_MULTI_ARCH)
2085     fprintf_unfiltered (file,
2086                         "gdbarch_dump: gdbarch_register_type_p() = %d\n",
2087                         gdbarch_register_type_p (current_gdbarch));
2088   if (GDB_MULTI_ARCH)
2089     fprintf_unfiltered (file,
2090                         "gdbarch_dump: register_type = 0x%08lx\n",
2091                         (long) current_gdbarch->register_type);
2092 #ifdef REGISTER_VIRTUAL_SIZE
2093   fprintf_unfiltered (file,
2094                       "gdbarch_dump: %s # %s\n",
2095                       "REGISTER_VIRTUAL_SIZE(reg_nr)",
2096                       XSTRING (REGISTER_VIRTUAL_SIZE (reg_nr)));
2097   if (GDB_MULTI_ARCH)
2098     fprintf_unfiltered (file,
2099                         "gdbarch_dump: REGISTER_VIRTUAL_SIZE = <0x%08lx>\n",
2100                         (long) current_gdbarch->register_virtual_size
2101                         /*REGISTER_VIRTUAL_SIZE ()*/);
2102 #endif
2103 #ifdef REGISTER_VIRTUAL_TYPE_P
2104   fprintf_unfiltered (file,
2105                       "gdbarch_dump: %s # %s\n",
2106                       "REGISTER_VIRTUAL_TYPE_P()",
2107                       XSTRING (REGISTER_VIRTUAL_TYPE_P ()));
2108   fprintf_unfiltered (file,
2109                       "gdbarch_dump: REGISTER_VIRTUAL_TYPE_P() = %d\n",
2110                       REGISTER_VIRTUAL_TYPE_P ());
2111 #endif
2112 #ifdef REGISTER_VIRTUAL_TYPE
2113   fprintf_unfiltered (file,
2114                       "gdbarch_dump: %s # %s\n",
2115                       "REGISTER_VIRTUAL_TYPE(reg_nr)",
2116                       XSTRING (REGISTER_VIRTUAL_TYPE (reg_nr)));
2117   if (GDB_MULTI_ARCH)
2118     fprintf_unfiltered (file,
2119                         "gdbarch_dump: REGISTER_VIRTUAL_TYPE = <0x%08lx>\n",
2120                         (long) current_gdbarch->register_virtual_type
2121                         /*REGISTER_VIRTUAL_TYPE ()*/);
2122 #endif
2123 #ifdef REG_STRUCT_HAS_ADDR_P
2124   fprintf_unfiltered (file,
2125                       "gdbarch_dump: %s # %s\n",
2126                       "REG_STRUCT_HAS_ADDR_P()",
2127                       XSTRING (REG_STRUCT_HAS_ADDR_P ()));
2128   fprintf_unfiltered (file,
2129                       "gdbarch_dump: REG_STRUCT_HAS_ADDR_P() = %d\n",
2130                       REG_STRUCT_HAS_ADDR_P ());
2131 #endif
2132 #ifdef REG_STRUCT_HAS_ADDR
2133   fprintf_unfiltered (file,
2134                       "gdbarch_dump: %s # %s\n",
2135                       "REG_STRUCT_HAS_ADDR(gcc_p, type)",
2136                       XSTRING (REG_STRUCT_HAS_ADDR (gcc_p, type)));
2137   if (GDB_MULTI_ARCH)
2138     fprintf_unfiltered (file,
2139                         "gdbarch_dump: REG_STRUCT_HAS_ADDR = <0x%08lx>\n",
2140                         (long) current_gdbarch->reg_struct_has_addr
2141                         /*REG_STRUCT_HAS_ADDR ()*/);
2142 #endif
2143 #ifdef REMOTE_TRANSLATE_XFER_ADDRESS
2144 #if GDB_MULTI_ARCH
2145   /* Macro might contain `[{}]' when not multi-arch */
2146   fprintf_unfiltered (file,
2147                       "gdbarch_dump: %s # %s\n",
2148                       "REMOTE_TRANSLATE_XFER_ADDRESS(gdb_addr, gdb_len, rem_addr, rem_len)",
2149                       XSTRING (REMOTE_TRANSLATE_XFER_ADDRESS (gdb_addr, gdb_len, rem_addr, rem_len)));
2150 #endif
2151   if (GDB_MULTI_ARCH)
2152     fprintf_unfiltered (file,
2153                         "gdbarch_dump: REMOTE_TRANSLATE_XFER_ADDRESS = <0x%08lx>\n",
2154                         (long) current_gdbarch->remote_translate_xfer_address
2155                         /*REMOTE_TRANSLATE_XFER_ADDRESS ()*/);
2156 #endif
2157 #ifdef RETURN_VALUE_ON_STACK
2158   fprintf_unfiltered (file,
2159                       "gdbarch_dump: %s # %s\n",
2160                       "RETURN_VALUE_ON_STACK(type)",
2161                       XSTRING (RETURN_VALUE_ON_STACK (type)));
2162   if (GDB_MULTI_ARCH)
2163     fprintf_unfiltered (file,
2164                         "gdbarch_dump: RETURN_VALUE_ON_STACK = <0x%08lx>\n",
2165                         (long) current_gdbarch->return_value_on_stack
2166                         /*RETURN_VALUE_ON_STACK ()*/);
2167 #endif
2168 #ifdef SAVED_PC_AFTER_CALL
2169   fprintf_unfiltered (file,
2170                       "gdbarch_dump: %s # %s\n",
2171                       "SAVED_PC_AFTER_CALL(frame)",
2172                       XSTRING (SAVED_PC_AFTER_CALL (frame)));
2173   if (GDB_MULTI_ARCH)
2174     fprintf_unfiltered (file,
2175                         "gdbarch_dump: SAVED_PC_AFTER_CALL = <0x%08lx>\n",
2176                         (long) current_gdbarch->saved_pc_after_call
2177                         /*SAVED_PC_AFTER_CALL ()*/);
2178 #endif
2179 #ifdef SAVE_DUMMY_FRAME_TOS_P
2180   fprintf_unfiltered (file,
2181                       "gdbarch_dump: %s # %s\n",
2182                       "SAVE_DUMMY_FRAME_TOS_P()",
2183                       XSTRING (SAVE_DUMMY_FRAME_TOS_P ()));
2184   fprintf_unfiltered (file,
2185                       "gdbarch_dump: SAVE_DUMMY_FRAME_TOS_P() = %d\n",
2186                       SAVE_DUMMY_FRAME_TOS_P ());
2187 #endif
2188 #ifdef SAVE_DUMMY_FRAME_TOS
2189 #if GDB_MULTI_ARCH
2190   /* Macro might contain `[{}]' when not multi-arch */
2191   fprintf_unfiltered (file,
2192                       "gdbarch_dump: %s # %s\n",
2193                       "SAVE_DUMMY_FRAME_TOS(sp)",
2194                       XSTRING (SAVE_DUMMY_FRAME_TOS (sp)));
2195 #endif
2196   if (GDB_MULTI_ARCH)
2197     fprintf_unfiltered (file,
2198                         "gdbarch_dump: SAVE_DUMMY_FRAME_TOS = <0x%08lx>\n",
2199                         (long) current_gdbarch->save_dummy_frame_tos
2200                         /*SAVE_DUMMY_FRAME_TOS ()*/);
2201 #endif
2202 #ifdef SDB_REG_TO_REGNUM
2203   fprintf_unfiltered (file,
2204                       "gdbarch_dump: %s # %s\n",
2205                       "SDB_REG_TO_REGNUM(sdb_regnr)",
2206                       XSTRING (SDB_REG_TO_REGNUM (sdb_regnr)));
2207   if (GDB_MULTI_ARCH)
2208     fprintf_unfiltered (file,
2209                         "gdbarch_dump: SDB_REG_TO_REGNUM = <0x%08lx>\n",
2210                         (long) current_gdbarch->sdb_reg_to_regnum
2211                         /*SDB_REG_TO_REGNUM ()*/);
2212 #endif
2213 #ifdef SIGTRAMP_END_P
2214   fprintf_unfiltered (file,
2215                       "gdbarch_dump: %s # %s\n",
2216                       "SIGTRAMP_END_P()",
2217                       XSTRING (SIGTRAMP_END_P ()));
2218   fprintf_unfiltered (file,
2219                       "gdbarch_dump: SIGTRAMP_END_P() = %d\n",
2220                       SIGTRAMP_END_P ());
2221 #endif
2222 #ifdef SIGTRAMP_END
2223   fprintf_unfiltered (file,
2224                       "gdbarch_dump: %s # %s\n",
2225                       "SIGTRAMP_END(pc)",
2226                       XSTRING (SIGTRAMP_END (pc)));
2227   if (GDB_MULTI_ARCH)
2228     fprintf_unfiltered (file,
2229                         "gdbarch_dump: SIGTRAMP_END = <0x%08lx>\n",
2230                         (long) current_gdbarch->sigtramp_end
2231                         /*SIGTRAMP_END ()*/);
2232 #endif
2233 #ifdef SIGTRAMP_START_P
2234   fprintf_unfiltered (file,
2235                       "gdbarch_dump: %s # %s\n",
2236                       "SIGTRAMP_START_P()",
2237                       XSTRING (SIGTRAMP_START_P ()));
2238   fprintf_unfiltered (file,
2239                       "gdbarch_dump: SIGTRAMP_START_P() = %d\n",
2240                       SIGTRAMP_START_P ());
2241 #endif
2242 #ifdef SIGTRAMP_START
2243   fprintf_unfiltered (file,
2244                       "gdbarch_dump: %s # %s\n",
2245                       "SIGTRAMP_START(pc)",
2246                       XSTRING (SIGTRAMP_START (pc)));
2247   if (GDB_MULTI_ARCH)
2248     fprintf_unfiltered (file,
2249                         "gdbarch_dump: SIGTRAMP_START = <0x%08lx>\n",
2250                         (long) current_gdbarch->sigtramp_start
2251                         /*SIGTRAMP_START ()*/);
2252 #endif
2253 #ifdef SIZEOF_CALL_DUMMY_WORDS
2254   fprintf_unfiltered (file,
2255                       "gdbarch_dump: SIZEOF_CALL_DUMMY_WORDS # %s\n",
2256                       XSTRING (SIZEOF_CALL_DUMMY_WORDS));
2257   fprintf_unfiltered (file,
2258                       "gdbarch_dump: SIZEOF_CALL_DUMMY_WORDS = %d\n",
2259                       SIZEOF_CALL_DUMMY_WORDS);
2260 #endif
2261 #ifdef SKIP_PROLOGUE
2262   fprintf_unfiltered (file,
2263                       "gdbarch_dump: %s # %s\n",
2264                       "SKIP_PROLOGUE(ip)",
2265                       XSTRING (SKIP_PROLOGUE (ip)));
2266   if (GDB_MULTI_ARCH)
2267     fprintf_unfiltered (file,
2268                         "gdbarch_dump: SKIP_PROLOGUE = <0x%08lx>\n",
2269                         (long) current_gdbarch->skip_prologue
2270                         /*SKIP_PROLOGUE ()*/);
2271 #endif
2272 #ifdef SKIP_TRAMPOLINE_CODE
2273   fprintf_unfiltered (file,
2274                       "gdbarch_dump: %s # %s\n",
2275                       "SKIP_TRAMPOLINE_CODE(pc)",
2276                       XSTRING (SKIP_TRAMPOLINE_CODE (pc)));
2277   if (GDB_MULTI_ARCH)
2278     fprintf_unfiltered (file,
2279                         "gdbarch_dump: SKIP_TRAMPOLINE_CODE = <0x%08lx>\n",
2280                         (long) current_gdbarch->skip_trampoline_code
2281                         /*SKIP_TRAMPOLINE_CODE ()*/);
2282 #endif
2283 #ifdef SMASH_TEXT_ADDRESS
2284   fprintf_unfiltered (file,
2285                       "gdbarch_dump: %s # %s\n",
2286                       "SMASH_TEXT_ADDRESS(addr)",
2287                       XSTRING (SMASH_TEXT_ADDRESS (addr)));
2288   if (GDB_MULTI_ARCH)
2289     fprintf_unfiltered (file,
2290                         "gdbarch_dump: SMASH_TEXT_ADDRESS = <0x%08lx>\n",
2291                         (long) current_gdbarch->smash_text_address
2292                         /*SMASH_TEXT_ADDRESS ()*/);
2293 #endif
2294 #ifdef SOFTWARE_SINGLE_STEP_P
2295   fprintf_unfiltered (file,
2296                       "gdbarch_dump: %s # %s\n",
2297                       "SOFTWARE_SINGLE_STEP_P()",
2298                       XSTRING (SOFTWARE_SINGLE_STEP_P ()));
2299   fprintf_unfiltered (file,
2300                       "gdbarch_dump: SOFTWARE_SINGLE_STEP_P() = %d\n",
2301                       SOFTWARE_SINGLE_STEP_P ());
2302 #endif
2303 #ifdef SOFTWARE_SINGLE_STEP
2304 #if GDB_MULTI_ARCH
2305   /* Macro might contain `[{}]' when not multi-arch */
2306   fprintf_unfiltered (file,
2307                       "gdbarch_dump: %s # %s\n",
2308                       "SOFTWARE_SINGLE_STEP(sig, insert_breakpoints_p)",
2309                       XSTRING (SOFTWARE_SINGLE_STEP (sig, insert_breakpoints_p)));
2310 #endif
2311   if (GDB_MULTI_ARCH)
2312     fprintf_unfiltered (file,
2313                         "gdbarch_dump: SOFTWARE_SINGLE_STEP = <0x%08lx>\n",
2314                         (long) current_gdbarch->software_single_step
2315                         /*SOFTWARE_SINGLE_STEP ()*/);
2316 #endif
2317 #ifdef SP_REGNUM
2318   fprintf_unfiltered (file,
2319                       "gdbarch_dump: SP_REGNUM # %s\n",
2320                       XSTRING (SP_REGNUM));
2321   fprintf_unfiltered (file,
2322                       "gdbarch_dump: SP_REGNUM = %d\n",
2323                       SP_REGNUM);
2324 #endif
2325 #ifdef STAB_REG_TO_REGNUM
2326   fprintf_unfiltered (file,
2327                       "gdbarch_dump: %s # %s\n",
2328                       "STAB_REG_TO_REGNUM(stab_regnr)",
2329                       XSTRING (STAB_REG_TO_REGNUM (stab_regnr)));
2330   if (GDB_MULTI_ARCH)
2331     fprintf_unfiltered (file,
2332                         "gdbarch_dump: STAB_REG_TO_REGNUM = <0x%08lx>\n",
2333                         (long) current_gdbarch->stab_reg_to_regnum
2334                         /*STAB_REG_TO_REGNUM ()*/);
2335 #endif
2336 #ifdef STACK_ALIGN_P
2337   fprintf_unfiltered (file,
2338                       "gdbarch_dump: %s # %s\n",
2339                       "STACK_ALIGN_P()",
2340                       XSTRING (STACK_ALIGN_P ()));
2341   fprintf_unfiltered (file,
2342                       "gdbarch_dump: STACK_ALIGN_P() = %d\n",
2343                       STACK_ALIGN_P ());
2344 #endif
2345 #ifdef STACK_ALIGN
2346   fprintf_unfiltered (file,
2347                       "gdbarch_dump: %s # %s\n",
2348                       "STACK_ALIGN(sp)",
2349                       XSTRING (STACK_ALIGN (sp)));
2350   if (GDB_MULTI_ARCH)
2351     fprintf_unfiltered (file,
2352                         "gdbarch_dump: STACK_ALIGN = <0x%08lx>\n",
2353                         (long) current_gdbarch->stack_align
2354                         /*STACK_ALIGN ()*/);
2355 #endif
2356 #ifdef STORE_RETURN_VALUE
2357 #if GDB_MULTI_ARCH
2358   /* Macro might contain `[{}]' when not multi-arch */
2359   fprintf_unfiltered (file,
2360                       "gdbarch_dump: %s # %s\n",
2361                       "STORE_RETURN_VALUE(type, regcache, valbuf)",
2362                       XSTRING (STORE_RETURN_VALUE (type, regcache, valbuf)));
2363 #endif
2364   if (GDB_MULTI_ARCH)
2365     fprintf_unfiltered (file,
2366                         "gdbarch_dump: STORE_RETURN_VALUE = <0x%08lx>\n",
2367                         (long) current_gdbarch->store_return_value
2368                         /*STORE_RETURN_VALUE ()*/);
2369 #endif
2370 #ifdef TARGET_ADDR_BIT
2371   fprintf_unfiltered (file,
2372                       "gdbarch_dump: TARGET_ADDR_BIT # %s\n",
2373                       XSTRING (TARGET_ADDR_BIT));
2374   fprintf_unfiltered (file,
2375                       "gdbarch_dump: TARGET_ADDR_BIT = %d\n",
2376                       TARGET_ADDR_BIT);
2377 #endif
2378 #ifdef TARGET_ARCHITECTURE
2379   fprintf_unfiltered (file,
2380                       "gdbarch_dump: TARGET_ARCHITECTURE # %s\n",
2381                       XSTRING (TARGET_ARCHITECTURE));
2382   if (TARGET_ARCHITECTURE != NULL)
2383     fprintf_unfiltered (file,
2384                         "gdbarch_dump: TARGET_ARCHITECTURE = %s\n",
2385                         TARGET_ARCHITECTURE->printable_name);
2386 #endif
2387 #ifdef TARGET_BFD_VMA_BIT
2388   fprintf_unfiltered (file,
2389                       "gdbarch_dump: TARGET_BFD_VMA_BIT # %s\n",
2390                       XSTRING (TARGET_BFD_VMA_BIT));
2391   fprintf_unfiltered (file,
2392                       "gdbarch_dump: TARGET_BFD_VMA_BIT = %d\n",
2393                       TARGET_BFD_VMA_BIT);
2394 #endif
2395 #ifdef TARGET_BYTE_ORDER
2396   fprintf_unfiltered (file,
2397                       "gdbarch_dump: TARGET_BYTE_ORDER # %s\n",
2398                       XSTRING (TARGET_BYTE_ORDER));
2399   fprintf_unfiltered (file,
2400                       "gdbarch_dump: TARGET_BYTE_ORDER = %ld\n",
2401                       (long) TARGET_BYTE_ORDER);
2402 #endif
2403 #ifdef TARGET_CHAR_SIGNED
2404   fprintf_unfiltered (file,
2405                       "gdbarch_dump: TARGET_CHAR_SIGNED # %s\n",
2406                       XSTRING (TARGET_CHAR_SIGNED));
2407   fprintf_unfiltered (file,
2408                       "gdbarch_dump: TARGET_CHAR_SIGNED = %d\n",
2409                       TARGET_CHAR_SIGNED);
2410 #endif
2411 #ifdef TARGET_DOUBLE_BIT
2412   fprintf_unfiltered (file,
2413                       "gdbarch_dump: TARGET_DOUBLE_BIT # %s\n",
2414                       XSTRING (TARGET_DOUBLE_BIT));
2415   fprintf_unfiltered (file,
2416                       "gdbarch_dump: TARGET_DOUBLE_BIT = %d\n",
2417                       TARGET_DOUBLE_BIT);
2418 #endif
2419 #ifdef TARGET_DOUBLE_FORMAT
2420   fprintf_unfiltered (file,
2421                       "gdbarch_dump: TARGET_DOUBLE_FORMAT # %s\n",
2422                       XSTRING (TARGET_DOUBLE_FORMAT));
2423   fprintf_unfiltered (file,
2424                       "gdbarch_dump: TARGET_DOUBLE_FORMAT = %s\n",
2425                       (TARGET_DOUBLE_FORMAT)->name);
2426 #endif
2427 #ifdef TARGET_FLOAT_BIT
2428   fprintf_unfiltered (file,
2429                       "gdbarch_dump: TARGET_FLOAT_BIT # %s\n",
2430                       XSTRING (TARGET_FLOAT_BIT));
2431   fprintf_unfiltered (file,
2432                       "gdbarch_dump: TARGET_FLOAT_BIT = %d\n",
2433                       TARGET_FLOAT_BIT);
2434 #endif
2435 #ifdef TARGET_FLOAT_FORMAT
2436   fprintf_unfiltered (file,
2437                       "gdbarch_dump: TARGET_FLOAT_FORMAT # %s\n",
2438                       XSTRING (TARGET_FLOAT_FORMAT));
2439   fprintf_unfiltered (file,
2440                       "gdbarch_dump: TARGET_FLOAT_FORMAT = %s\n",
2441                       (TARGET_FLOAT_FORMAT)->name);
2442 #endif
2443 #ifdef TARGET_INT_BIT
2444   fprintf_unfiltered (file,
2445                       "gdbarch_dump: TARGET_INT_BIT # %s\n",
2446                       XSTRING (TARGET_INT_BIT));
2447   fprintf_unfiltered (file,
2448                       "gdbarch_dump: TARGET_INT_BIT = %d\n",
2449                       TARGET_INT_BIT);
2450 #endif
2451 #ifdef TARGET_LONG_BIT
2452   fprintf_unfiltered (file,
2453                       "gdbarch_dump: TARGET_LONG_BIT # %s\n",
2454                       XSTRING (TARGET_LONG_BIT));
2455   fprintf_unfiltered (file,
2456                       "gdbarch_dump: TARGET_LONG_BIT = %d\n",
2457                       TARGET_LONG_BIT);
2458 #endif
2459 #ifdef TARGET_LONG_DOUBLE_BIT
2460   fprintf_unfiltered (file,
2461                       "gdbarch_dump: TARGET_LONG_DOUBLE_BIT # %s\n",
2462                       XSTRING (TARGET_LONG_DOUBLE_BIT));
2463   fprintf_unfiltered (file,
2464                       "gdbarch_dump: TARGET_LONG_DOUBLE_BIT = %d\n",
2465                       TARGET_LONG_DOUBLE_BIT);
2466 #endif
2467 #ifdef TARGET_LONG_DOUBLE_FORMAT
2468   fprintf_unfiltered (file,
2469                       "gdbarch_dump: TARGET_LONG_DOUBLE_FORMAT # %s\n",
2470                       XSTRING (TARGET_LONG_DOUBLE_FORMAT));
2471   fprintf_unfiltered (file,
2472                       "gdbarch_dump: TARGET_LONG_DOUBLE_FORMAT = %s\n",
2473                       (TARGET_LONG_DOUBLE_FORMAT)->name);
2474 #endif
2475 #ifdef TARGET_LONG_LONG_BIT
2476   fprintf_unfiltered (file,
2477                       "gdbarch_dump: TARGET_LONG_LONG_BIT # %s\n",
2478                       XSTRING (TARGET_LONG_LONG_BIT));
2479   fprintf_unfiltered (file,
2480                       "gdbarch_dump: TARGET_LONG_LONG_BIT = %d\n",
2481                       TARGET_LONG_LONG_BIT);
2482 #endif
2483 #ifdef TARGET_OSABI
2484   fprintf_unfiltered (file,
2485                       "gdbarch_dump: TARGET_OSABI # %s\n",
2486                       XSTRING (TARGET_OSABI));
2487   fprintf_unfiltered (file,
2488                       "gdbarch_dump: TARGET_OSABI = %ld\n",
2489                       (long) TARGET_OSABI);
2490 #endif
2491 #ifdef TARGET_PRINT_INSN
2492   fprintf_unfiltered (file,
2493                       "gdbarch_dump: %s # %s\n",
2494                       "TARGET_PRINT_INSN(vma, info)",
2495                       XSTRING (TARGET_PRINT_INSN (vma, info)));
2496   if (GDB_MULTI_ARCH)
2497     fprintf_unfiltered (file,
2498                         "gdbarch_dump: TARGET_PRINT_INSN = <0x%08lx>\n",
2499                         (long) current_gdbarch->print_insn
2500                         /*TARGET_PRINT_INSN ()*/);
2501 #endif
2502 #ifdef TARGET_PTR_BIT
2503   fprintf_unfiltered (file,
2504                       "gdbarch_dump: TARGET_PTR_BIT # %s\n",
2505                       XSTRING (TARGET_PTR_BIT));
2506   fprintf_unfiltered (file,
2507                       "gdbarch_dump: TARGET_PTR_BIT = %d\n",
2508                       TARGET_PTR_BIT);
2509 #endif
2510 #ifdef TARGET_READ_FP
2511   fprintf_unfiltered (file,
2512                       "gdbarch_dump: %s # %s\n",
2513                       "TARGET_READ_FP()",
2514                       XSTRING (TARGET_READ_FP ()));
2515   if (GDB_MULTI_ARCH)
2516     fprintf_unfiltered (file,
2517                         "gdbarch_dump: TARGET_READ_FP = <0x%08lx>\n",
2518                         (long) current_gdbarch->read_fp
2519                         /*TARGET_READ_FP ()*/);
2520 #endif
2521 #ifdef TARGET_READ_PC
2522   fprintf_unfiltered (file,
2523                       "gdbarch_dump: %s # %s\n",
2524                       "TARGET_READ_PC(ptid)",
2525                       XSTRING (TARGET_READ_PC (ptid)));
2526   if (GDB_MULTI_ARCH)
2527     fprintf_unfiltered (file,
2528                         "gdbarch_dump: TARGET_READ_PC = <0x%08lx>\n",
2529                         (long) current_gdbarch->read_pc
2530                         /*TARGET_READ_PC ()*/);
2531 #endif
2532 #ifdef TARGET_READ_SP
2533   fprintf_unfiltered (file,
2534                       "gdbarch_dump: %s # %s\n",
2535                       "TARGET_READ_SP()",
2536                       XSTRING (TARGET_READ_SP ()));
2537   if (GDB_MULTI_ARCH)
2538     fprintf_unfiltered (file,
2539                         "gdbarch_dump: TARGET_READ_SP = <0x%08lx>\n",
2540                         (long) current_gdbarch->read_sp
2541                         /*TARGET_READ_SP ()*/);
2542 #endif
2543 #ifdef TARGET_SHORT_BIT
2544   fprintf_unfiltered (file,
2545                       "gdbarch_dump: TARGET_SHORT_BIT # %s\n",
2546                       XSTRING (TARGET_SHORT_BIT));
2547   fprintf_unfiltered (file,
2548                       "gdbarch_dump: TARGET_SHORT_BIT = %d\n",
2549                       TARGET_SHORT_BIT);
2550 #endif
2551 #ifdef TARGET_VIRTUAL_FRAME_POINTER
2552 #if GDB_MULTI_ARCH
2553   /* Macro might contain `[{}]' when not multi-arch */
2554   fprintf_unfiltered (file,
2555                       "gdbarch_dump: %s # %s\n",
2556                       "TARGET_VIRTUAL_FRAME_POINTER(pc, frame_regnum, frame_offset)",
2557                       XSTRING (TARGET_VIRTUAL_FRAME_POINTER (pc, frame_regnum, frame_offset)));
2558 #endif
2559   if (GDB_MULTI_ARCH)
2560     fprintf_unfiltered (file,
2561                         "gdbarch_dump: TARGET_VIRTUAL_FRAME_POINTER = <0x%08lx>\n",
2562                         (long) current_gdbarch->virtual_frame_pointer
2563                         /*TARGET_VIRTUAL_FRAME_POINTER ()*/);
2564 #endif
2565 #ifdef TARGET_WRITE_PC
2566 #if GDB_MULTI_ARCH
2567   /* Macro might contain `[{}]' when not multi-arch */
2568   fprintf_unfiltered (file,
2569                       "gdbarch_dump: %s # %s\n",
2570                       "TARGET_WRITE_PC(val, ptid)",
2571                       XSTRING (TARGET_WRITE_PC (val, ptid)));
2572 #endif
2573   if (GDB_MULTI_ARCH)
2574     fprintf_unfiltered (file,
2575                         "gdbarch_dump: TARGET_WRITE_PC = <0x%08lx>\n",
2576                         (long) current_gdbarch->write_pc
2577                         /*TARGET_WRITE_PC ()*/);
2578 #endif
2579 #ifdef TARGET_WRITE_SP
2580 #if GDB_MULTI_ARCH
2581   /* Macro might contain `[{}]' when not multi-arch */
2582   fprintf_unfiltered (file,
2583                       "gdbarch_dump: %s # %s\n",
2584                       "TARGET_WRITE_SP(val)",
2585                       XSTRING (TARGET_WRITE_SP (val)));
2586 #endif
2587   if (GDB_MULTI_ARCH)
2588     fprintf_unfiltered (file,
2589                         "gdbarch_dump: TARGET_WRITE_SP = <0x%08lx>\n",
2590                         (long) current_gdbarch->write_sp
2591                         /*TARGET_WRITE_SP ()*/);
2592 #endif
2593   if (GDB_MULTI_ARCH)
2594     fprintf_unfiltered (file,
2595                         "gdbarch_dump: gdbarch_unwind_dummy_id_p() = %d\n",
2596                         gdbarch_unwind_dummy_id_p (current_gdbarch));
2597   if (GDB_MULTI_ARCH)
2598     fprintf_unfiltered (file,
2599                         "gdbarch_dump: unwind_dummy_id = 0x%08lx\n",
2600                         (long) current_gdbarch->unwind_dummy_id);
2601   if (GDB_MULTI_ARCH)
2602     fprintf_unfiltered (file,
2603                         "gdbarch_dump: gdbarch_unwind_pc_p() = %d\n",
2604                         gdbarch_unwind_pc_p (current_gdbarch));
2605   if (GDB_MULTI_ARCH)
2606     fprintf_unfiltered (file,
2607                         "gdbarch_dump: unwind_pc = 0x%08lx\n",
2608                         (long) current_gdbarch->unwind_pc);
2609 #ifdef USE_STRUCT_CONVENTION
2610   fprintf_unfiltered (file,
2611                       "gdbarch_dump: %s # %s\n",
2612                       "USE_STRUCT_CONVENTION(gcc_p, value_type)",
2613                       XSTRING (USE_STRUCT_CONVENTION (gcc_p, value_type)));
2614   if (GDB_MULTI_ARCH)
2615     fprintf_unfiltered (file,
2616                         "gdbarch_dump: USE_STRUCT_CONVENTION = <0x%08lx>\n",
2617                         (long) current_gdbarch->use_struct_convention
2618                         /*USE_STRUCT_CONVENTION ()*/);
2619 #endif
2620 #ifdef VALUE_TO_REGISTER
2621 #if GDB_MULTI_ARCH
2622   /* Macro might contain `[{}]' when not multi-arch */
2623   fprintf_unfiltered (file,
2624                       "gdbarch_dump: %s # %s\n",
2625                       "VALUE_TO_REGISTER(type, regnum, from, to)",
2626                       XSTRING (VALUE_TO_REGISTER (type, regnum, from, to)));
2627 #endif
2628   if (GDB_MULTI_ARCH)
2629     fprintf_unfiltered (file,
2630                         "gdbarch_dump: VALUE_TO_REGISTER = <0x%08lx>\n",
2631                         (long) current_gdbarch->value_to_register
2632                         /*VALUE_TO_REGISTER ()*/);
2633 #endif
2634   if (current_gdbarch->dump_tdep != NULL)
2635     current_gdbarch->dump_tdep (current_gdbarch, file);
2636 }
2637
2638 struct gdbarch_tdep *
2639 gdbarch_tdep (struct gdbarch *gdbarch)
2640 {
2641   if (gdbarch_debug >= 2)
2642     fprintf_unfiltered (gdb_stdlog, "gdbarch_tdep called\n");
2643   return gdbarch->tdep;
2644 }
2645
2646
2647 const struct bfd_arch_info *
2648 gdbarch_bfd_arch_info (struct gdbarch *gdbarch)
2649 {
2650   gdb_assert (gdbarch != NULL);
2651   if (gdbarch_debug >= 2)
2652     fprintf_unfiltered (gdb_stdlog, "gdbarch_bfd_arch_info called\n");
2653   return gdbarch->bfd_arch_info;
2654 }
2655
2656 int
2657 gdbarch_byte_order (struct gdbarch *gdbarch)
2658 {
2659   gdb_assert (gdbarch != NULL);
2660   if (gdbarch_debug >= 2)
2661     fprintf_unfiltered (gdb_stdlog, "gdbarch_byte_order called\n");
2662   return gdbarch->byte_order;
2663 }
2664
2665 enum gdb_osabi
2666 gdbarch_osabi (struct gdbarch *gdbarch)
2667 {
2668   gdb_assert (gdbarch != NULL);
2669   if (gdbarch_debug >= 2)
2670     fprintf_unfiltered (gdb_stdlog, "gdbarch_osabi called\n");
2671   return gdbarch->osabi;
2672 }
2673
2674 int
2675 gdbarch_short_bit (struct gdbarch *gdbarch)
2676 {
2677   gdb_assert (gdbarch != NULL);
2678   /* Skip verify of short_bit, invalid_p == 0 */
2679   if (gdbarch_debug >= 2)
2680     fprintf_unfiltered (gdb_stdlog, "gdbarch_short_bit called\n");
2681   return gdbarch->short_bit;
2682 }
2683
2684 void
2685 set_gdbarch_short_bit (struct gdbarch *gdbarch,
2686                        int short_bit)
2687 {
2688   gdbarch->short_bit = short_bit;
2689 }
2690
2691 int
2692 gdbarch_int_bit (struct gdbarch *gdbarch)
2693 {
2694   gdb_assert (gdbarch != NULL);
2695   /* Skip verify of int_bit, invalid_p == 0 */
2696   if (gdbarch_debug >= 2)
2697     fprintf_unfiltered (gdb_stdlog, "gdbarch_int_bit called\n");
2698   return gdbarch->int_bit;
2699 }
2700
2701 void
2702 set_gdbarch_int_bit (struct gdbarch *gdbarch,
2703                      int int_bit)
2704 {
2705   gdbarch->int_bit = int_bit;
2706 }
2707
2708 int
2709 gdbarch_long_bit (struct gdbarch *gdbarch)
2710 {
2711   gdb_assert (gdbarch != NULL);
2712   /* Skip verify of long_bit, invalid_p == 0 */
2713   if (gdbarch_debug >= 2)
2714     fprintf_unfiltered (gdb_stdlog, "gdbarch_long_bit called\n");
2715   return gdbarch->long_bit;
2716 }
2717
2718 void
2719 set_gdbarch_long_bit (struct gdbarch *gdbarch,
2720                       int long_bit)
2721 {
2722   gdbarch->long_bit = long_bit;
2723 }
2724
2725 int
2726 gdbarch_long_long_bit (struct gdbarch *gdbarch)
2727 {
2728   gdb_assert (gdbarch != NULL);
2729   /* Skip verify of long_long_bit, invalid_p == 0 */
2730   if (gdbarch_debug >= 2)
2731     fprintf_unfiltered (gdb_stdlog, "gdbarch_long_long_bit called\n");
2732   return gdbarch->long_long_bit;
2733 }
2734
2735 void
2736 set_gdbarch_long_long_bit (struct gdbarch *gdbarch,
2737                            int long_long_bit)
2738 {
2739   gdbarch->long_long_bit = long_long_bit;
2740 }
2741
2742 int
2743 gdbarch_float_bit (struct gdbarch *gdbarch)
2744 {
2745   gdb_assert (gdbarch != NULL);
2746   /* Skip verify of float_bit, invalid_p == 0 */
2747   if (gdbarch_debug >= 2)
2748     fprintf_unfiltered (gdb_stdlog, "gdbarch_float_bit called\n");
2749   return gdbarch->float_bit;
2750 }
2751
2752 void
2753 set_gdbarch_float_bit (struct gdbarch *gdbarch,
2754                        int float_bit)
2755 {
2756   gdbarch->float_bit = float_bit;
2757 }
2758
2759 int
2760 gdbarch_double_bit (struct gdbarch *gdbarch)
2761 {
2762   gdb_assert (gdbarch != NULL);
2763   /* Skip verify of double_bit, invalid_p == 0 */
2764   if (gdbarch_debug >= 2)
2765     fprintf_unfiltered (gdb_stdlog, "gdbarch_double_bit called\n");
2766   return gdbarch->double_bit;
2767 }
2768
2769 void
2770 set_gdbarch_double_bit (struct gdbarch *gdbarch,
2771                         int double_bit)
2772 {
2773   gdbarch->double_bit = double_bit;
2774 }
2775
2776 int
2777 gdbarch_long_double_bit (struct gdbarch *gdbarch)
2778 {
2779   gdb_assert (gdbarch != NULL);
2780   /* Skip verify of long_double_bit, invalid_p == 0 */
2781   if (gdbarch_debug >= 2)
2782     fprintf_unfiltered (gdb_stdlog, "gdbarch_long_double_bit called\n");
2783   return gdbarch->long_double_bit;
2784 }
2785
2786 void
2787 set_gdbarch_long_double_bit (struct gdbarch *gdbarch,
2788                              int long_double_bit)
2789 {
2790   gdbarch->long_double_bit = long_double_bit;
2791 }
2792
2793 int
2794 gdbarch_ptr_bit (struct gdbarch *gdbarch)
2795 {
2796   gdb_assert (gdbarch != NULL);
2797   /* Skip verify of ptr_bit, invalid_p == 0 */
2798   if (gdbarch_debug >= 2)
2799     fprintf_unfiltered (gdb_stdlog, "gdbarch_ptr_bit called\n");
2800   return gdbarch->ptr_bit;
2801 }
2802
2803 void
2804 set_gdbarch_ptr_bit (struct gdbarch *gdbarch,
2805                      int ptr_bit)
2806 {
2807   gdbarch->ptr_bit = ptr_bit;
2808 }
2809
2810 int
2811 gdbarch_addr_bit (struct gdbarch *gdbarch)
2812 {
2813   gdb_assert (gdbarch != NULL);
2814   if (gdbarch->addr_bit == 0)
2815     internal_error (__FILE__, __LINE__,
2816                     "gdbarch: gdbarch_addr_bit invalid");
2817   if (gdbarch_debug >= 2)
2818     fprintf_unfiltered (gdb_stdlog, "gdbarch_addr_bit called\n");
2819   return gdbarch->addr_bit;
2820 }
2821
2822 void
2823 set_gdbarch_addr_bit (struct gdbarch *gdbarch,
2824                       int addr_bit)
2825 {
2826   gdbarch->addr_bit = addr_bit;
2827 }
2828
2829 int
2830 gdbarch_bfd_vma_bit (struct gdbarch *gdbarch)
2831 {
2832   gdb_assert (gdbarch != NULL);
2833   /* Skip verify of bfd_vma_bit, invalid_p == 0 */
2834   if (gdbarch_debug >= 2)
2835     fprintf_unfiltered (gdb_stdlog, "gdbarch_bfd_vma_bit called\n");
2836   return gdbarch->bfd_vma_bit;
2837 }
2838
2839 void
2840 set_gdbarch_bfd_vma_bit (struct gdbarch *gdbarch,
2841                          int bfd_vma_bit)
2842 {
2843   gdbarch->bfd_vma_bit = bfd_vma_bit;
2844 }
2845
2846 int
2847 gdbarch_char_signed (struct gdbarch *gdbarch)
2848 {
2849   gdb_assert (gdbarch != NULL);
2850   if (gdbarch->char_signed == -1)
2851     internal_error (__FILE__, __LINE__,
2852                     "gdbarch: gdbarch_char_signed invalid");
2853   if (gdbarch_debug >= 2)
2854     fprintf_unfiltered (gdb_stdlog, "gdbarch_char_signed called\n");
2855   return gdbarch->char_signed;
2856 }
2857
2858 void
2859 set_gdbarch_char_signed (struct gdbarch *gdbarch,
2860                          int char_signed)
2861 {
2862   gdbarch->char_signed = char_signed;
2863 }
2864
2865 CORE_ADDR
2866 gdbarch_read_pc (struct gdbarch *gdbarch, ptid_t ptid)
2867 {
2868   gdb_assert (gdbarch != NULL);
2869   if (gdbarch->read_pc == 0)
2870     internal_error (__FILE__, __LINE__,
2871                     "gdbarch: gdbarch_read_pc invalid");
2872   if (gdbarch_debug >= 2)
2873     fprintf_unfiltered (gdb_stdlog, "gdbarch_read_pc called\n");
2874   return gdbarch->read_pc (ptid);
2875 }
2876
2877 void
2878 set_gdbarch_read_pc (struct gdbarch *gdbarch,
2879                      gdbarch_read_pc_ftype read_pc)
2880 {
2881   gdbarch->read_pc = read_pc;
2882 }
2883
2884 void
2885 gdbarch_write_pc (struct gdbarch *gdbarch, CORE_ADDR val, ptid_t ptid)
2886 {
2887   gdb_assert (gdbarch != NULL);
2888   if (gdbarch->write_pc == 0)
2889     internal_error (__FILE__, __LINE__,
2890                     "gdbarch: gdbarch_write_pc invalid");
2891   if (gdbarch_debug >= 2)
2892     fprintf_unfiltered (gdb_stdlog, "gdbarch_write_pc called\n");
2893   gdbarch->write_pc (val, ptid);
2894 }
2895
2896 void
2897 set_gdbarch_write_pc (struct gdbarch *gdbarch,
2898                       gdbarch_write_pc_ftype write_pc)
2899 {
2900   gdbarch->write_pc = write_pc;
2901 }
2902
2903 CORE_ADDR
2904 gdbarch_read_fp (struct gdbarch *gdbarch)
2905 {
2906   gdb_assert (gdbarch != NULL);
2907   if (gdbarch->read_fp == 0)
2908     internal_error (__FILE__, __LINE__,
2909                     "gdbarch: gdbarch_read_fp invalid");
2910   if (gdbarch_debug >= 2)
2911     fprintf_unfiltered (gdb_stdlog, "gdbarch_read_fp called\n");
2912   return gdbarch->read_fp ();
2913 }
2914
2915 void
2916 set_gdbarch_read_fp (struct gdbarch *gdbarch,
2917                      gdbarch_read_fp_ftype read_fp)
2918 {
2919   gdbarch->read_fp = read_fp;
2920 }
2921
2922 CORE_ADDR
2923 gdbarch_read_sp (struct gdbarch *gdbarch)
2924 {
2925   gdb_assert (gdbarch != NULL);
2926   if (gdbarch->read_sp == 0)
2927     internal_error (__FILE__, __LINE__,
2928                     "gdbarch: gdbarch_read_sp invalid");
2929   if (gdbarch_debug >= 2)
2930     fprintf_unfiltered (gdb_stdlog, "gdbarch_read_sp called\n");
2931   return gdbarch->read_sp ();
2932 }
2933
2934 void
2935 set_gdbarch_read_sp (struct gdbarch *gdbarch,
2936                      gdbarch_read_sp_ftype read_sp)
2937 {
2938   gdbarch->read_sp = read_sp;
2939 }
2940
2941 void
2942 gdbarch_write_sp (struct gdbarch *gdbarch, CORE_ADDR val)
2943 {
2944   gdb_assert (gdbarch != NULL);
2945   if (gdbarch->write_sp == 0)
2946     internal_error (__FILE__, __LINE__,
2947                     "gdbarch: gdbarch_write_sp invalid");
2948   if (gdbarch_debug >= 2)
2949     fprintf_unfiltered (gdb_stdlog, "gdbarch_write_sp called\n");
2950   gdbarch->write_sp (val);
2951 }
2952
2953 void
2954 set_gdbarch_write_sp (struct gdbarch *gdbarch,
2955                       gdbarch_write_sp_ftype write_sp)
2956 {
2957   gdbarch->write_sp = write_sp;
2958 }
2959
2960 void
2961 gdbarch_virtual_frame_pointer (struct gdbarch *gdbarch, CORE_ADDR pc, int *frame_regnum, LONGEST *frame_offset)
2962 {
2963   gdb_assert (gdbarch != NULL);
2964   if (gdbarch->virtual_frame_pointer == 0)
2965     internal_error (__FILE__, __LINE__,
2966                     "gdbarch: gdbarch_virtual_frame_pointer invalid");
2967   if (gdbarch_debug >= 2)
2968     fprintf_unfiltered (gdb_stdlog, "gdbarch_virtual_frame_pointer called\n");
2969   gdbarch->virtual_frame_pointer (pc, frame_regnum, frame_offset);
2970 }
2971
2972 void
2973 set_gdbarch_virtual_frame_pointer (struct gdbarch *gdbarch,
2974                                    gdbarch_virtual_frame_pointer_ftype virtual_frame_pointer)
2975 {
2976   gdbarch->virtual_frame_pointer = virtual_frame_pointer;
2977 }
2978
2979 int
2980 gdbarch_pseudo_register_read_p (struct gdbarch *gdbarch)
2981 {
2982   gdb_assert (gdbarch != NULL);
2983   return gdbarch->pseudo_register_read != 0;
2984 }
2985
2986 void
2987 gdbarch_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, void *buf)
2988 {
2989   gdb_assert (gdbarch != NULL);
2990   if (gdbarch->pseudo_register_read == 0)
2991     internal_error (__FILE__, __LINE__,
2992                     "gdbarch: gdbarch_pseudo_register_read invalid");
2993   if (gdbarch_debug >= 2)
2994     fprintf_unfiltered (gdb_stdlog, "gdbarch_pseudo_register_read called\n");
2995   gdbarch->pseudo_register_read (gdbarch, regcache, cookednum, buf);
2996 }
2997
2998 void
2999 set_gdbarch_pseudo_register_read (struct gdbarch *gdbarch,
3000                                   gdbarch_pseudo_register_read_ftype pseudo_register_read)
3001 {
3002   gdbarch->pseudo_register_read = pseudo_register_read;
3003 }
3004
3005 int
3006 gdbarch_pseudo_register_write_p (struct gdbarch *gdbarch)
3007 {
3008   gdb_assert (gdbarch != NULL);
3009   return gdbarch->pseudo_register_write != 0;
3010 }
3011
3012 void
3013 gdbarch_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, const void *buf)
3014 {
3015   gdb_assert (gdbarch != NULL);
3016   if (gdbarch->pseudo_register_write == 0)
3017     internal_error (__FILE__, __LINE__,
3018                     "gdbarch: gdbarch_pseudo_register_write invalid");
3019   if (gdbarch_debug >= 2)
3020     fprintf_unfiltered (gdb_stdlog, "gdbarch_pseudo_register_write called\n");
3021   gdbarch->pseudo_register_write (gdbarch, regcache, cookednum, buf);
3022 }
3023
3024 void
3025 set_gdbarch_pseudo_register_write (struct gdbarch *gdbarch,
3026                                    gdbarch_pseudo_register_write_ftype pseudo_register_write)
3027 {
3028   gdbarch->pseudo_register_write = pseudo_register_write;
3029 }
3030
3031 int
3032 gdbarch_num_regs (struct gdbarch *gdbarch)
3033 {
3034   gdb_assert (gdbarch != NULL);
3035   if (gdbarch->num_regs == -1)
3036     internal_error (__FILE__, __LINE__,
3037                     "gdbarch: gdbarch_num_regs invalid");
3038   if (gdbarch_debug >= 2)
3039     fprintf_unfiltered (gdb_stdlog, "gdbarch_num_regs called\n");
3040   return gdbarch->num_regs;
3041 }
3042
3043 void
3044 set_gdbarch_num_regs (struct gdbarch *gdbarch,
3045                       int num_regs)
3046 {
3047   gdbarch->num_regs = num_regs;
3048 }
3049
3050 int
3051 gdbarch_num_pseudo_regs (struct gdbarch *gdbarch)
3052 {
3053   gdb_assert (gdbarch != NULL);
3054   /* Skip verify of num_pseudo_regs, invalid_p == 0 */
3055   if (gdbarch_debug >= 2)
3056     fprintf_unfiltered (gdb_stdlog, "gdbarch_num_pseudo_regs called\n");
3057   return gdbarch->num_pseudo_regs;
3058 }
3059
3060 void
3061 set_gdbarch_num_pseudo_regs (struct gdbarch *gdbarch,
3062                              int num_pseudo_regs)
3063 {
3064   gdbarch->num_pseudo_regs = num_pseudo_regs;
3065 }
3066
3067 int
3068 gdbarch_sp_regnum (struct gdbarch *gdbarch)
3069 {
3070   gdb_assert (gdbarch != NULL);
3071   /* Skip verify of sp_regnum, invalid_p == 0 */
3072   if (gdbarch_debug >= 2)
3073     fprintf_unfiltered (gdb_stdlog, "gdbarch_sp_regnum called\n");
3074   return gdbarch->sp_regnum;
3075 }
3076
3077 void
3078 set_gdbarch_sp_regnum (struct gdbarch *gdbarch,
3079                        int sp_regnum)
3080 {
3081   gdbarch->sp_regnum = sp_regnum;
3082 }
3083
3084 int
3085 gdbarch_fp_regnum (struct gdbarch *gdbarch)
3086 {
3087   gdb_assert (gdbarch != NULL);
3088   /* Skip verify of fp_regnum, invalid_p == 0 */
3089   if (gdbarch_debug >= 2)
3090     fprintf_unfiltered (gdb_stdlog, "gdbarch_fp_regnum called\n");
3091   return gdbarch->fp_regnum;
3092 }
3093
3094 void
3095 set_gdbarch_fp_regnum (struct gdbarch *gdbarch,
3096                        int fp_regnum)
3097 {
3098   gdbarch->fp_regnum = fp_regnum;
3099 }
3100
3101 int
3102 gdbarch_pc_regnum (struct gdbarch *gdbarch)
3103 {
3104   gdb_assert (gdbarch != NULL);
3105   /* Skip verify of pc_regnum, invalid_p == 0 */
3106   if (gdbarch_debug >= 2)
3107     fprintf_unfiltered (gdb_stdlog, "gdbarch_pc_regnum called\n");
3108   return gdbarch->pc_regnum;
3109 }
3110
3111 void
3112 set_gdbarch_pc_regnum (struct gdbarch *gdbarch,
3113                        int pc_regnum)
3114 {
3115   gdbarch->pc_regnum = pc_regnum;
3116 }
3117
3118 int
3119 gdbarch_ps_regnum (struct gdbarch *gdbarch)
3120 {
3121   gdb_assert (gdbarch != NULL);
3122   /* Skip verify of ps_regnum, invalid_p == 0 */
3123   if (gdbarch_debug >= 2)
3124     fprintf_unfiltered (gdb_stdlog, "gdbarch_ps_regnum called\n");
3125   return gdbarch->ps_regnum;
3126 }
3127
3128 void
3129 set_gdbarch_ps_regnum (struct gdbarch *gdbarch,
3130                        int ps_regnum)
3131 {
3132   gdbarch->ps_regnum = ps_regnum;
3133 }
3134
3135 int
3136 gdbarch_fp0_regnum (struct gdbarch *gdbarch)
3137 {
3138   gdb_assert (gdbarch != NULL);
3139   /* Skip verify of fp0_regnum, invalid_p == 0 */
3140   if (gdbarch_debug >= 2)
3141     fprintf_unfiltered (gdb_stdlog, "gdbarch_fp0_regnum called\n");
3142   return gdbarch->fp0_regnum;
3143 }
3144
3145 void
3146 set_gdbarch_fp0_regnum (struct gdbarch *gdbarch,
3147                         int fp0_regnum)
3148 {
3149   gdbarch->fp0_regnum = fp0_regnum;
3150 }
3151
3152 int
3153 gdbarch_npc_regnum (struct gdbarch *gdbarch)
3154 {
3155   gdb_assert (gdbarch != NULL);
3156   /* Skip verify of npc_regnum, invalid_p == 0 */
3157   if (gdbarch_debug >= 2)
3158     fprintf_unfiltered (gdb_stdlog, "gdbarch_npc_regnum called\n");
3159   return gdbarch->npc_regnum;
3160 }
3161
3162 void
3163 set_gdbarch_npc_regnum (struct gdbarch *gdbarch,
3164                         int npc_regnum)
3165 {
3166   gdbarch->npc_regnum = npc_regnum;
3167 }
3168
3169 int
3170 gdbarch_stab_reg_to_regnum (struct gdbarch *gdbarch, int stab_regnr)
3171 {
3172   gdb_assert (gdbarch != NULL);
3173   if (gdbarch->stab_reg_to_regnum == 0)
3174     internal_error (__FILE__, __LINE__,
3175                     "gdbarch: gdbarch_stab_reg_to_regnum invalid");
3176   if (gdbarch_debug >= 2)
3177     fprintf_unfiltered (gdb_stdlog, "gdbarch_stab_reg_to_regnum called\n");
3178   return gdbarch->stab_reg_to_regnum (stab_regnr);
3179 }
3180
3181 void
3182 set_gdbarch_stab_reg_to_regnum (struct gdbarch *gdbarch,
3183                                 gdbarch_stab_reg_to_regnum_ftype stab_reg_to_regnum)
3184 {
3185   gdbarch->stab_reg_to_regnum = stab_reg_to_regnum;
3186 }
3187
3188 int
3189 gdbarch_ecoff_reg_to_regnum (struct gdbarch *gdbarch, int ecoff_regnr)
3190 {
3191   gdb_assert (gdbarch != NULL);
3192   if (gdbarch->ecoff_reg_to_regnum == 0)
3193     internal_error (__FILE__, __LINE__,
3194                     "gdbarch: gdbarch_ecoff_reg_to_regnum invalid");
3195   if (gdbarch_debug >= 2)
3196     fprintf_unfiltered (gdb_stdlog, "gdbarch_ecoff_reg_to_regnum called\n");
3197   return gdbarch->ecoff_reg_to_regnum (ecoff_regnr);
3198 }
3199
3200 void
3201 set_gdbarch_ecoff_reg_to_regnum (struct gdbarch *gdbarch,
3202                                  gdbarch_ecoff_reg_to_regnum_ftype ecoff_reg_to_regnum)
3203 {
3204   gdbarch->ecoff_reg_to_regnum = ecoff_reg_to_regnum;
3205 }
3206
3207 int
3208 gdbarch_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int dwarf_regnr)
3209 {
3210   gdb_assert (gdbarch != NULL);
3211   if (gdbarch->dwarf_reg_to_regnum == 0)
3212     internal_error (__FILE__, __LINE__,
3213                     "gdbarch: gdbarch_dwarf_reg_to_regnum invalid");
3214   if (gdbarch_debug >= 2)
3215     fprintf_unfiltered (gdb_stdlog, "gdbarch_dwarf_reg_to_regnum called\n");
3216   return gdbarch->dwarf_reg_to_regnum (dwarf_regnr);
3217 }
3218
3219 void
3220 set_gdbarch_dwarf_reg_to_regnum (struct gdbarch *gdbarch,
3221                                  gdbarch_dwarf_reg_to_regnum_ftype dwarf_reg_to_regnum)
3222 {
3223   gdbarch->dwarf_reg_to_regnum = dwarf_reg_to_regnum;
3224 }
3225
3226 int
3227 gdbarch_sdb_reg_to_regnum (struct gdbarch *gdbarch, int sdb_regnr)
3228 {
3229   gdb_assert (gdbarch != NULL);
3230   if (gdbarch->sdb_reg_to_regnum == 0)
3231     internal_error (__FILE__, __LINE__,
3232                     "gdbarch: gdbarch_sdb_reg_to_regnum invalid");
3233   if (gdbarch_debug >= 2)
3234     fprintf_unfiltered (gdb_stdlog, "gdbarch_sdb_reg_to_regnum called\n");
3235   return gdbarch->sdb_reg_to_regnum (sdb_regnr);
3236 }
3237
3238 void
3239 set_gdbarch_sdb_reg_to_regnum (struct gdbarch *gdbarch,
3240                                gdbarch_sdb_reg_to_regnum_ftype sdb_reg_to_regnum)
3241 {
3242   gdbarch->sdb_reg_to_regnum = sdb_reg_to_regnum;
3243 }
3244
3245 int
3246 gdbarch_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, int dwarf2_regnr)
3247 {
3248   gdb_assert (gdbarch != NULL);
3249   if (gdbarch->dwarf2_reg_to_regnum == 0)
3250     internal_error (__FILE__, __LINE__,
3251                     "gdbarch: gdbarch_dwarf2_reg_to_regnum invalid");
3252   if (gdbarch_debug >= 2)
3253     fprintf_unfiltered (gdb_stdlog, "gdbarch_dwarf2_reg_to_regnum called\n");
3254   return gdbarch->dwarf2_reg_to_regnum (dwarf2_regnr);
3255 }
3256
3257 void
3258 set_gdbarch_dwarf2_reg_to_regnum (struct gdbarch *gdbarch,
3259                                   gdbarch_dwarf2_reg_to_regnum_ftype dwarf2_reg_to_regnum)
3260 {
3261   gdbarch->dwarf2_reg_to_regnum = dwarf2_reg_to_regnum;
3262 }
3263
3264 const char *
3265 gdbarch_register_name (struct gdbarch *gdbarch, int regnr)
3266 {
3267   gdb_assert (gdbarch != NULL);
3268   if (gdbarch->register_name == 0)
3269     internal_error (__FILE__, __LINE__,
3270                     "gdbarch: gdbarch_register_name invalid");
3271   if (gdbarch_debug >= 2)
3272     fprintf_unfiltered (gdb_stdlog, "gdbarch_register_name called\n");
3273   return gdbarch->register_name (regnr);
3274 }
3275
3276 void
3277 set_gdbarch_register_name (struct gdbarch *gdbarch,
3278                            gdbarch_register_name_ftype register_name)
3279 {
3280   gdbarch->register_name = register_name;
3281 }
3282
3283 int
3284 gdbarch_register_size (struct gdbarch *gdbarch)
3285 {
3286   gdb_assert (gdbarch != NULL);
3287   if (gdbarch->register_size == -1)
3288     internal_error (__FILE__, __LINE__,
3289                     "gdbarch: gdbarch_register_size invalid");
3290   if (gdbarch_debug >= 2)
3291     fprintf_unfiltered (gdb_stdlog, "gdbarch_register_size called\n");
3292   return gdbarch->register_size;
3293 }
3294
3295 void
3296 set_gdbarch_register_size (struct gdbarch *gdbarch,
3297                            int register_size)
3298 {
3299   gdbarch->register_size = register_size;
3300 }
3301
3302 int
3303 gdbarch_register_bytes (struct gdbarch *gdbarch)
3304 {
3305   gdb_assert (gdbarch != NULL);
3306   if (gdbarch->register_bytes == -1)
3307     internal_error (__FILE__, __LINE__,
3308                     "gdbarch: gdbarch_register_bytes invalid");
3309   if (gdbarch_debug >= 2)
3310     fprintf_unfiltered (gdb_stdlog, "gdbarch_register_bytes called\n");
3311   return gdbarch->register_bytes;
3312 }
3313
3314 void
3315 set_gdbarch_register_bytes (struct gdbarch *gdbarch,
3316                             int register_bytes)
3317 {
3318   gdbarch->register_bytes = register_bytes;
3319 }
3320
3321 int
3322 gdbarch_register_byte (struct gdbarch *gdbarch, int reg_nr)
3323 {
3324   gdb_assert (gdbarch != NULL);
3325   if (gdbarch->register_byte == 0)
3326     internal_error (__FILE__, __LINE__,
3327                     "gdbarch: gdbarch_register_byte invalid");
3328   if (gdbarch_debug >= 2)
3329     fprintf_unfiltered (gdb_stdlog, "gdbarch_register_byte called\n");
3330   return gdbarch->register_byte (reg_nr);
3331 }
3332
3333 void
3334 set_gdbarch_register_byte (struct gdbarch *gdbarch,
3335                            gdbarch_register_byte_ftype register_byte)
3336 {
3337   gdbarch->register_byte = register_byte;
3338 }
3339
3340 int
3341 gdbarch_register_raw_size (struct gdbarch *gdbarch, int reg_nr)
3342 {
3343   gdb_assert (gdbarch != NULL);
3344   if (gdbarch->register_raw_size == 0)
3345     internal_error (__FILE__, __LINE__,
3346                     "gdbarch: gdbarch_register_raw_size invalid");
3347   if (gdbarch_debug >= 2)
3348     fprintf_unfiltered (gdb_stdlog, "gdbarch_register_raw_size called\n");
3349   return gdbarch->register_raw_size (reg_nr);
3350 }
3351
3352 void
3353 set_gdbarch_register_raw_size (struct gdbarch *gdbarch,
3354                                gdbarch_register_raw_size_ftype register_raw_size)
3355 {
3356   gdbarch->register_raw_size = register_raw_size;
3357 }
3358
3359 int
3360 gdbarch_deprecated_max_register_raw_size_p (struct gdbarch *gdbarch)
3361 {
3362   gdb_assert (gdbarch != NULL);
3363   return gdbarch->deprecated_max_register_raw_size != 0;
3364 }
3365
3366 int
3367 gdbarch_deprecated_max_register_raw_size (struct gdbarch *gdbarch)
3368 {
3369   gdb_assert (gdbarch != NULL);
3370   if (gdbarch_debug >= 2)
3371     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_max_register_raw_size called\n");
3372   return gdbarch->deprecated_max_register_raw_size;
3373 }
3374
3375 void
3376 set_gdbarch_deprecated_max_register_raw_size (struct gdbarch *gdbarch,
3377                                               int deprecated_max_register_raw_size)
3378 {
3379   gdbarch->deprecated_max_register_raw_size = deprecated_max_register_raw_size;
3380 }
3381
3382 int
3383 gdbarch_register_virtual_size (struct gdbarch *gdbarch, int reg_nr)
3384 {
3385   gdb_assert (gdbarch != NULL);
3386   if (gdbarch->register_virtual_size == 0)
3387     internal_error (__FILE__, __LINE__,
3388                     "gdbarch: gdbarch_register_virtual_size invalid");
3389   if (gdbarch_debug >= 2)
3390     fprintf_unfiltered (gdb_stdlog, "gdbarch_register_virtual_size called\n");
3391   return gdbarch->register_virtual_size (reg_nr);
3392 }
3393
3394 void
3395 set_gdbarch_register_virtual_size (struct gdbarch *gdbarch,
3396                                    gdbarch_register_virtual_size_ftype register_virtual_size)
3397 {
3398   gdbarch->register_virtual_size = register_virtual_size;
3399 }
3400
3401 int
3402 gdbarch_deprecated_max_register_virtual_size_p (struct gdbarch *gdbarch)
3403 {
3404   gdb_assert (gdbarch != NULL);
3405   return gdbarch->deprecated_max_register_virtual_size != 0;
3406 }
3407
3408 int
3409 gdbarch_deprecated_max_register_virtual_size (struct gdbarch *gdbarch)
3410 {
3411   gdb_assert (gdbarch != NULL);
3412   if (gdbarch_debug >= 2)
3413     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_max_register_virtual_size called\n");
3414   return gdbarch->deprecated_max_register_virtual_size;
3415 }
3416
3417 void
3418 set_gdbarch_deprecated_max_register_virtual_size (struct gdbarch *gdbarch,
3419                                                   int deprecated_max_register_virtual_size)
3420 {
3421   gdbarch->deprecated_max_register_virtual_size = deprecated_max_register_virtual_size;
3422 }
3423
3424 int
3425 gdbarch_register_virtual_type_p (struct gdbarch *gdbarch)
3426 {
3427   gdb_assert (gdbarch != NULL);
3428   return gdbarch->register_virtual_type != 0;
3429 }
3430
3431 struct type *
3432 gdbarch_register_virtual_type (struct gdbarch *gdbarch, int reg_nr)
3433 {
3434   gdb_assert (gdbarch != NULL);
3435   if (gdbarch->register_virtual_type == 0)
3436     internal_error (__FILE__, __LINE__,
3437                     "gdbarch: gdbarch_register_virtual_type invalid");
3438   if (gdbarch_debug >= 2)
3439     fprintf_unfiltered (gdb_stdlog, "gdbarch_register_virtual_type called\n");
3440   return gdbarch->register_virtual_type (reg_nr);
3441 }
3442
3443 void
3444 set_gdbarch_register_virtual_type (struct gdbarch *gdbarch,
3445                                    gdbarch_register_virtual_type_ftype register_virtual_type)
3446 {
3447   gdbarch->register_virtual_type = register_virtual_type;
3448 }
3449
3450 int
3451 gdbarch_register_type_p (struct gdbarch *gdbarch)
3452 {
3453   gdb_assert (gdbarch != NULL);
3454   return gdbarch->register_type != 0;
3455 }
3456
3457 struct type *
3458 gdbarch_register_type (struct gdbarch *gdbarch, int reg_nr)
3459 {
3460   gdb_assert (gdbarch != NULL);
3461   if (gdbarch->register_type == 0)
3462     internal_error (__FILE__, __LINE__,
3463                     "gdbarch: gdbarch_register_type invalid");
3464   if (gdbarch_debug >= 2)
3465     fprintf_unfiltered (gdb_stdlog, "gdbarch_register_type called\n");
3466   return gdbarch->register_type (gdbarch, reg_nr);
3467 }
3468
3469 void
3470 set_gdbarch_register_type (struct gdbarch *gdbarch,
3471                            gdbarch_register_type_ftype register_type)
3472 {
3473   gdbarch->register_type = register_type;
3474 }
3475
3476 int
3477 gdbarch_deprecated_do_registers_info_p (struct gdbarch *gdbarch)
3478 {
3479   gdb_assert (gdbarch != NULL);
3480   return gdbarch->deprecated_do_registers_info != 0;
3481 }
3482
3483 void
3484 gdbarch_deprecated_do_registers_info (struct gdbarch *gdbarch, int reg_nr, int fpregs)
3485 {
3486   gdb_assert (gdbarch != NULL);
3487   if (gdbarch->deprecated_do_registers_info == 0)
3488     internal_error (__FILE__, __LINE__,
3489                     "gdbarch: gdbarch_deprecated_do_registers_info invalid");
3490   if (gdbarch_debug >= 2)
3491     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_do_registers_info called\n");
3492   gdbarch->deprecated_do_registers_info (reg_nr, fpregs);
3493 }
3494
3495 void
3496 set_gdbarch_deprecated_do_registers_info (struct gdbarch *gdbarch,
3497                                           gdbarch_deprecated_do_registers_info_ftype deprecated_do_registers_info)
3498 {
3499   gdbarch->deprecated_do_registers_info = deprecated_do_registers_info;
3500 }
3501
3502 void
3503 gdbarch_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, int regnum, int all)
3504 {
3505   gdb_assert (gdbarch != NULL);
3506   if (gdbarch->print_registers_info == 0)
3507     internal_error (__FILE__, __LINE__,
3508                     "gdbarch: gdbarch_print_registers_info invalid");
3509   if (gdbarch_debug >= 2)
3510     fprintf_unfiltered (gdb_stdlog, "gdbarch_print_registers_info called\n");
3511   gdbarch->print_registers_info (gdbarch, file, frame, regnum, all);
3512 }
3513
3514 void
3515 set_gdbarch_print_registers_info (struct gdbarch *gdbarch,
3516                                   gdbarch_print_registers_info_ftype print_registers_info)
3517 {
3518   gdbarch->print_registers_info = print_registers_info;
3519 }
3520
3521 int
3522 gdbarch_print_float_info_p (struct gdbarch *gdbarch)
3523 {
3524   gdb_assert (gdbarch != NULL);
3525   return gdbarch->print_float_info != 0;
3526 }
3527
3528 void
3529 gdbarch_print_float_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, const char *args)
3530 {
3531   gdb_assert (gdbarch != NULL);
3532   if (gdbarch->print_float_info == 0)
3533     internal_error (__FILE__, __LINE__,
3534                     "gdbarch: gdbarch_print_float_info invalid");
3535   if (gdbarch_debug >= 2)
3536     fprintf_unfiltered (gdb_stdlog, "gdbarch_print_float_info called\n");
3537   gdbarch->print_float_info (gdbarch, file, frame, args);
3538 }
3539
3540 void
3541 set_gdbarch_print_float_info (struct gdbarch *gdbarch,
3542                               gdbarch_print_float_info_ftype print_float_info)
3543 {
3544   gdbarch->print_float_info = print_float_info;
3545 }
3546
3547 int
3548 gdbarch_print_vector_info_p (struct gdbarch *gdbarch)
3549 {
3550   gdb_assert (gdbarch != NULL);
3551   return gdbarch->print_vector_info != 0;
3552 }
3553
3554 void
3555 gdbarch_print_vector_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, const char *args)
3556 {
3557   gdb_assert (gdbarch != NULL);
3558   if (gdbarch->print_vector_info == 0)
3559     internal_error (__FILE__, __LINE__,
3560                     "gdbarch: gdbarch_print_vector_info invalid");
3561   if (gdbarch_debug >= 2)
3562     fprintf_unfiltered (gdb_stdlog, "gdbarch_print_vector_info called\n");
3563   gdbarch->print_vector_info (gdbarch, file, frame, args);
3564 }
3565
3566 void
3567 set_gdbarch_print_vector_info (struct gdbarch *gdbarch,
3568                                gdbarch_print_vector_info_ftype print_vector_info)
3569 {
3570   gdbarch->print_vector_info = print_vector_info;
3571 }
3572
3573 int
3574 gdbarch_register_sim_regno (struct gdbarch *gdbarch, int reg_nr)
3575 {
3576   gdb_assert (gdbarch != NULL);
3577   if (gdbarch->register_sim_regno == 0)
3578     internal_error (__FILE__, __LINE__,
3579                     "gdbarch: gdbarch_register_sim_regno invalid");
3580   if (gdbarch_debug >= 2)
3581     fprintf_unfiltered (gdb_stdlog, "gdbarch_register_sim_regno called\n");
3582   return gdbarch->register_sim_regno (reg_nr);
3583 }
3584
3585 void
3586 set_gdbarch_register_sim_regno (struct gdbarch *gdbarch,
3587                                 gdbarch_register_sim_regno_ftype register_sim_regno)
3588 {
3589   gdbarch->register_sim_regno = register_sim_regno;
3590 }
3591
3592 int
3593 gdbarch_register_bytes_ok_p (struct gdbarch *gdbarch)
3594 {
3595   gdb_assert (gdbarch != NULL);
3596   return gdbarch->register_bytes_ok != 0;
3597 }
3598
3599 int
3600 gdbarch_register_bytes_ok (struct gdbarch *gdbarch, long nr_bytes)
3601 {
3602   gdb_assert (gdbarch != NULL);
3603   if (gdbarch->register_bytes_ok == 0)
3604     internal_error (__FILE__, __LINE__,
3605                     "gdbarch: gdbarch_register_bytes_ok invalid");
3606   if (gdbarch_debug >= 2)
3607     fprintf_unfiltered (gdb_stdlog, "gdbarch_register_bytes_ok called\n");
3608   return gdbarch->register_bytes_ok (nr_bytes);
3609 }
3610
3611 void
3612 set_gdbarch_register_bytes_ok (struct gdbarch *gdbarch,
3613                                gdbarch_register_bytes_ok_ftype register_bytes_ok)
3614 {
3615   gdbarch->register_bytes_ok = register_bytes_ok;
3616 }
3617
3618 int
3619 gdbarch_cannot_fetch_register (struct gdbarch *gdbarch, int regnum)
3620 {
3621   gdb_assert (gdbarch != NULL);
3622   if (gdbarch->cannot_fetch_register == 0)
3623     internal_error (__FILE__, __LINE__,
3624                     "gdbarch: gdbarch_cannot_fetch_register invalid");
3625   if (gdbarch_debug >= 2)
3626     fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_fetch_register called\n");
3627   return gdbarch->cannot_fetch_register (regnum);
3628 }
3629
3630 void
3631 set_gdbarch_cannot_fetch_register (struct gdbarch *gdbarch,
3632                                    gdbarch_cannot_fetch_register_ftype cannot_fetch_register)
3633 {
3634   gdbarch->cannot_fetch_register = cannot_fetch_register;
3635 }
3636
3637 int
3638 gdbarch_cannot_store_register (struct gdbarch *gdbarch, int regnum)
3639 {
3640   gdb_assert (gdbarch != NULL);
3641   if (gdbarch->cannot_store_register == 0)
3642     internal_error (__FILE__, __LINE__,
3643                     "gdbarch: gdbarch_cannot_store_register invalid");
3644   if (gdbarch_debug >= 2)
3645     fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_store_register called\n");
3646   return gdbarch->cannot_store_register (regnum);
3647 }
3648
3649 void
3650 set_gdbarch_cannot_store_register (struct gdbarch *gdbarch,
3651                                    gdbarch_cannot_store_register_ftype cannot_store_register)
3652 {
3653   gdbarch->cannot_store_register = cannot_store_register;
3654 }
3655
3656 int
3657 gdbarch_get_longjmp_target_p (struct gdbarch *gdbarch)
3658 {
3659   gdb_assert (gdbarch != NULL);
3660   return gdbarch->get_longjmp_target != 0;
3661 }
3662
3663 int
3664 gdbarch_get_longjmp_target (struct gdbarch *gdbarch, CORE_ADDR *pc)
3665 {
3666   gdb_assert (gdbarch != NULL);
3667   if (gdbarch->get_longjmp_target == 0)
3668     internal_error (__FILE__, __LINE__,
3669                     "gdbarch: gdbarch_get_longjmp_target invalid");
3670   if (gdbarch_debug >= 2)
3671     fprintf_unfiltered (gdb_stdlog, "gdbarch_get_longjmp_target called\n");
3672   return gdbarch->get_longjmp_target (pc);
3673 }
3674
3675 void
3676 set_gdbarch_get_longjmp_target (struct gdbarch *gdbarch,
3677                                 gdbarch_get_longjmp_target_ftype get_longjmp_target)
3678 {
3679   gdbarch->get_longjmp_target = get_longjmp_target;
3680 }
3681
3682 int
3683 gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch)
3684 {
3685   gdb_assert (gdbarch != NULL);
3686   /* Skip verify of deprecated_use_generic_dummy_frames, invalid_p == 0 */
3687   if (gdbarch_debug >= 2)
3688     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_use_generic_dummy_frames called\n");
3689   return gdbarch->deprecated_use_generic_dummy_frames;
3690 }
3691
3692 void
3693 set_gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch,
3694                                                  int deprecated_use_generic_dummy_frames)
3695 {
3696   gdbarch->deprecated_use_generic_dummy_frames = deprecated_use_generic_dummy_frames;
3697 }
3698
3699 int
3700 gdbarch_call_dummy_location (struct gdbarch *gdbarch)
3701 {
3702   gdb_assert (gdbarch != NULL);
3703   /* Skip verify of call_dummy_location, invalid_p == 0 */
3704   if (gdbarch_debug >= 2)
3705     fprintf_unfiltered (gdb_stdlog, "gdbarch_call_dummy_location called\n");
3706   return gdbarch->call_dummy_location;
3707 }
3708
3709 void
3710 set_gdbarch_call_dummy_location (struct gdbarch *gdbarch,
3711                                  int call_dummy_location)
3712 {
3713   gdbarch->call_dummy_location = call_dummy_location;
3714 }
3715
3716 CORE_ADDR
3717 gdbarch_call_dummy_address (struct gdbarch *gdbarch)
3718 {
3719   gdb_assert (gdbarch != NULL);
3720   if (gdbarch->call_dummy_address == 0)
3721     internal_error (__FILE__, __LINE__,
3722                     "gdbarch: gdbarch_call_dummy_address invalid");
3723   if (gdbarch_debug >= 2)
3724     fprintf_unfiltered (gdb_stdlog, "gdbarch_call_dummy_address called\n");
3725   return gdbarch->call_dummy_address ();
3726 }
3727
3728 void
3729 set_gdbarch_call_dummy_address (struct gdbarch *gdbarch,
3730                                 gdbarch_call_dummy_address_ftype call_dummy_address)
3731 {
3732   gdbarch->call_dummy_address = call_dummy_address;
3733 }
3734
3735 CORE_ADDR
3736 gdbarch_call_dummy_start_offset (struct gdbarch *gdbarch)
3737 {
3738   gdb_assert (gdbarch != NULL);
3739   if (gdbarch->call_dummy_start_offset == -1)
3740     internal_error (__FILE__, __LINE__,
3741                     "gdbarch: gdbarch_call_dummy_start_offset invalid");
3742   if (gdbarch_debug >= 2)
3743     fprintf_unfiltered (gdb_stdlog, "gdbarch_call_dummy_start_offset called\n");
3744   return gdbarch->call_dummy_start_offset;
3745 }
3746
3747 void
3748 set_gdbarch_call_dummy_start_offset (struct gdbarch *gdbarch,
3749                                      CORE_ADDR call_dummy_start_offset)
3750 {
3751   gdbarch->call_dummy_start_offset = call_dummy_start_offset;
3752 }
3753
3754 CORE_ADDR
3755 gdbarch_call_dummy_breakpoint_offset (struct gdbarch *gdbarch)
3756 {
3757   gdb_assert (gdbarch != NULL);
3758   if (gdbarch->call_dummy_breakpoint_offset_p && gdbarch->call_dummy_breakpoint_offset == -1)
3759     internal_error (__FILE__, __LINE__,
3760                     "gdbarch: gdbarch_call_dummy_breakpoint_offset invalid");
3761   if (gdbarch_debug >= 2)
3762     fprintf_unfiltered (gdb_stdlog, "gdbarch_call_dummy_breakpoint_offset called\n");
3763   return gdbarch->call_dummy_breakpoint_offset;
3764 }
3765
3766 void
3767 set_gdbarch_call_dummy_breakpoint_offset (struct gdbarch *gdbarch,
3768                                           CORE_ADDR call_dummy_breakpoint_offset)
3769 {
3770   gdbarch->call_dummy_breakpoint_offset = call_dummy_breakpoint_offset;
3771 }
3772
3773 int
3774 gdbarch_call_dummy_breakpoint_offset_p (struct gdbarch *gdbarch)
3775 {
3776   gdb_assert (gdbarch != NULL);
3777   if (gdbarch->call_dummy_breakpoint_offset_p == -1)
3778     internal_error (__FILE__, __LINE__,
3779                     "gdbarch: gdbarch_call_dummy_breakpoint_offset_p invalid");
3780   if (gdbarch_debug >= 2)
3781     fprintf_unfiltered (gdb_stdlog, "gdbarch_call_dummy_breakpoint_offset_p called\n");
3782   return gdbarch->call_dummy_breakpoint_offset_p;
3783 }
3784
3785 void
3786 set_gdbarch_call_dummy_breakpoint_offset_p (struct gdbarch *gdbarch,
3787                                             int call_dummy_breakpoint_offset_p)
3788 {
3789   gdbarch->call_dummy_breakpoint_offset_p = call_dummy_breakpoint_offset_p;
3790 }
3791
3792 int
3793 gdbarch_call_dummy_length (struct gdbarch *gdbarch)
3794 {
3795   gdb_assert (gdbarch != NULL);
3796   if (gdbarch->call_dummy_length == -1)
3797     internal_error (__FILE__, __LINE__,
3798                     "gdbarch: gdbarch_call_dummy_length invalid");
3799   if (gdbarch_debug >= 2)
3800     fprintf_unfiltered (gdb_stdlog, "gdbarch_call_dummy_length called\n");
3801   return gdbarch->call_dummy_length;
3802 }
3803
3804 void
3805 set_gdbarch_call_dummy_length (struct gdbarch *gdbarch,
3806                                int call_dummy_length)
3807 {
3808   gdbarch->call_dummy_length = call_dummy_length;
3809 }
3810
3811 int
3812 gdbarch_deprecated_pc_in_call_dummy_p (struct gdbarch *gdbarch)
3813 {
3814   gdb_assert (gdbarch != NULL);
3815   return gdbarch->deprecated_pc_in_call_dummy != generic_pc_in_call_dummy;
3816 }
3817
3818 int
3819 gdbarch_deprecated_pc_in_call_dummy (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address)
3820 {
3821   gdb_assert (gdbarch != NULL);
3822   if (gdbarch->deprecated_pc_in_call_dummy == 0)
3823     internal_error (__FILE__, __LINE__,
3824                     "gdbarch: gdbarch_deprecated_pc_in_call_dummy invalid");
3825   /* Ignore predicate (gdbarch->deprecated_pc_in_call_dummy != generic_pc_in_call_dummy).  */
3826   if (gdbarch_debug >= 2)
3827     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_pc_in_call_dummy called\n");
3828   return gdbarch->deprecated_pc_in_call_dummy (pc, sp, frame_address);
3829 }
3830
3831 void
3832 set_gdbarch_deprecated_pc_in_call_dummy (struct gdbarch *gdbarch,
3833                                          gdbarch_deprecated_pc_in_call_dummy_ftype deprecated_pc_in_call_dummy)
3834 {
3835   gdbarch->deprecated_pc_in_call_dummy = deprecated_pc_in_call_dummy;
3836 }
3837
3838 int
3839 gdbarch_call_dummy_p (struct gdbarch *gdbarch)
3840 {
3841   gdb_assert (gdbarch != NULL);
3842   if (gdbarch->call_dummy_p == -1)
3843     internal_error (__FILE__, __LINE__,
3844                     "gdbarch: gdbarch_call_dummy_p invalid");
3845   if (gdbarch_debug >= 2)
3846     fprintf_unfiltered (gdb_stdlog, "gdbarch_call_dummy_p called\n");
3847   return gdbarch->call_dummy_p;
3848 }
3849
3850 void
3851 set_gdbarch_call_dummy_p (struct gdbarch *gdbarch,
3852                           int call_dummy_p)
3853 {
3854   gdbarch->call_dummy_p = call_dummy_p;
3855 }
3856
3857 LONGEST *
3858 gdbarch_call_dummy_words (struct gdbarch *gdbarch)
3859 {
3860   gdb_assert (gdbarch != NULL);
3861   /* Skip verify of call_dummy_words, invalid_p == 0 */
3862   if (gdbarch_debug >= 2)
3863     fprintf_unfiltered (gdb_stdlog, "gdbarch_call_dummy_words called\n");
3864   return gdbarch->call_dummy_words;
3865 }
3866
3867 void
3868 set_gdbarch_call_dummy_words (struct gdbarch *gdbarch,
3869                               LONGEST * call_dummy_words)
3870 {
3871   gdbarch->call_dummy_words = call_dummy_words;
3872 }
3873
3874 int
3875 gdbarch_sizeof_call_dummy_words (struct gdbarch *gdbarch)
3876 {
3877   gdb_assert (gdbarch != NULL);
3878   /* Skip verify of sizeof_call_dummy_words, invalid_p == 0 */
3879   if (gdbarch_debug >= 2)
3880     fprintf_unfiltered (gdb_stdlog, "gdbarch_sizeof_call_dummy_words called\n");
3881   return gdbarch->sizeof_call_dummy_words;
3882 }
3883
3884 void
3885 set_gdbarch_sizeof_call_dummy_words (struct gdbarch *gdbarch,
3886                                      int sizeof_call_dummy_words)
3887 {
3888   gdbarch->sizeof_call_dummy_words = sizeof_call_dummy_words;
3889 }
3890
3891 int
3892 gdbarch_deprecated_call_dummy_stack_adjust_p (struct gdbarch *gdbarch)
3893 {
3894   gdb_assert (gdbarch != NULL);
3895   return gdbarch->deprecated_call_dummy_stack_adjust != 0;
3896 }
3897
3898 int
3899 gdbarch_deprecated_call_dummy_stack_adjust (struct gdbarch *gdbarch)
3900 {
3901   gdb_assert (gdbarch != NULL);
3902   if (gdbarch_debug >= 2)
3903     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_call_dummy_stack_adjust called\n");
3904   return gdbarch->deprecated_call_dummy_stack_adjust;
3905 }
3906
3907 void
3908 set_gdbarch_deprecated_call_dummy_stack_adjust (struct gdbarch *gdbarch,
3909                                                 int deprecated_call_dummy_stack_adjust)
3910 {
3911   gdbarch->deprecated_call_dummy_stack_adjust = deprecated_call_dummy_stack_adjust;
3912 }
3913
3914 void
3915 gdbarch_fix_call_dummy (struct gdbarch *gdbarch, char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs, struct value **args, struct type *type, int gcc_p)
3916 {
3917   gdb_assert (gdbarch != NULL);
3918   if (gdbarch->fix_call_dummy == 0)
3919     internal_error (__FILE__, __LINE__,
3920                     "gdbarch: gdbarch_fix_call_dummy invalid");
3921   if (gdbarch_debug >= 2)
3922     fprintf_unfiltered (gdb_stdlog, "gdbarch_fix_call_dummy called\n");
3923   gdbarch->fix_call_dummy (dummy, pc, fun, nargs, args, type, gcc_p);
3924 }
3925
3926 void
3927 set_gdbarch_fix_call_dummy (struct gdbarch *gdbarch,
3928                             gdbarch_fix_call_dummy_ftype fix_call_dummy)
3929 {
3930   gdbarch->fix_call_dummy = fix_call_dummy;
3931 }
3932
3933 int
3934 gdbarch_deprecated_init_frame_pc_first_p (struct gdbarch *gdbarch)
3935 {
3936   gdb_assert (gdbarch != NULL);
3937   return gdbarch->deprecated_init_frame_pc_first != 0;
3938 }
3939
3940 CORE_ADDR
3941 gdbarch_deprecated_init_frame_pc_first (struct gdbarch *gdbarch, int fromleaf, struct frame_info *prev)
3942 {
3943   gdb_assert (gdbarch != NULL);
3944   if (gdbarch->deprecated_init_frame_pc_first == 0)
3945     internal_error (__FILE__, __LINE__,
3946                     "gdbarch: gdbarch_deprecated_init_frame_pc_first invalid");
3947   if (gdbarch_debug >= 2)
3948     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_init_frame_pc_first called\n");
3949   return gdbarch->deprecated_init_frame_pc_first (fromleaf, prev);
3950 }
3951
3952 void
3953 set_gdbarch_deprecated_init_frame_pc_first (struct gdbarch *gdbarch,
3954                                             gdbarch_deprecated_init_frame_pc_first_ftype deprecated_init_frame_pc_first)
3955 {
3956   gdbarch->deprecated_init_frame_pc_first = deprecated_init_frame_pc_first;
3957 }
3958
3959 int
3960 gdbarch_deprecated_init_frame_pc_p (struct gdbarch *gdbarch)
3961 {
3962   gdb_assert (gdbarch != NULL);
3963   return gdbarch->deprecated_init_frame_pc != 0;
3964 }
3965
3966 CORE_ADDR
3967 gdbarch_deprecated_init_frame_pc (struct gdbarch *gdbarch, int fromleaf, struct frame_info *prev)
3968 {
3969   gdb_assert (gdbarch != NULL);
3970   if (gdbarch->deprecated_init_frame_pc == 0)
3971     internal_error (__FILE__, __LINE__,
3972                     "gdbarch: gdbarch_deprecated_init_frame_pc invalid");
3973   if (gdbarch_debug >= 2)
3974     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_init_frame_pc called\n");
3975   return gdbarch->deprecated_init_frame_pc (fromleaf, prev);
3976 }
3977
3978 void
3979 set_gdbarch_deprecated_init_frame_pc (struct gdbarch *gdbarch,
3980                                       gdbarch_deprecated_init_frame_pc_ftype deprecated_init_frame_pc)
3981 {
3982   gdbarch->deprecated_init_frame_pc = deprecated_init_frame_pc;
3983 }
3984
3985 int
3986 gdbarch_believe_pcc_promotion (struct gdbarch *gdbarch)
3987 {
3988   gdb_assert (gdbarch != NULL);
3989   if (gdbarch_debug >= 2)
3990     fprintf_unfiltered (gdb_stdlog, "gdbarch_believe_pcc_promotion called\n");
3991   return gdbarch->believe_pcc_promotion;
3992 }
3993
3994 void
3995 set_gdbarch_believe_pcc_promotion (struct gdbarch *gdbarch,
3996                                    int believe_pcc_promotion)
3997 {
3998   gdbarch->believe_pcc_promotion = believe_pcc_promotion;
3999 }
4000
4001 int
4002 gdbarch_believe_pcc_promotion_type (struct gdbarch *gdbarch)
4003 {
4004   gdb_assert (gdbarch != NULL);
4005   if (gdbarch_debug >= 2)
4006     fprintf_unfiltered (gdb_stdlog, "gdbarch_believe_pcc_promotion_type called\n");
4007   return gdbarch->believe_pcc_promotion_type;
4008 }
4009
4010 void
4011 set_gdbarch_believe_pcc_promotion_type (struct gdbarch *gdbarch,
4012                                         int believe_pcc_promotion_type)
4013 {
4014   gdbarch->believe_pcc_promotion_type = believe_pcc_promotion_type;
4015 }
4016
4017 int
4018 gdbarch_deprecated_get_saved_register_p (struct gdbarch *gdbarch)
4019 {
4020   gdb_assert (gdbarch != NULL);
4021   return gdbarch->deprecated_get_saved_register != 0;
4022 }
4023
4024 void
4025 gdbarch_deprecated_get_saved_register (struct gdbarch *gdbarch, char *raw_buffer, int *optimized, CORE_ADDR *addrp, struct frame_info *frame, int regnum, enum lval_type *lval)
4026 {
4027   gdb_assert (gdbarch != NULL);
4028   if (gdbarch->deprecated_get_saved_register == 0)
4029     internal_error (__FILE__, __LINE__,
4030                     "gdbarch: gdbarch_deprecated_get_saved_register invalid");
4031   if (gdbarch_debug >= 2)
4032     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_get_saved_register called\n");
4033   gdbarch->deprecated_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval);
4034 }
4035
4036 void
4037 set_gdbarch_deprecated_get_saved_register (struct gdbarch *gdbarch,
4038                                            gdbarch_deprecated_get_saved_register_ftype deprecated_get_saved_register)
4039 {
4040   gdbarch->deprecated_get_saved_register = deprecated_get_saved_register;
4041 }
4042
4043 int
4044 gdbarch_register_convertible (struct gdbarch *gdbarch, int nr)
4045 {
4046   gdb_assert (gdbarch != NULL);
4047   if (gdbarch->register_convertible == 0)
4048     internal_error (__FILE__, __LINE__,
4049                     "gdbarch: gdbarch_register_convertible invalid");
4050   if (gdbarch_debug >= 2)
4051     fprintf_unfiltered (gdb_stdlog, "gdbarch_register_convertible called\n");
4052   return gdbarch->register_convertible (nr);
4053 }
4054
4055 void
4056 set_gdbarch_register_convertible (struct gdbarch *gdbarch,
4057                                   gdbarch_register_convertible_ftype register_convertible)
4058 {
4059   gdbarch->register_convertible = register_convertible;
4060 }
4061
4062 void
4063 gdbarch_register_convert_to_virtual (struct gdbarch *gdbarch, int regnum, struct type *type, char *from, char *to)
4064 {
4065   gdb_assert (gdbarch != NULL);
4066   if (gdbarch->register_convert_to_virtual == 0)
4067     internal_error (__FILE__, __LINE__,
4068                     "gdbarch: gdbarch_register_convert_to_virtual invalid");
4069   if (gdbarch_debug >= 2)
4070     fprintf_unfiltered (gdb_stdlog, "gdbarch_register_convert_to_virtual called\n");
4071   gdbarch->register_convert_to_virtual (regnum, type, from, to);
4072 }
4073
4074 void
4075 set_gdbarch_register_convert_to_virtual (struct gdbarch *gdbarch,
4076                                          gdbarch_register_convert_to_virtual_ftype register_convert_to_virtual)
4077 {
4078   gdbarch->register_convert_to_virtual = register_convert_to_virtual;
4079 }
4080
4081 void
4082 gdbarch_register_convert_to_raw (struct gdbarch *gdbarch, struct type *type, int regnum, char *from, char *to)
4083 {
4084   gdb_assert (gdbarch != NULL);
4085   if (gdbarch->register_convert_to_raw == 0)
4086     internal_error (__FILE__, __LINE__,
4087                     "gdbarch: gdbarch_register_convert_to_raw invalid");
4088   if (gdbarch_debug >= 2)
4089     fprintf_unfiltered (gdb_stdlog, "gdbarch_register_convert_to_raw called\n");
4090   gdbarch->register_convert_to_raw (type, regnum, from, to);
4091 }
4092
4093 void
4094 set_gdbarch_register_convert_to_raw (struct gdbarch *gdbarch,
4095                                      gdbarch_register_convert_to_raw_ftype register_convert_to_raw)
4096 {
4097   gdbarch->register_convert_to_raw = register_convert_to_raw;
4098 }
4099
4100 int
4101 gdbarch_convert_register_p (struct gdbarch *gdbarch, int regnum)
4102 {
4103   gdb_assert (gdbarch != NULL);
4104   if (gdbarch->convert_register_p == 0)
4105     internal_error (__FILE__, __LINE__,
4106                     "gdbarch: gdbarch_convert_register_p invalid");
4107   if (gdbarch_debug >= 2)
4108     fprintf_unfiltered (gdb_stdlog, "gdbarch_convert_register_p called\n");
4109   return gdbarch->convert_register_p (regnum);
4110 }
4111
4112 void
4113 set_gdbarch_convert_register_p (struct gdbarch *gdbarch,
4114                                 gdbarch_convert_register_p_ftype convert_register_p)
4115 {
4116   gdbarch->convert_register_p = convert_register_p;
4117 }
4118
4119 void
4120 gdbarch_register_to_value (struct gdbarch *gdbarch, int regnum, struct type *type, char *from, char *to)
4121 {
4122   gdb_assert (gdbarch != NULL);
4123   if (gdbarch->register_to_value == 0)
4124     internal_error (__FILE__, __LINE__,
4125                     "gdbarch: gdbarch_register_to_value invalid");
4126   if (gdbarch_debug >= 2)
4127     fprintf_unfiltered (gdb_stdlog, "gdbarch_register_to_value called\n");
4128   gdbarch->register_to_value (regnum, type, from, to);
4129 }
4130
4131 void
4132 set_gdbarch_register_to_value (struct gdbarch *gdbarch,
4133                                gdbarch_register_to_value_ftype register_to_value)
4134 {
4135   gdbarch->register_to_value = register_to_value;
4136 }
4137
4138 void
4139 gdbarch_value_to_register (struct gdbarch *gdbarch, struct type *type, int regnum, char *from, char *to)
4140 {
4141   gdb_assert (gdbarch != NULL);
4142   if (gdbarch->value_to_register == 0)
4143     internal_error (__FILE__, __LINE__,
4144                     "gdbarch: gdbarch_value_to_register invalid");
4145   if (gdbarch_debug >= 2)
4146     fprintf_unfiltered (gdb_stdlog, "gdbarch_value_to_register called\n");
4147   gdbarch->value_to_register (type, regnum, from, to);
4148 }
4149
4150 void
4151 set_gdbarch_value_to_register (struct gdbarch *gdbarch,
4152                                gdbarch_value_to_register_ftype value_to_register)
4153 {
4154   gdbarch->value_to_register = value_to_register;
4155 }
4156
4157 CORE_ADDR
4158 gdbarch_pointer_to_address (struct gdbarch *gdbarch, struct type *type, const void *buf)
4159 {
4160   gdb_assert (gdbarch != NULL);
4161   if (gdbarch->pointer_to_address == 0)
4162     internal_error (__FILE__, __LINE__,
4163                     "gdbarch: gdbarch_pointer_to_address invalid");
4164   if (gdbarch_debug >= 2)
4165     fprintf_unfiltered (gdb_stdlog, "gdbarch_pointer_to_address called\n");
4166   return gdbarch->pointer_to_address (type, buf);
4167 }
4168
4169 void
4170 set_gdbarch_pointer_to_address (struct gdbarch *gdbarch,
4171                                 gdbarch_pointer_to_address_ftype pointer_to_address)
4172 {
4173   gdbarch->pointer_to_address = pointer_to_address;
4174 }
4175
4176 void
4177 gdbarch_address_to_pointer (struct gdbarch *gdbarch, struct type *type, void *buf, CORE_ADDR addr)
4178 {
4179   gdb_assert (gdbarch != NULL);
4180   if (gdbarch->address_to_pointer == 0)
4181     internal_error (__FILE__, __LINE__,
4182                     "gdbarch: gdbarch_address_to_pointer invalid");
4183   if (gdbarch_debug >= 2)
4184     fprintf_unfiltered (gdb_stdlog, "gdbarch_address_to_pointer called\n");
4185   gdbarch->address_to_pointer (type, buf, addr);
4186 }
4187
4188 void
4189 set_gdbarch_address_to_pointer (struct gdbarch *gdbarch,
4190                                 gdbarch_address_to_pointer_ftype address_to_pointer)
4191 {
4192   gdbarch->address_to_pointer = address_to_pointer;
4193 }
4194
4195 int
4196 gdbarch_integer_to_address_p (struct gdbarch *gdbarch)
4197 {
4198   gdb_assert (gdbarch != NULL);
4199   return gdbarch->integer_to_address != 0;
4200 }
4201
4202 CORE_ADDR
4203 gdbarch_integer_to_address (struct gdbarch *gdbarch, struct type *type, void *buf)
4204 {
4205   gdb_assert (gdbarch != NULL);
4206   if (gdbarch->integer_to_address == 0)
4207     internal_error (__FILE__, __LINE__,
4208                     "gdbarch: gdbarch_integer_to_address invalid");
4209   if (gdbarch_debug >= 2)
4210     fprintf_unfiltered (gdb_stdlog, "gdbarch_integer_to_address called\n");
4211   return gdbarch->integer_to_address (type, buf);
4212 }
4213
4214 void
4215 set_gdbarch_integer_to_address (struct gdbarch *gdbarch,
4216                                 gdbarch_integer_to_address_ftype integer_to_address)
4217 {
4218   gdbarch->integer_to_address = integer_to_address;
4219 }
4220
4221 int
4222 gdbarch_return_value_on_stack (struct gdbarch *gdbarch, struct type *type)
4223 {
4224   gdb_assert (gdbarch != NULL);
4225   if (gdbarch->return_value_on_stack == 0)
4226     internal_error (__FILE__, __LINE__,
4227                     "gdbarch: gdbarch_return_value_on_stack invalid");
4228   if (gdbarch_debug >= 2)
4229     fprintf_unfiltered (gdb_stdlog, "gdbarch_return_value_on_stack called\n");
4230   return gdbarch->return_value_on_stack (type);
4231 }
4232
4233 void
4234 set_gdbarch_return_value_on_stack (struct gdbarch *gdbarch,
4235                                    gdbarch_return_value_on_stack_ftype return_value_on_stack)
4236 {
4237   gdbarch->return_value_on_stack = return_value_on_stack;
4238 }
4239
4240 int
4241 gdbarch_deprecated_push_arguments_p (struct gdbarch *gdbarch)
4242 {
4243   gdb_assert (gdbarch != NULL);
4244   return gdbarch->deprecated_push_arguments != 0;
4245 }
4246
4247 CORE_ADDR
4248 gdbarch_deprecated_push_arguments (struct gdbarch *gdbarch, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr)
4249 {
4250   gdb_assert (gdbarch != NULL);
4251   if (gdbarch->deprecated_push_arguments == 0)
4252     internal_error (__FILE__, __LINE__,
4253                     "gdbarch: gdbarch_deprecated_push_arguments invalid");
4254   if (gdbarch_debug >= 2)
4255     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_push_arguments called\n");
4256   return gdbarch->deprecated_push_arguments (nargs, args, sp, struct_return, struct_addr);
4257 }
4258
4259 void
4260 set_gdbarch_deprecated_push_arguments (struct gdbarch *gdbarch,
4261                                        gdbarch_deprecated_push_arguments_ftype deprecated_push_arguments)
4262 {
4263   gdbarch->deprecated_push_arguments = deprecated_push_arguments;
4264 }
4265
4266 int
4267 gdbarch_push_dummy_call_p (struct gdbarch *gdbarch)
4268 {
4269   gdb_assert (gdbarch != NULL);
4270   return gdbarch->push_dummy_call != 0;
4271 }
4272
4273 CORE_ADDR
4274 gdbarch_push_dummy_call (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR dummy_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr)
4275 {
4276   gdb_assert (gdbarch != NULL);
4277   if (gdbarch->push_dummy_call == 0)
4278     internal_error (__FILE__, __LINE__,
4279                     "gdbarch: gdbarch_push_dummy_call invalid");
4280   if (gdbarch_debug >= 2)
4281     fprintf_unfiltered (gdb_stdlog, "gdbarch_push_dummy_call called\n");
4282   return gdbarch->push_dummy_call (gdbarch, regcache, dummy_addr, nargs, args, sp, struct_return, struct_addr);
4283 }
4284
4285 void
4286 set_gdbarch_push_dummy_call (struct gdbarch *gdbarch,
4287                              gdbarch_push_dummy_call_ftype push_dummy_call)
4288 {
4289   gdbarch->push_dummy_call = push_dummy_call;
4290 }
4291
4292 int
4293 gdbarch_deprecated_push_dummy_frame_p (struct gdbarch *gdbarch)
4294 {
4295   gdb_assert (gdbarch != NULL);
4296   return gdbarch->deprecated_push_dummy_frame != 0;
4297 }
4298
4299 void
4300 gdbarch_deprecated_push_dummy_frame (struct gdbarch *gdbarch)
4301 {
4302   gdb_assert (gdbarch != NULL);
4303   if (gdbarch->deprecated_push_dummy_frame == 0)
4304     internal_error (__FILE__, __LINE__,
4305                     "gdbarch: gdbarch_deprecated_push_dummy_frame invalid");
4306   if (gdbarch_debug >= 2)
4307     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_push_dummy_frame called\n");
4308   gdbarch->deprecated_push_dummy_frame ();
4309 }
4310
4311 void
4312 set_gdbarch_deprecated_push_dummy_frame (struct gdbarch *gdbarch,
4313                                          gdbarch_deprecated_push_dummy_frame_ftype deprecated_push_dummy_frame)
4314 {
4315   gdbarch->deprecated_push_dummy_frame = deprecated_push_dummy_frame;
4316 }
4317
4318 int
4319 gdbarch_push_return_address_p (struct gdbarch *gdbarch)
4320 {
4321   gdb_assert (gdbarch != NULL);
4322   return gdbarch->push_return_address != 0;
4323 }
4324
4325 CORE_ADDR
4326 gdbarch_push_return_address (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR sp)
4327 {
4328   gdb_assert (gdbarch != NULL);
4329   if (gdbarch->push_return_address == 0)
4330     internal_error (__FILE__, __LINE__,
4331                     "gdbarch: gdbarch_push_return_address invalid");
4332   if (gdbarch_debug >= 2)
4333     fprintf_unfiltered (gdb_stdlog, "gdbarch_push_return_address called\n");
4334   return gdbarch->push_return_address (pc, sp);
4335 }
4336
4337 void
4338 set_gdbarch_push_return_address (struct gdbarch *gdbarch,
4339                                  gdbarch_push_return_address_ftype push_return_address)
4340 {
4341   gdbarch->push_return_address = push_return_address;
4342 }
4343
4344 int
4345 gdbarch_deprecated_pop_frame_p (struct gdbarch *gdbarch)
4346 {
4347   gdb_assert (gdbarch != NULL);
4348   return gdbarch->deprecated_pop_frame != 0;
4349 }
4350
4351 void
4352 gdbarch_deprecated_pop_frame (struct gdbarch *gdbarch)
4353 {
4354   gdb_assert (gdbarch != NULL);
4355   if (gdbarch->deprecated_pop_frame == 0)
4356     internal_error (__FILE__, __LINE__,
4357                     "gdbarch: gdbarch_deprecated_pop_frame invalid");
4358   if (gdbarch_debug >= 2)
4359     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_pop_frame called\n");
4360   gdbarch->deprecated_pop_frame ();
4361 }
4362
4363 void
4364 set_gdbarch_deprecated_pop_frame (struct gdbarch *gdbarch,
4365                                   gdbarch_deprecated_pop_frame_ftype deprecated_pop_frame)
4366 {
4367   gdbarch->deprecated_pop_frame = deprecated_pop_frame;
4368 }
4369
4370 int
4371 gdbarch_deprecated_store_struct_return_p (struct gdbarch *gdbarch)
4372 {
4373   gdb_assert (gdbarch != NULL);
4374   return gdbarch->deprecated_store_struct_return != 0;
4375 }
4376
4377 void
4378 gdbarch_deprecated_store_struct_return (struct gdbarch *gdbarch, CORE_ADDR addr, CORE_ADDR sp)
4379 {
4380   gdb_assert (gdbarch != NULL);
4381   if (gdbarch->deprecated_store_struct_return == 0)
4382     internal_error (__FILE__, __LINE__,
4383                     "gdbarch: gdbarch_deprecated_store_struct_return invalid");
4384   if (gdbarch_debug >= 2)
4385     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_store_struct_return called\n");
4386   gdbarch->deprecated_store_struct_return (addr, sp);
4387 }
4388
4389 void
4390 set_gdbarch_deprecated_store_struct_return (struct gdbarch *gdbarch,
4391                                             gdbarch_deprecated_store_struct_return_ftype deprecated_store_struct_return)
4392 {
4393   gdbarch->deprecated_store_struct_return = deprecated_store_struct_return;
4394 }
4395
4396 void
4397 gdbarch_extract_return_value (struct gdbarch *gdbarch, struct type *type, struct regcache *regcache, void *valbuf)
4398 {
4399   gdb_assert (gdbarch != NULL);
4400   if (gdbarch->extract_return_value == 0)
4401     internal_error (__FILE__, __LINE__,
4402                     "gdbarch: gdbarch_extract_return_value invalid");
4403   if (gdbarch_debug >= 2)
4404     fprintf_unfiltered (gdb_stdlog, "gdbarch_extract_return_value called\n");
4405   gdbarch->extract_return_value (type, regcache, valbuf);
4406 }
4407
4408 void
4409 set_gdbarch_extract_return_value (struct gdbarch *gdbarch,
4410                                   gdbarch_extract_return_value_ftype extract_return_value)
4411 {
4412   gdbarch->extract_return_value = extract_return_value;
4413 }
4414
4415 void
4416 gdbarch_store_return_value (struct gdbarch *gdbarch, struct type *type, struct regcache *regcache, const void *valbuf)
4417 {
4418   gdb_assert (gdbarch != NULL);
4419   if (gdbarch->store_return_value == 0)
4420     internal_error (__FILE__, __LINE__,
4421                     "gdbarch: gdbarch_store_return_value invalid");
4422   if (gdbarch_debug >= 2)
4423     fprintf_unfiltered (gdb_stdlog, "gdbarch_store_return_value called\n");
4424   gdbarch->store_return_value (type, regcache, valbuf);
4425 }
4426
4427 void
4428 set_gdbarch_store_return_value (struct gdbarch *gdbarch,
4429                                 gdbarch_store_return_value_ftype store_return_value)
4430 {
4431   gdbarch->store_return_value = store_return_value;
4432 }
4433
4434 void
4435 gdbarch_deprecated_extract_return_value (struct gdbarch *gdbarch, struct type *type, char *regbuf, char *valbuf)
4436 {
4437   gdb_assert (gdbarch != NULL);
4438   if (gdbarch->deprecated_extract_return_value == 0)
4439     internal_error (__FILE__, __LINE__,
4440                     "gdbarch: gdbarch_deprecated_extract_return_value invalid");
4441   if (gdbarch_debug >= 2)
4442     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_extract_return_value called\n");
4443   gdbarch->deprecated_extract_return_value (type, regbuf, valbuf);
4444 }
4445
4446 void
4447 set_gdbarch_deprecated_extract_return_value (struct gdbarch *gdbarch,
4448                                              gdbarch_deprecated_extract_return_value_ftype deprecated_extract_return_value)
4449 {
4450   gdbarch->deprecated_extract_return_value = deprecated_extract_return_value;
4451 }
4452
4453 void
4454 gdbarch_deprecated_store_return_value (struct gdbarch *gdbarch, struct type *type, char *valbuf)
4455 {
4456   gdb_assert (gdbarch != NULL);
4457   if (gdbarch->deprecated_store_return_value == 0)
4458     internal_error (__FILE__, __LINE__,
4459                     "gdbarch: gdbarch_deprecated_store_return_value invalid");
4460   if (gdbarch_debug >= 2)
4461     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_store_return_value called\n");
4462   gdbarch->deprecated_store_return_value (type, valbuf);
4463 }
4464
4465 void
4466 set_gdbarch_deprecated_store_return_value (struct gdbarch *gdbarch,
4467                                            gdbarch_deprecated_store_return_value_ftype deprecated_store_return_value)
4468 {
4469   gdbarch->deprecated_store_return_value = deprecated_store_return_value;
4470 }
4471
4472 int
4473 gdbarch_extract_struct_value_address_p (struct gdbarch *gdbarch)
4474 {
4475   gdb_assert (gdbarch != NULL);
4476   return gdbarch->extract_struct_value_address != 0;
4477 }
4478
4479 CORE_ADDR
4480 gdbarch_extract_struct_value_address (struct gdbarch *gdbarch, struct regcache *regcache)
4481 {
4482   gdb_assert (gdbarch != NULL);
4483   if (gdbarch->extract_struct_value_address == 0)
4484     internal_error (__FILE__, __LINE__,
4485                     "gdbarch: gdbarch_extract_struct_value_address invalid");
4486   if (gdbarch_debug >= 2)
4487     fprintf_unfiltered (gdb_stdlog, "gdbarch_extract_struct_value_address called\n");
4488   return gdbarch->extract_struct_value_address (regcache);
4489 }
4490
4491 void
4492 set_gdbarch_extract_struct_value_address (struct gdbarch *gdbarch,
4493                                           gdbarch_extract_struct_value_address_ftype extract_struct_value_address)
4494 {
4495   gdbarch->extract_struct_value_address = extract_struct_value_address;
4496 }
4497
4498 int
4499 gdbarch_deprecated_extract_struct_value_address_p (struct gdbarch *gdbarch)
4500 {
4501   gdb_assert (gdbarch != NULL);
4502   return gdbarch->deprecated_extract_struct_value_address != 0;
4503 }
4504
4505 CORE_ADDR
4506 gdbarch_deprecated_extract_struct_value_address (struct gdbarch *gdbarch, char *regbuf)
4507 {
4508   gdb_assert (gdbarch != NULL);
4509   if (gdbarch->deprecated_extract_struct_value_address == 0)
4510     internal_error (__FILE__, __LINE__,
4511                     "gdbarch: gdbarch_deprecated_extract_struct_value_address invalid");
4512   if (gdbarch_debug >= 2)
4513     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_extract_struct_value_address called\n");
4514   return gdbarch->deprecated_extract_struct_value_address (regbuf);
4515 }
4516
4517 void
4518 set_gdbarch_deprecated_extract_struct_value_address (struct gdbarch *gdbarch,
4519                                                      gdbarch_deprecated_extract_struct_value_address_ftype deprecated_extract_struct_value_address)
4520 {
4521   gdbarch->deprecated_extract_struct_value_address = deprecated_extract_struct_value_address;
4522 }
4523
4524 int
4525 gdbarch_use_struct_convention (struct gdbarch *gdbarch, int gcc_p, struct type *value_type)
4526 {
4527   gdb_assert (gdbarch != NULL);
4528   if (gdbarch->use_struct_convention == 0)
4529     internal_error (__FILE__, __LINE__,
4530                     "gdbarch: gdbarch_use_struct_convention invalid");
4531   if (gdbarch_debug >= 2)
4532     fprintf_unfiltered (gdb_stdlog, "gdbarch_use_struct_convention called\n");
4533   return gdbarch->use_struct_convention (gcc_p, value_type);
4534 }
4535
4536 void
4537 set_gdbarch_use_struct_convention (struct gdbarch *gdbarch,
4538                                    gdbarch_use_struct_convention_ftype use_struct_convention)
4539 {
4540   gdbarch->use_struct_convention = use_struct_convention;
4541 }
4542
4543 int
4544 gdbarch_deprecated_frame_init_saved_regs_p (struct gdbarch *gdbarch)
4545 {
4546   gdb_assert (gdbarch != NULL);
4547   return gdbarch->deprecated_frame_init_saved_regs != 0;
4548 }
4549
4550 void
4551 gdbarch_deprecated_frame_init_saved_regs (struct gdbarch *gdbarch, struct frame_info *frame)
4552 {
4553   gdb_assert (gdbarch != NULL);
4554   if (gdbarch->deprecated_frame_init_saved_regs == 0)
4555     internal_error (__FILE__, __LINE__,
4556                     "gdbarch: gdbarch_deprecated_frame_init_saved_regs invalid");
4557   if (gdbarch_debug >= 2)
4558     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_frame_init_saved_regs called\n");
4559   gdbarch->deprecated_frame_init_saved_regs (frame);
4560 }
4561
4562 void
4563 set_gdbarch_deprecated_frame_init_saved_regs (struct gdbarch *gdbarch,
4564                                               gdbarch_deprecated_frame_init_saved_regs_ftype deprecated_frame_init_saved_regs)
4565 {
4566   gdbarch->deprecated_frame_init_saved_regs = deprecated_frame_init_saved_regs;
4567 }
4568
4569 int
4570 gdbarch_deprecated_init_extra_frame_info_p (struct gdbarch *gdbarch)
4571 {
4572   gdb_assert (gdbarch != NULL);
4573   return gdbarch->deprecated_init_extra_frame_info != 0;
4574 }
4575
4576 void
4577 gdbarch_deprecated_init_extra_frame_info (struct gdbarch *gdbarch, int fromleaf, struct frame_info *frame)
4578 {
4579   gdb_assert (gdbarch != NULL);
4580   if (gdbarch->deprecated_init_extra_frame_info == 0)
4581     internal_error (__FILE__, __LINE__,
4582                     "gdbarch: gdbarch_deprecated_init_extra_frame_info invalid");
4583   if (gdbarch_debug >= 2)
4584     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_init_extra_frame_info called\n");
4585   gdbarch->deprecated_init_extra_frame_info (fromleaf, frame);
4586 }
4587
4588 void
4589 set_gdbarch_deprecated_init_extra_frame_info (struct gdbarch *gdbarch,
4590                                               gdbarch_deprecated_init_extra_frame_info_ftype deprecated_init_extra_frame_info)
4591 {
4592   gdbarch->deprecated_init_extra_frame_info = deprecated_init_extra_frame_info;
4593 }
4594
4595 CORE_ADDR
4596 gdbarch_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR ip)
4597 {
4598   gdb_assert (gdbarch != NULL);
4599   if (gdbarch->skip_prologue == 0)
4600     internal_error (__FILE__, __LINE__,
4601                     "gdbarch: gdbarch_skip_prologue invalid");
4602   if (gdbarch_debug >= 2)
4603     fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_prologue called\n");
4604   return gdbarch->skip_prologue (ip);
4605 }
4606
4607 void
4608 set_gdbarch_skip_prologue (struct gdbarch *gdbarch,
4609                            gdbarch_skip_prologue_ftype skip_prologue)
4610 {
4611   gdbarch->skip_prologue = skip_prologue;
4612 }
4613
4614 int
4615 gdbarch_prologue_frameless_p (struct gdbarch *gdbarch, CORE_ADDR ip)
4616 {
4617   gdb_assert (gdbarch != NULL);
4618   if (gdbarch->prologue_frameless_p == 0)
4619     internal_error (__FILE__, __LINE__,
4620                     "gdbarch: gdbarch_prologue_frameless_p invalid");
4621   if (gdbarch_debug >= 2)
4622     fprintf_unfiltered (gdb_stdlog, "gdbarch_prologue_frameless_p called\n");
4623   return gdbarch->prologue_frameless_p (ip);
4624 }
4625
4626 void
4627 set_gdbarch_prologue_frameless_p (struct gdbarch *gdbarch,
4628                                   gdbarch_prologue_frameless_p_ftype prologue_frameless_p)
4629 {
4630   gdbarch->prologue_frameless_p = prologue_frameless_p;
4631 }
4632
4633 int
4634 gdbarch_inner_than (struct gdbarch *gdbarch, CORE_ADDR lhs, CORE_ADDR rhs)
4635 {
4636   gdb_assert (gdbarch != NULL);
4637   if (gdbarch->inner_than == 0)
4638     internal_error (__FILE__, __LINE__,
4639                     "gdbarch: gdbarch_inner_than invalid");
4640   if (gdbarch_debug >= 2)
4641     fprintf_unfiltered (gdb_stdlog, "gdbarch_inner_than called\n");
4642   return gdbarch->inner_than (lhs, rhs);
4643 }
4644
4645 void
4646 set_gdbarch_inner_than (struct gdbarch *gdbarch,
4647                         gdbarch_inner_than_ftype inner_than)
4648 {
4649   gdbarch->inner_than = inner_than;
4650 }
4651
4652 const unsigned char *
4653 gdbarch_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
4654 {
4655   gdb_assert (gdbarch != NULL);
4656   if (gdbarch->breakpoint_from_pc == 0)
4657     internal_error (__FILE__, __LINE__,
4658                     "gdbarch: gdbarch_breakpoint_from_pc invalid");
4659   if (gdbarch_debug >= 2)
4660     fprintf_unfiltered (gdb_stdlog, "gdbarch_breakpoint_from_pc called\n");
4661   return gdbarch->breakpoint_from_pc (pcptr, lenptr);
4662 }
4663
4664 void
4665 set_gdbarch_breakpoint_from_pc (struct gdbarch *gdbarch,
4666                                 gdbarch_breakpoint_from_pc_ftype breakpoint_from_pc)
4667 {
4668   gdbarch->breakpoint_from_pc = breakpoint_from_pc;
4669 }
4670
4671 int
4672 gdbarch_memory_insert_breakpoint (struct gdbarch *gdbarch, CORE_ADDR addr, char *contents_cache)
4673 {
4674   gdb_assert (gdbarch != NULL);
4675   if (gdbarch->memory_insert_breakpoint == 0)
4676     internal_error (__FILE__, __LINE__,
4677                     "gdbarch: gdbarch_memory_insert_breakpoint invalid");
4678   if (gdbarch_debug >= 2)
4679     fprintf_unfiltered (gdb_stdlog, "gdbarch_memory_insert_breakpoint called\n");
4680   return gdbarch->memory_insert_breakpoint (addr, contents_cache);
4681 }
4682
4683 void
4684 set_gdbarch_memory_insert_breakpoint (struct gdbarch *gdbarch,
4685                                       gdbarch_memory_insert_breakpoint_ftype memory_insert_breakpoint)
4686 {
4687   gdbarch->memory_insert_breakpoint = memory_insert_breakpoint;
4688 }
4689
4690 int
4691 gdbarch_memory_remove_breakpoint (struct gdbarch *gdbarch, CORE_ADDR addr, char *contents_cache)
4692 {
4693   gdb_assert (gdbarch != NULL);
4694   if (gdbarch->memory_remove_breakpoint == 0)
4695     internal_error (__FILE__, __LINE__,
4696                     "gdbarch: gdbarch_memory_remove_breakpoint invalid");
4697   if (gdbarch_debug >= 2)
4698     fprintf_unfiltered (gdb_stdlog, "gdbarch_memory_remove_breakpoint called\n");
4699   return gdbarch->memory_remove_breakpoint (addr, contents_cache);
4700 }
4701
4702 void
4703 set_gdbarch_memory_remove_breakpoint (struct gdbarch *gdbarch,
4704                                       gdbarch_memory_remove_breakpoint_ftype memory_remove_breakpoint)
4705 {
4706   gdbarch->memory_remove_breakpoint = memory_remove_breakpoint;
4707 }
4708
4709 CORE_ADDR
4710 gdbarch_decr_pc_after_break (struct gdbarch *gdbarch)
4711 {
4712   gdb_assert (gdbarch != NULL);
4713   if (gdbarch->decr_pc_after_break == -1)
4714     internal_error (__FILE__, __LINE__,
4715                     "gdbarch: gdbarch_decr_pc_after_break invalid");
4716   if (gdbarch_debug >= 2)
4717     fprintf_unfiltered (gdb_stdlog, "gdbarch_decr_pc_after_break called\n");
4718   return gdbarch->decr_pc_after_break;
4719 }
4720
4721 void
4722 set_gdbarch_decr_pc_after_break (struct gdbarch *gdbarch,
4723                                  CORE_ADDR decr_pc_after_break)
4724 {
4725   gdbarch->decr_pc_after_break = decr_pc_after_break;
4726 }
4727
4728 int
4729 gdbarch_prepare_to_proceed (struct gdbarch *gdbarch, int select_it)
4730 {
4731   gdb_assert (gdbarch != NULL);
4732   if (gdbarch->prepare_to_proceed == 0)
4733     internal_error (__FILE__, __LINE__,
4734                     "gdbarch: gdbarch_prepare_to_proceed invalid");
4735   if (gdbarch_debug >= 2)
4736     fprintf_unfiltered (gdb_stdlog, "gdbarch_prepare_to_proceed called\n");
4737   return gdbarch->prepare_to_proceed (select_it);
4738 }
4739
4740 void
4741 set_gdbarch_prepare_to_proceed (struct gdbarch *gdbarch,
4742                                 gdbarch_prepare_to_proceed_ftype prepare_to_proceed)
4743 {
4744   gdbarch->prepare_to_proceed = prepare_to_proceed;
4745 }
4746
4747 CORE_ADDR
4748 gdbarch_function_start_offset (struct gdbarch *gdbarch)
4749 {
4750   gdb_assert (gdbarch != NULL);
4751   if (gdbarch->function_start_offset == -1)
4752     internal_error (__FILE__, __LINE__,
4753                     "gdbarch: gdbarch_function_start_offset invalid");
4754   if (gdbarch_debug >= 2)
4755     fprintf_unfiltered (gdb_stdlog, "gdbarch_function_start_offset called\n");
4756   return gdbarch->function_start_offset;
4757 }
4758
4759 void
4760 set_gdbarch_function_start_offset (struct gdbarch *gdbarch,
4761                                    CORE_ADDR function_start_offset)
4762 {
4763   gdbarch->function_start_offset = function_start_offset;
4764 }
4765
4766 void
4767 gdbarch_remote_translate_xfer_address (struct gdbarch *gdbarch, CORE_ADDR gdb_addr, int gdb_len, CORE_ADDR *rem_addr, int *rem_len)
4768 {
4769   gdb_assert (gdbarch != NULL);
4770   if (gdbarch->remote_translate_xfer_address == 0)
4771     internal_error (__FILE__, __LINE__,
4772                     "gdbarch: gdbarch_remote_translate_xfer_address invalid");
4773   if (gdbarch_debug >= 2)
4774     fprintf_unfiltered (gdb_stdlog, "gdbarch_remote_translate_xfer_address called\n");
4775   gdbarch->remote_translate_xfer_address (gdb_addr, gdb_len, rem_addr, rem_len);
4776 }
4777
4778 void
4779 set_gdbarch_remote_translate_xfer_address (struct gdbarch *gdbarch,
4780                                            gdbarch_remote_translate_xfer_address_ftype remote_translate_xfer_address)
4781 {
4782   gdbarch->remote_translate_xfer_address = remote_translate_xfer_address;
4783 }
4784
4785 CORE_ADDR
4786 gdbarch_frame_args_skip (struct gdbarch *gdbarch)
4787 {
4788   gdb_assert (gdbarch != NULL);
4789   if (gdbarch->frame_args_skip == -1)
4790     internal_error (__FILE__, __LINE__,
4791                     "gdbarch: gdbarch_frame_args_skip invalid");
4792   if (gdbarch_debug >= 2)
4793     fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_args_skip called\n");
4794   return gdbarch->frame_args_skip;
4795 }
4796
4797 void
4798 set_gdbarch_frame_args_skip (struct gdbarch *gdbarch,
4799                              CORE_ADDR frame_args_skip)
4800 {
4801   gdbarch->frame_args_skip = frame_args_skip;
4802 }
4803
4804 int
4805 gdbarch_frameless_function_invocation (struct gdbarch *gdbarch, struct frame_info *fi)
4806 {
4807   gdb_assert (gdbarch != NULL);
4808   if (gdbarch->frameless_function_invocation == 0)
4809     internal_error (__FILE__, __LINE__,
4810                     "gdbarch: gdbarch_frameless_function_invocation invalid");
4811   if (gdbarch_debug >= 2)
4812     fprintf_unfiltered (gdb_stdlog, "gdbarch_frameless_function_invocation called\n");
4813   return gdbarch->frameless_function_invocation (fi);
4814 }
4815
4816 void
4817 set_gdbarch_frameless_function_invocation (struct gdbarch *gdbarch,
4818                                            gdbarch_frameless_function_invocation_ftype frameless_function_invocation)
4819 {
4820   gdbarch->frameless_function_invocation = frameless_function_invocation;
4821 }
4822
4823 int
4824 gdbarch_deprecated_frame_chain_p (struct gdbarch *gdbarch)
4825 {
4826   gdb_assert (gdbarch != NULL);
4827   return gdbarch->deprecated_frame_chain != 0;
4828 }
4829
4830 CORE_ADDR
4831 gdbarch_deprecated_frame_chain (struct gdbarch *gdbarch, struct frame_info *frame)
4832 {
4833   gdb_assert (gdbarch != NULL);
4834   if (gdbarch->deprecated_frame_chain == 0)
4835     internal_error (__FILE__, __LINE__,
4836                     "gdbarch: gdbarch_deprecated_frame_chain invalid");
4837   if (gdbarch_debug >= 2)
4838     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_frame_chain called\n");
4839   return gdbarch->deprecated_frame_chain (frame);
4840 }
4841
4842 void
4843 set_gdbarch_deprecated_frame_chain (struct gdbarch *gdbarch,
4844                                     gdbarch_deprecated_frame_chain_ftype deprecated_frame_chain)
4845 {
4846   gdbarch->deprecated_frame_chain = deprecated_frame_chain;
4847 }
4848
4849 int
4850 gdbarch_deprecated_frame_chain_valid_p (struct gdbarch *gdbarch)
4851 {
4852   gdb_assert (gdbarch != NULL);
4853   return gdbarch->deprecated_frame_chain_valid != 0;
4854 }
4855
4856 int
4857 gdbarch_deprecated_frame_chain_valid (struct gdbarch *gdbarch, CORE_ADDR chain, struct frame_info *thisframe)
4858 {
4859   gdb_assert (gdbarch != NULL);
4860   if (gdbarch->deprecated_frame_chain_valid == 0)
4861     internal_error (__FILE__, __LINE__,
4862                     "gdbarch: gdbarch_deprecated_frame_chain_valid invalid");
4863   if (gdbarch_debug >= 2)
4864     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_frame_chain_valid called\n");
4865   return gdbarch->deprecated_frame_chain_valid (chain, thisframe);
4866 }
4867
4868 void
4869 set_gdbarch_deprecated_frame_chain_valid (struct gdbarch *gdbarch,
4870                                           gdbarch_deprecated_frame_chain_valid_ftype deprecated_frame_chain_valid)
4871 {
4872   gdbarch->deprecated_frame_chain_valid = deprecated_frame_chain_valid;
4873 }
4874
4875 int
4876 gdbarch_deprecated_frame_saved_pc_p (struct gdbarch *gdbarch)
4877 {
4878   gdb_assert (gdbarch != NULL);
4879   return gdbarch->deprecated_frame_saved_pc != 0;
4880 }
4881
4882 CORE_ADDR
4883 gdbarch_deprecated_frame_saved_pc (struct gdbarch *gdbarch, struct frame_info *fi)
4884 {
4885   gdb_assert (gdbarch != NULL);
4886   if (gdbarch->deprecated_frame_saved_pc == 0)
4887     internal_error (__FILE__, __LINE__,
4888                     "gdbarch: gdbarch_deprecated_frame_saved_pc invalid");
4889   if (gdbarch_debug >= 2)
4890     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_frame_saved_pc called\n");
4891   return gdbarch->deprecated_frame_saved_pc (fi);
4892 }
4893
4894 void
4895 set_gdbarch_deprecated_frame_saved_pc (struct gdbarch *gdbarch,
4896                                        gdbarch_deprecated_frame_saved_pc_ftype deprecated_frame_saved_pc)
4897 {
4898   gdbarch->deprecated_frame_saved_pc = deprecated_frame_saved_pc;
4899 }
4900
4901 int
4902 gdbarch_unwind_pc_p (struct gdbarch *gdbarch)
4903 {
4904   gdb_assert (gdbarch != NULL);
4905   return gdbarch->unwind_pc != 0;
4906 }
4907
4908 CORE_ADDR
4909 gdbarch_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
4910 {
4911   gdb_assert (gdbarch != NULL);
4912   if (gdbarch->unwind_pc == 0)
4913     internal_error (__FILE__, __LINE__,
4914                     "gdbarch: gdbarch_unwind_pc invalid");
4915   if (gdbarch_debug >= 2)
4916     fprintf_unfiltered (gdb_stdlog, "gdbarch_unwind_pc called\n");
4917   return gdbarch->unwind_pc (gdbarch, next_frame);
4918 }
4919
4920 void
4921 set_gdbarch_unwind_pc (struct gdbarch *gdbarch,
4922                        gdbarch_unwind_pc_ftype unwind_pc)
4923 {
4924   gdbarch->unwind_pc = unwind_pc;
4925 }
4926
4927 CORE_ADDR
4928 gdbarch_frame_args_address (struct gdbarch *gdbarch, struct frame_info *fi)
4929 {
4930   gdb_assert (gdbarch != NULL);
4931   if (gdbarch->frame_args_address == 0)
4932     internal_error (__FILE__, __LINE__,
4933                     "gdbarch: gdbarch_frame_args_address invalid");
4934   if (gdbarch_debug >= 2)
4935     fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_args_address called\n");
4936   return gdbarch->frame_args_address (fi);
4937 }
4938
4939 void
4940 set_gdbarch_frame_args_address (struct gdbarch *gdbarch,
4941                                 gdbarch_frame_args_address_ftype frame_args_address)
4942 {
4943   gdbarch->frame_args_address = frame_args_address;
4944 }
4945
4946 CORE_ADDR
4947 gdbarch_frame_locals_address (struct gdbarch *gdbarch, struct frame_info *fi)
4948 {
4949   gdb_assert (gdbarch != NULL);
4950   if (gdbarch->frame_locals_address == 0)
4951     internal_error (__FILE__, __LINE__,
4952                     "gdbarch: gdbarch_frame_locals_address invalid");
4953   if (gdbarch_debug >= 2)
4954     fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_locals_address called\n");
4955   return gdbarch->frame_locals_address (fi);
4956 }
4957
4958 void
4959 set_gdbarch_frame_locals_address (struct gdbarch *gdbarch,
4960                                   gdbarch_frame_locals_address_ftype frame_locals_address)
4961 {
4962   gdbarch->frame_locals_address = frame_locals_address;
4963 }
4964
4965 CORE_ADDR
4966 gdbarch_saved_pc_after_call (struct gdbarch *gdbarch, struct frame_info *frame)
4967 {
4968   gdb_assert (gdbarch != NULL);
4969   if (gdbarch->saved_pc_after_call == 0)
4970     internal_error (__FILE__, __LINE__,
4971                     "gdbarch: gdbarch_saved_pc_after_call invalid");
4972   if (gdbarch_debug >= 2)
4973     fprintf_unfiltered (gdb_stdlog, "gdbarch_saved_pc_after_call called\n");
4974   return gdbarch->saved_pc_after_call (frame);
4975 }
4976
4977 void
4978 set_gdbarch_saved_pc_after_call (struct gdbarch *gdbarch,
4979                                  gdbarch_saved_pc_after_call_ftype saved_pc_after_call)
4980 {
4981   gdbarch->saved_pc_after_call = saved_pc_after_call;
4982 }
4983
4984 int
4985 gdbarch_frame_num_args (struct gdbarch *gdbarch, struct frame_info *frame)
4986 {
4987   gdb_assert (gdbarch != NULL);
4988   if (gdbarch->frame_num_args == 0)
4989     internal_error (__FILE__, __LINE__,
4990                     "gdbarch: gdbarch_frame_num_args invalid");
4991   if (gdbarch_debug >= 2)
4992     fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_num_args called\n");
4993   return gdbarch->frame_num_args (frame);
4994 }
4995
4996 void
4997 set_gdbarch_frame_num_args (struct gdbarch *gdbarch,
4998                             gdbarch_frame_num_args_ftype frame_num_args)
4999 {
5000   gdbarch->frame_num_args = frame_num_args;
5001 }
5002
5003 int
5004 gdbarch_stack_align_p (struct gdbarch *gdbarch)
5005 {
5006   gdb_assert (gdbarch != NULL);
5007   return gdbarch->stack_align != 0;
5008 }
5009
5010 CORE_ADDR
5011 gdbarch_stack_align (struct gdbarch *gdbarch, CORE_ADDR sp)
5012 {
5013   gdb_assert (gdbarch != NULL);
5014   if (gdbarch->stack_align == 0)
5015     internal_error (__FILE__, __LINE__,
5016                     "gdbarch: gdbarch_stack_align invalid");
5017   if (gdbarch_debug >= 2)
5018     fprintf_unfiltered (gdb_stdlog, "gdbarch_stack_align called\n");
5019   return gdbarch->stack_align (sp);
5020 }
5021
5022 void
5023 set_gdbarch_stack_align (struct gdbarch *gdbarch,
5024                          gdbarch_stack_align_ftype stack_align)
5025 {
5026   gdbarch->stack_align = stack_align;
5027 }
5028
5029 int
5030 gdbarch_frame_align_p (struct gdbarch *gdbarch)
5031 {
5032   gdb_assert (gdbarch != NULL);
5033   return gdbarch->frame_align != 0;
5034 }
5035
5036 CORE_ADDR
5037 gdbarch_frame_align (struct gdbarch *gdbarch, CORE_ADDR address)
5038 {
5039   gdb_assert (gdbarch != NULL);
5040   if (gdbarch->frame_align == 0)
5041     internal_error (__FILE__, __LINE__,
5042                     "gdbarch: gdbarch_frame_align invalid");
5043   if (gdbarch_debug >= 2)
5044     fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_align called\n");
5045   return gdbarch->frame_align (gdbarch, address);
5046 }
5047
5048 void
5049 set_gdbarch_frame_align (struct gdbarch *gdbarch,
5050                          gdbarch_frame_align_ftype frame_align)
5051 {
5052   gdbarch->frame_align = frame_align;
5053 }
5054
5055 int
5056 gdbarch_deprecated_extra_stack_alignment_needed (struct gdbarch *gdbarch)
5057 {
5058   gdb_assert (gdbarch != NULL);
5059   /* Skip verify of deprecated_extra_stack_alignment_needed, invalid_p == 0 */
5060   if (gdbarch_debug >= 2)
5061     fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_extra_stack_alignment_needed called\n");
5062   return gdbarch->deprecated_extra_stack_alignment_needed;
5063 }
5064
5065 void
5066 set_gdbarch_deprecated_extra_stack_alignment_needed (struct gdbarch *gdbarch,
5067                                                      int deprecated_extra_stack_alignment_needed)
5068 {
5069   gdbarch->deprecated_extra_stack_alignment_needed = deprecated_extra_stack_alignment_needed;
5070 }
5071
5072 int
5073 gdbarch_reg_struct_has_addr_p (struct gdbarch *gdbarch)
5074 {
5075   gdb_assert (gdbarch != NULL);
5076   return gdbarch->reg_struct_has_addr != 0;
5077 }
5078
5079 int
5080 gdbarch_reg_struct_has_addr (struct gdbarch *gdbarch, int gcc_p, struct type *type)
5081 {
5082   gdb_assert (gdbarch != NULL);
5083   if (gdbarch->reg_struct_has_addr == 0)
5084     internal_error (__FILE__, __LINE__,
5085                     "gdbarch: gdbarch_reg_struct_has_addr invalid");
5086   if (gdbarch_debug >= 2)
5087     fprintf_unfiltered (gdb_stdlog, "gdbarch_reg_struct_has_addr called\n");
5088   return gdbarch->reg_struct_has_addr (gcc_p, type);
5089 }
5090
5091 void
5092 set_gdbarch_reg_struct_has_addr (struct gdbarch *gdbarch,
5093                                  gdbarch_reg_struct_has_addr_ftype reg_struct_has_addr)
5094 {
5095   gdbarch->reg_struct_has_addr = reg_struct_has_addr;
5096 }
5097
5098 int
5099 gdbarch_save_dummy_frame_tos_p (struct gdbarch *gdbarch)
5100 {
5101   gdb_assert (gdbarch != NULL);
5102   return gdbarch->save_dummy_frame_tos != 0;
5103 }
5104
5105 void
5106 gdbarch_save_dummy_frame_tos (struct gdbarch *gdbarch, CORE_ADDR sp)
5107 {
5108   gdb_assert (gdbarch != NULL);
5109   if (gdbarch->save_dummy_frame_tos == 0)
5110     internal_error (__FILE__, __LINE__,
5111                     "gdbarch: gdbarch_save_dummy_frame_tos invalid");
5112   if (gdbarch_debug >= 2)
5113     fprintf_unfiltered (gdb_stdlog, "gdbarch_save_dummy_frame_tos called\n");
5114   gdbarch->save_dummy_frame_tos (sp);
5115 }
5116
5117 void
5118 set_gdbarch_save_dummy_frame_tos (struct gdbarch *gdbarch,
5119                                   gdbarch_save_dummy_frame_tos_ftype save_dummy_frame_tos)
5120 {
5121   gdbarch->save_dummy_frame_tos = save_dummy_frame_tos;
5122 }
5123
5124 int
5125 gdbarch_unwind_dummy_id_p (struct gdbarch *gdbarch)
5126 {
5127   gdb_assert (gdbarch != NULL);
5128   return gdbarch->unwind_dummy_id != 0;
5129 }
5130
5131 struct frame_id
5132 gdbarch_unwind_dummy_id (struct gdbarch *gdbarch, struct frame_info *info)
5133 {
5134   gdb_assert (gdbarch != NULL);
5135   if (gdbarch->unwind_dummy_id == 0)
5136     internal_error (__FILE__, __LINE__,
5137                     "gdbarch: gdbarch_unwind_dummy_id invalid");
5138   if (gdbarch_debug >= 2)
5139     fprintf_unfiltered (gdb_stdlog, "gdbarch_unwind_dummy_id called\n");
5140   return gdbarch->unwind_dummy_id (gdbarch, info);
5141 }
5142
5143 void
5144 set_gdbarch_unwind_dummy_id (struct gdbarch *gdbarch,
5145                              gdbarch_unwind_dummy_id_ftype unwind_dummy_id)
5146 {
5147   gdbarch->unwind_dummy_id = unwind_dummy_id;
5148 }
5149
5150 int
5151 gdbarch_parm_boundary (struct gdbarch *gdbarch)
5152 {
5153   gdb_assert (gdbarch != NULL);
5154   if (gdbarch_debug >= 2)
5155     fprintf_unfiltered (gdb_stdlog, "gdbarch_parm_boundary called\n");
5156   return gdbarch->parm_boundary;
5157 }
5158
5159 void
5160 set_gdbarch_parm_boundary (struct gdbarch *gdbarch,
5161                            int parm_boundary)
5162 {
5163   gdbarch->parm_boundary = parm_boundary;
5164 }
5165
5166 const struct floatformat *
5167 gdbarch_float_format (struct gdbarch *gdbarch)
5168 {
5169   gdb_assert (gdbarch != NULL);
5170   if (gdbarch_debug >= 2)
5171     fprintf_unfiltered (gdb_stdlog, "gdbarch_float_format called\n");
5172   return gdbarch->float_format;
5173 }
5174
5175 void
5176 set_gdbarch_float_format (struct gdbarch *gdbarch,
5177                           const struct floatformat * float_format)
5178 {
5179   gdbarch->float_format = float_format;
5180 }
5181
5182 const struct floatformat *
5183 gdbarch_double_format (struct gdbarch *gdbarch)
5184 {
5185   gdb_assert (gdbarch != NULL);
5186   if (gdbarch_debug >= 2)
5187     fprintf_unfiltered (gdb_stdlog, "gdbarch_double_format called\n");
5188   return gdbarch->double_format;
5189 }
5190
5191 void
5192 set_gdbarch_double_format (struct gdbarch *gdbarch,
5193                            const struct floatformat * double_format)
5194 {
5195   gdbarch->double_format = double_format;
5196 }
5197
5198 const struct floatformat *
5199 gdbarch_long_double_format (struct gdbarch *gdbarch)
5200 {
5201   gdb_assert (gdbarch != NULL);
5202   if (gdbarch_debug >= 2)
5203     fprintf_unfiltered (gdb_stdlog, "gdbarch_long_double_format called\n");
5204   return gdbarch->long_double_format;
5205 }
5206
5207 void
5208 set_gdbarch_long_double_format (struct gdbarch *gdbarch,
5209                                 const struct floatformat * long_double_format)
5210 {
5211   gdbarch->long_double_format = long_double_format;
5212 }
5213
5214 CORE_ADDR
5215 gdbarch_convert_from_func_ptr_addr (struct gdbarch *gdbarch, CORE_ADDR addr)
5216 {
5217   gdb_assert (gdbarch != NULL);
5218   if (gdbarch->convert_from_func_ptr_addr == 0)
5219     internal_error (__FILE__, __LINE__,
5220                     "gdbarch: gdbarch_convert_from_func_ptr_addr invalid");
5221   if (gdbarch_debug >= 2)
5222     fprintf_unfiltered (gdb_stdlog, "gdbarch_convert_from_func_ptr_addr called\n");
5223   return gdbarch->convert_from_func_ptr_addr (addr);
5224 }
5225
5226 void
5227 set_gdbarch_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
5228                                         gdbarch_convert_from_func_ptr_addr_ftype convert_from_func_ptr_addr)
5229 {
5230   gdbarch->convert_from_func_ptr_addr = convert_from_func_ptr_addr;
5231 }
5232
5233 CORE_ADDR
5234 gdbarch_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr)
5235 {
5236   gdb_assert (gdbarch != NULL);
5237   if (gdbarch->addr_bits_remove == 0)
5238     internal_error (__FILE__, __LINE__,
5239                     "gdbarch: gdbarch_addr_bits_remove invalid");
5240   if (gdbarch_debug >= 2)
5241     fprintf_unfiltered (gdb_stdlog, "gdbarch_addr_bits_remove called\n");
5242   return gdbarch->addr_bits_remove (addr);
5243 }
5244
5245 void
5246 set_gdbarch_addr_bits_remove (struct gdbarch *gdbarch,
5247                               gdbarch_addr_bits_remove_ftype addr_bits_remove)
5248 {
5249   gdbarch->addr_bits_remove = addr_bits_remove;
5250 }
5251
5252 CORE_ADDR
5253 gdbarch_smash_text_address (struct gdbarch *gdbarch, CORE_ADDR addr)
5254 {
5255   gdb_assert (gdbarch != NULL);
5256   if (gdbarch->smash_text_address == 0)
5257     internal_error (__FILE__, __LINE__,
5258                     "gdbarch: gdbarch_smash_text_address invalid");
5259   if (gdbarch_debug >= 2)
5260     fprintf_unfiltered (gdb_stdlog, "gdbarch_smash_text_address called\n");
5261   return gdbarch->smash_text_address (addr);
5262 }
5263
5264 void
5265 set_gdbarch_smash_text_address (struct gdbarch *gdbarch,
5266                                 gdbarch_smash_text_address_ftype smash_text_address)
5267 {
5268   gdbarch->smash_text_address = smash_text_address;
5269 }
5270
5271 int
5272 gdbarch_software_single_step_p (struct gdbarch *gdbarch)
5273 {
5274   gdb_assert (gdbarch != NULL);
5275   return gdbarch->software_single_step != 0;
5276 }
5277
5278 void
5279 gdbarch_software_single_step (struct gdbarch *gdbarch, enum target_signal sig, int insert_breakpoints_p)
5280 {
5281   gdb_assert (gdbarch != NULL);
5282   if (gdbarch->software_single_step == 0)
5283     internal_error (__FILE__, __LINE__,
5284                     "gdbarch: gdbarch_software_single_step invalid");
5285   if (gdbarch_debug >= 2)
5286     fprintf_unfiltered (gdb_stdlog, "gdbarch_software_single_step called\n");
5287   gdbarch->software_single_step (sig, insert_breakpoints_p);
5288 }
5289
5290 void
5291 set_gdbarch_software_single_step (struct gdbarch *gdbarch,
5292                                   gdbarch_software_single_step_ftype software_single_step)
5293 {
5294   gdbarch->software_single_step = software_single_step;
5295 }
5296
5297 int
5298 gdbarch_print_insn (struct gdbarch *gdbarch, bfd_vma vma, disassemble_info *info)
5299 {
5300   gdb_assert (gdbarch != NULL);
5301   if (gdbarch->print_insn == 0)
5302     internal_error (__FILE__, __LINE__,
5303                     "gdbarch: gdbarch_print_insn invalid");
5304   if (gdbarch_debug >= 2)
5305     fprintf_unfiltered (gdb_stdlog, "gdbarch_print_insn called\n");
5306   return gdbarch->print_insn (vma, info);
5307 }
5308
5309 void
5310 set_gdbarch_print_insn (struct gdbarch *gdbarch,
5311                         gdbarch_print_insn_ftype print_insn)
5312 {
5313   gdbarch->print_insn = print_insn;
5314 }
5315
5316 CORE_ADDR
5317 gdbarch_skip_trampoline_code (struct gdbarch *gdbarch, CORE_ADDR pc)
5318 {
5319   gdb_assert (gdbarch != NULL);
5320   if (gdbarch->skip_trampoline_code == 0)
5321     internal_error (__FILE__, __LINE__,
5322                     "gdbarch: gdbarch_skip_trampoline_code invalid");
5323   if (gdbarch_debug >= 2)
5324     fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_trampoline_code called\n");
5325   return gdbarch->skip_trampoline_code (pc);
5326 }
5327
5328 void
5329 set_gdbarch_skip_trampoline_code (struct gdbarch *gdbarch,
5330                                   gdbarch_skip_trampoline_code_ftype skip_trampoline_code)
5331 {
5332   gdbarch->skip_trampoline_code = skip_trampoline_code;
5333 }
5334
5335 int
5336 gdbarch_in_solib_call_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, char *name)
5337 {
5338   gdb_assert (gdbarch != NULL);
5339   if (gdbarch->in_solib_call_trampoline == 0)
5340     internal_error (__FILE__, __LINE__,
5341                     "gdbarch: gdbarch_in_solib_call_trampoline invalid");
5342   if (gdbarch_debug >= 2)
5343     fprintf_unfiltered (gdb_stdlog, "gdbarch_in_solib_call_trampoline called\n");
5344   return gdbarch->in_solib_call_trampoline (pc, name);
5345 }
5346
5347 void
5348 set_gdbarch_in_solib_call_trampoline (struct gdbarch *gdbarch,
5349                                       gdbarch_in_solib_call_trampoline_ftype in_solib_call_trampoline)
5350 {
5351   gdbarch->in_solib_call_trampoline = in_solib_call_trampoline;
5352 }
5353
5354 int
5355 gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, char *name)
5356 {
5357   gdb_assert (gdbarch != NULL);
5358   if (gdbarch->in_solib_return_trampoline == 0)
5359     internal_error (__FILE__, __LINE__,
5360                     "gdbarch: gdbarch_in_solib_return_trampoline invalid");
5361   if (gdbarch_debug >= 2)
5362     fprintf_unfiltered (gdb_stdlog, "gdbarch_in_solib_return_trampoline called\n");
5363   return gdbarch->in_solib_return_trampoline (pc, name);
5364 }
5365
5366 void
5367 set_gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch,
5368                                         gdbarch_in_solib_return_trampoline_ftype in_solib_return_trampoline)
5369 {
5370   gdbarch->in_solib_return_trampoline = in_solib_return_trampoline;
5371 }
5372
5373 int
5374 gdbarch_pc_in_sigtramp (struct gdbarch *gdbarch, CORE_ADDR pc, char *name)
5375 {
5376   gdb_assert (gdbarch != NULL);
5377   if (gdbarch->pc_in_sigtramp == 0)
5378     internal_error (__FILE__, __LINE__,
5379                     "gdbarch: gdbarch_pc_in_sigtramp invalid");
5380   if (gdbarch_debug >= 2)
5381     fprintf_unfiltered (gdb_stdlog, "gdbarch_pc_in_sigtramp called\n");
5382   return gdbarch->pc_in_sigtramp (pc, name);
5383 }
5384
5385 void
5386 set_gdbarch_pc_in_sigtramp (struct gdbarch *gdbarch,
5387                             gdbarch_pc_in_sigtramp_ftype pc_in_sigtramp)
5388 {
5389   gdbarch->pc_in_sigtramp = pc_in_sigtramp;
5390 }
5391
5392 int
5393 gdbarch_sigtramp_start_p (struct gdbarch *gdbarch)
5394 {
5395   gdb_assert (gdbarch != NULL);
5396   return gdbarch->sigtramp_start != 0;
5397 }
5398
5399 CORE_ADDR
5400 gdbarch_sigtramp_start (struct gdbarch *gdbarch, CORE_ADDR pc)
5401 {
5402   gdb_assert (gdbarch != NULL);
5403   if (gdbarch->sigtramp_start == 0)
5404     internal_error (__FILE__, __LINE__,
5405                     "gdbarch: gdbarch_sigtramp_start invalid");
5406   if (gdbarch_debug >= 2)
5407     fprintf_unfiltered (gdb_stdlog, "gdbarch_sigtramp_start called\n");
5408   return gdbarch->sigtramp_start (pc);
5409 }
5410
5411 void
5412 set_gdbarch_sigtramp_start (struct gdbarch *gdbarch,
5413                             gdbarch_sigtramp_start_ftype sigtramp_start)
5414 {
5415   gdbarch->sigtramp_start = sigtramp_start;
5416 }
5417
5418 int
5419 gdbarch_sigtramp_end_p (struct gdbarch *gdbarch)
5420 {
5421   gdb_assert (gdbarch != NULL);
5422   return gdbarch->sigtramp_end != 0;
5423 }
5424
5425 CORE_ADDR
5426 gdbarch_sigtramp_end (struct gdbarch *gdbarch, CORE_ADDR pc)
5427 {
5428   gdb_assert (gdbarch != NULL);
5429   if (gdbarch->sigtramp_end == 0)
5430     internal_error (__FILE__, __LINE__,
5431                     "gdbarch: gdbarch_sigtramp_end invalid");
5432   if (gdbarch_debug >= 2)
5433     fprintf_unfiltered (gdb_stdlog, "gdbarch_sigtramp_end called\n");
5434   return gdbarch->sigtramp_end (pc);
5435 }
5436
5437 void
5438 set_gdbarch_sigtramp_end (struct gdbarch *gdbarch,
5439                           gdbarch_sigtramp_end_ftype sigtramp_end)
5440 {
5441   gdbarch->sigtramp_end = sigtramp_end;
5442 }
5443
5444 int
5445 gdbarch_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR addr)
5446 {
5447   gdb_assert (gdbarch != NULL);
5448   if (gdbarch->in_function_epilogue_p == 0)
5449     internal_error (__FILE__, __LINE__,
5450                     "gdbarch: gdbarch_in_function_epilogue_p invalid");
5451   if (gdbarch_debug >= 2)
5452     fprintf_unfiltered (gdb_stdlog, "gdbarch_in_function_epilogue_p called\n");
5453   return gdbarch->in_function_epilogue_p (gdbarch, addr);
5454 }
5455
5456 void
5457 set_gdbarch_in_function_epilogue_p (struct gdbarch *gdbarch,
5458                                     gdbarch_in_function_epilogue_p_ftype in_function_epilogue_p)
5459 {
5460   gdbarch->in_function_epilogue_p = in_function_epilogue_p;
5461 }
5462
5463 char *
5464 gdbarch_construct_inferior_arguments (struct gdbarch *gdbarch, int argc, char **argv)
5465 {
5466   gdb_assert (gdbarch != NULL);
5467   if (gdbarch->construct_inferior_arguments == 0)
5468     internal_error (__FILE__, __LINE__,
5469                     "gdbarch: gdbarch_construct_inferior_arguments invalid");
5470   if (gdbarch_debug >= 2)
5471     fprintf_unfiltered (gdb_stdlog, "gdbarch_construct_inferior_arguments called\n");
5472   return gdbarch->construct_inferior_arguments (gdbarch, argc, argv);
5473 }
5474
5475 void
5476 set_gdbarch_construct_inferior_arguments (struct gdbarch *gdbarch,
5477                                           gdbarch_construct_inferior_arguments_ftype construct_inferior_arguments)
5478 {
5479   gdbarch->construct_inferior_arguments = construct_inferior_arguments;
5480 }
5481
5482 int
5483 gdbarch_dwarf2_build_frame_info_p (struct gdbarch *gdbarch)
5484 {
5485   gdb_assert (gdbarch != NULL);
5486   return gdbarch->dwarf2_build_frame_info != 0;
5487 }
5488
5489 void
5490 gdbarch_dwarf2_build_frame_info (struct gdbarch *gdbarch, struct objfile *objfile)
5491 {
5492   gdb_assert (gdbarch != NULL);
5493   if (gdbarch->dwarf2_build_frame_info == 0)
5494     internal_error (__FILE__, __LINE__,
5495                     "gdbarch: gdbarch_dwarf2_build_frame_info invalid");
5496   if (gdbarch_debug >= 2)
5497     fprintf_unfiltered (gdb_stdlog, "gdbarch_dwarf2_build_frame_info called\n");
5498   gdbarch->dwarf2_build_frame_info (objfile);
5499 }
5500
5501 void
5502 set_gdbarch_dwarf2_build_frame_info (struct gdbarch *gdbarch,
5503                                      gdbarch_dwarf2_build_frame_info_ftype dwarf2_build_frame_info)
5504 {
5505   gdbarch->dwarf2_build_frame_info = dwarf2_build_frame_info;
5506 }
5507
5508 void
5509 gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch, asymbol *sym, struct minimal_symbol *msym)
5510 {
5511   gdb_assert (gdbarch != NULL);
5512   if (gdbarch->elf_make_msymbol_special == 0)
5513     internal_error (__FILE__, __LINE__,
5514                     "gdbarch: gdbarch_elf_make_msymbol_special invalid");
5515   if (gdbarch_debug >= 2)
5516     fprintf_unfiltered (gdb_stdlog, "gdbarch_elf_make_msymbol_special called\n");
5517   gdbarch->elf_make_msymbol_special (sym, msym);
5518 }
5519
5520 void
5521 set_gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch,
5522                                       gdbarch_elf_make_msymbol_special_ftype elf_make_msymbol_special)
5523 {
5524   gdbarch->elf_make_msymbol_special = elf_make_msymbol_special;
5525 }
5526
5527 void
5528 gdbarch_coff_make_msymbol_special (struct gdbarch *gdbarch, int val, struct minimal_symbol *msym)
5529 {
5530   gdb_assert (gdbarch != NULL);
5531   if (gdbarch->coff_make_msymbol_special == 0)
5532     internal_error (__FILE__, __LINE__,
5533                     "gdbarch: gdbarch_coff_make_msymbol_special invalid");
5534   if (gdbarch_debug >= 2)
5535     fprintf_unfiltered (gdb_stdlog, "gdbarch_coff_make_msymbol_special called\n");
5536   gdbarch->coff_make_msymbol_special (val, msym);
5537 }
5538
5539 void
5540 set_gdbarch_coff_make_msymbol_special (struct gdbarch *gdbarch,
5541                                        gdbarch_coff_make_msymbol_special_ftype coff_make_msymbol_special)
5542 {
5543   gdbarch->coff_make_msymbol_special = coff_make_msymbol_special;
5544 }
5545
5546 const char *
5547 gdbarch_name_of_malloc (struct gdbarch *gdbarch)
5548 {
5549   gdb_assert (gdbarch != NULL);
5550   /* Skip verify of name_of_malloc, invalid_p == 0 */
5551   if (gdbarch_debug >= 2)
5552     fprintf_unfiltered (gdb_stdlog, "gdbarch_name_of_malloc called\n");
5553   return gdbarch->name_of_malloc;
5554 }
5555
5556 void
5557 set_gdbarch_name_of_malloc (struct gdbarch *gdbarch,
5558                             const char * name_of_malloc)
5559 {
5560   gdbarch->name_of_malloc = name_of_malloc;
5561 }
5562
5563 int
5564 gdbarch_cannot_step_breakpoint (struct gdbarch *gdbarch)
5565 {
5566   gdb_assert (gdbarch != NULL);
5567   /* Skip verify of cannot_step_breakpoint, invalid_p == 0 */
5568   if (gdbarch_debug >= 2)
5569     fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_step_breakpoint called\n");
5570   return gdbarch->cannot_step_breakpoint;
5571 }
5572
5573 void
5574 set_gdbarch_cannot_step_breakpoint (struct gdbarch *gdbarch,
5575                                     int cannot_step_breakpoint)
5576 {
5577   gdbarch->cannot_step_breakpoint = cannot_step_breakpoint;
5578 }
5579
5580 int
5581 gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch)
5582 {
5583   gdb_assert (gdbarch != NULL);
5584   /* Skip verify of have_nonsteppable_watchpoint, invalid_p == 0 */
5585   if (gdbarch_debug >= 2)
5586     fprintf_unfiltered (gdb_stdlog, "gdbarch_have_nonsteppable_watchpoint called\n");
5587   return gdbarch->have_nonsteppable_watchpoint;
5588 }
5589
5590 void
5591 set_gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch,
5592                                           int have_nonsteppable_watchpoint)
5593 {
5594   gdbarch->have_nonsteppable_watchpoint = have_nonsteppable_watchpoint;
5595 }
5596
5597 int
5598 gdbarch_address_class_type_flags_p (struct gdbarch *gdbarch)
5599 {
5600   gdb_assert (gdbarch != NULL);
5601   return gdbarch->address_class_type_flags != 0;
5602 }
5603
5604 int
5605 gdbarch_address_class_type_flags (struct gdbarch *gdbarch, int byte_size, int dwarf2_addr_class)
5606 {
5607   gdb_assert (gdbarch != NULL);
5608   if (gdbarch->address_class_type_flags == 0)
5609     internal_error (__FILE__, __LINE__,
5610                     "gdbarch: gdbarch_address_class_type_flags invalid");
5611   if (gdbarch_debug >= 2)
5612     fprintf_unfiltered (gdb_stdlog, "gdbarch_address_class_type_flags called\n");
5613   return gdbarch->address_class_type_flags (byte_size, dwarf2_addr_class);
5614 }
5615
5616 void
5617 set_gdbarch_address_class_type_flags (struct gdbarch *gdbarch,
5618                                       gdbarch_address_class_type_flags_ftype address_class_type_flags)
5619 {
5620   gdbarch->address_class_type_flags = address_class_type_flags;
5621 }
5622
5623 int
5624 gdbarch_address_class_type_flags_to_name_p (struct gdbarch *gdbarch)
5625 {
5626   gdb_assert (gdbarch != NULL);
5627   return gdbarch->address_class_type_flags_to_name != 0;
5628 }
5629
5630 const char *
5631 gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags)
5632 {
5633   gdb_assert (gdbarch != NULL);
5634   if (gdbarch->address_class_type_flags_to_name == 0)
5635     internal_error (__FILE__, __LINE__,
5636                     "gdbarch: gdbarch_address_class_type_flags_to_name invalid");
5637   if (gdbarch_debug >= 2)
5638     fprintf_unfiltered (gdb_stdlog, "gdbarch_address_class_type_flags_to_name called\n");
5639   return gdbarch->address_class_type_flags_to_name (gdbarch, type_flags);
5640 }
5641
5642 void
5643 set_gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch,
5644                                               gdbarch_address_class_type_flags_to_name_ftype address_class_type_flags_to_name)
5645 {
5646   gdbarch->address_class_type_flags_to_name = address_class_type_flags_to_name;
5647 }
5648
5649 int
5650 gdbarch_address_class_name_to_type_flags_p (struct gdbarch *gdbarch)
5651 {
5652   gdb_assert (gdbarch != NULL);
5653   return gdbarch->address_class_name_to_type_flags != 0;
5654 }
5655
5656 int
5657 gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, const char *name, int *type_flags_ptr)
5658 {
5659   gdb_assert (gdbarch != NULL);
5660   if (gdbarch->address_class_name_to_type_flags == 0)
5661     internal_error (__FILE__, __LINE__,
5662                     "gdbarch: gdbarch_address_class_name_to_type_flags invalid");
5663   if (gdbarch_debug >= 2)
5664     fprintf_unfiltered (gdb_stdlog, "gdbarch_address_class_name_to_type_flags called\n");
5665   return gdbarch->address_class_name_to_type_flags (gdbarch, name, type_flags_ptr);
5666 }
5667
5668 void
5669 set_gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch,
5670                                               gdbarch_address_class_name_to_type_flags_ftype address_class_name_to_type_flags)
5671 {
5672   gdbarch->address_class_name_to_type_flags = address_class_name_to_type_flags;
5673 }
5674
5675 int
5676 gdbarch_register_reggroup_p (struct gdbarch *gdbarch, int regnum, struct reggroup *reggroup)
5677 {
5678   gdb_assert (gdbarch != NULL);
5679   if (gdbarch->register_reggroup_p == 0)
5680     internal_error (__FILE__, __LINE__,
5681                     "gdbarch: gdbarch_register_reggroup_p invalid");
5682   if (gdbarch_debug >= 2)
5683     fprintf_unfiltered (gdb_stdlog, "gdbarch_register_reggroup_p called\n");
5684   return gdbarch->register_reggroup_p (gdbarch, regnum, reggroup);
5685 }
5686
5687 void
5688 set_gdbarch_register_reggroup_p (struct gdbarch *gdbarch,
5689                                  gdbarch_register_reggroup_p_ftype register_reggroup_p)
5690 {
5691   gdbarch->register_reggroup_p = register_reggroup_p;
5692 }
5693
5694
5695 /* Keep a registry of per-architecture data-pointers required by GDB
5696    modules. */
5697
5698 struct gdbarch_data
5699 {
5700   unsigned index;
5701   int init_p;
5702   gdbarch_data_init_ftype *init;
5703   gdbarch_data_free_ftype *free;
5704 };
5705
5706 struct gdbarch_data_registration
5707 {
5708   struct gdbarch_data *data;
5709   struct gdbarch_data_registration *next;
5710 };
5711
5712 struct gdbarch_data_registry
5713 {
5714   unsigned nr;
5715   struct gdbarch_data_registration *registrations;
5716 };
5717
5718 struct gdbarch_data_registry gdbarch_data_registry =
5719 {
5720   0, NULL,
5721 };
5722
5723 struct gdbarch_data *
5724 register_gdbarch_data (gdbarch_data_init_ftype *init,
5725                        gdbarch_data_free_ftype *free)
5726 {
5727   struct gdbarch_data_registration **curr;
5728   /* Append the new registraration.  */
5729   for (curr = &gdbarch_data_registry.registrations;
5730        (*curr) != NULL;
5731        curr = &(*curr)->next);
5732   (*curr) = XMALLOC (struct gdbarch_data_registration);
5733   (*curr)->next = NULL;
5734   (*curr)->data = XMALLOC (struct gdbarch_data);
5735   (*curr)->data->index = gdbarch_data_registry.nr++;
5736   (*curr)->data->init = init;
5737   (*curr)->data->init_p = 1;
5738   (*curr)->data->free = free;
5739   return (*curr)->data;
5740 }
5741
5742
5743 /* Create/delete the gdbarch data vector. */
5744
5745 static void
5746 alloc_gdbarch_data (struct gdbarch *gdbarch)
5747 {
5748   gdb_assert (gdbarch->data == NULL);
5749   gdbarch->nr_data = gdbarch_data_registry.nr;
5750   gdbarch->data = xcalloc (gdbarch->nr_data, sizeof (void*));
5751 }
5752
5753 static void
5754 free_gdbarch_data (struct gdbarch *gdbarch)
5755 {
5756   struct gdbarch_data_registration *rego;
5757   gdb_assert (gdbarch->data != NULL);
5758   for (rego = gdbarch_data_registry.registrations;
5759        rego != NULL;
5760        rego = rego->next)
5761     {
5762       struct gdbarch_data *data = rego->data;
5763       gdb_assert (data->index < gdbarch->nr_data);
5764       if (data->free != NULL && gdbarch->data[data->index] != NULL)
5765         {
5766           data->free (gdbarch, gdbarch->data[data->index]);
5767           gdbarch->data[data->index] = NULL;
5768         }
5769     }
5770   xfree (gdbarch->data);
5771   gdbarch->data = NULL;
5772 }
5773
5774
5775 /* Initialize the current value of the specified per-architecture
5776    data-pointer. */
5777
5778 void
5779 set_gdbarch_data (struct gdbarch *gdbarch,
5780                   struct gdbarch_data *data,
5781                   void *pointer)
5782 {
5783   gdb_assert (data->index < gdbarch->nr_data);
5784   if (gdbarch->data[data->index] != NULL)
5785     {
5786       gdb_assert (data->free != NULL);
5787       data->free (gdbarch, gdbarch->data[data->index]);
5788     }
5789   gdbarch->data[data->index] = pointer;
5790 }
5791
5792 /* Return the current value of the specified per-architecture
5793    data-pointer. */
5794
5795 void *
5796 gdbarch_data (struct gdbarch *gdbarch, struct gdbarch_data *data)
5797 {
5798   gdb_assert (data->index < gdbarch->nr_data);
5799   /* The data-pointer isn't initialized, call init() to get a value but
5800      only if the architecture initializaiton has completed.  Otherwise
5801      punt - hope that the caller knows what they are doing.  */
5802   if (gdbarch->data[data->index] == NULL
5803       && gdbarch->initialized_p)
5804     {
5805       /* Be careful to detect an initialization cycle.  */
5806       gdb_assert (data->init_p);
5807       data->init_p = 0;
5808       gdb_assert (data->init != NULL);
5809       gdbarch->data[data->index] = data->init (gdbarch);
5810       data->init_p = 1;
5811       gdb_assert (gdbarch->data[data->index] != NULL);
5812     }
5813   return gdbarch->data[data->index];
5814 }
5815
5816
5817
5818 /* Keep a registry of swapped data required by GDB modules. */
5819
5820 struct gdbarch_swap
5821 {
5822   void *swap;
5823   struct gdbarch_swap_registration *source;
5824   struct gdbarch_swap *next;
5825 };
5826
5827 struct gdbarch_swap_registration
5828 {
5829   void *data;
5830   unsigned long sizeof_data;
5831   gdbarch_swap_ftype *init;
5832   struct gdbarch_swap_registration *next;
5833 };
5834
5835 struct gdbarch_swap_registry
5836 {
5837   int nr;
5838   struct gdbarch_swap_registration *registrations;
5839 };
5840
5841 struct gdbarch_swap_registry gdbarch_swap_registry = 
5842 {
5843   0, NULL,
5844 };
5845
5846 void
5847 register_gdbarch_swap (void *data,
5848                        unsigned long sizeof_data,
5849                        gdbarch_swap_ftype *init)
5850 {
5851   struct gdbarch_swap_registration **rego;
5852   for (rego = &gdbarch_swap_registry.registrations;
5853        (*rego) != NULL;
5854        rego = &(*rego)->next);
5855   (*rego) = XMALLOC (struct gdbarch_swap_registration);
5856   (*rego)->next = NULL;
5857   (*rego)->init = init;
5858   (*rego)->data = data;
5859   (*rego)->sizeof_data = sizeof_data;
5860 }
5861
5862 static void
5863 clear_gdbarch_swap (struct gdbarch *gdbarch)
5864 {
5865   struct gdbarch_swap *curr;
5866   for (curr = gdbarch->swap;
5867        curr != NULL;
5868        curr = curr->next)
5869     {
5870       memset (curr->source->data, 0, curr->source->sizeof_data);
5871     }
5872 }
5873
5874 static void
5875 init_gdbarch_swap (struct gdbarch *gdbarch)
5876 {
5877   struct gdbarch_swap_registration *rego;
5878   struct gdbarch_swap **curr = &gdbarch->swap;
5879   for (rego = gdbarch_swap_registry.registrations;
5880        rego != NULL;
5881        rego = rego->next)
5882     {
5883       if (rego->data != NULL)
5884         {
5885           (*curr) = XMALLOC (struct gdbarch_swap);
5886           (*curr)->source = rego;
5887           (*curr)->swap = xmalloc (rego->sizeof_data);
5888           (*curr)->next = NULL;
5889           curr = &(*curr)->next;
5890         }
5891       if (rego->init != NULL)
5892         rego->init ();
5893     }
5894 }
5895
5896 static void
5897 swapout_gdbarch_swap (struct gdbarch *gdbarch)
5898 {
5899   struct gdbarch_swap *curr;
5900   for (curr = gdbarch->swap;
5901        curr != NULL;
5902        curr = curr->next)
5903     memcpy (curr->swap, curr->source->data, curr->source->sizeof_data);
5904 }
5905
5906 static void
5907 swapin_gdbarch_swap (struct gdbarch *gdbarch)
5908 {
5909   struct gdbarch_swap *curr;
5910   for (curr = gdbarch->swap;
5911        curr != NULL;
5912        curr = curr->next)
5913     memcpy (curr->source->data, curr->swap, curr->source->sizeof_data);
5914 }
5915
5916
5917 /* Keep a registry of the architectures known by GDB. */
5918
5919 struct gdbarch_registration
5920 {
5921   enum bfd_architecture bfd_architecture;
5922   gdbarch_init_ftype *init;
5923   gdbarch_dump_tdep_ftype *dump_tdep;
5924   struct gdbarch_list *arches;
5925   struct gdbarch_registration *next;
5926 };
5927
5928 static struct gdbarch_registration *gdbarch_registry = NULL;
5929
5930 static void
5931 append_name (const char ***buf, int *nr, const char *name)
5932 {
5933   *buf = xrealloc (*buf, sizeof (char**) * (*nr + 1));
5934   (*buf)[*nr] = name;
5935   *nr += 1;
5936 }
5937
5938 const char **
5939 gdbarch_printable_names (void)
5940 {
5941   if (GDB_MULTI_ARCH)
5942     {
5943       /* Accumulate a list of names based on the registed list of
5944          architectures. */
5945       enum bfd_architecture a;
5946       int nr_arches = 0;
5947       const char **arches = NULL;
5948       struct gdbarch_registration *rego;
5949       for (rego = gdbarch_registry;
5950            rego != NULL;
5951            rego = rego->next)
5952         {
5953           const struct bfd_arch_info *ap;
5954           ap = bfd_lookup_arch (rego->bfd_architecture, 0);
5955           if (ap == NULL)
5956             internal_error (__FILE__, __LINE__,
5957                             "gdbarch_architecture_names: multi-arch unknown");
5958           do
5959             {
5960               append_name (&arches, &nr_arches, ap->printable_name);
5961               ap = ap->next;
5962             }
5963           while (ap != NULL);
5964         }
5965       append_name (&arches, &nr_arches, NULL);
5966       return arches;
5967     }
5968   else
5969     /* Just return all the architectures that BFD knows.  Assume that
5970        the legacy architecture framework supports them. */
5971     return bfd_arch_list ();
5972 }
5973
5974
5975 void
5976 gdbarch_register (enum bfd_architecture bfd_architecture,
5977                   gdbarch_init_ftype *init,
5978                   gdbarch_dump_tdep_ftype *dump_tdep)
5979 {
5980   struct gdbarch_registration **curr;
5981   const struct bfd_arch_info *bfd_arch_info;
5982   /* Check that BFD recognizes this architecture */
5983   bfd_arch_info = bfd_lookup_arch (bfd_architecture, 0);
5984   if (bfd_arch_info == NULL)
5985     {
5986       internal_error (__FILE__, __LINE__,
5987                       "gdbarch: Attempt to register unknown architecture (%d)",
5988                       bfd_architecture);
5989     }
5990   /* Check that we haven't seen this architecture before */
5991   for (curr = &gdbarch_registry;
5992        (*curr) != NULL;
5993        curr = &(*curr)->next)
5994     {
5995       if (bfd_architecture == (*curr)->bfd_architecture)
5996         internal_error (__FILE__, __LINE__,
5997                         "gdbarch: Duplicate registraration of architecture (%s)",
5998                         bfd_arch_info->printable_name);
5999     }
6000   /* log it */
6001   if (gdbarch_debug)
6002     fprintf_unfiltered (gdb_stdlog, "register_gdbarch_init (%s, 0x%08lx)\n",
6003                         bfd_arch_info->printable_name,
6004                         (long) init);
6005   /* Append it */
6006   (*curr) = XMALLOC (struct gdbarch_registration);
6007   (*curr)->bfd_architecture = bfd_architecture;
6008   (*curr)->init = init;
6009   (*curr)->dump_tdep = dump_tdep;
6010   (*curr)->arches = NULL;
6011   (*curr)->next = NULL;
6012   /* When non- multi-arch, install whatever target dump routine we've
6013      been provided - hopefully that routine has been written correctly
6014      and works regardless of multi-arch. */
6015   if (!GDB_MULTI_ARCH && dump_tdep != NULL
6016       && startup_gdbarch.dump_tdep == NULL)
6017     startup_gdbarch.dump_tdep = dump_tdep;
6018 }
6019
6020 void
6021 register_gdbarch_init (enum bfd_architecture bfd_architecture,
6022                        gdbarch_init_ftype *init)
6023 {
6024   gdbarch_register (bfd_architecture, init, NULL);
6025 }
6026
6027
6028 /* Look for an architecture using gdbarch_info.  Base search on only
6029    BFD_ARCH_INFO and BYTE_ORDER. */
6030
6031 struct gdbarch_list *
6032 gdbarch_list_lookup_by_info (struct gdbarch_list *arches,
6033                              const struct gdbarch_info *info)
6034 {
6035   for (; arches != NULL; arches = arches->next)
6036     {
6037       if (info->bfd_arch_info != arches->gdbarch->bfd_arch_info)
6038         continue;
6039       if (info->byte_order != arches->gdbarch->byte_order)
6040         continue;
6041       if (info->osabi != arches->gdbarch->osabi)
6042         continue;
6043       return arches;
6044     }
6045   return NULL;
6046 }
6047
6048
6049 /* Update the current architecture. Return ZERO if the update request
6050    failed. */
6051
6052 int
6053 gdbarch_update_p (struct gdbarch_info info)
6054 {
6055   struct gdbarch *new_gdbarch;
6056   struct gdbarch *old_gdbarch;
6057   struct gdbarch_registration *rego;
6058
6059   /* Fill in missing parts of the INFO struct using a number of
6060      sources: ``set ...''; INFOabfd supplied; existing target.  */
6061
6062   /* ``(gdb) set architecture ...'' */
6063   if (info.bfd_arch_info == NULL
6064       && !TARGET_ARCHITECTURE_AUTO)
6065     info.bfd_arch_info = TARGET_ARCHITECTURE;
6066   if (info.bfd_arch_info == NULL
6067       && info.abfd != NULL
6068       && bfd_get_arch (info.abfd) != bfd_arch_unknown
6069       && bfd_get_arch (info.abfd) != bfd_arch_obscure)
6070     info.bfd_arch_info = bfd_get_arch_info (info.abfd);
6071   if (info.bfd_arch_info == NULL)
6072     info.bfd_arch_info = TARGET_ARCHITECTURE;
6073
6074   /* ``(gdb) set byte-order ...'' */
6075   if (info.byte_order == BFD_ENDIAN_UNKNOWN
6076       && !TARGET_BYTE_ORDER_AUTO)
6077     info.byte_order = TARGET_BYTE_ORDER;
6078   /* From the INFO struct. */
6079   if (info.byte_order == BFD_ENDIAN_UNKNOWN
6080       && info.abfd != NULL)
6081     info.byte_order = (bfd_big_endian (info.abfd) ? BFD_ENDIAN_BIG
6082                        : bfd_little_endian (info.abfd) ? BFD_ENDIAN_LITTLE
6083                        : BFD_ENDIAN_UNKNOWN);
6084   /* From the current target. */
6085   if (info.byte_order == BFD_ENDIAN_UNKNOWN)
6086     info.byte_order = TARGET_BYTE_ORDER;
6087
6088   /* ``(gdb) set osabi ...'' is handled by gdbarch_lookup_osabi.  */
6089   if (info.osabi == GDB_OSABI_UNINITIALIZED)
6090     info.osabi = gdbarch_lookup_osabi (info.abfd);
6091   if (info.osabi == GDB_OSABI_UNINITIALIZED)
6092     info.osabi = current_gdbarch->osabi;
6093
6094   /* Must have found some sort of architecture. */
6095   gdb_assert (info.bfd_arch_info != NULL);
6096
6097   if (gdbarch_debug)
6098     {
6099       fprintf_unfiltered (gdb_stdlog,
6100                           "gdbarch_update: info.bfd_arch_info %s\n",
6101                           (info.bfd_arch_info != NULL
6102                            ? info.bfd_arch_info->printable_name
6103                            : "(null)"));
6104       fprintf_unfiltered (gdb_stdlog,
6105                           "gdbarch_update: info.byte_order %d (%s)\n",
6106                           info.byte_order,
6107                           (info.byte_order == BFD_ENDIAN_BIG ? "big"
6108                            : info.byte_order == BFD_ENDIAN_LITTLE ? "little"
6109                            : "default"));
6110       fprintf_unfiltered (gdb_stdlog,
6111                           "gdbarch_update: info.osabi %d (%s)\n",
6112                           info.osabi, gdbarch_osabi_name (info.osabi));
6113       fprintf_unfiltered (gdb_stdlog,
6114                           "gdbarch_update: info.abfd 0x%lx\n",
6115                           (long) info.abfd);
6116       fprintf_unfiltered (gdb_stdlog,
6117                           "gdbarch_update: info.tdep_info 0x%lx\n",
6118                           (long) info.tdep_info);
6119     }
6120
6121   /* Find the target that knows about this architecture. */
6122   for (rego = gdbarch_registry;
6123        rego != NULL;
6124        rego = rego->next)
6125     if (rego->bfd_architecture == info.bfd_arch_info->arch)
6126       break;
6127   if (rego == NULL)
6128     {
6129       if (gdbarch_debug)
6130         fprintf_unfiltered (gdb_stdlog, "gdbarch_update: No matching architecture\n");
6131       return 0;
6132     }
6133
6134   /* Swap the data belonging to the old target out setting the
6135      installed data to zero.  This stops the ->init() function trying
6136      to refer to the previous architecture's global data structures.  */
6137   swapout_gdbarch_swap (current_gdbarch);
6138   clear_gdbarch_swap (current_gdbarch);
6139
6140   /* Save the previously selected architecture, setting the global to
6141      NULL.  This stops ->init() trying to use the previous
6142      architecture's configuration.  The previous architecture may not
6143      even be of the same architecture family.  The most recent
6144      architecture of the same family is found at the head of the
6145      rego->arches list.  */
6146   old_gdbarch = current_gdbarch;
6147   current_gdbarch = NULL;
6148
6149   /* Ask the target for a replacement architecture. */
6150   new_gdbarch = rego->init (info, rego->arches);
6151
6152   /* Did the target like it?  No. Reject the change and revert to the
6153      old architecture.  */
6154   if (new_gdbarch == NULL)
6155     {
6156       if (gdbarch_debug)
6157         fprintf_unfiltered (gdb_stdlog, "gdbarch_update: Target rejected architecture\n");
6158       swapin_gdbarch_swap (old_gdbarch);
6159       current_gdbarch = old_gdbarch;
6160       return 0;
6161     }
6162
6163   /* Did the architecture change?  No.  Oops, put the old architecture
6164      back.  */
6165   if (old_gdbarch == new_gdbarch)
6166     {
6167       if (gdbarch_debug)
6168         fprintf_unfiltered (gdb_stdlog, "gdbarch_update: Architecture 0x%08lx (%s) unchanged\n",
6169                             (long) new_gdbarch,
6170                             new_gdbarch->bfd_arch_info->printable_name);
6171       swapin_gdbarch_swap (old_gdbarch);
6172       current_gdbarch = old_gdbarch;
6173       return 1;
6174     }
6175
6176   /* Is this a pre-existing architecture?  Yes. Move it to the front
6177      of the list of architectures (keeping the list sorted Most
6178      Recently Used) and then copy it in.  */
6179   {
6180     struct gdbarch_list **list;
6181     for (list = &rego->arches;
6182          (*list) != NULL;
6183          list = &(*list)->next)
6184       {
6185         if ((*list)->gdbarch == new_gdbarch)
6186           {
6187             struct gdbarch_list *this;
6188             if (gdbarch_debug)
6189               fprintf_unfiltered (gdb_stdlog,
6190                                   "gdbarch_update: Previous architecture 0x%08lx (%s) selected\n",
6191                                   (long) new_gdbarch,
6192                                   new_gdbarch->bfd_arch_info->printable_name);
6193             /* Unlink this.  */
6194             this = (*list);
6195             (*list) = this->next;
6196             /* Insert in the front.  */
6197             this->next = rego->arches;
6198             rego->arches = this;
6199             /* Copy the new architecture in.  */
6200             current_gdbarch = new_gdbarch;
6201             swapin_gdbarch_swap (new_gdbarch);
6202             architecture_changed_event ();
6203             return 1;
6204           }
6205       }
6206   }
6207
6208   /* Prepend this new architecture to the architecture list (keep the
6209      list sorted Most Recently Used).  */
6210   {
6211     struct gdbarch_list *this = XMALLOC (struct gdbarch_list);
6212     this->next = rego->arches;
6213     this->gdbarch = new_gdbarch;
6214     rego->arches = this;
6215   }    
6216
6217   /* Switch to this new architecture marking it initialized.  */
6218   current_gdbarch = new_gdbarch;
6219   current_gdbarch->initialized_p = 1;
6220   if (gdbarch_debug)
6221     {
6222       fprintf_unfiltered (gdb_stdlog,
6223                           "gdbarch_update: New architecture 0x%08lx (%s) selected\n",
6224                           (long) new_gdbarch,
6225                           new_gdbarch->bfd_arch_info->printable_name);
6226     }
6227   
6228   /* Check that the newly installed architecture is valid.  Plug in
6229      any post init values.  */
6230   new_gdbarch->dump_tdep = rego->dump_tdep;
6231   verify_gdbarch (new_gdbarch);
6232
6233   /* Initialize the per-architecture memory (swap) areas.
6234      CURRENT_GDBARCH must be update before these modules are
6235      called. */
6236   init_gdbarch_swap (new_gdbarch);
6237   
6238   /* Initialize the per-architecture data.  CURRENT_GDBARCH
6239      must be updated before these modules are called. */
6240   architecture_changed_event ();
6241
6242   if (gdbarch_debug)
6243     gdbarch_dump (current_gdbarch, gdb_stdlog);
6244
6245   return 1;
6246 }
6247
6248
6249 /* Disassembler */
6250
6251 /* Pointer to the target-dependent disassembly function.  */
6252 int (*tm_print_insn) (bfd_vma, disassemble_info *);
6253 disassemble_info tm_print_insn_info;
6254
6255
6256 extern void _initialize_gdbarch (void);
6257
6258 void
6259 _initialize_gdbarch (void)
6260 {
6261   struct cmd_list_element *c;
6262
6263   INIT_DISASSEMBLE_INFO_NO_ARCH (tm_print_insn_info, gdb_stdout, (fprintf_ftype)fprintf_filtered);
6264   tm_print_insn_info.flavour = bfd_target_unknown_flavour;
6265   tm_print_insn_info.read_memory_func = dis_asm_read_memory;
6266   tm_print_insn_info.memory_error_func = dis_asm_memory_error;
6267   tm_print_insn_info.print_address_func = dis_asm_print_address;
6268
6269   add_show_from_set (add_set_cmd ("arch",
6270                                   class_maintenance,
6271                                   var_zinteger,
6272                                   (char *)&gdbarch_debug,
6273                                   "Set architecture debugging.\n\
6274 When non-zero, architecture debugging is enabled.", &setdebuglist),
6275                      &showdebuglist);
6276   c = add_set_cmd ("archdebug",
6277                    class_maintenance,
6278                    var_zinteger,
6279                    (char *)&gdbarch_debug,
6280                    "Set architecture debugging.\n\
6281 When non-zero, architecture debugging is enabled.", &setlist);
6282
6283   deprecate_cmd (c, "set debug arch");
6284   deprecate_cmd (add_show_from_set (c, &showlist), "show debug arch");
6285 }