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