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