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