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