* record.c (record_open, record_store_registers, record_xfer_partial):
[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
5 Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
6 Free Software Foundation, Inc.
7
8 This file is part of GDB.
9
10 This program is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation; either version 3 of the License, or
13 (at your option) any later version.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with this program. If not, see <http://www.gnu.org/licenses/>. */
22
23 /* This file was created with the aid of ``gdbarch.sh''.
24
25 The Bourne shell script ``gdbarch.sh'' creates the files
26 ``new-gdbarch.c'' and ``new-gdbarch.h and then compares them
27 against the existing ``gdbarch.[hc]''. Any differences found
28 being reported.
29
30 If editing this file, please also run gdbarch.sh and merge any
31 changes into that script. Conversely, when making sweeping changes
32 to this file, modifying gdbarch.sh and using its output may prove
33 easier. */
34
35
36 #include "defs.h"
37 #include "arch-utils.h"
38
39 #include "gdbcmd.h"
40 #include "inferior.h"
41 #include "symcat.h"
42
43 #include "floatformat.h"
44
45 #include "gdb_assert.h"
46 #include "gdb_string.h"
47 #include "reggroups.h"
48 #include "osabi.h"
49 #include "gdb_obstack.h"
50 #include "observer.h"
51 #include "regcache.h"
52
53 /* Static function declarations */
54
55 static void alloc_gdbarch_data (struct gdbarch *);
56
57 /* Non-zero if we want to trace architecture code. */
58
59 #ifndef GDBARCH_DEBUG
60 #define GDBARCH_DEBUG 0
61 #endif
62 int gdbarch_debug = GDBARCH_DEBUG;
63 static void
64 show_gdbarch_debug (struct ui_file *file, int from_tty,
65 struct cmd_list_element *c, const char *value)
66 {
67 fprintf_filtered (file, _("Architecture debugging is %s.\n"), value);
68 }
69
70 static const char *
71 pformat (const struct floatformat **format)
72 {
73 if (format == NULL)
74 return "(null)";
75 else
76 /* Just print out one of them - this is only for diagnostics. */
77 return format[0]->name;
78 }
79
80
81 /* Maintain the struct gdbarch object */
82
83 struct gdbarch
84 {
85 /* Has this architecture been fully initialized? */
86 int initialized_p;
87
88 /* An obstack bound to the lifetime of the architecture. */
89 struct obstack *obstack;
90
91 /* basic architectural information */
92 const struct bfd_arch_info * bfd_arch_info;
93 int byte_order;
94 int byte_order_for_code;
95 enum gdb_osabi osabi;
96 const struct target_desc * target_desc;
97
98 /* target specific vector. */
99 struct gdbarch_tdep *tdep;
100 gdbarch_dump_tdep_ftype *dump_tdep;
101
102 /* per-architecture data-pointers */
103 unsigned nr_data;
104 void **data;
105
106 /* per-architecture swap-regions */
107 struct gdbarch_swap *swap;
108
109 /* Multi-arch values.
110
111 When extending this structure you must:
112
113 Add the field below.
114
115 Declare set/get functions and define the corresponding
116 macro in gdbarch.h.
117
118 gdbarch_alloc(): If zero/NULL is not a suitable default,
119 initialize the new field.
120
121 verify_gdbarch(): Confirm that the target updated the field
122 correctly.
123
124 gdbarch_dump(): Add a fprintf_unfiltered call so that the new
125 field is dumped out
126
127 ``startup_gdbarch()'': Append an initial value to the static
128 variable (base values on the host's c-type system).
129
130 get_gdbarch(): Implement the set/get functions (probably using
131 the macro's as shortcuts).
132
133 */
134
135 int bits_big_endian;
136 int short_bit;
137 int int_bit;
138 int long_bit;
139 int long_long_bit;
140 int float_bit;
141 const struct floatformat ** float_format;
142 int double_bit;
143 const struct floatformat ** double_format;
144 int long_double_bit;
145 const struct floatformat ** long_double_format;
146 int ptr_bit;
147 int addr_bit;
148 int char_signed;
149 gdbarch_read_pc_ftype *read_pc;
150 gdbarch_write_pc_ftype *write_pc;
151 gdbarch_virtual_frame_pointer_ftype *virtual_frame_pointer;
152 gdbarch_pseudo_register_read_ftype *pseudo_register_read;
153 gdbarch_pseudo_register_write_ftype *pseudo_register_write;
154 int num_regs;
155 int num_pseudo_regs;
156 int sp_regnum;
157 int pc_regnum;
158 int ps_regnum;
159 int fp0_regnum;
160 gdbarch_stab_reg_to_regnum_ftype *stab_reg_to_regnum;
161 gdbarch_ecoff_reg_to_regnum_ftype *ecoff_reg_to_regnum;
162 gdbarch_sdb_reg_to_regnum_ftype *sdb_reg_to_regnum;
163 gdbarch_dwarf2_reg_to_regnum_ftype *dwarf2_reg_to_regnum;
164 gdbarch_register_name_ftype *register_name;
165 gdbarch_register_type_ftype *register_type;
166 gdbarch_dummy_id_ftype *dummy_id;
167 int deprecated_fp_regnum;
168 gdbarch_push_dummy_call_ftype *push_dummy_call;
169 int call_dummy_location;
170 gdbarch_push_dummy_code_ftype *push_dummy_code;
171 gdbarch_print_registers_info_ftype *print_registers_info;
172 gdbarch_print_float_info_ftype *print_float_info;
173 gdbarch_print_vector_info_ftype *print_vector_info;
174 gdbarch_register_sim_regno_ftype *register_sim_regno;
175 gdbarch_cannot_fetch_register_ftype *cannot_fetch_register;
176 gdbarch_cannot_store_register_ftype *cannot_store_register;
177 gdbarch_get_longjmp_target_ftype *get_longjmp_target;
178 int believe_pcc_promotion;
179 gdbarch_convert_register_p_ftype *convert_register_p;
180 gdbarch_register_to_value_ftype *register_to_value;
181 gdbarch_value_to_register_ftype *value_to_register;
182 gdbarch_value_from_register_ftype *value_from_register;
183 gdbarch_pointer_to_address_ftype *pointer_to_address;
184 gdbarch_address_to_pointer_ftype *address_to_pointer;
185 gdbarch_integer_to_address_ftype *integer_to_address;
186 gdbarch_return_value_ftype *return_value;
187 gdbarch_skip_prologue_ftype *skip_prologue;
188 gdbarch_skip_main_prologue_ftype *skip_main_prologue;
189 gdbarch_inner_than_ftype *inner_than;
190 gdbarch_breakpoint_from_pc_ftype *breakpoint_from_pc;
191 gdbarch_adjust_breakpoint_address_ftype *adjust_breakpoint_address;
192 gdbarch_memory_insert_breakpoint_ftype *memory_insert_breakpoint;
193 gdbarch_memory_remove_breakpoint_ftype *memory_remove_breakpoint;
194 CORE_ADDR decr_pc_after_break;
195 CORE_ADDR deprecated_function_start_offset;
196 gdbarch_remote_register_number_ftype *remote_register_number;
197 gdbarch_fetch_tls_load_module_address_ftype *fetch_tls_load_module_address;
198 CORE_ADDR frame_args_skip;
199 gdbarch_unwind_pc_ftype *unwind_pc;
200 gdbarch_unwind_sp_ftype *unwind_sp;
201 gdbarch_frame_num_args_ftype *frame_num_args;
202 gdbarch_frame_align_ftype *frame_align;
203 gdbarch_stabs_argument_has_addr_ftype *stabs_argument_has_addr;
204 int frame_red_zone_size;
205 gdbarch_convert_from_func_ptr_addr_ftype *convert_from_func_ptr_addr;
206 gdbarch_addr_bits_remove_ftype *addr_bits_remove;
207 gdbarch_smash_text_address_ftype *smash_text_address;
208 gdbarch_software_single_step_ftype *software_single_step;
209 gdbarch_single_step_through_delay_ftype *single_step_through_delay;
210 gdbarch_print_insn_ftype *print_insn;
211 gdbarch_skip_trampoline_code_ftype *skip_trampoline_code;
212 gdbarch_skip_solib_resolver_ftype *skip_solib_resolver;
213 gdbarch_in_solib_return_trampoline_ftype *in_solib_return_trampoline;
214 gdbarch_in_function_epilogue_p_ftype *in_function_epilogue_p;
215 gdbarch_elf_make_msymbol_special_ftype *elf_make_msymbol_special;
216 gdbarch_coff_make_msymbol_special_ftype *coff_make_msymbol_special;
217 int cannot_step_breakpoint;
218 int have_nonsteppable_watchpoint;
219 gdbarch_address_class_type_flags_ftype *address_class_type_flags;
220 gdbarch_address_class_type_flags_to_name_ftype *address_class_type_flags_to_name;
221 gdbarch_address_class_name_to_type_flags_ftype *address_class_name_to_type_flags;
222 gdbarch_register_reggroup_p_ftype *register_reggroup_p;
223 gdbarch_fetch_pointer_argument_ftype *fetch_pointer_argument;
224 gdbarch_regset_from_core_section_ftype *regset_from_core_section;
225 int core_reg_section_encodes_pid;
226 struct core_regset_section * core_regset_sections;
227 gdbarch_core_xfer_shared_libraries_ftype *core_xfer_shared_libraries;
228 gdbarch_core_pid_to_str_ftype *core_pid_to_str;
229 const char * gcore_bfd_target;
230 int vtable_function_descriptors;
231 int vbit_in_delta;
232 gdbarch_skip_permanent_breakpoint_ftype *skip_permanent_breakpoint;
233 ULONGEST max_insn_length;
234 gdbarch_displaced_step_copy_insn_ftype *displaced_step_copy_insn;
235 gdbarch_displaced_step_fixup_ftype *displaced_step_fixup;
236 gdbarch_displaced_step_free_closure_ftype *displaced_step_free_closure;
237 gdbarch_displaced_step_location_ftype *displaced_step_location;
238 gdbarch_overlay_update_ftype *overlay_update;
239 gdbarch_core_read_description_ftype *core_read_description;
240 gdbarch_static_transform_name_ftype *static_transform_name;
241 int sofun_address_maybe_missing;
242 gdbarch_process_record_ftype *process_record;
243 gdbarch_process_record_signal_ftype *process_record_signal;
244 gdbarch_target_signal_from_host_ftype *target_signal_from_host;
245 gdbarch_target_signal_to_host_ftype *target_signal_to_host;
246 gdbarch_get_siginfo_type_ftype *get_siginfo_type;
247 gdbarch_record_special_symbol_ftype *record_special_symbol;
248 gdbarch_get_syscall_number_ftype *get_syscall_number;
249 int has_global_solist;
250 int has_global_breakpoints;
251 };
252
253
254 /* The default architecture uses host values (for want of a better
255 choice). */
256
257 extern const struct bfd_arch_info bfd_default_arch_struct;
258
259 struct gdbarch startup_gdbarch =
260 {
261 1, /* Always initialized. */
262 NULL, /* The obstack. */
263 /* basic architecture information */
264 &bfd_default_arch_struct, /* bfd_arch_info */
265 BFD_ENDIAN_BIG, /* byte_order */
266 BFD_ENDIAN_BIG, /* byte_order_for_code */
267 GDB_OSABI_UNKNOWN, /* osabi */
268 0, /* target_desc */
269 /* target specific vector and its dump routine */
270 NULL, NULL,
271 /*per-architecture data-pointers and swap regions */
272 0, NULL, NULL,
273 /* Multi-arch values */
274 1, /* bits_big_endian */
275 8 * sizeof (short), /* short_bit */
276 8 * sizeof (int), /* int_bit */
277 8 * sizeof (long), /* long_bit */
278 8 * sizeof (LONGEST), /* long_long_bit */
279 8 * sizeof (float), /* float_bit */
280 0, /* float_format */
281 8 * sizeof (double), /* double_bit */
282 0, /* double_format */
283 8 * sizeof (long double), /* long_double_bit */
284 0, /* long_double_format */
285 8 * sizeof (void*), /* ptr_bit */
286 8 * sizeof (void*), /* addr_bit */
287 1, /* char_signed */
288 0, /* read_pc */
289 0, /* write_pc */
290 legacy_virtual_frame_pointer, /* virtual_frame_pointer */
291 0, /* pseudo_register_read */
292 0, /* pseudo_register_write */
293 0, /* num_regs */
294 0, /* num_pseudo_regs */
295 -1, /* sp_regnum */
296 -1, /* pc_regnum */
297 -1, /* ps_regnum */
298 0, /* fp0_regnum */
299 no_op_reg_to_regnum, /* stab_reg_to_regnum */
300 no_op_reg_to_regnum, /* ecoff_reg_to_regnum */
301 no_op_reg_to_regnum, /* sdb_reg_to_regnum */
302 no_op_reg_to_regnum, /* dwarf2_reg_to_regnum */
303 0, /* register_name */
304 0, /* register_type */
305 0, /* dummy_id */
306 -1, /* deprecated_fp_regnum */
307 0, /* push_dummy_call */
308 0, /* call_dummy_location */
309 0, /* push_dummy_code */
310 default_print_registers_info, /* print_registers_info */
311 0, /* print_float_info */
312 0, /* print_vector_info */
313 legacy_register_sim_regno, /* register_sim_regno */
314 cannot_register_not, /* cannot_fetch_register */
315 cannot_register_not, /* cannot_store_register */
316 0, /* get_longjmp_target */
317 0, /* believe_pcc_promotion */
318 generic_convert_register_p, /* convert_register_p */
319 0, /* register_to_value */
320 0, /* value_to_register */
321 0, /* value_from_register */
322 unsigned_pointer_to_address, /* pointer_to_address */
323 unsigned_address_to_pointer, /* address_to_pointer */
324 0, /* integer_to_address */
325 0, /* return_value */
326 0, /* skip_prologue */
327 0, /* skip_main_prologue */
328 0, /* inner_than */
329 0, /* breakpoint_from_pc */
330 0, /* adjust_breakpoint_address */
331 default_memory_insert_breakpoint, /* memory_insert_breakpoint */
332 default_memory_remove_breakpoint, /* memory_remove_breakpoint */
333 0, /* decr_pc_after_break */
334 0, /* deprecated_function_start_offset */
335 default_remote_register_number, /* remote_register_number */
336 0, /* fetch_tls_load_module_address */
337 0, /* frame_args_skip */
338 0, /* unwind_pc */
339 0, /* unwind_sp */
340 0, /* frame_num_args */
341 0, /* frame_align */
342 default_stabs_argument_has_addr, /* stabs_argument_has_addr */
343 0, /* frame_red_zone_size */
344 convert_from_func_ptr_addr_identity, /* convert_from_func_ptr_addr */
345 core_addr_identity, /* addr_bits_remove */
346 core_addr_identity, /* smash_text_address */
347 0, /* software_single_step */
348 0, /* single_step_through_delay */
349 0, /* print_insn */
350 0, /* skip_trampoline_code */
351 generic_skip_solib_resolver, /* skip_solib_resolver */
352 generic_in_solib_return_trampoline, /* in_solib_return_trampoline */
353 generic_in_function_epilogue_p, /* in_function_epilogue_p */
354 0, /* elf_make_msymbol_special */
355 0, /* coff_make_msymbol_special */
356 0, /* cannot_step_breakpoint */
357 0, /* have_nonsteppable_watchpoint */
358 0, /* address_class_type_flags */
359 0, /* address_class_type_flags_to_name */
360 0, /* address_class_name_to_type_flags */
361 default_register_reggroup_p, /* register_reggroup_p */
362 0, /* fetch_pointer_argument */
363 0, /* regset_from_core_section */
364 0, /* core_reg_section_encodes_pid */
365 0, /* core_regset_sections */
366 0, /* core_xfer_shared_libraries */
367 0, /* core_pid_to_str */
368 0, /* gcore_bfd_target */
369 0, /* vtable_function_descriptors */
370 0, /* vbit_in_delta */
371 0, /* skip_permanent_breakpoint */
372 0, /* max_insn_length */
373 0, /* displaced_step_copy_insn */
374 0, /* displaced_step_fixup */
375 NULL, /* displaced_step_free_closure */
376 NULL, /* displaced_step_location */
377 0, /* overlay_update */
378 0, /* core_read_description */
379 0, /* static_transform_name */
380 0, /* sofun_address_maybe_missing */
381 0, /* process_record */
382 0, /* process_record_signal */
383 default_target_signal_from_host, /* target_signal_from_host */
384 default_target_signal_to_host, /* target_signal_to_host */
385 0, /* get_siginfo_type */
386 0, /* record_special_symbol */
387 0, /* get_syscall_number */
388 0, /* has_global_solist */
389 0, /* has_global_breakpoints */
390 /* startup_gdbarch() */
391 };
392
393 struct gdbarch *target_gdbarch = &startup_gdbarch;
394
395 /* Create a new ``struct gdbarch'' based on information provided by
396 ``struct gdbarch_info''. */
397
398 struct gdbarch *
399 gdbarch_alloc (const struct gdbarch_info *info,
400 struct gdbarch_tdep *tdep)
401 {
402 struct gdbarch *gdbarch;
403
404 /* Create an obstack for allocating all the per-architecture memory,
405 then use that to allocate the architecture vector. */
406 struct obstack *obstack = XMALLOC (struct obstack);
407 obstack_init (obstack);
408 gdbarch = obstack_alloc (obstack, sizeof (*gdbarch));
409 memset (gdbarch, 0, sizeof (*gdbarch));
410 gdbarch->obstack = obstack;
411
412 alloc_gdbarch_data (gdbarch);
413
414 gdbarch->tdep = tdep;
415
416 gdbarch->bfd_arch_info = info->bfd_arch_info;
417 gdbarch->byte_order = info->byte_order;
418 gdbarch->byte_order_for_code = info->byte_order_for_code;
419 gdbarch->osabi = info->osabi;
420 gdbarch->target_desc = info->target_desc;
421
422 /* Force the explicit initialization of these. */
423 gdbarch->bits_big_endian = (gdbarch->byte_order == BFD_ENDIAN_BIG);
424 gdbarch->short_bit = 2*TARGET_CHAR_BIT;
425 gdbarch->int_bit = 4*TARGET_CHAR_BIT;
426 gdbarch->long_bit = 4*TARGET_CHAR_BIT;
427 gdbarch->long_long_bit = 2*gdbarch->long_bit;
428 gdbarch->float_bit = 4*TARGET_CHAR_BIT;
429 gdbarch->double_bit = 8*TARGET_CHAR_BIT;
430 gdbarch->long_double_bit = 8*TARGET_CHAR_BIT;
431 gdbarch->ptr_bit = gdbarch->int_bit;
432 gdbarch->char_signed = -1;
433 gdbarch->virtual_frame_pointer = legacy_virtual_frame_pointer;
434 gdbarch->num_regs = -1;
435 gdbarch->sp_regnum = -1;
436 gdbarch->pc_regnum = -1;
437 gdbarch->ps_regnum = -1;
438 gdbarch->fp0_regnum = -1;
439 gdbarch->stab_reg_to_regnum = no_op_reg_to_regnum;
440 gdbarch->ecoff_reg_to_regnum = no_op_reg_to_regnum;
441 gdbarch->sdb_reg_to_regnum = no_op_reg_to_regnum;
442 gdbarch->dwarf2_reg_to_regnum = no_op_reg_to_regnum;
443 gdbarch->deprecated_fp_regnum = -1;
444 gdbarch->call_dummy_location = AT_ENTRY_POINT;
445 gdbarch->print_registers_info = default_print_registers_info;
446 gdbarch->register_sim_regno = legacy_register_sim_regno;
447 gdbarch->cannot_fetch_register = cannot_register_not;
448 gdbarch->cannot_store_register = cannot_register_not;
449 gdbarch->convert_register_p = generic_convert_register_p;
450 gdbarch->value_from_register = default_value_from_register;
451 gdbarch->pointer_to_address = unsigned_pointer_to_address;
452 gdbarch->address_to_pointer = unsigned_address_to_pointer;
453 gdbarch->memory_insert_breakpoint = default_memory_insert_breakpoint;
454 gdbarch->memory_remove_breakpoint = default_memory_remove_breakpoint;
455 gdbarch->remote_register_number = default_remote_register_number;
456 gdbarch->stabs_argument_has_addr = default_stabs_argument_has_addr;
457 gdbarch->convert_from_func_ptr_addr = convert_from_func_ptr_addr_identity;
458 gdbarch->addr_bits_remove = core_addr_identity;
459 gdbarch->smash_text_address = core_addr_identity;
460 gdbarch->skip_trampoline_code = generic_skip_trampoline_code;
461 gdbarch->skip_solib_resolver = generic_skip_solib_resolver;
462 gdbarch->in_solib_return_trampoline = generic_in_solib_return_trampoline;
463 gdbarch->in_function_epilogue_p = generic_in_function_epilogue_p;
464 gdbarch->elf_make_msymbol_special = default_elf_make_msymbol_special;
465 gdbarch->coff_make_msymbol_special = default_coff_make_msymbol_special;
466 gdbarch->register_reggroup_p = default_register_reggroup_p;
467 gdbarch->displaced_step_fixup = NULL;
468 gdbarch->displaced_step_free_closure = NULL;
469 gdbarch->displaced_step_location = NULL;
470 gdbarch->target_signal_from_host = default_target_signal_from_host;
471 gdbarch->target_signal_to_host = default_target_signal_to_host;
472 /* gdbarch_alloc() */
473
474 return gdbarch;
475 }
476
477
478 /* Allocate extra space using the per-architecture obstack. */
479
480 void *
481 gdbarch_obstack_zalloc (struct gdbarch *arch, long size)
482 {
483 void *data = obstack_alloc (arch->obstack, size);
484 memset (data, 0, size);
485 return data;
486 }
487
488
489 /* Free a gdbarch struct. This should never happen in normal
490 operation --- once you've created a gdbarch, you keep it around.
491 However, if an architecture's init function encounters an error
492 building the structure, it may need to clean up a partially
493 constructed gdbarch. */
494
495 void
496 gdbarch_free (struct gdbarch *arch)
497 {
498 struct obstack *obstack;
499 gdb_assert (arch != NULL);
500 gdb_assert (!arch->initialized_p);
501 obstack = arch->obstack;
502 obstack_free (obstack, 0); /* Includes the ARCH. */
503 xfree (obstack);
504 }
505
506
507 /* Ensure that all values in a GDBARCH are reasonable. */
508
509 static void
510 verify_gdbarch (struct gdbarch *gdbarch)
511 {
512 struct ui_file *log;
513 struct cleanup *cleanups;
514 long length;
515 char *buf;
516 log = mem_fileopen ();
517 cleanups = make_cleanup_ui_file_delete (log);
518 /* fundamental */
519 if (gdbarch->byte_order == BFD_ENDIAN_UNKNOWN)
520 fprintf_unfiltered (log, "\n\tbyte-order");
521 if (gdbarch->bfd_arch_info == NULL)
522 fprintf_unfiltered (log, "\n\tbfd_arch_info");
523 /* Check those that need to be defined for the given multi-arch level. */
524 /* Skip verify of bits_big_endian, invalid_p == 0 */
525 /* Skip verify of short_bit, invalid_p == 0 */
526 /* Skip verify of int_bit, invalid_p == 0 */
527 /* Skip verify of long_bit, invalid_p == 0 */
528 /* Skip verify of long_long_bit, invalid_p == 0 */
529 /* Skip verify of float_bit, invalid_p == 0 */
530 if (gdbarch->float_format == 0)
531 gdbarch->float_format = floatformats_ieee_single;
532 /* Skip verify of double_bit, invalid_p == 0 */
533 if (gdbarch->double_format == 0)
534 gdbarch->double_format = floatformats_ieee_double;
535 /* Skip verify of long_double_bit, invalid_p == 0 */
536 if (gdbarch->long_double_format == 0)
537 gdbarch->long_double_format = floatformats_ieee_double;
538 /* Skip verify of ptr_bit, invalid_p == 0 */
539 if (gdbarch->addr_bit == 0)
540 gdbarch->addr_bit = gdbarch_ptr_bit (gdbarch);
541 if (gdbarch->char_signed == -1)
542 gdbarch->char_signed = 1;
543 /* Skip verify of read_pc, has predicate */
544 /* Skip verify of write_pc, has predicate */
545 /* Skip verify of virtual_frame_pointer, invalid_p == 0 */
546 /* Skip verify of pseudo_register_read, has predicate */
547 /* Skip verify of pseudo_register_write, has predicate */
548 if (gdbarch->num_regs == -1)
549 fprintf_unfiltered (log, "\n\tnum_regs");
550 /* Skip verify of num_pseudo_regs, invalid_p == 0 */
551 /* Skip verify of sp_regnum, invalid_p == 0 */
552 /* Skip verify of pc_regnum, invalid_p == 0 */
553 /* Skip verify of ps_regnum, invalid_p == 0 */
554 /* Skip verify of fp0_regnum, invalid_p == 0 */
555 /* Skip verify of stab_reg_to_regnum, invalid_p == 0 */
556 /* Skip verify of ecoff_reg_to_regnum, invalid_p == 0 */
557 /* Skip verify of sdb_reg_to_regnum, invalid_p == 0 */
558 /* Skip verify of dwarf2_reg_to_regnum, invalid_p == 0 */
559 if (gdbarch->register_name == 0)
560 fprintf_unfiltered (log, "\n\tregister_name");
561 /* Skip verify of register_type, has predicate */
562 /* Skip verify of dummy_id, has predicate */
563 /* Skip verify of deprecated_fp_regnum, invalid_p == 0 */
564 /* Skip verify of push_dummy_call, has predicate */
565 /* Skip verify of call_dummy_location, invalid_p == 0 */
566 /* Skip verify of push_dummy_code, has predicate */
567 /* Skip verify of print_registers_info, invalid_p == 0 */
568 /* Skip verify of print_float_info, has predicate */
569 /* Skip verify of print_vector_info, has predicate */
570 /* Skip verify of register_sim_regno, invalid_p == 0 */
571 /* Skip verify of cannot_fetch_register, invalid_p == 0 */
572 /* Skip verify of cannot_store_register, invalid_p == 0 */
573 /* Skip verify of get_longjmp_target, has predicate */
574 /* Skip verify of convert_register_p, invalid_p == 0 */
575 /* Skip verify of value_from_register, invalid_p == 0 */
576 /* Skip verify of pointer_to_address, invalid_p == 0 */
577 /* Skip verify of address_to_pointer, invalid_p == 0 */
578 /* Skip verify of integer_to_address, has predicate */
579 /* Skip verify of return_value, has predicate */
580 if (gdbarch->skip_prologue == 0)
581 fprintf_unfiltered (log, "\n\tskip_prologue");
582 /* Skip verify of skip_main_prologue, has predicate */
583 if (gdbarch->inner_than == 0)
584 fprintf_unfiltered (log, "\n\tinner_than");
585 if (gdbarch->breakpoint_from_pc == 0)
586 fprintf_unfiltered (log, "\n\tbreakpoint_from_pc");
587 /* Skip verify of adjust_breakpoint_address, has predicate */
588 /* Skip verify of memory_insert_breakpoint, invalid_p == 0 */
589 /* Skip verify of memory_remove_breakpoint, invalid_p == 0 */
590 /* Skip verify of decr_pc_after_break, invalid_p == 0 */
591 /* Skip verify of deprecated_function_start_offset, invalid_p == 0 */
592 /* Skip verify of remote_register_number, invalid_p == 0 */
593 /* Skip verify of fetch_tls_load_module_address, has predicate */
594 /* Skip verify of frame_args_skip, invalid_p == 0 */
595 /* Skip verify of unwind_pc, has predicate */
596 /* Skip verify of unwind_sp, has predicate */
597 /* Skip verify of frame_num_args, has predicate */
598 /* Skip verify of frame_align, has predicate */
599 /* Skip verify of stabs_argument_has_addr, invalid_p == 0 */
600 /* Skip verify of convert_from_func_ptr_addr, invalid_p == 0 */
601 /* Skip verify of addr_bits_remove, invalid_p == 0 */
602 /* Skip verify of smash_text_address, invalid_p == 0 */
603 /* Skip verify of software_single_step, has predicate */
604 /* Skip verify of single_step_through_delay, has predicate */
605 if (gdbarch->print_insn == 0)
606 fprintf_unfiltered (log, "\n\tprint_insn");
607 /* Skip verify of skip_trampoline_code, invalid_p == 0 */
608 /* Skip verify of skip_solib_resolver, invalid_p == 0 */
609 /* Skip verify of in_solib_return_trampoline, invalid_p == 0 */
610 /* Skip verify of in_function_epilogue_p, invalid_p == 0 */
611 /* Skip verify of elf_make_msymbol_special, invalid_p == 0 */
612 /* Skip verify of coff_make_msymbol_special, invalid_p == 0 */
613 /* Skip verify of cannot_step_breakpoint, invalid_p == 0 */
614 /* Skip verify of have_nonsteppable_watchpoint, invalid_p == 0 */
615 /* Skip verify of address_class_type_flags, has predicate */
616 /* Skip verify of address_class_type_flags_to_name, has predicate */
617 /* Skip verify of address_class_name_to_type_flags, has predicate */
618 /* Skip verify of register_reggroup_p, invalid_p == 0 */
619 /* Skip verify of fetch_pointer_argument, has predicate */
620 /* Skip verify of regset_from_core_section, has predicate */
621 /* Skip verify of core_reg_section_encodes_pid, invalid_p == 0 */
622 /* Skip verify of core_xfer_shared_libraries, has predicate */
623 /* Skip verify of core_pid_to_str, has predicate */
624 /* Skip verify of gcore_bfd_target, has predicate */
625 /* Skip verify of vtable_function_descriptors, invalid_p == 0 */
626 /* Skip verify of vbit_in_delta, invalid_p == 0 */
627 /* Skip verify of skip_permanent_breakpoint, has predicate */
628 /* Skip verify of max_insn_length, has predicate */
629 /* Skip verify of displaced_step_copy_insn, has predicate */
630 /* Skip verify of displaced_step_fixup, has predicate */
631 if ((! gdbarch->displaced_step_free_closure) != (! gdbarch->displaced_step_copy_insn))
632 fprintf_unfiltered (log, "\n\tdisplaced_step_free_closure");
633 if ((! gdbarch->displaced_step_location) != (! gdbarch->displaced_step_copy_insn))
634 fprintf_unfiltered (log, "\n\tdisplaced_step_location");
635 /* Skip verify of overlay_update, has predicate */
636 /* Skip verify of core_read_description, has predicate */
637 /* Skip verify of static_transform_name, has predicate */
638 /* Skip verify of sofun_address_maybe_missing, invalid_p == 0 */
639 /* Skip verify of process_record, has predicate */
640 /* Skip verify of process_record_signal, has predicate */
641 /* Skip verify of target_signal_from_host, invalid_p == 0 */
642 /* Skip verify of target_signal_to_host, invalid_p == 0 */
643 /* Skip verify of get_siginfo_type, has predicate */
644 /* Skip verify of record_special_symbol, has predicate */
645 /* Skip verify of get_syscall_number, has predicate */
646 /* Skip verify of has_global_solist, invalid_p == 0 */
647 /* Skip verify of has_global_breakpoints, invalid_p == 0 */
648 buf = ui_file_xstrdup (log, &length);
649 make_cleanup (xfree, buf);
650 if (length > 0)
651 internal_error (__FILE__, __LINE__,
652 _("verify_gdbarch: the following are invalid ...%s"),
653 buf);
654 do_cleanups (cleanups);
655 }
656
657
658 /* Print out the details of the current architecture. */
659
660 void
661 gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
662 {
663 const char *gdb_nm_file = "<not-defined>";
664 #if defined (GDB_NM_FILE)
665 gdb_nm_file = GDB_NM_FILE;
666 #endif
667 fprintf_unfiltered (file,
668 "gdbarch_dump: GDB_NM_FILE = %s\n",
669 gdb_nm_file);
670 fprintf_unfiltered (file,
671 "gdbarch_dump: addr_bit = %s\n",
672 plongest (gdbarch->addr_bit));
673 fprintf_unfiltered (file,
674 "gdbarch_dump: addr_bits_remove = <%s>\n",
675 host_address_to_string (gdbarch->addr_bits_remove));
676 fprintf_unfiltered (file,
677 "gdbarch_dump: gdbarch_address_class_name_to_type_flags_p() = %d\n",
678 gdbarch_address_class_name_to_type_flags_p (gdbarch));
679 fprintf_unfiltered (file,
680 "gdbarch_dump: address_class_name_to_type_flags = <%s>\n",
681 host_address_to_string (gdbarch->address_class_name_to_type_flags));
682 fprintf_unfiltered (file,
683 "gdbarch_dump: gdbarch_address_class_type_flags_p() = %d\n",
684 gdbarch_address_class_type_flags_p (gdbarch));
685 fprintf_unfiltered (file,
686 "gdbarch_dump: address_class_type_flags = <%s>\n",
687 host_address_to_string (gdbarch->address_class_type_flags));
688 fprintf_unfiltered (file,
689 "gdbarch_dump: gdbarch_address_class_type_flags_to_name_p() = %d\n",
690 gdbarch_address_class_type_flags_to_name_p (gdbarch));
691 fprintf_unfiltered (file,
692 "gdbarch_dump: address_class_type_flags_to_name = <%s>\n",
693 host_address_to_string (gdbarch->address_class_type_flags_to_name));
694 fprintf_unfiltered (file,
695 "gdbarch_dump: address_to_pointer = <%s>\n",
696 host_address_to_string (gdbarch->address_to_pointer));
697 fprintf_unfiltered (file,
698 "gdbarch_dump: gdbarch_adjust_breakpoint_address_p() = %d\n",
699 gdbarch_adjust_breakpoint_address_p (gdbarch));
700 fprintf_unfiltered (file,
701 "gdbarch_dump: adjust_breakpoint_address = <%s>\n",
702 host_address_to_string (gdbarch->adjust_breakpoint_address));
703 fprintf_unfiltered (file,
704 "gdbarch_dump: believe_pcc_promotion = %s\n",
705 plongest (gdbarch->believe_pcc_promotion));
706 fprintf_unfiltered (file,
707 "gdbarch_dump: bfd_arch_info = %s\n",
708 gdbarch_bfd_arch_info (gdbarch)->printable_name);
709 fprintf_unfiltered (file,
710 "gdbarch_dump: bits_big_endian = %s\n",
711 plongest (gdbarch->bits_big_endian));
712 fprintf_unfiltered (file,
713 "gdbarch_dump: breakpoint_from_pc = <%s>\n",
714 host_address_to_string (gdbarch->breakpoint_from_pc));
715 fprintf_unfiltered (file,
716 "gdbarch_dump: byte_order = %s\n",
717 plongest (gdbarch->byte_order));
718 fprintf_unfiltered (file,
719 "gdbarch_dump: byte_order_for_code = %s\n",
720 plongest (gdbarch->byte_order_for_code));
721 fprintf_unfiltered (file,
722 "gdbarch_dump: call_dummy_location = %s\n",
723 plongest (gdbarch->call_dummy_location));
724 fprintf_unfiltered (file,
725 "gdbarch_dump: cannot_fetch_register = <%s>\n",
726 host_address_to_string (gdbarch->cannot_fetch_register));
727 fprintf_unfiltered (file,
728 "gdbarch_dump: cannot_step_breakpoint = %s\n",
729 plongest (gdbarch->cannot_step_breakpoint));
730 fprintf_unfiltered (file,
731 "gdbarch_dump: cannot_store_register = <%s>\n",
732 host_address_to_string (gdbarch->cannot_store_register));
733 fprintf_unfiltered (file,
734 "gdbarch_dump: char_signed = %s\n",
735 plongest (gdbarch->char_signed));
736 fprintf_unfiltered (file,
737 "gdbarch_dump: coff_make_msymbol_special = <%s>\n",
738 host_address_to_string (gdbarch->coff_make_msymbol_special));
739 fprintf_unfiltered (file,
740 "gdbarch_dump: convert_from_func_ptr_addr = <%s>\n",
741 host_address_to_string (gdbarch->convert_from_func_ptr_addr));
742 fprintf_unfiltered (file,
743 "gdbarch_dump: convert_register_p = <%s>\n",
744 host_address_to_string (gdbarch->convert_register_p));
745 fprintf_unfiltered (file,
746 "gdbarch_dump: gdbarch_core_pid_to_str_p() = %d\n",
747 gdbarch_core_pid_to_str_p (gdbarch));
748 fprintf_unfiltered (file,
749 "gdbarch_dump: core_pid_to_str = <%s>\n",
750 host_address_to_string (gdbarch->core_pid_to_str));
751 fprintf_unfiltered (file,
752 "gdbarch_dump: gdbarch_core_read_description_p() = %d\n",
753 gdbarch_core_read_description_p (gdbarch));
754 fprintf_unfiltered (file,
755 "gdbarch_dump: core_read_description = <%s>\n",
756 host_address_to_string (gdbarch->core_read_description));
757 fprintf_unfiltered (file,
758 "gdbarch_dump: core_reg_section_encodes_pid = %s\n",
759 plongest (gdbarch->core_reg_section_encodes_pid));
760 fprintf_unfiltered (file,
761 "gdbarch_dump: core_regset_sections = %s\n",
762 host_address_to_string (gdbarch->core_regset_sections));
763 fprintf_unfiltered (file,
764 "gdbarch_dump: gdbarch_core_xfer_shared_libraries_p() = %d\n",
765 gdbarch_core_xfer_shared_libraries_p (gdbarch));
766 fprintf_unfiltered (file,
767 "gdbarch_dump: core_xfer_shared_libraries = <%s>\n",
768 host_address_to_string (gdbarch->core_xfer_shared_libraries));
769 fprintf_unfiltered (file,
770 "gdbarch_dump: decr_pc_after_break = %s\n",
771 core_addr_to_string_nz (gdbarch->decr_pc_after_break));
772 fprintf_unfiltered (file,
773 "gdbarch_dump: deprecated_fp_regnum = %s\n",
774 plongest (gdbarch->deprecated_fp_regnum));
775 fprintf_unfiltered (file,
776 "gdbarch_dump: deprecated_function_start_offset = %s\n",
777 core_addr_to_string_nz (gdbarch->deprecated_function_start_offset));
778 fprintf_unfiltered (file,
779 "gdbarch_dump: gdbarch_displaced_step_copy_insn_p() = %d\n",
780 gdbarch_displaced_step_copy_insn_p (gdbarch));
781 fprintf_unfiltered (file,
782 "gdbarch_dump: displaced_step_copy_insn = <%s>\n",
783 host_address_to_string (gdbarch->displaced_step_copy_insn));
784 fprintf_unfiltered (file,
785 "gdbarch_dump: gdbarch_displaced_step_fixup_p() = %d\n",
786 gdbarch_displaced_step_fixup_p (gdbarch));
787 fprintf_unfiltered (file,
788 "gdbarch_dump: displaced_step_fixup = <%s>\n",
789 host_address_to_string (gdbarch->displaced_step_fixup));
790 fprintf_unfiltered (file,
791 "gdbarch_dump: displaced_step_free_closure = <%s>\n",
792 host_address_to_string (gdbarch->displaced_step_free_closure));
793 fprintf_unfiltered (file,
794 "gdbarch_dump: displaced_step_location = <%s>\n",
795 host_address_to_string (gdbarch->displaced_step_location));
796 fprintf_unfiltered (file,
797 "gdbarch_dump: double_bit = %s\n",
798 plongest (gdbarch->double_bit));
799 fprintf_unfiltered (file,
800 "gdbarch_dump: double_format = %s\n",
801 pformat (gdbarch->double_format));
802 fprintf_unfiltered (file,
803 "gdbarch_dump: gdbarch_dummy_id_p() = %d\n",
804 gdbarch_dummy_id_p (gdbarch));
805 fprintf_unfiltered (file,
806 "gdbarch_dump: dummy_id = <%s>\n",
807 host_address_to_string (gdbarch->dummy_id));
808 fprintf_unfiltered (file,
809 "gdbarch_dump: dwarf2_reg_to_regnum = <%s>\n",
810 host_address_to_string (gdbarch->dwarf2_reg_to_regnum));
811 fprintf_unfiltered (file,
812 "gdbarch_dump: ecoff_reg_to_regnum = <%s>\n",
813 host_address_to_string (gdbarch->ecoff_reg_to_regnum));
814 fprintf_unfiltered (file,
815 "gdbarch_dump: elf_make_msymbol_special = <%s>\n",
816 host_address_to_string (gdbarch->elf_make_msymbol_special));
817 fprintf_unfiltered (file,
818 "gdbarch_dump: gdbarch_fetch_pointer_argument_p() = %d\n",
819 gdbarch_fetch_pointer_argument_p (gdbarch));
820 fprintf_unfiltered (file,
821 "gdbarch_dump: fetch_pointer_argument = <%s>\n",
822 host_address_to_string (gdbarch->fetch_pointer_argument));
823 fprintf_unfiltered (file,
824 "gdbarch_dump: gdbarch_fetch_tls_load_module_address_p() = %d\n",
825 gdbarch_fetch_tls_load_module_address_p (gdbarch));
826 fprintf_unfiltered (file,
827 "gdbarch_dump: fetch_tls_load_module_address = <%s>\n",
828 host_address_to_string (gdbarch->fetch_tls_load_module_address));
829 fprintf_unfiltered (file,
830 "gdbarch_dump: float_bit = %s\n",
831 plongest (gdbarch->float_bit));
832 fprintf_unfiltered (file,
833 "gdbarch_dump: float_format = %s\n",
834 pformat (gdbarch->float_format));
835 fprintf_unfiltered (file,
836 "gdbarch_dump: fp0_regnum = %s\n",
837 plongest (gdbarch->fp0_regnum));
838 fprintf_unfiltered (file,
839 "gdbarch_dump: gdbarch_frame_align_p() = %d\n",
840 gdbarch_frame_align_p (gdbarch));
841 fprintf_unfiltered (file,
842 "gdbarch_dump: frame_align = <%s>\n",
843 host_address_to_string (gdbarch->frame_align));
844 fprintf_unfiltered (file,
845 "gdbarch_dump: frame_args_skip = %s\n",
846 core_addr_to_string_nz (gdbarch->frame_args_skip));
847 fprintf_unfiltered (file,
848 "gdbarch_dump: gdbarch_frame_num_args_p() = %d\n",
849 gdbarch_frame_num_args_p (gdbarch));
850 fprintf_unfiltered (file,
851 "gdbarch_dump: frame_num_args = <%s>\n",
852 host_address_to_string (gdbarch->frame_num_args));
853 fprintf_unfiltered (file,
854 "gdbarch_dump: frame_red_zone_size = %s\n",
855 plongest (gdbarch->frame_red_zone_size));
856 fprintf_unfiltered (file,
857 "gdbarch_dump: gdbarch_gcore_bfd_target_p() = %d\n",
858 gdbarch_gcore_bfd_target_p (gdbarch));
859 fprintf_unfiltered (file,
860 "gdbarch_dump: gcore_bfd_target = %s\n",
861 gdbarch->gcore_bfd_target);
862 fprintf_unfiltered (file,
863 "gdbarch_dump: gdbarch_get_longjmp_target_p() = %d\n",
864 gdbarch_get_longjmp_target_p (gdbarch));
865 fprintf_unfiltered (file,
866 "gdbarch_dump: get_longjmp_target = <%s>\n",
867 host_address_to_string (gdbarch->get_longjmp_target));
868 fprintf_unfiltered (file,
869 "gdbarch_dump: gdbarch_get_siginfo_type_p() = %d\n",
870 gdbarch_get_siginfo_type_p (gdbarch));
871 fprintf_unfiltered (file,
872 "gdbarch_dump: get_siginfo_type = <%s>\n",
873 host_address_to_string (gdbarch->get_siginfo_type));
874 fprintf_unfiltered (file,
875 "gdbarch_dump: gdbarch_get_syscall_number_p() = %d\n",
876 gdbarch_get_syscall_number_p (gdbarch));
877 fprintf_unfiltered (file,
878 "gdbarch_dump: get_syscall_number = <%s>\n",
879 host_address_to_string (gdbarch->get_syscall_number));
880 fprintf_unfiltered (file,
881 "gdbarch_dump: has_global_breakpoints = %s\n",
882 plongest (gdbarch->has_global_breakpoints));
883 fprintf_unfiltered (file,
884 "gdbarch_dump: has_global_solist = %s\n",
885 plongest (gdbarch->has_global_solist));
886 fprintf_unfiltered (file,
887 "gdbarch_dump: have_nonsteppable_watchpoint = %s\n",
888 plongest (gdbarch->have_nonsteppable_watchpoint));
889 fprintf_unfiltered (file,
890 "gdbarch_dump: in_function_epilogue_p = <%s>\n",
891 host_address_to_string (gdbarch->in_function_epilogue_p));
892 fprintf_unfiltered (file,
893 "gdbarch_dump: in_solib_return_trampoline = <%s>\n",
894 host_address_to_string (gdbarch->in_solib_return_trampoline));
895 fprintf_unfiltered (file,
896 "gdbarch_dump: inner_than = <%s>\n",
897 host_address_to_string (gdbarch->inner_than));
898 fprintf_unfiltered (file,
899 "gdbarch_dump: int_bit = %s\n",
900 plongest (gdbarch->int_bit));
901 fprintf_unfiltered (file,
902 "gdbarch_dump: gdbarch_integer_to_address_p() = %d\n",
903 gdbarch_integer_to_address_p (gdbarch));
904 fprintf_unfiltered (file,
905 "gdbarch_dump: integer_to_address = <%s>\n",
906 host_address_to_string (gdbarch->integer_to_address));
907 fprintf_unfiltered (file,
908 "gdbarch_dump: long_bit = %s\n",
909 plongest (gdbarch->long_bit));
910 fprintf_unfiltered (file,
911 "gdbarch_dump: long_double_bit = %s\n",
912 plongest (gdbarch->long_double_bit));
913 fprintf_unfiltered (file,
914 "gdbarch_dump: long_double_format = %s\n",
915 pformat (gdbarch->long_double_format));
916 fprintf_unfiltered (file,
917 "gdbarch_dump: long_long_bit = %s\n",
918 plongest (gdbarch->long_long_bit));
919 fprintf_unfiltered (file,
920 "gdbarch_dump: gdbarch_max_insn_length_p() = %d\n",
921 gdbarch_max_insn_length_p (gdbarch));
922 fprintf_unfiltered (file,
923 "gdbarch_dump: max_insn_length = %s\n",
924 plongest (gdbarch->max_insn_length));
925 fprintf_unfiltered (file,
926 "gdbarch_dump: memory_insert_breakpoint = <%s>\n",
927 host_address_to_string (gdbarch->memory_insert_breakpoint));
928 fprintf_unfiltered (file,
929 "gdbarch_dump: memory_remove_breakpoint = <%s>\n",
930 host_address_to_string (gdbarch->memory_remove_breakpoint));
931 fprintf_unfiltered (file,
932 "gdbarch_dump: num_pseudo_regs = %s\n",
933 plongest (gdbarch->num_pseudo_regs));
934 fprintf_unfiltered (file,
935 "gdbarch_dump: num_regs = %s\n",
936 plongest (gdbarch->num_regs));
937 fprintf_unfiltered (file,
938 "gdbarch_dump: osabi = %s\n",
939 plongest (gdbarch->osabi));
940 fprintf_unfiltered (file,
941 "gdbarch_dump: gdbarch_overlay_update_p() = %d\n",
942 gdbarch_overlay_update_p (gdbarch));
943 fprintf_unfiltered (file,
944 "gdbarch_dump: overlay_update = <%s>\n",
945 host_address_to_string (gdbarch->overlay_update));
946 fprintf_unfiltered (file,
947 "gdbarch_dump: pc_regnum = %s\n",
948 plongest (gdbarch->pc_regnum));
949 fprintf_unfiltered (file,
950 "gdbarch_dump: pointer_to_address = <%s>\n",
951 host_address_to_string (gdbarch->pointer_to_address));
952 fprintf_unfiltered (file,
953 "gdbarch_dump: gdbarch_print_float_info_p() = %d\n",
954 gdbarch_print_float_info_p (gdbarch));
955 fprintf_unfiltered (file,
956 "gdbarch_dump: print_float_info = <%s>\n",
957 host_address_to_string (gdbarch->print_float_info));
958 fprintf_unfiltered (file,
959 "gdbarch_dump: print_insn = <%s>\n",
960 host_address_to_string (gdbarch->print_insn));
961 fprintf_unfiltered (file,
962 "gdbarch_dump: print_registers_info = <%s>\n",
963 host_address_to_string (gdbarch->print_registers_info));
964 fprintf_unfiltered (file,
965 "gdbarch_dump: gdbarch_print_vector_info_p() = %d\n",
966 gdbarch_print_vector_info_p (gdbarch));
967 fprintf_unfiltered (file,
968 "gdbarch_dump: print_vector_info = <%s>\n",
969 host_address_to_string (gdbarch->print_vector_info));
970 fprintf_unfiltered (file,
971 "gdbarch_dump: gdbarch_process_record_p() = %d\n",
972 gdbarch_process_record_p (gdbarch));
973 fprintf_unfiltered (file,
974 "gdbarch_dump: process_record = <%s>\n",
975 host_address_to_string (gdbarch->process_record));
976 fprintf_unfiltered (file,
977 "gdbarch_dump: gdbarch_process_record_signal_p() = %d\n",
978 gdbarch_process_record_signal_p (gdbarch));
979 fprintf_unfiltered (file,
980 "gdbarch_dump: process_record_signal = <%s>\n",
981 host_address_to_string (gdbarch->process_record_signal));
982 fprintf_unfiltered (file,
983 "gdbarch_dump: ps_regnum = %s\n",
984 plongest (gdbarch->ps_regnum));
985 fprintf_unfiltered (file,
986 "gdbarch_dump: gdbarch_pseudo_register_read_p() = %d\n",
987 gdbarch_pseudo_register_read_p (gdbarch));
988 fprintf_unfiltered (file,
989 "gdbarch_dump: pseudo_register_read = <%s>\n",
990 host_address_to_string (gdbarch->pseudo_register_read));
991 fprintf_unfiltered (file,
992 "gdbarch_dump: gdbarch_pseudo_register_write_p() = %d\n",
993 gdbarch_pseudo_register_write_p (gdbarch));
994 fprintf_unfiltered (file,
995 "gdbarch_dump: pseudo_register_write = <%s>\n",
996 host_address_to_string (gdbarch->pseudo_register_write));
997 fprintf_unfiltered (file,
998 "gdbarch_dump: ptr_bit = %s\n",
999 plongest (gdbarch->ptr_bit));
1000 fprintf_unfiltered (file,
1001 "gdbarch_dump: gdbarch_push_dummy_call_p() = %d\n",
1002 gdbarch_push_dummy_call_p (gdbarch));
1003 fprintf_unfiltered (file,
1004 "gdbarch_dump: push_dummy_call = <%s>\n",
1005 host_address_to_string (gdbarch->push_dummy_call));
1006 fprintf_unfiltered (file,
1007 "gdbarch_dump: gdbarch_push_dummy_code_p() = %d\n",
1008 gdbarch_push_dummy_code_p (gdbarch));
1009 fprintf_unfiltered (file,
1010 "gdbarch_dump: push_dummy_code = <%s>\n",
1011 host_address_to_string (gdbarch->push_dummy_code));
1012 fprintf_unfiltered (file,
1013 "gdbarch_dump: gdbarch_read_pc_p() = %d\n",
1014 gdbarch_read_pc_p (gdbarch));
1015 fprintf_unfiltered (file,
1016 "gdbarch_dump: read_pc = <%s>\n",
1017 host_address_to_string (gdbarch->read_pc));
1018 fprintf_unfiltered (file,
1019 "gdbarch_dump: gdbarch_record_special_symbol_p() = %d\n",
1020 gdbarch_record_special_symbol_p (gdbarch));
1021 fprintf_unfiltered (file,
1022 "gdbarch_dump: record_special_symbol = <%s>\n",
1023 host_address_to_string (gdbarch->record_special_symbol));
1024 fprintf_unfiltered (file,
1025 "gdbarch_dump: register_name = <%s>\n",
1026 host_address_to_string (gdbarch->register_name));
1027 fprintf_unfiltered (file,
1028 "gdbarch_dump: register_reggroup_p = <%s>\n",
1029 host_address_to_string (gdbarch->register_reggroup_p));
1030 fprintf_unfiltered (file,
1031 "gdbarch_dump: register_sim_regno = <%s>\n",
1032 host_address_to_string (gdbarch->register_sim_regno));
1033 fprintf_unfiltered (file,
1034 "gdbarch_dump: register_to_value = <%s>\n",
1035 host_address_to_string (gdbarch->register_to_value));
1036 fprintf_unfiltered (file,
1037 "gdbarch_dump: gdbarch_register_type_p() = %d\n",
1038 gdbarch_register_type_p (gdbarch));
1039 fprintf_unfiltered (file,
1040 "gdbarch_dump: register_type = <%s>\n",
1041 host_address_to_string (gdbarch->register_type));
1042 fprintf_unfiltered (file,
1043 "gdbarch_dump: gdbarch_regset_from_core_section_p() = %d\n",
1044 gdbarch_regset_from_core_section_p (gdbarch));
1045 fprintf_unfiltered (file,
1046 "gdbarch_dump: regset_from_core_section = <%s>\n",
1047 host_address_to_string (gdbarch->regset_from_core_section));
1048 fprintf_unfiltered (file,
1049 "gdbarch_dump: remote_register_number = <%s>\n",
1050 host_address_to_string (gdbarch->remote_register_number));
1051 fprintf_unfiltered (file,
1052 "gdbarch_dump: gdbarch_return_value_p() = %d\n",
1053 gdbarch_return_value_p (gdbarch));
1054 fprintf_unfiltered (file,
1055 "gdbarch_dump: return_value = <%s>\n",
1056 host_address_to_string (gdbarch->return_value));
1057 fprintf_unfiltered (file,
1058 "gdbarch_dump: sdb_reg_to_regnum = <%s>\n",
1059 host_address_to_string (gdbarch->sdb_reg_to_regnum));
1060 fprintf_unfiltered (file,
1061 "gdbarch_dump: short_bit = %s\n",
1062 plongest (gdbarch->short_bit));
1063 fprintf_unfiltered (file,
1064 "gdbarch_dump: gdbarch_single_step_through_delay_p() = %d\n",
1065 gdbarch_single_step_through_delay_p (gdbarch));
1066 fprintf_unfiltered (file,
1067 "gdbarch_dump: single_step_through_delay = <%s>\n",
1068 host_address_to_string (gdbarch->single_step_through_delay));
1069 fprintf_unfiltered (file,
1070 "gdbarch_dump: gdbarch_skip_main_prologue_p() = %d\n",
1071 gdbarch_skip_main_prologue_p (gdbarch));
1072 fprintf_unfiltered (file,
1073 "gdbarch_dump: skip_main_prologue = <%s>\n",
1074 host_address_to_string (gdbarch->skip_main_prologue));
1075 fprintf_unfiltered (file,
1076 "gdbarch_dump: gdbarch_skip_permanent_breakpoint_p() = %d\n",
1077 gdbarch_skip_permanent_breakpoint_p (gdbarch));
1078 fprintf_unfiltered (file,
1079 "gdbarch_dump: skip_permanent_breakpoint = <%s>\n",
1080 host_address_to_string (gdbarch->skip_permanent_breakpoint));
1081 fprintf_unfiltered (file,
1082 "gdbarch_dump: skip_prologue = <%s>\n",
1083 host_address_to_string (gdbarch->skip_prologue));
1084 fprintf_unfiltered (file,
1085 "gdbarch_dump: skip_solib_resolver = <%s>\n",
1086 host_address_to_string (gdbarch->skip_solib_resolver));
1087 fprintf_unfiltered (file,
1088 "gdbarch_dump: skip_trampoline_code = <%s>\n",
1089 host_address_to_string (gdbarch->skip_trampoline_code));
1090 fprintf_unfiltered (file,
1091 "gdbarch_dump: smash_text_address = <%s>\n",
1092 host_address_to_string (gdbarch->smash_text_address));
1093 fprintf_unfiltered (file,
1094 "gdbarch_dump: gdbarch_software_single_step_p() = %d\n",
1095 gdbarch_software_single_step_p (gdbarch));
1096 fprintf_unfiltered (file,
1097 "gdbarch_dump: software_single_step = <%s>\n",
1098 host_address_to_string (gdbarch->software_single_step));
1099 fprintf_unfiltered (file,
1100 "gdbarch_dump: sofun_address_maybe_missing = %s\n",
1101 plongest (gdbarch->sofun_address_maybe_missing));
1102 fprintf_unfiltered (file,
1103 "gdbarch_dump: sp_regnum = %s\n",
1104 plongest (gdbarch->sp_regnum));
1105 fprintf_unfiltered (file,
1106 "gdbarch_dump: stab_reg_to_regnum = <%s>\n",
1107 host_address_to_string (gdbarch->stab_reg_to_regnum));
1108 fprintf_unfiltered (file,
1109 "gdbarch_dump: stabs_argument_has_addr = <%s>\n",
1110 host_address_to_string (gdbarch->stabs_argument_has_addr));
1111 fprintf_unfiltered (file,
1112 "gdbarch_dump: gdbarch_static_transform_name_p() = %d\n",
1113 gdbarch_static_transform_name_p (gdbarch));
1114 fprintf_unfiltered (file,
1115 "gdbarch_dump: static_transform_name = <%s>\n",
1116 host_address_to_string (gdbarch->static_transform_name));
1117 fprintf_unfiltered (file,
1118 "gdbarch_dump: target_desc = %s\n",
1119 host_address_to_string (gdbarch->target_desc));
1120 fprintf_unfiltered (file,
1121 "gdbarch_dump: target_signal_from_host = <%s>\n",
1122 host_address_to_string (gdbarch->target_signal_from_host));
1123 fprintf_unfiltered (file,
1124 "gdbarch_dump: target_signal_to_host = <%s>\n",
1125 host_address_to_string (gdbarch->target_signal_to_host));
1126 fprintf_unfiltered (file,
1127 "gdbarch_dump: gdbarch_unwind_pc_p() = %d\n",
1128 gdbarch_unwind_pc_p (gdbarch));
1129 fprintf_unfiltered (file,
1130 "gdbarch_dump: unwind_pc = <%s>\n",
1131 host_address_to_string (gdbarch->unwind_pc));
1132 fprintf_unfiltered (file,
1133 "gdbarch_dump: gdbarch_unwind_sp_p() = %d\n",
1134 gdbarch_unwind_sp_p (gdbarch));
1135 fprintf_unfiltered (file,
1136 "gdbarch_dump: unwind_sp = <%s>\n",
1137 host_address_to_string (gdbarch->unwind_sp));
1138 fprintf_unfiltered (file,
1139 "gdbarch_dump: value_from_register = <%s>\n",
1140 host_address_to_string (gdbarch->value_from_register));
1141 fprintf_unfiltered (file,
1142 "gdbarch_dump: value_to_register = <%s>\n",
1143 host_address_to_string (gdbarch->value_to_register));
1144 fprintf_unfiltered (file,
1145 "gdbarch_dump: vbit_in_delta = %s\n",
1146 plongest (gdbarch->vbit_in_delta));
1147 fprintf_unfiltered (file,
1148 "gdbarch_dump: virtual_frame_pointer = <%s>\n",
1149 host_address_to_string (gdbarch->virtual_frame_pointer));
1150 fprintf_unfiltered (file,
1151 "gdbarch_dump: vtable_function_descriptors = %s\n",
1152 plongest (gdbarch->vtable_function_descriptors));
1153 fprintf_unfiltered (file,
1154 "gdbarch_dump: gdbarch_write_pc_p() = %d\n",
1155 gdbarch_write_pc_p (gdbarch));
1156 fprintf_unfiltered (file,
1157 "gdbarch_dump: write_pc = <%s>\n",
1158 host_address_to_string (gdbarch->write_pc));
1159 if (gdbarch->dump_tdep != NULL)
1160 gdbarch->dump_tdep (gdbarch, file);
1161 }
1162
1163 struct gdbarch_tdep *
1164 gdbarch_tdep (struct gdbarch *gdbarch)
1165 {
1166 if (gdbarch_debug >= 2)
1167 fprintf_unfiltered (gdb_stdlog, "gdbarch_tdep called\n");
1168 return gdbarch->tdep;
1169 }
1170
1171
1172 const struct bfd_arch_info *
1173 gdbarch_bfd_arch_info (struct gdbarch *gdbarch)
1174 {
1175 gdb_assert (gdbarch != NULL);
1176 if (gdbarch_debug >= 2)
1177 fprintf_unfiltered (gdb_stdlog, "gdbarch_bfd_arch_info called\n");
1178 return gdbarch->bfd_arch_info;
1179 }
1180
1181 int
1182 gdbarch_byte_order (struct gdbarch *gdbarch)
1183 {
1184 gdb_assert (gdbarch != NULL);
1185 if (gdbarch_debug >= 2)
1186 fprintf_unfiltered (gdb_stdlog, "gdbarch_byte_order called\n");
1187 return gdbarch->byte_order;
1188 }
1189
1190 int
1191 gdbarch_byte_order_for_code (struct gdbarch *gdbarch)
1192 {
1193 gdb_assert (gdbarch != NULL);
1194 if (gdbarch_debug >= 2)
1195 fprintf_unfiltered (gdb_stdlog, "gdbarch_byte_order_for_code called\n");
1196 return gdbarch->byte_order_for_code;
1197 }
1198
1199 enum gdb_osabi
1200 gdbarch_osabi (struct gdbarch *gdbarch)
1201 {
1202 gdb_assert (gdbarch != NULL);
1203 if (gdbarch_debug >= 2)
1204 fprintf_unfiltered (gdb_stdlog, "gdbarch_osabi called\n");
1205 return gdbarch->osabi;
1206 }
1207
1208 const struct target_desc *
1209 gdbarch_target_desc (struct gdbarch *gdbarch)
1210 {
1211 gdb_assert (gdbarch != NULL);
1212 if (gdbarch_debug >= 2)
1213 fprintf_unfiltered (gdb_stdlog, "gdbarch_target_desc called\n");
1214 return gdbarch->target_desc;
1215 }
1216
1217 int
1218 gdbarch_bits_big_endian (struct gdbarch *gdbarch)
1219 {
1220 gdb_assert (gdbarch != NULL);
1221 /* Skip verify of bits_big_endian, invalid_p == 0 */
1222 if (gdbarch_debug >= 2)
1223 fprintf_unfiltered (gdb_stdlog, "gdbarch_bits_big_endian called\n");
1224 return gdbarch->bits_big_endian;
1225 }
1226
1227 void
1228 set_gdbarch_bits_big_endian (struct gdbarch *gdbarch,
1229 int bits_big_endian)
1230 {
1231 gdbarch->bits_big_endian = bits_big_endian;
1232 }
1233
1234 int
1235 gdbarch_short_bit (struct gdbarch *gdbarch)
1236 {
1237 gdb_assert (gdbarch != NULL);
1238 /* Skip verify of short_bit, invalid_p == 0 */
1239 if (gdbarch_debug >= 2)
1240 fprintf_unfiltered (gdb_stdlog, "gdbarch_short_bit called\n");
1241 return gdbarch->short_bit;
1242 }
1243
1244 void
1245 set_gdbarch_short_bit (struct gdbarch *gdbarch,
1246 int short_bit)
1247 {
1248 gdbarch->short_bit = short_bit;
1249 }
1250
1251 int
1252 gdbarch_int_bit (struct gdbarch *gdbarch)
1253 {
1254 gdb_assert (gdbarch != NULL);
1255 /* Skip verify of int_bit, invalid_p == 0 */
1256 if (gdbarch_debug >= 2)
1257 fprintf_unfiltered (gdb_stdlog, "gdbarch_int_bit called\n");
1258 return gdbarch->int_bit;
1259 }
1260
1261 void
1262 set_gdbarch_int_bit (struct gdbarch *gdbarch,
1263 int int_bit)
1264 {
1265 gdbarch->int_bit = int_bit;
1266 }
1267
1268 int
1269 gdbarch_long_bit (struct gdbarch *gdbarch)
1270 {
1271 gdb_assert (gdbarch != NULL);
1272 /* Skip verify of long_bit, invalid_p == 0 */
1273 if (gdbarch_debug >= 2)
1274 fprintf_unfiltered (gdb_stdlog, "gdbarch_long_bit called\n");
1275 return gdbarch->long_bit;
1276 }
1277
1278 void
1279 set_gdbarch_long_bit (struct gdbarch *gdbarch,
1280 int long_bit)
1281 {
1282 gdbarch->long_bit = long_bit;
1283 }
1284
1285 int
1286 gdbarch_long_long_bit (struct gdbarch *gdbarch)
1287 {
1288 gdb_assert (gdbarch != NULL);
1289 /* Skip verify of long_long_bit, invalid_p == 0 */
1290 if (gdbarch_debug >= 2)
1291 fprintf_unfiltered (gdb_stdlog, "gdbarch_long_long_bit called\n");
1292 return gdbarch->long_long_bit;
1293 }
1294
1295 void
1296 set_gdbarch_long_long_bit (struct gdbarch *gdbarch,
1297 int long_long_bit)
1298 {
1299 gdbarch->long_long_bit = long_long_bit;
1300 }
1301
1302 int
1303 gdbarch_float_bit (struct gdbarch *gdbarch)
1304 {
1305 gdb_assert (gdbarch != NULL);
1306 /* Skip verify of float_bit, invalid_p == 0 */
1307 if (gdbarch_debug >= 2)
1308 fprintf_unfiltered (gdb_stdlog, "gdbarch_float_bit called\n");
1309 return gdbarch->float_bit;
1310 }
1311
1312 void
1313 set_gdbarch_float_bit (struct gdbarch *gdbarch,
1314 int float_bit)
1315 {
1316 gdbarch->float_bit = float_bit;
1317 }
1318
1319 const struct floatformat **
1320 gdbarch_float_format (struct gdbarch *gdbarch)
1321 {
1322 gdb_assert (gdbarch != NULL);
1323 if (gdbarch_debug >= 2)
1324 fprintf_unfiltered (gdb_stdlog, "gdbarch_float_format called\n");
1325 return gdbarch->float_format;
1326 }
1327
1328 void
1329 set_gdbarch_float_format (struct gdbarch *gdbarch,
1330 const struct floatformat ** float_format)
1331 {
1332 gdbarch->float_format = float_format;
1333 }
1334
1335 int
1336 gdbarch_double_bit (struct gdbarch *gdbarch)
1337 {
1338 gdb_assert (gdbarch != NULL);
1339 /* Skip verify of double_bit, invalid_p == 0 */
1340 if (gdbarch_debug >= 2)
1341 fprintf_unfiltered (gdb_stdlog, "gdbarch_double_bit called\n");
1342 return gdbarch->double_bit;
1343 }
1344
1345 void
1346 set_gdbarch_double_bit (struct gdbarch *gdbarch,
1347 int double_bit)
1348 {
1349 gdbarch->double_bit = double_bit;
1350 }
1351
1352 const struct floatformat **
1353 gdbarch_double_format (struct gdbarch *gdbarch)
1354 {
1355 gdb_assert (gdbarch != NULL);
1356 if (gdbarch_debug >= 2)
1357 fprintf_unfiltered (gdb_stdlog, "gdbarch_double_format called\n");
1358 return gdbarch->double_format;
1359 }
1360
1361 void
1362 set_gdbarch_double_format (struct gdbarch *gdbarch,
1363 const struct floatformat ** double_format)
1364 {
1365 gdbarch->double_format = double_format;
1366 }
1367
1368 int
1369 gdbarch_long_double_bit (struct gdbarch *gdbarch)
1370 {
1371 gdb_assert (gdbarch != NULL);
1372 /* Skip verify of long_double_bit, invalid_p == 0 */
1373 if (gdbarch_debug >= 2)
1374 fprintf_unfiltered (gdb_stdlog, "gdbarch_long_double_bit called\n");
1375 return gdbarch->long_double_bit;
1376 }
1377
1378 void
1379 set_gdbarch_long_double_bit (struct gdbarch *gdbarch,
1380 int long_double_bit)
1381 {
1382 gdbarch->long_double_bit = long_double_bit;
1383 }
1384
1385 const struct floatformat **
1386 gdbarch_long_double_format (struct gdbarch *gdbarch)
1387 {
1388 gdb_assert (gdbarch != NULL);
1389 if (gdbarch_debug >= 2)
1390 fprintf_unfiltered (gdb_stdlog, "gdbarch_long_double_format called\n");
1391 return gdbarch->long_double_format;
1392 }
1393
1394 void
1395 set_gdbarch_long_double_format (struct gdbarch *gdbarch,
1396 const struct floatformat ** long_double_format)
1397 {
1398 gdbarch->long_double_format = long_double_format;
1399 }
1400
1401 int
1402 gdbarch_ptr_bit (struct gdbarch *gdbarch)
1403 {
1404 gdb_assert (gdbarch != NULL);
1405 /* Skip verify of ptr_bit, invalid_p == 0 */
1406 if (gdbarch_debug >= 2)
1407 fprintf_unfiltered (gdb_stdlog, "gdbarch_ptr_bit called\n");
1408 return gdbarch->ptr_bit;
1409 }
1410
1411 void
1412 set_gdbarch_ptr_bit (struct gdbarch *gdbarch,
1413 int ptr_bit)
1414 {
1415 gdbarch->ptr_bit = ptr_bit;
1416 }
1417
1418 int
1419 gdbarch_addr_bit (struct gdbarch *gdbarch)
1420 {
1421 gdb_assert (gdbarch != NULL);
1422 /* Check variable changed from pre-default. */
1423 gdb_assert (gdbarch->addr_bit != 0);
1424 if (gdbarch_debug >= 2)
1425 fprintf_unfiltered (gdb_stdlog, "gdbarch_addr_bit called\n");
1426 return gdbarch->addr_bit;
1427 }
1428
1429 void
1430 set_gdbarch_addr_bit (struct gdbarch *gdbarch,
1431 int addr_bit)
1432 {
1433 gdbarch->addr_bit = addr_bit;
1434 }
1435
1436 int
1437 gdbarch_char_signed (struct gdbarch *gdbarch)
1438 {
1439 gdb_assert (gdbarch != NULL);
1440 /* Check variable changed from pre-default. */
1441 gdb_assert (gdbarch->char_signed != -1);
1442 if (gdbarch_debug >= 2)
1443 fprintf_unfiltered (gdb_stdlog, "gdbarch_char_signed called\n");
1444 return gdbarch->char_signed;
1445 }
1446
1447 void
1448 set_gdbarch_char_signed (struct gdbarch *gdbarch,
1449 int char_signed)
1450 {
1451 gdbarch->char_signed = char_signed;
1452 }
1453
1454 int
1455 gdbarch_read_pc_p (struct gdbarch *gdbarch)
1456 {
1457 gdb_assert (gdbarch != NULL);
1458 return gdbarch->read_pc != NULL;
1459 }
1460
1461 CORE_ADDR
1462 gdbarch_read_pc (struct gdbarch *gdbarch, struct regcache *regcache)
1463 {
1464 gdb_assert (gdbarch != NULL);
1465 gdb_assert (gdbarch->read_pc != NULL);
1466 if (gdbarch_debug >= 2)
1467 fprintf_unfiltered (gdb_stdlog, "gdbarch_read_pc called\n");
1468 return gdbarch->read_pc (regcache);
1469 }
1470
1471 void
1472 set_gdbarch_read_pc (struct gdbarch *gdbarch,
1473 gdbarch_read_pc_ftype read_pc)
1474 {
1475 gdbarch->read_pc = read_pc;
1476 }
1477
1478 int
1479 gdbarch_write_pc_p (struct gdbarch *gdbarch)
1480 {
1481 gdb_assert (gdbarch != NULL);
1482 return gdbarch->write_pc != NULL;
1483 }
1484
1485 void
1486 gdbarch_write_pc (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR val)
1487 {
1488 gdb_assert (gdbarch != NULL);
1489 gdb_assert (gdbarch->write_pc != NULL);
1490 if (gdbarch_debug >= 2)
1491 fprintf_unfiltered (gdb_stdlog, "gdbarch_write_pc called\n");
1492 gdbarch->write_pc (regcache, val);
1493 }
1494
1495 void
1496 set_gdbarch_write_pc (struct gdbarch *gdbarch,
1497 gdbarch_write_pc_ftype write_pc)
1498 {
1499 gdbarch->write_pc = write_pc;
1500 }
1501
1502 void
1503 gdbarch_virtual_frame_pointer (struct gdbarch *gdbarch, CORE_ADDR pc, int *frame_regnum, LONGEST *frame_offset)
1504 {
1505 gdb_assert (gdbarch != NULL);
1506 gdb_assert (gdbarch->virtual_frame_pointer != NULL);
1507 if (gdbarch_debug >= 2)
1508 fprintf_unfiltered (gdb_stdlog, "gdbarch_virtual_frame_pointer called\n");
1509 gdbarch->virtual_frame_pointer (gdbarch, pc, frame_regnum, frame_offset);
1510 }
1511
1512 void
1513 set_gdbarch_virtual_frame_pointer (struct gdbarch *gdbarch,
1514 gdbarch_virtual_frame_pointer_ftype virtual_frame_pointer)
1515 {
1516 gdbarch->virtual_frame_pointer = virtual_frame_pointer;
1517 }
1518
1519 int
1520 gdbarch_pseudo_register_read_p (struct gdbarch *gdbarch)
1521 {
1522 gdb_assert (gdbarch != NULL);
1523 return gdbarch->pseudo_register_read != NULL;
1524 }
1525
1526 void
1527 gdbarch_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, gdb_byte *buf)
1528 {
1529 gdb_assert (gdbarch != NULL);
1530 gdb_assert (gdbarch->pseudo_register_read != NULL);
1531 if (gdbarch_debug >= 2)
1532 fprintf_unfiltered (gdb_stdlog, "gdbarch_pseudo_register_read called\n");
1533 gdbarch->pseudo_register_read (gdbarch, regcache, cookednum, buf);
1534 }
1535
1536 void
1537 set_gdbarch_pseudo_register_read (struct gdbarch *gdbarch,
1538 gdbarch_pseudo_register_read_ftype pseudo_register_read)
1539 {
1540 gdbarch->pseudo_register_read = pseudo_register_read;
1541 }
1542
1543 int
1544 gdbarch_pseudo_register_write_p (struct gdbarch *gdbarch)
1545 {
1546 gdb_assert (gdbarch != NULL);
1547 return gdbarch->pseudo_register_write != NULL;
1548 }
1549
1550 void
1551 gdbarch_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, const gdb_byte *buf)
1552 {
1553 gdb_assert (gdbarch != NULL);
1554 gdb_assert (gdbarch->pseudo_register_write != NULL);
1555 if (gdbarch_debug >= 2)
1556 fprintf_unfiltered (gdb_stdlog, "gdbarch_pseudo_register_write called\n");
1557 gdbarch->pseudo_register_write (gdbarch, regcache, cookednum, buf);
1558 }
1559
1560 void
1561 set_gdbarch_pseudo_register_write (struct gdbarch *gdbarch,
1562 gdbarch_pseudo_register_write_ftype pseudo_register_write)
1563 {
1564 gdbarch->pseudo_register_write = pseudo_register_write;
1565 }
1566
1567 int
1568 gdbarch_num_regs (struct gdbarch *gdbarch)
1569 {
1570 gdb_assert (gdbarch != NULL);
1571 /* Check variable changed from pre-default. */
1572 gdb_assert (gdbarch->num_regs != -1);
1573 if (gdbarch_debug >= 2)
1574 fprintf_unfiltered (gdb_stdlog, "gdbarch_num_regs called\n");
1575 return gdbarch->num_regs;
1576 }
1577
1578 void
1579 set_gdbarch_num_regs (struct gdbarch *gdbarch,
1580 int num_regs)
1581 {
1582 gdbarch->num_regs = num_regs;
1583 }
1584
1585 int
1586 gdbarch_num_pseudo_regs (struct gdbarch *gdbarch)
1587 {
1588 gdb_assert (gdbarch != NULL);
1589 /* Skip verify of num_pseudo_regs, invalid_p == 0 */
1590 if (gdbarch_debug >= 2)
1591 fprintf_unfiltered (gdb_stdlog, "gdbarch_num_pseudo_regs called\n");
1592 return gdbarch->num_pseudo_regs;
1593 }
1594
1595 void
1596 set_gdbarch_num_pseudo_regs (struct gdbarch *gdbarch,
1597 int num_pseudo_regs)
1598 {
1599 gdbarch->num_pseudo_regs = num_pseudo_regs;
1600 }
1601
1602 int
1603 gdbarch_sp_regnum (struct gdbarch *gdbarch)
1604 {
1605 gdb_assert (gdbarch != NULL);
1606 /* Skip verify of sp_regnum, invalid_p == 0 */
1607 if (gdbarch_debug >= 2)
1608 fprintf_unfiltered (gdb_stdlog, "gdbarch_sp_regnum called\n");
1609 return gdbarch->sp_regnum;
1610 }
1611
1612 void
1613 set_gdbarch_sp_regnum (struct gdbarch *gdbarch,
1614 int sp_regnum)
1615 {
1616 gdbarch->sp_regnum = sp_regnum;
1617 }
1618
1619 int
1620 gdbarch_pc_regnum (struct gdbarch *gdbarch)
1621 {
1622 gdb_assert (gdbarch != NULL);
1623 /* Skip verify of pc_regnum, invalid_p == 0 */
1624 if (gdbarch_debug >= 2)
1625 fprintf_unfiltered (gdb_stdlog, "gdbarch_pc_regnum called\n");
1626 return gdbarch->pc_regnum;
1627 }
1628
1629 void
1630 set_gdbarch_pc_regnum (struct gdbarch *gdbarch,
1631 int pc_regnum)
1632 {
1633 gdbarch->pc_regnum = pc_regnum;
1634 }
1635
1636 int
1637 gdbarch_ps_regnum (struct gdbarch *gdbarch)
1638 {
1639 gdb_assert (gdbarch != NULL);
1640 /* Skip verify of ps_regnum, invalid_p == 0 */
1641 if (gdbarch_debug >= 2)
1642 fprintf_unfiltered (gdb_stdlog, "gdbarch_ps_regnum called\n");
1643 return gdbarch->ps_regnum;
1644 }
1645
1646 void
1647 set_gdbarch_ps_regnum (struct gdbarch *gdbarch,
1648 int ps_regnum)
1649 {
1650 gdbarch->ps_regnum = ps_regnum;
1651 }
1652
1653 int
1654 gdbarch_fp0_regnum (struct gdbarch *gdbarch)
1655 {
1656 gdb_assert (gdbarch != NULL);
1657 /* Skip verify of fp0_regnum, invalid_p == 0 */
1658 if (gdbarch_debug >= 2)
1659 fprintf_unfiltered (gdb_stdlog, "gdbarch_fp0_regnum called\n");
1660 return gdbarch->fp0_regnum;
1661 }
1662
1663 void
1664 set_gdbarch_fp0_regnum (struct gdbarch *gdbarch,
1665 int fp0_regnum)
1666 {
1667 gdbarch->fp0_regnum = fp0_regnum;
1668 }
1669
1670 int
1671 gdbarch_stab_reg_to_regnum (struct gdbarch *gdbarch, int stab_regnr)
1672 {
1673 gdb_assert (gdbarch != NULL);
1674 gdb_assert (gdbarch->stab_reg_to_regnum != NULL);
1675 if (gdbarch_debug >= 2)
1676 fprintf_unfiltered (gdb_stdlog, "gdbarch_stab_reg_to_regnum called\n");
1677 return gdbarch->stab_reg_to_regnum (gdbarch, stab_regnr);
1678 }
1679
1680 void
1681 set_gdbarch_stab_reg_to_regnum (struct gdbarch *gdbarch,
1682 gdbarch_stab_reg_to_regnum_ftype stab_reg_to_regnum)
1683 {
1684 gdbarch->stab_reg_to_regnum = stab_reg_to_regnum;
1685 }
1686
1687 int
1688 gdbarch_ecoff_reg_to_regnum (struct gdbarch *gdbarch, int ecoff_regnr)
1689 {
1690 gdb_assert (gdbarch != NULL);
1691 gdb_assert (gdbarch->ecoff_reg_to_regnum != NULL);
1692 if (gdbarch_debug >= 2)
1693 fprintf_unfiltered (gdb_stdlog, "gdbarch_ecoff_reg_to_regnum called\n");
1694 return gdbarch->ecoff_reg_to_regnum (gdbarch, ecoff_regnr);
1695 }
1696
1697 void
1698 set_gdbarch_ecoff_reg_to_regnum (struct gdbarch *gdbarch,
1699 gdbarch_ecoff_reg_to_regnum_ftype ecoff_reg_to_regnum)
1700 {
1701 gdbarch->ecoff_reg_to_regnum = ecoff_reg_to_regnum;
1702 }
1703
1704 int
1705 gdbarch_sdb_reg_to_regnum (struct gdbarch *gdbarch, int sdb_regnr)
1706 {
1707 gdb_assert (gdbarch != NULL);
1708 gdb_assert (gdbarch->sdb_reg_to_regnum != NULL);
1709 if (gdbarch_debug >= 2)
1710 fprintf_unfiltered (gdb_stdlog, "gdbarch_sdb_reg_to_regnum called\n");
1711 return gdbarch->sdb_reg_to_regnum (gdbarch, sdb_regnr);
1712 }
1713
1714 void
1715 set_gdbarch_sdb_reg_to_regnum (struct gdbarch *gdbarch,
1716 gdbarch_sdb_reg_to_regnum_ftype sdb_reg_to_regnum)
1717 {
1718 gdbarch->sdb_reg_to_regnum = sdb_reg_to_regnum;
1719 }
1720
1721 int
1722 gdbarch_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, int dwarf2_regnr)
1723 {
1724 gdb_assert (gdbarch != NULL);
1725 gdb_assert (gdbarch->dwarf2_reg_to_regnum != NULL);
1726 if (gdbarch_debug >= 2)
1727 fprintf_unfiltered (gdb_stdlog, "gdbarch_dwarf2_reg_to_regnum called\n");
1728 return gdbarch->dwarf2_reg_to_regnum (gdbarch, dwarf2_regnr);
1729 }
1730
1731 void
1732 set_gdbarch_dwarf2_reg_to_regnum (struct gdbarch *gdbarch,
1733 gdbarch_dwarf2_reg_to_regnum_ftype dwarf2_reg_to_regnum)
1734 {
1735 gdbarch->dwarf2_reg_to_regnum = dwarf2_reg_to_regnum;
1736 }
1737
1738 const char *
1739 gdbarch_register_name (struct gdbarch *gdbarch, int regnr)
1740 {
1741 gdb_assert (gdbarch != NULL);
1742 gdb_assert (gdbarch->register_name != NULL);
1743 if (gdbarch_debug >= 2)
1744 fprintf_unfiltered (gdb_stdlog, "gdbarch_register_name called\n");
1745 return gdbarch->register_name (gdbarch, regnr);
1746 }
1747
1748 void
1749 set_gdbarch_register_name (struct gdbarch *gdbarch,
1750 gdbarch_register_name_ftype register_name)
1751 {
1752 gdbarch->register_name = register_name;
1753 }
1754
1755 int
1756 gdbarch_register_type_p (struct gdbarch *gdbarch)
1757 {
1758 gdb_assert (gdbarch != NULL);
1759 return gdbarch->register_type != NULL;
1760 }
1761
1762 struct type *
1763 gdbarch_register_type (struct gdbarch *gdbarch, int reg_nr)
1764 {
1765 gdb_assert (gdbarch != NULL);
1766 gdb_assert (gdbarch->register_type != NULL);
1767 if (gdbarch_debug >= 2)
1768 fprintf_unfiltered (gdb_stdlog, "gdbarch_register_type called\n");
1769 return gdbarch->register_type (gdbarch, reg_nr);
1770 }
1771
1772 void
1773 set_gdbarch_register_type (struct gdbarch *gdbarch,
1774 gdbarch_register_type_ftype register_type)
1775 {
1776 gdbarch->register_type = register_type;
1777 }
1778
1779 int
1780 gdbarch_dummy_id_p (struct gdbarch *gdbarch)
1781 {
1782 gdb_assert (gdbarch != NULL);
1783 return gdbarch->dummy_id != NULL;
1784 }
1785
1786 struct frame_id
1787 gdbarch_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
1788 {
1789 gdb_assert (gdbarch != NULL);
1790 gdb_assert (gdbarch->dummy_id != NULL);
1791 if (gdbarch_debug >= 2)
1792 fprintf_unfiltered (gdb_stdlog, "gdbarch_dummy_id called\n");
1793 return gdbarch->dummy_id (gdbarch, this_frame);
1794 }
1795
1796 void
1797 set_gdbarch_dummy_id (struct gdbarch *gdbarch,
1798 gdbarch_dummy_id_ftype dummy_id)
1799 {
1800 gdbarch->dummy_id = dummy_id;
1801 }
1802
1803 int
1804 gdbarch_deprecated_fp_regnum (struct gdbarch *gdbarch)
1805 {
1806 gdb_assert (gdbarch != NULL);
1807 /* Skip verify of deprecated_fp_regnum, invalid_p == 0 */
1808 if (gdbarch_debug >= 2)
1809 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_fp_regnum called\n");
1810 return gdbarch->deprecated_fp_regnum;
1811 }
1812
1813 void
1814 set_gdbarch_deprecated_fp_regnum (struct gdbarch *gdbarch,
1815 int deprecated_fp_regnum)
1816 {
1817 gdbarch->deprecated_fp_regnum = deprecated_fp_regnum;
1818 }
1819
1820 int
1821 gdbarch_push_dummy_call_p (struct gdbarch *gdbarch)
1822 {
1823 gdb_assert (gdbarch != NULL);
1824 return gdbarch->push_dummy_call != NULL;
1825 }
1826
1827 CORE_ADDR
1828 gdbarch_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr)
1829 {
1830 gdb_assert (gdbarch != NULL);
1831 gdb_assert (gdbarch->push_dummy_call != NULL);
1832 if (gdbarch_debug >= 2)
1833 fprintf_unfiltered (gdb_stdlog, "gdbarch_push_dummy_call called\n");
1834 return gdbarch->push_dummy_call (gdbarch, function, regcache, bp_addr, nargs, args, sp, struct_return, struct_addr);
1835 }
1836
1837 void
1838 set_gdbarch_push_dummy_call (struct gdbarch *gdbarch,
1839 gdbarch_push_dummy_call_ftype push_dummy_call)
1840 {
1841 gdbarch->push_dummy_call = push_dummy_call;
1842 }
1843
1844 int
1845 gdbarch_call_dummy_location (struct gdbarch *gdbarch)
1846 {
1847 gdb_assert (gdbarch != NULL);
1848 /* Skip verify of call_dummy_location, invalid_p == 0 */
1849 if (gdbarch_debug >= 2)
1850 fprintf_unfiltered (gdb_stdlog, "gdbarch_call_dummy_location called\n");
1851 return gdbarch->call_dummy_location;
1852 }
1853
1854 void
1855 set_gdbarch_call_dummy_location (struct gdbarch *gdbarch,
1856 int call_dummy_location)
1857 {
1858 gdbarch->call_dummy_location = call_dummy_location;
1859 }
1860
1861 int
1862 gdbarch_push_dummy_code_p (struct gdbarch *gdbarch)
1863 {
1864 gdb_assert (gdbarch != NULL);
1865 return gdbarch->push_dummy_code != NULL;
1866 }
1867
1868 CORE_ADDR
1869 gdbarch_push_dummy_code (struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funaddr, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr, struct regcache *regcache)
1870 {
1871 gdb_assert (gdbarch != NULL);
1872 gdb_assert (gdbarch->push_dummy_code != NULL);
1873 if (gdbarch_debug >= 2)
1874 fprintf_unfiltered (gdb_stdlog, "gdbarch_push_dummy_code called\n");
1875 return gdbarch->push_dummy_code (gdbarch, sp, funaddr, args, nargs, value_type, real_pc, bp_addr, regcache);
1876 }
1877
1878 void
1879 set_gdbarch_push_dummy_code (struct gdbarch *gdbarch,
1880 gdbarch_push_dummy_code_ftype push_dummy_code)
1881 {
1882 gdbarch->push_dummy_code = push_dummy_code;
1883 }
1884
1885 void
1886 gdbarch_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, int regnum, int all)
1887 {
1888 gdb_assert (gdbarch != NULL);
1889 gdb_assert (gdbarch->print_registers_info != NULL);
1890 if (gdbarch_debug >= 2)
1891 fprintf_unfiltered (gdb_stdlog, "gdbarch_print_registers_info called\n");
1892 gdbarch->print_registers_info (gdbarch, file, frame, regnum, all);
1893 }
1894
1895 void
1896 set_gdbarch_print_registers_info (struct gdbarch *gdbarch,
1897 gdbarch_print_registers_info_ftype print_registers_info)
1898 {
1899 gdbarch->print_registers_info = print_registers_info;
1900 }
1901
1902 int
1903 gdbarch_print_float_info_p (struct gdbarch *gdbarch)
1904 {
1905 gdb_assert (gdbarch != NULL);
1906 return gdbarch->print_float_info != NULL;
1907 }
1908
1909 void
1910 gdbarch_print_float_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, const char *args)
1911 {
1912 gdb_assert (gdbarch != NULL);
1913 gdb_assert (gdbarch->print_float_info != NULL);
1914 if (gdbarch_debug >= 2)
1915 fprintf_unfiltered (gdb_stdlog, "gdbarch_print_float_info called\n");
1916 gdbarch->print_float_info (gdbarch, file, frame, args);
1917 }
1918
1919 void
1920 set_gdbarch_print_float_info (struct gdbarch *gdbarch,
1921 gdbarch_print_float_info_ftype print_float_info)
1922 {
1923 gdbarch->print_float_info = print_float_info;
1924 }
1925
1926 int
1927 gdbarch_print_vector_info_p (struct gdbarch *gdbarch)
1928 {
1929 gdb_assert (gdbarch != NULL);
1930 return gdbarch->print_vector_info != NULL;
1931 }
1932
1933 void
1934 gdbarch_print_vector_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, const char *args)
1935 {
1936 gdb_assert (gdbarch != NULL);
1937 gdb_assert (gdbarch->print_vector_info != NULL);
1938 if (gdbarch_debug >= 2)
1939 fprintf_unfiltered (gdb_stdlog, "gdbarch_print_vector_info called\n");
1940 gdbarch->print_vector_info (gdbarch, file, frame, args);
1941 }
1942
1943 void
1944 set_gdbarch_print_vector_info (struct gdbarch *gdbarch,
1945 gdbarch_print_vector_info_ftype print_vector_info)
1946 {
1947 gdbarch->print_vector_info = print_vector_info;
1948 }
1949
1950 int
1951 gdbarch_register_sim_regno (struct gdbarch *gdbarch, int reg_nr)
1952 {
1953 gdb_assert (gdbarch != NULL);
1954 gdb_assert (gdbarch->register_sim_regno != NULL);
1955 if (gdbarch_debug >= 2)
1956 fprintf_unfiltered (gdb_stdlog, "gdbarch_register_sim_regno called\n");
1957 return gdbarch->register_sim_regno (gdbarch, reg_nr);
1958 }
1959
1960 void
1961 set_gdbarch_register_sim_regno (struct gdbarch *gdbarch,
1962 gdbarch_register_sim_regno_ftype register_sim_regno)
1963 {
1964 gdbarch->register_sim_regno = register_sim_regno;
1965 }
1966
1967 int
1968 gdbarch_cannot_fetch_register (struct gdbarch *gdbarch, int regnum)
1969 {
1970 gdb_assert (gdbarch != NULL);
1971 gdb_assert (gdbarch->cannot_fetch_register != NULL);
1972 if (gdbarch_debug >= 2)
1973 fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_fetch_register called\n");
1974 return gdbarch->cannot_fetch_register (gdbarch, regnum);
1975 }
1976
1977 void
1978 set_gdbarch_cannot_fetch_register (struct gdbarch *gdbarch,
1979 gdbarch_cannot_fetch_register_ftype cannot_fetch_register)
1980 {
1981 gdbarch->cannot_fetch_register = cannot_fetch_register;
1982 }
1983
1984 int
1985 gdbarch_cannot_store_register (struct gdbarch *gdbarch, int regnum)
1986 {
1987 gdb_assert (gdbarch != NULL);
1988 gdb_assert (gdbarch->cannot_store_register != NULL);
1989 if (gdbarch_debug >= 2)
1990 fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_store_register called\n");
1991 return gdbarch->cannot_store_register (gdbarch, regnum);
1992 }
1993
1994 void
1995 set_gdbarch_cannot_store_register (struct gdbarch *gdbarch,
1996 gdbarch_cannot_store_register_ftype cannot_store_register)
1997 {
1998 gdbarch->cannot_store_register = cannot_store_register;
1999 }
2000
2001 int
2002 gdbarch_get_longjmp_target_p (struct gdbarch *gdbarch)
2003 {
2004 gdb_assert (gdbarch != NULL);
2005 return gdbarch->get_longjmp_target != NULL;
2006 }
2007
2008 int
2009 gdbarch_get_longjmp_target (struct gdbarch *gdbarch, struct frame_info *frame, CORE_ADDR *pc)
2010 {
2011 gdb_assert (gdbarch != NULL);
2012 gdb_assert (gdbarch->get_longjmp_target != NULL);
2013 if (gdbarch_debug >= 2)
2014 fprintf_unfiltered (gdb_stdlog, "gdbarch_get_longjmp_target called\n");
2015 return gdbarch->get_longjmp_target (frame, pc);
2016 }
2017
2018 void
2019 set_gdbarch_get_longjmp_target (struct gdbarch *gdbarch,
2020 gdbarch_get_longjmp_target_ftype get_longjmp_target)
2021 {
2022 gdbarch->get_longjmp_target = get_longjmp_target;
2023 }
2024
2025 int
2026 gdbarch_believe_pcc_promotion (struct gdbarch *gdbarch)
2027 {
2028 gdb_assert (gdbarch != NULL);
2029 if (gdbarch_debug >= 2)
2030 fprintf_unfiltered (gdb_stdlog, "gdbarch_believe_pcc_promotion called\n");
2031 return gdbarch->believe_pcc_promotion;
2032 }
2033
2034 void
2035 set_gdbarch_believe_pcc_promotion (struct gdbarch *gdbarch,
2036 int believe_pcc_promotion)
2037 {
2038 gdbarch->believe_pcc_promotion = believe_pcc_promotion;
2039 }
2040
2041 int
2042 gdbarch_convert_register_p (struct gdbarch *gdbarch, int regnum, struct type *type)
2043 {
2044 gdb_assert (gdbarch != NULL);
2045 gdb_assert (gdbarch->convert_register_p != NULL);
2046 if (gdbarch_debug >= 2)
2047 fprintf_unfiltered (gdb_stdlog, "gdbarch_convert_register_p called\n");
2048 return gdbarch->convert_register_p (gdbarch, regnum, type);
2049 }
2050
2051 void
2052 set_gdbarch_convert_register_p (struct gdbarch *gdbarch,
2053 gdbarch_convert_register_p_ftype convert_register_p)
2054 {
2055 gdbarch->convert_register_p = convert_register_p;
2056 }
2057
2058 void
2059 gdbarch_register_to_value (struct gdbarch *gdbarch, struct frame_info *frame, int regnum, struct type *type, gdb_byte *buf)
2060 {
2061 gdb_assert (gdbarch != NULL);
2062 gdb_assert (gdbarch->register_to_value != NULL);
2063 if (gdbarch_debug >= 2)
2064 fprintf_unfiltered (gdb_stdlog, "gdbarch_register_to_value called\n");
2065 gdbarch->register_to_value (frame, regnum, type, buf);
2066 }
2067
2068 void
2069 set_gdbarch_register_to_value (struct gdbarch *gdbarch,
2070 gdbarch_register_to_value_ftype register_to_value)
2071 {
2072 gdbarch->register_to_value = register_to_value;
2073 }
2074
2075 void
2076 gdbarch_value_to_register (struct gdbarch *gdbarch, struct frame_info *frame, int regnum, struct type *type, const gdb_byte *buf)
2077 {
2078 gdb_assert (gdbarch != NULL);
2079 gdb_assert (gdbarch->value_to_register != NULL);
2080 if (gdbarch_debug >= 2)
2081 fprintf_unfiltered (gdb_stdlog, "gdbarch_value_to_register called\n");
2082 gdbarch->value_to_register (frame, regnum, type, buf);
2083 }
2084
2085 void
2086 set_gdbarch_value_to_register (struct gdbarch *gdbarch,
2087 gdbarch_value_to_register_ftype value_to_register)
2088 {
2089 gdbarch->value_to_register = value_to_register;
2090 }
2091
2092 struct value *
2093 gdbarch_value_from_register (struct gdbarch *gdbarch, struct type *type, int regnum, struct frame_info *frame)
2094 {
2095 gdb_assert (gdbarch != NULL);
2096 gdb_assert (gdbarch->value_from_register != NULL);
2097 if (gdbarch_debug >= 2)
2098 fprintf_unfiltered (gdb_stdlog, "gdbarch_value_from_register called\n");
2099 return gdbarch->value_from_register (type, regnum, frame);
2100 }
2101
2102 void
2103 set_gdbarch_value_from_register (struct gdbarch *gdbarch,
2104 gdbarch_value_from_register_ftype value_from_register)
2105 {
2106 gdbarch->value_from_register = value_from_register;
2107 }
2108
2109 CORE_ADDR
2110 gdbarch_pointer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
2111 {
2112 gdb_assert (gdbarch != NULL);
2113 gdb_assert (gdbarch->pointer_to_address != NULL);
2114 if (gdbarch_debug >= 2)
2115 fprintf_unfiltered (gdb_stdlog, "gdbarch_pointer_to_address called\n");
2116 return gdbarch->pointer_to_address (gdbarch, type, buf);
2117 }
2118
2119 void
2120 set_gdbarch_pointer_to_address (struct gdbarch *gdbarch,
2121 gdbarch_pointer_to_address_ftype pointer_to_address)
2122 {
2123 gdbarch->pointer_to_address = pointer_to_address;
2124 }
2125
2126 void
2127 gdbarch_address_to_pointer (struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr)
2128 {
2129 gdb_assert (gdbarch != NULL);
2130 gdb_assert (gdbarch->address_to_pointer != NULL);
2131 if (gdbarch_debug >= 2)
2132 fprintf_unfiltered (gdb_stdlog, "gdbarch_address_to_pointer called\n");
2133 gdbarch->address_to_pointer (gdbarch, type, buf, addr);
2134 }
2135
2136 void
2137 set_gdbarch_address_to_pointer (struct gdbarch *gdbarch,
2138 gdbarch_address_to_pointer_ftype address_to_pointer)
2139 {
2140 gdbarch->address_to_pointer = address_to_pointer;
2141 }
2142
2143 int
2144 gdbarch_integer_to_address_p (struct gdbarch *gdbarch)
2145 {
2146 gdb_assert (gdbarch != NULL);
2147 return gdbarch->integer_to_address != NULL;
2148 }
2149
2150 CORE_ADDR
2151 gdbarch_integer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
2152 {
2153 gdb_assert (gdbarch != NULL);
2154 gdb_assert (gdbarch->integer_to_address != NULL);
2155 if (gdbarch_debug >= 2)
2156 fprintf_unfiltered (gdb_stdlog, "gdbarch_integer_to_address called\n");
2157 return gdbarch->integer_to_address (gdbarch, type, buf);
2158 }
2159
2160 void
2161 set_gdbarch_integer_to_address (struct gdbarch *gdbarch,
2162 gdbarch_integer_to_address_ftype integer_to_address)
2163 {
2164 gdbarch->integer_to_address = integer_to_address;
2165 }
2166
2167 int
2168 gdbarch_return_value_p (struct gdbarch *gdbarch)
2169 {
2170 gdb_assert (gdbarch != NULL);
2171 return gdbarch->return_value != NULL;
2172 }
2173
2174 enum return_value_convention
2175 gdbarch_return_value (struct gdbarch *gdbarch, struct type *functype, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
2176 {
2177 gdb_assert (gdbarch != NULL);
2178 gdb_assert (gdbarch->return_value != NULL);
2179 if (gdbarch_debug >= 2)
2180 fprintf_unfiltered (gdb_stdlog, "gdbarch_return_value called\n");
2181 return gdbarch->return_value (gdbarch, functype, valtype, regcache, readbuf, writebuf);
2182 }
2183
2184 void
2185 set_gdbarch_return_value (struct gdbarch *gdbarch,
2186 gdbarch_return_value_ftype return_value)
2187 {
2188 gdbarch->return_value = return_value;
2189 }
2190
2191 CORE_ADDR
2192 gdbarch_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR ip)
2193 {
2194 gdb_assert (gdbarch != NULL);
2195 gdb_assert (gdbarch->skip_prologue != NULL);
2196 if (gdbarch_debug >= 2)
2197 fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_prologue called\n");
2198 return gdbarch->skip_prologue (gdbarch, ip);
2199 }
2200
2201 void
2202 set_gdbarch_skip_prologue (struct gdbarch *gdbarch,
2203 gdbarch_skip_prologue_ftype skip_prologue)
2204 {
2205 gdbarch->skip_prologue = skip_prologue;
2206 }
2207
2208 int
2209 gdbarch_skip_main_prologue_p (struct gdbarch *gdbarch)
2210 {
2211 gdb_assert (gdbarch != NULL);
2212 return gdbarch->skip_main_prologue != NULL;
2213 }
2214
2215 CORE_ADDR
2216 gdbarch_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR ip)
2217 {
2218 gdb_assert (gdbarch != NULL);
2219 gdb_assert (gdbarch->skip_main_prologue != NULL);
2220 if (gdbarch_debug >= 2)
2221 fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_main_prologue called\n");
2222 return gdbarch->skip_main_prologue (gdbarch, ip);
2223 }
2224
2225 void
2226 set_gdbarch_skip_main_prologue (struct gdbarch *gdbarch,
2227 gdbarch_skip_main_prologue_ftype skip_main_prologue)
2228 {
2229 gdbarch->skip_main_prologue = skip_main_prologue;
2230 }
2231
2232 int
2233 gdbarch_inner_than (struct gdbarch *gdbarch, CORE_ADDR lhs, CORE_ADDR rhs)
2234 {
2235 gdb_assert (gdbarch != NULL);
2236 gdb_assert (gdbarch->inner_than != NULL);
2237 if (gdbarch_debug >= 2)
2238 fprintf_unfiltered (gdb_stdlog, "gdbarch_inner_than called\n");
2239 return gdbarch->inner_than (lhs, rhs);
2240 }
2241
2242 void
2243 set_gdbarch_inner_than (struct gdbarch *gdbarch,
2244 gdbarch_inner_than_ftype inner_than)
2245 {
2246 gdbarch->inner_than = inner_than;
2247 }
2248
2249 const gdb_byte *
2250 gdbarch_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
2251 {
2252 gdb_assert (gdbarch != NULL);
2253 gdb_assert (gdbarch->breakpoint_from_pc != NULL);
2254 if (gdbarch_debug >= 2)
2255 fprintf_unfiltered (gdb_stdlog, "gdbarch_breakpoint_from_pc called\n");
2256 return gdbarch->breakpoint_from_pc (gdbarch, pcptr, lenptr);
2257 }
2258
2259 void
2260 set_gdbarch_breakpoint_from_pc (struct gdbarch *gdbarch,
2261 gdbarch_breakpoint_from_pc_ftype breakpoint_from_pc)
2262 {
2263 gdbarch->breakpoint_from_pc = breakpoint_from_pc;
2264 }
2265
2266 int
2267 gdbarch_adjust_breakpoint_address_p (struct gdbarch *gdbarch)
2268 {
2269 gdb_assert (gdbarch != NULL);
2270 return gdbarch->adjust_breakpoint_address != NULL;
2271 }
2272
2273 CORE_ADDR
2274 gdbarch_adjust_breakpoint_address (struct gdbarch *gdbarch, CORE_ADDR bpaddr)
2275 {
2276 gdb_assert (gdbarch != NULL);
2277 gdb_assert (gdbarch->adjust_breakpoint_address != NULL);
2278 if (gdbarch_debug >= 2)
2279 fprintf_unfiltered (gdb_stdlog, "gdbarch_adjust_breakpoint_address called\n");
2280 return gdbarch->adjust_breakpoint_address (gdbarch, bpaddr);
2281 }
2282
2283 void
2284 set_gdbarch_adjust_breakpoint_address (struct gdbarch *gdbarch,
2285 gdbarch_adjust_breakpoint_address_ftype adjust_breakpoint_address)
2286 {
2287 gdbarch->adjust_breakpoint_address = adjust_breakpoint_address;
2288 }
2289
2290 int
2291 gdbarch_memory_insert_breakpoint (struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
2292 {
2293 gdb_assert (gdbarch != NULL);
2294 gdb_assert (gdbarch->memory_insert_breakpoint != NULL);
2295 if (gdbarch_debug >= 2)
2296 fprintf_unfiltered (gdb_stdlog, "gdbarch_memory_insert_breakpoint called\n");
2297 return gdbarch->memory_insert_breakpoint (gdbarch, bp_tgt);
2298 }
2299
2300 void
2301 set_gdbarch_memory_insert_breakpoint (struct gdbarch *gdbarch,
2302 gdbarch_memory_insert_breakpoint_ftype memory_insert_breakpoint)
2303 {
2304 gdbarch->memory_insert_breakpoint = memory_insert_breakpoint;
2305 }
2306
2307 int
2308 gdbarch_memory_remove_breakpoint (struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
2309 {
2310 gdb_assert (gdbarch != NULL);
2311 gdb_assert (gdbarch->memory_remove_breakpoint != NULL);
2312 if (gdbarch_debug >= 2)
2313 fprintf_unfiltered (gdb_stdlog, "gdbarch_memory_remove_breakpoint called\n");
2314 return gdbarch->memory_remove_breakpoint (gdbarch, bp_tgt);
2315 }
2316
2317 void
2318 set_gdbarch_memory_remove_breakpoint (struct gdbarch *gdbarch,
2319 gdbarch_memory_remove_breakpoint_ftype memory_remove_breakpoint)
2320 {
2321 gdbarch->memory_remove_breakpoint = memory_remove_breakpoint;
2322 }
2323
2324 CORE_ADDR
2325 gdbarch_decr_pc_after_break (struct gdbarch *gdbarch)
2326 {
2327 gdb_assert (gdbarch != NULL);
2328 /* Skip verify of decr_pc_after_break, invalid_p == 0 */
2329 if (gdbarch_debug >= 2)
2330 fprintf_unfiltered (gdb_stdlog, "gdbarch_decr_pc_after_break called\n");
2331 return gdbarch->decr_pc_after_break;
2332 }
2333
2334 void
2335 set_gdbarch_decr_pc_after_break (struct gdbarch *gdbarch,
2336 CORE_ADDR decr_pc_after_break)
2337 {
2338 gdbarch->decr_pc_after_break = decr_pc_after_break;
2339 }
2340
2341 CORE_ADDR
2342 gdbarch_deprecated_function_start_offset (struct gdbarch *gdbarch)
2343 {
2344 gdb_assert (gdbarch != NULL);
2345 /* Skip verify of deprecated_function_start_offset, invalid_p == 0 */
2346 if (gdbarch_debug >= 2)
2347 fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_function_start_offset called\n");
2348 return gdbarch->deprecated_function_start_offset;
2349 }
2350
2351 void
2352 set_gdbarch_deprecated_function_start_offset (struct gdbarch *gdbarch,
2353 CORE_ADDR deprecated_function_start_offset)
2354 {
2355 gdbarch->deprecated_function_start_offset = deprecated_function_start_offset;
2356 }
2357
2358 int
2359 gdbarch_remote_register_number (struct gdbarch *gdbarch, int regno)
2360 {
2361 gdb_assert (gdbarch != NULL);
2362 gdb_assert (gdbarch->remote_register_number != NULL);
2363 if (gdbarch_debug >= 2)
2364 fprintf_unfiltered (gdb_stdlog, "gdbarch_remote_register_number called\n");
2365 return gdbarch->remote_register_number (gdbarch, regno);
2366 }
2367
2368 void
2369 set_gdbarch_remote_register_number (struct gdbarch *gdbarch,
2370 gdbarch_remote_register_number_ftype remote_register_number)
2371 {
2372 gdbarch->remote_register_number = remote_register_number;
2373 }
2374
2375 int
2376 gdbarch_fetch_tls_load_module_address_p (struct gdbarch *gdbarch)
2377 {
2378 gdb_assert (gdbarch != NULL);
2379 return gdbarch->fetch_tls_load_module_address != NULL;
2380 }
2381
2382 CORE_ADDR
2383 gdbarch_fetch_tls_load_module_address (struct gdbarch *gdbarch, struct objfile *objfile)
2384 {
2385 gdb_assert (gdbarch != NULL);
2386 gdb_assert (gdbarch->fetch_tls_load_module_address != NULL);
2387 if (gdbarch_debug >= 2)
2388 fprintf_unfiltered (gdb_stdlog, "gdbarch_fetch_tls_load_module_address called\n");
2389 return gdbarch->fetch_tls_load_module_address (objfile);
2390 }
2391
2392 void
2393 set_gdbarch_fetch_tls_load_module_address (struct gdbarch *gdbarch,
2394 gdbarch_fetch_tls_load_module_address_ftype fetch_tls_load_module_address)
2395 {
2396 gdbarch->fetch_tls_load_module_address = fetch_tls_load_module_address;
2397 }
2398
2399 CORE_ADDR
2400 gdbarch_frame_args_skip (struct gdbarch *gdbarch)
2401 {
2402 gdb_assert (gdbarch != NULL);
2403 /* Skip verify of frame_args_skip, invalid_p == 0 */
2404 if (gdbarch_debug >= 2)
2405 fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_args_skip called\n");
2406 return gdbarch->frame_args_skip;
2407 }
2408
2409 void
2410 set_gdbarch_frame_args_skip (struct gdbarch *gdbarch,
2411 CORE_ADDR frame_args_skip)
2412 {
2413 gdbarch->frame_args_skip = frame_args_skip;
2414 }
2415
2416 int
2417 gdbarch_unwind_pc_p (struct gdbarch *gdbarch)
2418 {
2419 gdb_assert (gdbarch != NULL);
2420 return gdbarch->unwind_pc != NULL;
2421 }
2422
2423 CORE_ADDR
2424 gdbarch_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
2425 {
2426 gdb_assert (gdbarch != NULL);
2427 gdb_assert (gdbarch->unwind_pc != NULL);
2428 if (gdbarch_debug >= 2)
2429 fprintf_unfiltered (gdb_stdlog, "gdbarch_unwind_pc called\n");
2430 return gdbarch->unwind_pc (gdbarch, next_frame);
2431 }
2432
2433 void
2434 set_gdbarch_unwind_pc (struct gdbarch *gdbarch,
2435 gdbarch_unwind_pc_ftype unwind_pc)
2436 {
2437 gdbarch->unwind_pc = unwind_pc;
2438 }
2439
2440 int
2441 gdbarch_unwind_sp_p (struct gdbarch *gdbarch)
2442 {
2443 gdb_assert (gdbarch != NULL);
2444 return gdbarch->unwind_sp != NULL;
2445 }
2446
2447 CORE_ADDR
2448 gdbarch_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
2449 {
2450 gdb_assert (gdbarch != NULL);
2451 gdb_assert (gdbarch->unwind_sp != NULL);
2452 if (gdbarch_debug >= 2)
2453 fprintf_unfiltered (gdb_stdlog, "gdbarch_unwind_sp called\n");
2454 return gdbarch->unwind_sp (gdbarch, next_frame);
2455 }
2456
2457 void
2458 set_gdbarch_unwind_sp (struct gdbarch *gdbarch,
2459 gdbarch_unwind_sp_ftype unwind_sp)
2460 {
2461 gdbarch->unwind_sp = unwind_sp;
2462 }
2463
2464 int
2465 gdbarch_frame_num_args_p (struct gdbarch *gdbarch)
2466 {
2467 gdb_assert (gdbarch != NULL);
2468 return gdbarch->frame_num_args != NULL;
2469 }
2470
2471 int
2472 gdbarch_frame_num_args (struct gdbarch *gdbarch, struct frame_info *frame)
2473 {
2474 gdb_assert (gdbarch != NULL);
2475 gdb_assert (gdbarch->frame_num_args != NULL);
2476 if (gdbarch_debug >= 2)
2477 fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_num_args called\n");
2478 return gdbarch->frame_num_args (frame);
2479 }
2480
2481 void
2482 set_gdbarch_frame_num_args (struct gdbarch *gdbarch,
2483 gdbarch_frame_num_args_ftype frame_num_args)
2484 {
2485 gdbarch->frame_num_args = frame_num_args;
2486 }
2487
2488 int
2489 gdbarch_frame_align_p (struct gdbarch *gdbarch)
2490 {
2491 gdb_assert (gdbarch != NULL);
2492 return gdbarch->frame_align != NULL;
2493 }
2494
2495 CORE_ADDR
2496 gdbarch_frame_align (struct gdbarch *gdbarch, CORE_ADDR address)
2497 {
2498 gdb_assert (gdbarch != NULL);
2499 gdb_assert (gdbarch->frame_align != NULL);
2500 if (gdbarch_debug >= 2)
2501 fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_align called\n");
2502 return gdbarch->frame_align (gdbarch, address);
2503 }
2504
2505 void
2506 set_gdbarch_frame_align (struct gdbarch *gdbarch,
2507 gdbarch_frame_align_ftype frame_align)
2508 {
2509 gdbarch->frame_align = frame_align;
2510 }
2511
2512 int
2513 gdbarch_stabs_argument_has_addr (struct gdbarch *gdbarch, struct type *type)
2514 {
2515 gdb_assert (gdbarch != NULL);
2516 gdb_assert (gdbarch->stabs_argument_has_addr != NULL);
2517 if (gdbarch_debug >= 2)
2518 fprintf_unfiltered (gdb_stdlog, "gdbarch_stabs_argument_has_addr called\n");
2519 return gdbarch->stabs_argument_has_addr (gdbarch, type);
2520 }
2521
2522 void
2523 set_gdbarch_stabs_argument_has_addr (struct gdbarch *gdbarch,
2524 gdbarch_stabs_argument_has_addr_ftype stabs_argument_has_addr)
2525 {
2526 gdbarch->stabs_argument_has_addr = stabs_argument_has_addr;
2527 }
2528
2529 int
2530 gdbarch_frame_red_zone_size (struct gdbarch *gdbarch)
2531 {
2532 gdb_assert (gdbarch != NULL);
2533 if (gdbarch_debug >= 2)
2534 fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_red_zone_size called\n");
2535 return gdbarch->frame_red_zone_size;
2536 }
2537
2538 void
2539 set_gdbarch_frame_red_zone_size (struct gdbarch *gdbarch,
2540 int frame_red_zone_size)
2541 {
2542 gdbarch->frame_red_zone_size = frame_red_zone_size;
2543 }
2544
2545 CORE_ADDR
2546 gdbarch_convert_from_func_ptr_addr (struct gdbarch *gdbarch, CORE_ADDR addr, struct target_ops *targ)
2547 {
2548 gdb_assert (gdbarch != NULL);
2549 gdb_assert (gdbarch->convert_from_func_ptr_addr != NULL);
2550 if (gdbarch_debug >= 2)
2551 fprintf_unfiltered (gdb_stdlog, "gdbarch_convert_from_func_ptr_addr called\n");
2552 return gdbarch->convert_from_func_ptr_addr (gdbarch, addr, targ);
2553 }
2554
2555 void
2556 set_gdbarch_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
2557 gdbarch_convert_from_func_ptr_addr_ftype convert_from_func_ptr_addr)
2558 {
2559 gdbarch->convert_from_func_ptr_addr = convert_from_func_ptr_addr;
2560 }
2561
2562 CORE_ADDR
2563 gdbarch_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr)
2564 {
2565 gdb_assert (gdbarch != NULL);
2566 gdb_assert (gdbarch->addr_bits_remove != NULL);
2567 if (gdbarch_debug >= 2)
2568 fprintf_unfiltered (gdb_stdlog, "gdbarch_addr_bits_remove called\n");
2569 return gdbarch->addr_bits_remove (gdbarch, addr);
2570 }
2571
2572 void
2573 set_gdbarch_addr_bits_remove (struct gdbarch *gdbarch,
2574 gdbarch_addr_bits_remove_ftype addr_bits_remove)
2575 {
2576 gdbarch->addr_bits_remove = addr_bits_remove;
2577 }
2578
2579 CORE_ADDR
2580 gdbarch_smash_text_address (struct gdbarch *gdbarch, CORE_ADDR addr)
2581 {
2582 gdb_assert (gdbarch != NULL);
2583 gdb_assert (gdbarch->smash_text_address != NULL);
2584 if (gdbarch_debug >= 2)
2585 fprintf_unfiltered (gdb_stdlog, "gdbarch_smash_text_address called\n");
2586 return gdbarch->smash_text_address (gdbarch, addr);
2587 }
2588
2589 void
2590 set_gdbarch_smash_text_address (struct gdbarch *gdbarch,
2591 gdbarch_smash_text_address_ftype smash_text_address)
2592 {
2593 gdbarch->smash_text_address = smash_text_address;
2594 }
2595
2596 int
2597 gdbarch_software_single_step_p (struct gdbarch *gdbarch)
2598 {
2599 gdb_assert (gdbarch != NULL);
2600 return gdbarch->software_single_step != NULL;
2601 }
2602
2603 int
2604 gdbarch_software_single_step (struct gdbarch *gdbarch, struct frame_info *frame)
2605 {
2606 gdb_assert (gdbarch != NULL);
2607 gdb_assert (gdbarch->software_single_step != NULL);
2608 if (gdbarch_debug >= 2)
2609 fprintf_unfiltered (gdb_stdlog, "gdbarch_software_single_step called\n");
2610 return gdbarch->software_single_step (frame);
2611 }
2612
2613 void
2614 set_gdbarch_software_single_step (struct gdbarch *gdbarch,
2615 gdbarch_software_single_step_ftype software_single_step)
2616 {
2617 gdbarch->software_single_step = software_single_step;
2618 }
2619
2620 int
2621 gdbarch_single_step_through_delay_p (struct gdbarch *gdbarch)
2622 {
2623 gdb_assert (gdbarch != NULL);
2624 return gdbarch->single_step_through_delay != NULL;
2625 }
2626
2627 int
2628 gdbarch_single_step_through_delay (struct gdbarch *gdbarch, struct frame_info *frame)
2629 {
2630 gdb_assert (gdbarch != NULL);
2631 gdb_assert (gdbarch->single_step_through_delay != NULL);
2632 if (gdbarch_debug >= 2)
2633 fprintf_unfiltered (gdb_stdlog, "gdbarch_single_step_through_delay called\n");
2634 return gdbarch->single_step_through_delay (gdbarch, frame);
2635 }
2636
2637 void
2638 set_gdbarch_single_step_through_delay (struct gdbarch *gdbarch,
2639 gdbarch_single_step_through_delay_ftype single_step_through_delay)
2640 {
2641 gdbarch->single_step_through_delay = single_step_through_delay;
2642 }
2643
2644 int
2645 gdbarch_print_insn (struct gdbarch *gdbarch, bfd_vma vma, struct disassemble_info *info)
2646 {
2647 gdb_assert (gdbarch != NULL);
2648 gdb_assert (gdbarch->print_insn != NULL);
2649 if (gdbarch_debug >= 2)
2650 fprintf_unfiltered (gdb_stdlog, "gdbarch_print_insn called\n");
2651 return gdbarch->print_insn (vma, info);
2652 }
2653
2654 void
2655 set_gdbarch_print_insn (struct gdbarch *gdbarch,
2656 gdbarch_print_insn_ftype print_insn)
2657 {
2658 gdbarch->print_insn = print_insn;
2659 }
2660
2661 CORE_ADDR
2662 gdbarch_skip_trampoline_code (struct gdbarch *gdbarch, struct frame_info *frame, CORE_ADDR pc)
2663 {
2664 gdb_assert (gdbarch != NULL);
2665 gdb_assert (gdbarch->skip_trampoline_code != NULL);
2666 if (gdbarch_debug >= 2)
2667 fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_trampoline_code called\n");
2668 return gdbarch->skip_trampoline_code (frame, pc);
2669 }
2670
2671 void
2672 set_gdbarch_skip_trampoline_code (struct gdbarch *gdbarch,
2673 gdbarch_skip_trampoline_code_ftype skip_trampoline_code)
2674 {
2675 gdbarch->skip_trampoline_code = skip_trampoline_code;
2676 }
2677
2678 CORE_ADDR
2679 gdbarch_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc)
2680 {
2681 gdb_assert (gdbarch != NULL);
2682 gdb_assert (gdbarch->skip_solib_resolver != NULL);
2683 if (gdbarch_debug >= 2)
2684 fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_solib_resolver called\n");
2685 return gdbarch->skip_solib_resolver (gdbarch, pc);
2686 }
2687
2688 void
2689 set_gdbarch_skip_solib_resolver (struct gdbarch *gdbarch,
2690 gdbarch_skip_solib_resolver_ftype skip_solib_resolver)
2691 {
2692 gdbarch->skip_solib_resolver = skip_solib_resolver;
2693 }
2694
2695 int
2696 gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, char *name)
2697 {
2698 gdb_assert (gdbarch != NULL);
2699 gdb_assert (gdbarch->in_solib_return_trampoline != NULL);
2700 if (gdbarch_debug >= 2)
2701 fprintf_unfiltered (gdb_stdlog, "gdbarch_in_solib_return_trampoline called\n");
2702 return gdbarch->in_solib_return_trampoline (gdbarch, pc, name);
2703 }
2704
2705 void
2706 set_gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch,
2707 gdbarch_in_solib_return_trampoline_ftype in_solib_return_trampoline)
2708 {
2709 gdbarch->in_solib_return_trampoline = in_solib_return_trampoline;
2710 }
2711
2712 int
2713 gdbarch_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR addr)
2714 {
2715 gdb_assert (gdbarch != NULL);
2716 gdb_assert (gdbarch->in_function_epilogue_p != NULL);
2717 if (gdbarch_debug >= 2)
2718 fprintf_unfiltered (gdb_stdlog, "gdbarch_in_function_epilogue_p called\n");
2719 return gdbarch->in_function_epilogue_p (gdbarch, addr);
2720 }
2721
2722 void
2723 set_gdbarch_in_function_epilogue_p (struct gdbarch *gdbarch,
2724 gdbarch_in_function_epilogue_p_ftype in_function_epilogue_p)
2725 {
2726 gdbarch->in_function_epilogue_p = in_function_epilogue_p;
2727 }
2728
2729 void
2730 gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch, asymbol *sym, struct minimal_symbol *msym)
2731 {
2732 gdb_assert (gdbarch != NULL);
2733 gdb_assert (gdbarch->elf_make_msymbol_special != NULL);
2734 if (gdbarch_debug >= 2)
2735 fprintf_unfiltered (gdb_stdlog, "gdbarch_elf_make_msymbol_special called\n");
2736 gdbarch->elf_make_msymbol_special (sym, msym);
2737 }
2738
2739 void
2740 set_gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch,
2741 gdbarch_elf_make_msymbol_special_ftype elf_make_msymbol_special)
2742 {
2743 gdbarch->elf_make_msymbol_special = elf_make_msymbol_special;
2744 }
2745
2746 void
2747 gdbarch_coff_make_msymbol_special (struct gdbarch *gdbarch, int val, struct minimal_symbol *msym)
2748 {
2749 gdb_assert (gdbarch != NULL);
2750 gdb_assert (gdbarch->coff_make_msymbol_special != NULL);
2751 if (gdbarch_debug >= 2)
2752 fprintf_unfiltered (gdb_stdlog, "gdbarch_coff_make_msymbol_special called\n");
2753 gdbarch->coff_make_msymbol_special (val, msym);
2754 }
2755
2756 void
2757 set_gdbarch_coff_make_msymbol_special (struct gdbarch *gdbarch,
2758 gdbarch_coff_make_msymbol_special_ftype coff_make_msymbol_special)
2759 {
2760 gdbarch->coff_make_msymbol_special = coff_make_msymbol_special;
2761 }
2762
2763 int
2764 gdbarch_cannot_step_breakpoint (struct gdbarch *gdbarch)
2765 {
2766 gdb_assert (gdbarch != NULL);
2767 /* Skip verify of cannot_step_breakpoint, invalid_p == 0 */
2768 if (gdbarch_debug >= 2)
2769 fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_step_breakpoint called\n");
2770 return gdbarch->cannot_step_breakpoint;
2771 }
2772
2773 void
2774 set_gdbarch_cannot_step_breakpoint (struct gdbarch *gdbarch,
2775 int cannot_step_breakpoint)
2776 {
2777 gdbarch->cannot_step_breakpoint = cannot_step_breakpoint;
2778 }
2779
2780 int
2781 gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch)
2782 {
2783 gdb_assert (gdbarch != NULL);
2784 /* Skip verify of have_nonsteppable_watchpoint, invalid_p == 0 */
2785 if (gdbarch_debug >= 2)
2786 fprintf_unfiltered (gdb_stdlog, "gdbarch_have_nonsteppable_watchpoint called\n");
2787 return gdbarch->have_nonsteppable_watchpoint;
2788 }
2789
2790 void
2791 set_gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch,
2792 int have_nonsteppable_watchpoint)
2793 {
2794 gdbarch->have_nonsteppable_watchpoint = have_nonsteppable_watchpoint;
2795 }
2796
2797 int
2798 gdbarch_address_class_type_flags_p (struct gdbarch *gdbarch)
2799 {
2800 gdb_assert (gdbarch != NULL);
2801 return gdbarch->address_class_type_flags != NULL;
2802 }
2803
2804 int
2805 gdbarch_address_class_type_flags (struct gdbarch *gdbarch, int byte_size, int dwarf2_addr_class)
2806 {
2807 gdb_assert (gdbarch != NULL);
2808 gdb_assert (gdbarch->address_class_type_flags != NULL);
2809 if (gdbarch_debug >= 2)
2810 fprintf_unfiltered (gdb_stdlog, "gdbarch_address_class_type_flags called\n");
2811 return gdbarch->address_class_type_flags (byte_size, dwarf2_addr_class);
2812 }
2813
2814 void
2815 set_gdbarch_address_class_type_flags (struct gdbarch *gdbarch,
2816 gdbarch_address_class_type_flags_ftype address_class_type_flags)
2817 {
2818 gdbarch->address_class_type_flags = address_class_type_flags;
2819 }
2820
2821 int
2822 gdbarch_address_class_type_flags_to_name_p (struct gdbarch *gdbarch)
2823 {
2824 gdb_assert (gdbarch != NULL);
2825 return gdbarch->address_class_type_flags_to_name != NULL;
2826 }
2827
2828 const char *
2829 gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags)
2830 {
2831 gdb_assert (gdbarch != NULL);
2832 gdb_assert (gdbarch->address_class_type_flags_to_name != NULL);
2833 if (gdbarch_debug >= 2)
2834 fprintf_unfiltered (gdb_stdlog, "gdbarch_address_class_type_flags_to_name called\n");
2835 return gdbarch->address_class_type_flags_to_name (gdbarch, type_flags);
2836 }
2837
2838 void
2839 set_gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch,
2840 gdbarch_address_class_type_flags_to_name_ftype address_class_type_flags_to_name)
2841 {
2842 gdbarch->address_class_type_flags_to_name = address_class_type_flags_to_name;
2843 }
2844
2845 int
2846 gdbarch_address_class_name_to_type_flags_p (struct gdbarch *gdbarch)
2847 {
2848 gdb_assert (gdbarch != NULL);
2849 return gdbarch->address_class_name_to_type_flags != NULL;
2850 }
2851
2852 int
2853 gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, const char *name, int *type_flags_ptr)
2854 {
2855 gdb_assert (gdbarch != NULL);
2856 gdb_assert (gdbarch->address_class_name_to_type_flags != NULL);
2857 if (gdbarch_debug >= 2)
2858 fprintf_unfiltered (gdb_stdlog, "gdbarch_address_class_name_to_type_flags called\n");
2859 return gdbarch->address_class_name_to_type_flags (gdbarch, name, type_flags_ptr);
2860 }
2861
2862 void
2863 set_gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch,
2864 gdbarch_address_class_name_to_type_flags_ftype address_class_name_to_type_flags)
2865 {
2866 gdbarch->address_class_name_to_type_flags = address_class_name_to_type_flags;
2867 }
2868
2869 int
2870 gdbarch_register_reggroup_p (struct gdbarch *gdbarch, int regnum, struct reggroup *reggroup)
2871 {
2872 gdb_assert (gdbarch != NULL);
2873 gdb_assert (gdbarch->register_reggroup_p != NULL);
2874 if (gdbarch_debug >= 2)
2875 fprintf_unfiltered (gdb_stdlog, "gdbarch_register_reggroup_p called\n");
2876 return gdbarch->register_reggroup_p (gdbarch, regnum, reggroup);
2877 }
2878
2879 void
2880 set_gdbarch_register_reggroup_p (struct gdbarch *gdbarch,
2881 gdbarch_register_reggroup_p_ftype register_reggroup_p)
2882 {
2883 gdbarch->register_reggroup_p = register_reggroup_p;
2884 }
2885
2886 int
2887 gdbarch_fetch_pointer_argument_p (struct gdbarch *gdbarch)
2888 {
2889 gdb_assert (gdbarch != NULL);
2890 return gdbarch->fetch_pointer_argument != NULL;
2891 }
2892
2893 CORE_ADDR
2894 gdbarch_fetch_pointer_argument (struct gdbarch *gdbarch, struct frame_info *frame, int argi, struct type *type)
2895 {
2896 gdb_assert (gdbarch != NULL);
2897 gdb_assert (gdbarch->fetch_pointer_argument != NULL);
2898 if (gdbarch_debug >= 2)
2899 fprintf_unfiltered (gdb_stdlog, "gdbarch_fetch_pointer_argument called\n");
2900 return gdbarch->fetch_pointer_argument (frame, argi, type);
2901 }
2902
2903 void
2904 set_gdbarch_fetch_pointer_argument (struct gdbarch *gdbarch,
2905 gdbarch_fetch_pointer_argument_ftype fetch_pointer_argument)
2906 {
2907 gdbarch->fetch_pointer_argument = fetch_pointer_argument;
2908 }
2909
2910 int
2911 gdbarch_regset_from_core_section_p (struct gdbarch *gdbarch)
2912 {
2913 gdb_assert (gdbarch != NULL);
2914 return gdbarch->regset_from_core_section != NULL;
2915 }
2916
2917 const struct regset *
2918 gdbarch_regset_from_core_section (struct gdbarch *gdbarch, const char *sect_name, size_t sect_size)
2919 {
2920 gdb_assert (gdbarch != NULL);
2921 gdb_assert (gdbarch->regset_from_core_section != NULL);
2922 if (gdbarch_debug >= 2)
2923 fprintf_unfiltered (gdb_stdlog, "gdbarch_regset_from_core_section called\n");
2924 return gdbarch->regset_from_core_section (gdbarch, sect_name, sect_size);
2925 }
2926
2927 void
2928 set_gdbarch_regset_from_core_section (struct gdbarch *gdbarch,
2929 gdbarch_regset_from_core_section_ftype regset_from_core_section)
2930 {
2931 gdbarch->regset_from_core_section = regset_from_core_section;
2932 }
2933
2934 int
2935 gdbarch_core_reg_section_encodes_pid (struct gdbarch *gdbarch)
2936 {
2937 gdb_assert (gdbarch != NULL);
2938 /* Skip verify of core_reg_section_encodes_pid, invalid_p == 0 */
2939 if (gdbarch_debug >= 2)
2940 fprintf_unfiltered (gdb_stdlog, "gdbarch_core_reg_section_encodes_pid called\n");
2941 return gdbarch->core_reg_section_encodes_pid;
2942 }
2943
2944 void
2945 set_gdbarch_core_reg_section_encodes_pid (struct gdbarch *gdbarch,
2946 int core_reg_section_encodes_pid)
2947 {
2948 gdbarch->core_reg_section_encodes_pid = core_reg_section_encodes_pid;
2949 }
2950
2951 struct core_regset_section *
2952 gdbarch_core_regset_sections (struct gdbarch *gdbarch)
2953 {
2954 gdb_assert (gdbarch != NULL);
2955 if (gdbarch_debug >= 2)
2956 fprintf_unfiltered (gdb_stdlog, "gdbarch_core_regset_sections called\n");
2957 return gdbarch->core_regset_sections;
2958 }
2959
2960 void
2961 set_gdbarch_core_regset_sections (struct gdbarch *gdbarch,
2962 struct core_regset_section * core_regset_sections)
2963 {
2964 gdbarch->core_regset_sections = core_regset_sections;
2965 }
2966
2967 int
2968 gdbarch_core_xfer_shared_libraries_p (struct gdbarch *gdbarch)
2969 {
2970 gdb_assert (gdbarch != NULL);
2971 return gdbarch->core_xfer_shared_libraries != NULL;
2972 }
2973
2974 LONGEST
2975 gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, LONGEST len)
2976 {
2977 gdb_assert (gdbarch != NULL);
2978 gdb_assert (gdbarch->core_xfer_shared_libraries != NULL);
2979 if (gdbarch_debug >= 2)
2980 fprintf_unfiltered (gdb_stdlog, "gdbarch_core_xfer_shared_libraries called\n");
2981 return gdbarch->core_xfer_shared_libraries (gdbarch, readbuf, offset, len);
2982 }
2983
2984 void
2985 set_gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch,
2986 gdbarch_core_xfer_shared_libraries_ftype core_xfer_shared_libraries)
2987 {
2988 gdbarch->core_xfer_shared_libraries = core_xfer_shared_libraries;
2989 }
2990
2991 int
2992 gdbarch_core_pid_to_str_p (struct gdbarch *gdbarch)
2993 {
2994 gdb_assert (gdbarch != NULL);
2995 return gdbarch->core_pid_to_str != NULL;
2996 }
2997
2998 char *
2999 gdbarch_core_pid_to_str (struct gdbarch *gdbarch, ptid_t ptid)
3000 {
3001 gdb_assert (gdbarch != NULL);
3002 gdb_assert (gdbarch->core_pid_to_str != NULL);
3003 if (gdbarch_debug >= 2)
3004 fprintf_unfiltered (gdb_stdlog, "gdbarch_core_pid_to_str called\n");
3005 return gdbarch->core_pid_to_str (gdbarch, ptid);
3006 }
3007
3008 void
3009 set_gdbarch_core_pid_to_str (struct gdbarch *gdbarch,
3010 gdbarch_core_pid_to_str_ftype core_pid_to_str)
3011 {
3012 gdbarch->core_pid_to_str = core_pid_to_str;
3013 }
3014
3015 int
3016 gdbarch_gcore_bfd_target_p (struct gdbarch *gdbarch)
3017 {
3018 gdb_assert (gdbarch != NULL);
3019 return gdbarch->gcore_bfd_target != 0;
3020 }
3021
3022 const char *
3023 gdbarch_gcore_bfd_target (struct gdbarch *gdbarch)
3024 {
3025 gdb_assert (gdbarch != NULL);
3026 /* Check variable changed from pre-default. */
3027 gdb_assert (gdbarch->gcore_bfd_target != 0);
3028 if (gdbarch_debug >= 2)
3029 fprintf_unfiltered (gdb_stdlog, "gdbarch_gcore_bfd_target called\n");
3030 return gdbarch->gcore_bfd_target;
3031 }
3032
3033 void
3034 set_gdbarch_gcore_bfd_target (struct gdbarch *gdbarch,
3035 const char * gcore_bfd_target)
3036 {
3037 gdbarch->gcore_bfd_target = gcore_bfd_target;
3038 }
3039
3040 int
3041 gdbarch_vtable_function_descriptors (struct gdbarch *gdbarch)
3042 {
3043 gdb_assert (gdbarch != NULL);
3044 /* Skip verify of vtable_function_descriptors, invalid_p == 0 */
3045 if (gdbarch_debug >= 2)
3046 fprintf_unfiltered (gdb_stdlog, "gdbarch_vtable_function_descriptors called\n");
3047 return gdbarch->vtable_function_descriptors;
3048 }
3049
3050 void
3051 set_gdbarch_vtable_function_descriptors (struct gdbarch *gdbarch,
3052 int vtable_function_descriptors)
3053 {
3054 gdbarch->vtable_function_descriptors = vtable_function_descriptors;
3055 }
3056
3057 int
3058 gdbarch_vbit_in_delta (struct gdbarch *gdbarch)
3059 {
3060 gdb_assert (gdbarch != NULL);
3061 /* Skip verify of vbit_in_delta, invalid_p == 0 */
3062 if (gdbarch_debug >= 2)
3063 fprintf_unfiltered (gdb_stdlog, "gdbarch_vbit_in_delta called\n");
3064 return gdbarch->vbit_in_delta;
3065 }
3066
3067 void
3068 set_gdbarch_vbit_in_delta (struct gdbarch *gdbarch,
3069 int vbit_in_delta)
3070 {
3071 gdbarch->vbit_in_delta = vbit_in_delta;
3072 }
3073
3074 int
3075 gdbarch_skip_permanent_breakpoint_p (struct gdbarch *gdbarch)
3076 {
3077 gdb_assert (gdbarch != NULL);
3078 return gdbarch->skip_permanent_breakpoint != NULL;
3079 }
3080
3081 void
3082 gdbarch_skip_permanent_breakpoint (struct gdbarch *gdbarch, struct regcache *regcache)
3083 {
3084 gdb_assert (gdbarch != NULL);
3085 gdb_assert (gdbarch->skip_permanent_breakpoint != NULL);
3086 if (gdbarch_debug >= 2)
3087 fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_permanent_breakpoint called\n");
3088 gdbarch->skip_permanent_breakpoint (regcache);
3089 }
3090
3091 void
3092 set_gdbarch_skip_permanent_breakpoint (struct gdbarch *gdbarch,
3093 gdbarch_skip_permanent_breakpoint_ftype skip_permanent_breakpoint)
3094 {
3095 gdbarch->skip_permanent_breakpoint = skip_permanent_breakpoint;
3096 }
3097
3098 int
3099 gdbarch_max_insn_length_p (struct gdbarch *gdbarch)
3100 {
3101 gdb_assert (gdbarch != NULL);
3102 return gdbarch->max_insn_length != 0;
3103 }
3104
3105 ULONGEST
3106 gdbarch_max_insn_length (struct gdbarch *gdbarch)
3107 {
3108 gdb_assert (gdbarch != NULL);
3109 /* Check variable changed from pre-default. */
3110 gdb_assert (gdbarch->max_insn_length != 0);
3111 if (gdbarch_debug >= 2)
3112 fprintf_unfiltered (gdb_stdlog, "gdbarch_max_insn_length called\n");
3113 return gdbarch->max_insn_length;
3114 }
3115
3116 void
3117 set_gdbarch_max_insn_length (struct gdbarch *gdbarch,
3118 ULONGEST max_insn_length)
3119 {
3120 gdbarch->max_insn_length = max_insn_length;
3121 }
3122
3123 int
3124 gdbarch_displaced_step_copy_insn_p (struct gdbarch *gdbarch)
3125 {
3126 gdb_assert (gdbarch != NULL);
3127 return gdbarch->displaced_step_copy_insn != NULL;
3128 }
3129
3130 struct displaced_step_closure *
3131 gdbarch_displaced_step_copy_insn (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
3132 {
3133 gdb_assert (gdbarch != NULL);
3134 gdb_assert (gdbarch->displaced_step_copy_insn != NULL);
3135 if (gdbarch_debug >= 2)
3136 fprintf_unfiltered (gdb_stdlog, "gdbarch_displaced_step_copy_insn called\n");
3137 return gdbarch->displaced_step_copy_insn (gdbarch, from, to, regs);
3138 }
3139
3140 void
3141 set_gdbarch_displaced_step_copy_insn (struct gdbarch *gdbarch,
3142 gdbarch_displaced_step_copy_insn_ftype displaced_step_copy_insn)
3143 {
3144 gdbarch->displaced_step_copy_insn = displaced_step_copy_insn;
3145 }
3146
3147 int
3148 gdbarch_displaced_step_fixup_p (struct gdbarch *gdbarch)
3149 {
3150 gdb_assert (gdbarch != NULL);
3151 return gdbarch->displaced_step_fixup != NULL;
3152 }
3153
3154 void
3155 gdbarch_displaced_step_fixup (struct gdbarch *gdbarch, struct displaced_step_closure *closure, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
3156 {
3157 gdb_assert (gdbarch != NULL);
3158 gdb_assert (gdbarch->displaced_step_fixup != NULL);
3159 /* Do not check predicate: gdbarch->displaced_step_fixup != NULL, allow call. */
3160 if (gdbarch_debug >= 2)
3161 fprintf_unfiltered (gdb_stdlog, "gdbarch_displaced_step_fixup called\n");
3162 gdbarch->displaced_step_fixup (gdbarch, closure, from, to, regs);
3163 }
3164
3165 void
3166 set_gdbarch_displaced_step_fixup (struct gdbarch *gdbarch,
3167 gdbarch_displaced_step_fixup_ftype displaced_step_fixup)
3168 {
3169 gdbarch->displaced_step_fixup = displaced_step_fixup;
3170 }
3171
3172 void
3173 gdbarch_displaced_step_free_closure (struct gdbarch *gdbarch, struct displaced_step_closure *closure)
3174 {
3175 gdb_assert (gdbarch != NULL);
3176 gdb_assert (gdbarch->displaced_step_free_closure != NULL);
3177 if (gdbarch_debug >= 2)
3178 fprintf_unfiltered (gdb_stdlog, "gdbarch_displaced_step_free_closure called\n");
3179 gdbarch->displaced_step_free_closure (gdbarch, closure);
3180 }
3181
3182 void
3183 set_gdbarch_displaced_step_free_closure (struct gdbarch *gdbarch,
3184 gdbarch_displaced_step_free_closure_ftype displaced_step_free_closure)
3185 {
3186 gdbarch->displaced_step_free_closure = displaced_step_free_closure;
3187 }
3188
3189 CORE_ADDR
3190 gdbarch_displaced_step_location (struct gdbarch *gdbarch)
3191 {
3192 gdb_assert (gdbarch != NULL);
3193 gdb_assert (gdbarch->displaced_step_location != NULL);
3194 if (gdbarch_debug >= 2)
3195 fprintf_unfiltered (gdb_stdlog, "gdbarch_displaced_step_location called\n");
3196 return gdbarch->displaced_step_location (gdbarch);
3197 }
3198
3199 void
3200 set_gdbarch_displaced_step_location (struct gdbarch *gdbarch,
3201 gdbarch_displaced_step_location_ftype displaced_step_location)
3202 {
3203 gdbarch->displaced_step_location = displaced_step_location;
3204 }
3205
3206 int
3207 gdbarch_overlay_update_p (struct gdbarch *gdbarch)
3208 {
3209 gdb_assert (gdbarch != NULL);
3210 return gdbarch->overlay_update != NULL;
3211 }
3212
3213 void
3214 gdbarch_overlay_update (struct gdbarch *gdbarch, struct obj_section *osect)
3215 {
3216 gdb_assert (gdbarch != NULL);
3217 gdb_assert (gdbarch->overlay_update != NULL);
3218 if (gdbarch_debug >= 2)
3219 fprintf_unfiltered (gdb_stdlog, "gdbarch_overlay_update called\n");
3220 gdbarch->overlay_update (osect);
3221 }
3222
3223 void
3224 set_gdbarch_overlay_update (struct gdbarch *gdbarch,
3225 gdbarch_overlay_update_ftype overlay_update)
3226 {
3227 gdbarch->overlay_update = overlay_update;
3228 }
3229
3230 int
3231 gdbarch_core_read_description_p (struct gdbarch *gdbarch)
3232 {
3233 gdb_assert (gdbarch != NULL);
3234 return gdbarch->core_read_description != NULL;
3235 }
3236
3237 const struct target_desc *
3238 gdbarch_core_read_description (struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd)
3239 {
3240 gdb_assert (gdbarch != NULL);
3241 gdb_assert (gdbarch->core_read_description != NULL);
3242 if (gdbarch_debug >= 2)
3243 fprintf_unfiltered (gdb_stdlog, "gdbarch_core_read_description called\n");
3244 return gdbarch->core_read_description (gdbarch, target, abfd);
3245 }
3246
3247 void
3248 set_gdbarch_core_read_description (struct gdbarch *gdbarch,
3249 gdbarch_core_read_description_ftype core_read_description)
3250 {
3251 gdbarch->core_read_description = core_read_description;
3252 }
3253
3254 int
3255 gdbarch_static_transform_name_p (struct gdbarch *gdbarch)
3256 {
3257 gdb_assert (gdbarch != NULL);
3258 return gdbarch->static_transform_name != NULL;
3259 }
3260
3261 char *
3262 gdbarch_static_transform_name (struct gdbarch *gdbarch, char *name)
3263 {
3264 gdb_assert (gdbarch != NULL);
3265 gdb_assert (gdbarch->static_transform_name != NULL);
3266 if (gdbarch_debug >= 2)
3267 fprintf_unfiltered (gdb_stdlog, "gdbarch_static_transform_name called\n");
3268 return gdbarch->static_transform_name (name);
3269 }
3270
3271 void
3272 set_gdbarch_static_transform_name (struct gdbarch *gdbarch,
3273 gdbarch_static_transform_name_ftype static_transform_name)
3274 {
3275 gdbarch->static_transform_name = static_transform_name;
3276 }
3277
3278 int
3279 gdbarch_sofun_address_maybe_missing (struct gdbarch *gdbarch)
3280 {
3281 gdb_assert (gdbarch != NULL);
3282 /* Skip verify of sofun_address_maybe_missing, invalid_p == 0 */
3283 if (gdbarch_debug >= 2)
3284 fprintf_unfiltered (gdb_stdlog, "gdbarch_sofun_address_maybe_missing called\n");
3285 return gdbarch->sofun_address_maybe_missing;
3286 }
3287
3288 void
3289 set_gdbarch_sofun_address_maybe_missing (struct gdbarch *gdbarch,
3290 int sofun_address_maybe_missing)
3291 {
3292 gdbarch->sofun_address_maybe_missing = sofun_address_maybe_missing;
3293 }
3294
3295 int
3296 gdbarch_process_record_p (struct gdbarch *gdbarch)
3297 {
3298 gdb_assert (gdbarch != NULL);
3299 return gdbarch->process_record != NULL;
3300 }
3301
3302 int
3303 gdbarch_process_record (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr)
3304 {
3305 gdb_assert (gdbarch != NULL);
3306 gdb_assert (gdbarch->process_record != NULL);
3307 if (gdbarch_debug >= 2)
3308 fprintf_unfiltered (gdb_stdlog, "gdbarch_process_record called\n");
3309 return gdbarch->process_record (gdbarch, regcache, addr);
3310 }
3311
3312 void
3313 set_gdbarch_process_record (struct gdbarch *gdbarch,
3314 gdbarch_process_record_ftype process_record)
3315 {
3316 gdbarch->process_record = process_record;
3317 }
3318
3319 int
3320 gdbarch_process_record_signal_p (struct gdbarch *gdbarch)
3321 {
3322 gdb_assert (gdbarch != NULL);
3323 return gdbarch->process_record_signal != NULL;
3324 }
3325
3326 int
3327 gdbarch_process_record_signal (struct gdbarch *gdbarch, struct regcache *regcache, enum target_signal signal)
3328 {
3329 gdb_assert (gdbarch != NULL);
3330 gdb_assert (gdbarch->process_record_signal != NULL);
3331 if (gdbarch_debug >= 2)
3332 fprintf_unfiltered (gdb_stdlog, "gdbarch_process_record_signal called\n");
3333 return gdbarch->process_record_signal (gdbarch, regcache, signal);
3334 }
3335
3336 void
3337 set_gdbarch_process_record_signal (struct gdbarch *gdbarch,
3338 gdbarch_process_record_signal_ftype process_record_signal)
3339 {
3340 gdbarch->process_record_signal = process_record_signal;
3341 }
3342
3343 enum target_signal
3344 gdbarch_target_signal_from_host (struct gdbarch *gdbarch, int signo)
3345 {
3346 gdb_assert (gdbarch != NULL);
3347 gdb_assert (gdbarch->target_signal_from_host != NULL);
3348 if (gdbarch_debug >= 2)
3349 fprintf_unfiltered (gdb_stdlog, "gdbarch_target_signal_from_host called\n");
3350 return gdbarch->target_signal_from_host (gdbarch, signo);
3351 }
3352
3353 void
3354 set_gdbarch_target_signal_from_host (struct gdbarch *gdbarch,
3355 gdbarch_target_signal_from_host_ftype target_signal_from_host)
3356 {
3357 gdbarch->target_signal_from_host = target_signal_from_host;
3358 }
3359
3360 int
3361 gdbarch_target_signal_to_host (struct gdbarch *gdbarch, enum target_signal ts)
3362 {
3363 gdb_assert (gdbarch != NULL);
3364 gdb_assert (gdbarch->target_signal_to_host != NULL);
3365 if (gdbarch_debug >= 2)
3366 fprintf_unfiltered (gdb_stdlog, "gdbarch_target_signal_to_host called\n");
3367 return gdbarch->target_signal_to_host (gdbarch, ts);
3368 }
3369
3370 void
3371 set_gdbarch_target_signal_to_host (struct gdbarch *gdbarch,
3372 gdbarch_target_signal_to_host_ftype target_signal_to_host)
3373 {
3374 gdbarch->target_signal_to_host = target_signal_to_host;
3375 }
3376
3377 int
3378 gdbarch_get_siginfo_type_p (struct gdbarch *gdbarch)
3379 {
3380 gdb_assert (gdbarch != NULL);
3381 return gdbarch->get_siginfo_type != NULL;
3382 }
3383
3384 struct type *
3385 gdbarch_get_siginfo_type (struct gdbarch *gdbarch)
3386 {
3387 gdb_assert (gdbarch != NULL);
3388 gdb_assert (gdbarch->get_siginfo_type != NULL);
3389 if (gdbarch_debug >= 2)
3390 fprintf_unfiltered (gdb_stdlog, "gdbarch_get_siginfo_type called\n");
3391 return gdbarch->get_siginfo_type (gdbarch);
3392 }
3393
3394 void
3395 set_gdbarch_get_siginfo_type (struct gdbarch *gdbarch,
3396 gdbarch_get_siginfo_type_ftype get_siginfo_type)
3397 {
3398 gdbarch->get_siginfo_type = get_siginfo_type;
3399 }
3400
3401 int
3402 gdbarch_record_special_symbol_p (struct gdbarch *gdbarch)
3403 {
3404 gdb_assert (gdbarch != NULL);
3405 return gdbarch->record_special_symbol != NULL;
3406 }
3407
3408 void
3409 gdbarch_record_special_symbol (struct gdbarch *gdbarch, struct objfile *objfile, asymbol *sym)
3410 {
3411 gdb_assert (gdbarch != NULL);
3412 gdb_assert (gdbarch->record_special_symbol != NULL);
3413 if (gdbarch_debug >= 2)
3414 fprintf_unfiltered (gdb_stdlog, "gdbarch_record_special_symbol called\n");
3415 gdbarch->record_special_symbol (gdbarch, objfile, sym);
3416 }
3417
3418 void
3419 set_gdbarch_record_special_symbol (struct gdbarch *gdbarch,
3420 gdbarch_record_special_symbol_ftype record_special_symbol)
3421 {
3422 gdbarch->record_special_symbol = record_special_symbol;
3423 }
3424
3425 int
3426 gdbarch_get_syscall_number_p (struct gdbarch *gdbarch)
3427 {
3428 gdb_assert (gdbarch != NULL);
3429 return gdbarch->get_syscall_number != NULL;
3430 }
3431
3432 LONGEST
3433 gdbarch_get_syscall_number (struct gdbarch *gdbarch, ptid_t ptid)
3434 {
3435 gdb_assert (gdbarch != NULL);
3436 gdb_assert (gdbarch->get_syscall_number != NULL);
3437 if (gdbarch_debug >= 2)
3438 fprintf_unfiltered (gdb_stdlog, "gdbarch_get_syscall_number called\n");
3439 return gdbarch->get_syscall_number (gdbarch, ptid);
3440 }
3441
3442 void
3443 set_gdbarch_get_syscall_number (struct gdbarch *gdbarch,
3444 gdbarch_get_syscall_number_ftype get_syscall_number)
3445 {
3446 gdbarch->get_syscall_number = get_syscall_number;
3447 }
3448
3449 int
3450 gdbarch_has_global_solist (struct gdbarch *gdbarch)
3451 {
3452 gdb_assert (gdbarch != NULL);
3453 /* Skip verify of has_global_solist, invalid_p == 0 */
3454 if (gdbarch_debug >= 2)
3455 fprintf_unfiltered (gdb_stdlog, "gdbarch_has_global_solist called\n");
3456 return gdbarch->has_global_solist;
3457 }
3458
3459 void
3460 set_gdbarch_has_global_solist (struct gdbarch *gdbarch,
3461 int has_global_solist)
3462 {
3463 gdbarch->has_global_solist = has_global_solist;
3464 }
3465
3466 int
3467 gdbarch_has_global_breakpoints (struct gdbarch *gdbarch)
3468 {
3469 gdb_assert (gdbarch != NULL);
3470 /* Skip verify of has_global_breakpoints, invalid_p == 0 */
3471 if (gdbarch_debug >= 2)
3472 fprintf_unfiltered (gdb_stdlog, "gdbarch_has_global_breakpoints called\n");
3473 return gdbarch->has_global_breakpoints;
3474 }
3475
3476 void
3477 set_gdbarch_has_global_breakpoints (struct gdbarch *gdbarch,
3478 int has_global_breakpoints)
3479 {
3480 gdbarch->has_global_breakpoints = has_global_breakpoints;
3481 }
3482
3483
3484 /* Keep a registry of per-architecture data-pointers required by GDB
3485 modules. */
3486
3487 struct gdbarch_data
3488 {
3489 unsigned index;
3490 int init_p;
3491 gdbarch_data_pre_init_ftype *pre_init;
3492 gdbarch_data_post_init_ftype *post_init;
3493 };
3494
3495 struct gdbarch_data_registration
3496 {
3497 struct gdbarch_data *data;
3498 struct gdbarch_data_registration *next;
3499 };
3500
3501 struct gdbarch_data_registry
3502 {
3503 unsigned nr;
3504 struct gdbarch_data_registration *registrations;
3505 };
3506
3507 struct gdbarch_data_registry gdbarch_data_registry =
3508 {
3509 0, NULL,
3510 };
3511
3512 static struct gdbarch_data *
3513 gdbarch_data_register (gdbarch_data_pre_init_ftype *pre_init,
3514 gdbarch_data_post_init_ftype *post_init)
3515 {
3516 struct gdbarch_data_registration **curr;
3517 /* Append the new registraration. */
3518 for (curr = &gdbarch_data_registry.registrations;
3519 (*curr) != NULL;
3520 curr = &(*curr)->next);
3521 (*curr) = XMALLOC (struct gdbarch_data_registration);
3522 (*curr)->next = NULL;
3523 (*curr)->data = XMALLOC (struct gdbarch_data);
3524 (*curr)->data->index = gdbarch_data_registry.nr++;
3525 (*curr)->data->pre_init = pre_init;
3526 (*curr)->data->post_init = post_init;
3527 (*curr)->data->init_p = 1;
3528 return (*curr)->data;
3529 }
3530
3531 struct gdbarch_data *
3532 gdbarch_data_register_pre_init (gdbarch_data_pre_init_ftype *pre_init)
3533 {
3534 return gdbarch_data_register (pre_init, NULL);
3535 }
3536
3537 struct gdbarch_data *
3538 gdbarch_data_register_post_init (gdbarch_data_post_init_ftype *post_init)
3539 {
3540 return gdbarch_data_register (NULL, post_init);
3541 }
3542
3543 /* Create/delete the gdbarch data vector. */
3544
3545 static void
3546 alloc_gdbarch_data (struct gdbarch *gdbarch)
3547 {
3548 gdb_assert (gdbarch->data == NULL);
3549 gdbarch->nr_data = gdbarch_data_registry.nr;
3550 gdbarch->data = GDBARCH_OBSTACK_CALLOC (gdbarch, gdbarch->nr_data, void *);
3551 }
3552
3553 /* Initialize the current value of the specified per-architecture
3554 data-pointer. */
3555
3556 void
3557 deprecated_set_gdbarch_data (struct gdbarch *gdbarch,
3558 struct gdbarch_data *data,
3559 void *pointer)
3560 {
3561 gdb_assert (data->index < gdbarch->nr_data);
3562 gdb_assert (gdbarch->data[data->index] == NULL);
3563 gdb_assert (data->pre_init == NULL);
3564 gdbarch->data[data->index] = pointer;
3565 }
3566
3567 /* Return the current value of the specified per-architecture
3568 data-pointer. */
3569
3570 void *
3571 gdbarch_data (struct gdbarch *gdbarch, struct gdbarch_data *data)
3572 {
3573 gdb_assert (data->index < gdbarch->nr_data);
3574 if (gdbarch->data[data->index] == NULL)
3575 {
3576 /* The data-pointer isn't initialized, call init() to get a
3577 value. */
3578 if (data->pre_init != NULL)
3579 /* Mid architecture creation: pass just the obstack, and not
3580 the entire architecture, as that way it isn't possible for
3581 pre-init code to refer to undefined architecture
3582 fields. */
3583 gdbarch->data[data->index] = data->pre_init (gdbarch->obstack);
3584 else if (gdbarch->initialized_p
3585 && data->post_init != NULL)
3586 /* Post architecture creation: pass the entire architecture
3587 (as all fields are valid), but be careful to also detect
3588 recursive references. */
3589 {
3590 gdb_assert (data->init_p);
3591 data->init_p = 0;
3592 gdbarch->data[data->index] = data->post_init (gdbarch);
3593 data->init_p = 1;
3594 }
3595 else
3596 /* The architecture initialization hasn't completed - punt -
3597 hope that the caller knows what they are doing. Once
3598 deprecated_set_gdbarch_data has been initialized, this can be
3599 changed to an internal error. */
3600 return NULL;
3601 gdb_assert (gdbarch->data[data->index] != NULL);
3602 }
3603 return gdbarch->data[data->index];
3604 }
3605
3606
3607 /* Keep a registry of the architectures known by GDB. */
3608
3609 struct gdbarch_registration
3610 {
3611 enum bfd_architecture bfd_architecture;
3612 gdbarch_init_ftype *init;
3613 gdbarch_dump_tdep_ftype *dump_tdep;
3614 struct gdbarch_list *arches;
3615 struct gdbarch_registration *next;
3616 };
3617
3618 static struct gdbarch_registration *gdbarch_registry = NULL;
3619
3620 static void
3621 append_name (const char ***buf, int *nr, const char *name)
3622 {
3623 *buf = xrealloc (*buf, sizeof (char**) * (*nr + 1));
3624 (*buf)[*nr] = name;
3625 *nr += 1;
3626 }
3627
3628 const char **
3629 gdbarch_printable_names (void)
3630 {
3631 /* Accumulate a list of names based on the registed list of
3632 architectures. */
3633 enum bfd_architecture a;
3634 int nr_arches = 0;
3635 const char **arches = NULL;
3636 struct gdbarch_registration *rego;
3637 for (rego = gdbarch_registry;
3638 rego != NULL;
3639 rego = rego->next)
3640 {
3641 const struct bfd_arch_info *ap;
3642 ap = bfd_lookup_arch (rego->bfd_architecture, 0);
3643 if (ap == NULL)
3644 internal_error (__FILE__, __LINE__,
3645 _("gdbarch_architecture_names: multi-arch unknown"));
3646 do
3647 {
3648 append_name (&arches, &nr_arches, ap->printable_name);
3649 ap = ap->next;
3650 }
3651 while (ap != NULL);
3652 }
3653 append_name (&arches, &nr_arches, NULL);
3654 return arches;
3655 }
3656
3657
3658 void
3659 gdbarch_register (enum bfd_architecture bfd_architecture,
3660 gdbarch_init_ftype *init,
3661 gdbarch_dump_tdep_ftype *dump_tdep)
3662 {
3663 struct gdbarch_registration **curr;
3664 const struct bfd_arch_info *bfd_arch_info;
3665 /* Check that BFD recognizes this architecture */
3666 bfd_arch_info = bfd_lookup_arch (bfd_architecture, 0);
3667 if (bfd_arch_info == NULL)
3668 {
3669 internal_error (__FILE__, __LINE__,
3670 _("gdbarch: Attempt to register unknown architecture (%d)"),
3671 bfd_architecture);
3672 }
3673 /* Check that we haven't seen this architecture before */
3674 for (curr = &gdbarch_registry;
3675 (*curr) != NULL;
3676 curr = &(*curr)->next)
3677 {
3678 if (bfd_architecture == (*curr)->bfd_architecture)
3679 internal_error (__FILE__, __LINE__,
3680 _("gdbarch: Duplicate registraration of architecture (%s)"),
3681 bfd_arch_info->printable_name);
3682 }
3683 /* log it */
3684 if (gdbarch_debug)
3685 fprintf_unfiltered (gdb_stdlog, "register_gdbarch_init (%s, %s)\n",
3686 bfd_arch_info->printable_name,
3687 host_address_to_string (init));
3688 /* Append it */
3689 (*curr) = XMALLOC (struct gdbarch_registration);
3690 (*curr)->bfd_architecture = bfd_architecture;
3691 (*curr)->init = init;
3692 (*curr)->dump_tdep = dump_tdep;
3693 (*curr)->arches = NULL;
3694 (*curr)->next = NULL;
3695 }
3696
3697 void
3698 register_gdbarch_init (enum bfd_architecture bfd_architecture,
3699 gdbarch_init_ftype *init)
3700 {
3701 gdbarch_register (bfd_architecture, init, NULL);
3702 }
3703
3704
3705 /* Look for an architecture using gdbarch_info. */
3706
3707 struct gdbarch_list *
3708 gdbarch_list_lookup_by_info (struct gdbarch_list *arches,
3709 const struct gdbarch_info *info)
3710 {
3711 for (; arches != NULL; arches = arches->next)
3712 {
3713 if (info->bfd_arch_info != arches->gdbarch->bfd_arch_info)
3714 continue;
3715 if (info->byte_order != arches->gdbarch->byte_order)
3716 continue;
3717 if (info->osabi != arches->gdbarch->osabi)
3718 continue;
3719 if (info->target_desc != arches->gdbarch->target_desc)
3720 continue;
3721 return arches;
3722 }
3723 return NULL;
3724 }
3725
3726
3727 /* Find an architecture that matches the specified INFO. Create a new
3728 architecture if needed. Return that new architecture. */
3729
3730 struct gdbarch *
3731 gdbarch_find_by_info (struct gdbarch_info info)
3732 {
3733 struct gdbarch *new_gdbarch;
3734 struct gdbarch_registration *rego;
3735
3736 /* Fill in missing parts of the INFO struct using a number of
3737 sources: "set ..."; INFOabfd supplied; and the global
3738 defaults. */
3739 gdbarch_info_fill (&info);
3740
3741 /* Must have found some sort of architecture. */
3742 gdb_assert (info.bfd_arch_info != NULL);
3743
3744 if (gdbarch_debug)
3745 {
3746 fprintf_unfiltered (gdb_stdlog,
3747 "gdbarch_find_by_info: info.bfd_arch_info %s\n",
3748 (info.bfd_arch_info != NULL
3749 ? info.bfd_arch_info->printable_name
3750 : "(null)"));
3751 fprintf_unfiltered (gdb_stdlog,
3752 "gdbarch_find_by_info: info.byte_order %d (%s)\n",
3753 info.byte_order,
3754 (info.byte_order == BFD_ENDIAN_BIG ? "big"
3755 : info.byte_order == BFD_ENDIAN_LITTLE ? "little"
3756 : "default"));
3757 fprintf_unfiltered (gdb_stdlog,
3758 "gdbarch_find_by_info: info.osabi %d (%s)\n",
3759 info.osabi, gdbarch_osabi_name (info.osabi));
3760 fprintf_unfiltered (gdb_stdlog,
3761 "gdbarch_find_by_info: info.abfd %s\n",
3762 host_address_to_string (info.abfd));
3763 fprintf_unfiltered (gdb_stdlog,
3764 "gdbarch_find_by_info: info.tdep_info %s\n",
3765 host_address_to_string (info.tdep_info));
3766 }
3767
3768 /* Find the tdep code that knows about this architecture. */
3769 for (rego = gdbarch_registry;
3770 rego != NULL;
3771 rego = rego->next)
3772 if (rego->bfd_architecture == info.bfd_arch_info->arch)
3773 break;
3774 if (rego == NULL)
3775 {
3776 if (gdbarch_debug)
3777 fprintf_unfiltered (gdb_stdlog, "gdbarch_find_by_info: "
3778 "No matching architecture\n");
3779 return 0;
3780 }
3781
3782 /* Ask the tdep code for an architecture that matches "info". */
3783 new_gdbarch = rego->init (info, rego->arches);
3784
3785 /* Did the tdep code like it? No. Reject the change and revert to
3786 the old architecture. */
3787 if (new_gdbarch == NULL)
3788 {
3789 if (gdbarch_debug)
3790 fprintf_unfiltered (gdb_stdlog, "gdbarch_find_by_info: "
3791 "Target rejected architecture\n");
3792 return NULL;
3793 }
3794
3795 /* Is this a pre-existing architecture (as determined by already
3796 being initialized)? Move it to the front of the architecture
3797 list (keeping the list sorted Most Recently Used). */
3798 if (new_gdbarch->initialized_p)
3799 {
3800 struct gdbarch_list **list;
3801 struct gdbarch_list *this;
3802 if (gdbarch_debug)
3803 fprintf_unfiltered (gdb_stdlog, "gdbarch_find_by_info: "
3804 "Previous architecture %s (%s) selected\n",
3805 host_address_to_string (new_gdbarch),
3806 new_gdbarch->bfd_arch_info->printable_name);
3807 /* Find the existing arch in the list. */
3808 for (list = &rego->arches;
3809 (*list) != NULL && (*list)->gdbarch != new_gdbarch;
3810 list = &(*list)->next);
3811 /* It had better be in the list of architectures. */
3812 gdb_assert ((*list) != NULL && (*list)->gdbarch == new_gdbarch);
3813 /* Unlink THIS. */
3814 this = (*list);
3815 (*list) = this->next;
3816 /* Insert THIS at the front. */
3817 this->next = rego->arches;
3818 rego->arches = this;
3819 /* Return it. */
3820 return new_gdbarch;
3821 }
3822
3823 /* It's a new architecture. */
3824 if (gdbarch_debug)
3825 fprintf_unfiltered (gdb_stdlog, "gdbarch_find_by_info: "
3826 "New architecture %s (%s) selected\n",
3827 host_address_to_string (new_gdbarch),
3828 new_gdbarch->bfd_arch_info->printable_name);
3829
3830 /* Insert the new architecture into the front of the architecture
3831 list (keep the list sorted Most Recently Used). */
3832 {
3833 struct gdbarch_list *this = XMALLOC (struct gdbarch_list);
3834 this->next = rego->arches;
3835 this->gdbarch = new_gdbarch;
3836 rego->arches = this;
3837 }
3838
3839 /* Check that the newly installed architecture is valid. Plug in
3840 any post init values. */
3841 new_gdbarch->dump_tdep = rego->dump_tdep;
3842 verify_gdbarch (new_gdbarch);
3843 new_gdbarch->initialized_p = 1;
3844
3845 if (gdbarch_debug)
3846 gdbarch_dump (new_gdbarch, gdb_stdlog);
3847
3848 return new_gdbarch;
3849 }
3850
3851 /* Make the specified architecture current. */
3852
3853 void
3854 deprecated_target_gdbarch_select_hack (struct gdbarch *new_gdbarch)
3855 {
3856 gdb_assert (new_gdbarch != NULL);
3857 gdb_assert (new_gdbarch->initialized_p);
3858 target_gdbarch = new_gdbarch;
3859 observer_notify_architecture_changed (new_gdbarch);
3860 registers_changed ();
3861 }
3862
3863 extern void _initialize_gdbarch (void);
3864
3865 void
3866 _initialize_gdbarch (void)
3867 {
3868 struct cmd_list_element *c;
3869
3870 add_setshow_zinteger_cmd ("arch", class_maintenance, &gdbarch_debug, _("\
3871 Set architecture debugging."), _("\
3872 Show architecture debugging."), _("\
3873 When non-zero, architecture debugging is enabled."),
3874 NULL,
3875 show_gdbarch_debug,
3876 &setdebuglist, &showdebuglist);
3877 }
This page took 0.111542 seconds and 4 git commands to generate.