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