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