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