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