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