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