1 /* *INDENT-OFF* */ /* THIS FILE IS GENERATED */
3 /* Dynamic architecture support for GDB, the GNU debugger.
4 Copyright 1998-1999, Free Software Foundation, Inc.
6 This file is part of GDB.
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 59 Temple Place - Suite 330,
21 Boston, MA 02111-1307, USA. */
23 /* This file was created with the aid of ``gdbarch.sh''.
25 The bourn shell script ``gdbarch.sh'' creates the files
26 ``new-gdbarch.c'' and ``new-gdbarch.h and then compares them
27 against the existing ``gdbarch.[hc]''. Any differences found
30 If editing this file, please also run gdbarch.sh and merge any
31 changes into that script. Conversely, when makeing sweeping changes
32 to this file, modifying gdbarch.sh and using its output may prove
37 #include "arch-utils.h"
41 #include "inferior.h" /* enum CALL_DUMMY_LOCATION et.al. */
43 /* Just include everything in sight so that the every old definition
44 of macro is visible. */
45 #include "gdb_string.h"
50 #include "breakpoint.h"
55 #include "gdbthread.h"
57 #include "symfile.h" /* for overlay functions */
62 /* Static function declarations */
64 static void verify_gdbarch (struct gdbarch
*gdbarch
);
65 static void init_gdbarch_data (struct gdbarch
*);
66 static void init_gdbarch_swap (struct gdbarch
*);
67 static void swapout_gdbarch_swap (struct gdbarch
*);
68 static void swapin_gdbarch_swap (struct gdbarch
*);
70 /* Convenience macro for allocting typesafe memory. */
73 #define XMALLOC(TYPE) (TYPE*) xmalloc (sizeof (TYPE))
77 /* Non-zero if we want to trace architecture code. */
80 #define GDBARCH_DEBUG 0
82 int gdbarch_debug
= GDBARCH_DEBUG
;
85 /* Maintain the struct gdbarch object */
89 /* basic architectural information */
90 const struct bfd_arch_info
* bfd_arch_info
;
93 /* target specific vector. */
94 struct gdbarch_tdep
*tdep
;
96 /* per-architecture data-pointers */
100 /* per-architecture swap-regions */
101 struct gdbarch_swap
*swap
;
103 /* Multi-arch values.
105 When extending this structure you must:
109 Declare set/get functions and define the corresponding
112 gdbarch_alloc(): If zero/NULL is not a suitable default,
113 initialize the new field.
115 verify_gdbarch(): Confirm that the target updated the field
118 gdbarch_dump(): Add a fprintf_unfiltered call to so that the new
121 ``startup_gdbarch()'': Append an initial value to the static
122 variable (base values on the host's c-type system).
124 get_gdbarch(): Implement the set/get functions (probably using
125 the macro's as shortcuts).
139 gdbarch_read_pc_ftype
*read_pc
;
140 gdbarch_write_pc_ftype
*write_pc
;
141 gdbarch_read_fp_ftype
*read_fp
;
142 gdbarch_write_fp_ftype
*write_fp
;
143 gdbarch_read_sp_ftype
*read_sp
;
144 gdbarch_write_sp_ftype
*write_sp
;
149 gdbarch_register_name_ftype
*register_name
;
152 gdbarch_register_byte_ftype
*register_byte
;
153 gdbarch_register_raw_size_ftype
*register_raw_size
;
154 int max_register_raw_size
;
155 gdbarch_register_virtual_size_ftype
*register_virtual_size
;
156 int max_register_virtual_size
;
157 gdbarch_register_virtual_type_ftype
*register_virtual_type
;
158 int use_generic_dummy_frames
;
159 int call_dummy_location
;
160 gdbarch_call_dummy_address_ftype
*call_dummy_address
;
161 CORE_ADDR call_dummy_start_offset
;
162 CORE_ADDR call_dummy_breakpoint_offset
;
163 int call_dummy_breakpoint_offset_p
;
164 int call_dummy_length
;
165 gdbarch_pc_in_call_dummy_ftype
*pc_in_call_dummy
;
167 LONGEST
* call_dummy_words
;
168 int sizeof_call_dummy_words
;
169 int call_dummy_stack_adjust_p
;
170 int call_dummy_stack_adjust
;
171 gdbarch_fix_call_dummy_ftype
*fix_call_dummy
;
172 int believe_pcc_promotion
;
173 int believe_pcc_promotion_type
;
174 gdbarch_coerce_float_to_double_ftype
*coerce_float_to_double
;
175 gdbarch_get_saved_register_ftype
*get_saved_register
;
176 gdbarch_register_convertible_ftype
*register_convertible
;
177 gdbarch_register_convert_to_virtual_ftype
*register_convert_to_virtual
;
178 gdbarch_register_convert_to_raw_ftype
*register_convert_to_raw
;
179 gdbarch_pointer_to_address_ftype
*pointer_to_address
;
180 gdbarch_address_to_pointer_ftype
*address_to_pointer
;
181 gdbarch_return_value_on_stack_ftype
*return_value_on_stack
;
182 gdbarch_extract_return_value_ftype
*extract_return_value
;
183 gdbarch_push_arguments_ftype
*push_arguments
;
184 gdbarch_push_dummy_frame_ftype
*push_dummy_frame
;
185 gdbarch_push_return_address_ftype
*push_return_address
;
186 gdbarch_pop_frame_ftype
*pop_frame
;
187 gdbarch_d10v_make_daddr_ftype
*d10v_make_daddr
;
188 gdbarch_d10v_make_iaddr_ftype
*d10v_make_iaddr
;
189 gdbarch_d10v_daddr_p_ftype
*d10v_daddr_p
;
190 gdbarch_d10v_iaddr_p_ftype
*d10v_iaddr_p
;
191 gdbarch_d10v_convert_daddr_to_raw_ftype
*d10v_convert_daddr_to_raw
;
192 gdbarch_d10v_convert_iaddr_to_raw_ftype
*d10v_convert_iaddr_to_raw
;
193 gdbarch_store_struct_return_ftype
*store_struct_return
;
194 gdbarch_store_return_value_ftype
*store_return_value
;
195 gdbarch_extract_struct_value_address_ftype
*extract_struct_value_address
;
196 gdbarch_use_struct_convention_ftype
*use_struct_convention
;
197 gdbarch_frame_init_saved_regs_ftype
*frame_init_saved_regs
;
198 gdbarch_init_extra_frame_info_ftype
*init_extra_frame_info
;
199 gdbarch_skip_prologue_ftype
*skip_prologue
;
200 gdbarch_inner_than_ftype
*inner_than
;
201 gdbarch_breakpoint_from_pc_ftype
*breakpoint_from_pc
;
202 gdbarch_memory_insert_breakpoint_ftype
*memory_insert_breakpoint
;
203 gdbarch_memory_remove_breakpoint_ftype
*memory_remove_breakpoint
;
204 CORE_ADDR decr_pc_after_break
;
205 CORE_ADDR function_start_offset
;
206 gdbarch_remote_translate_xfer_address_ftype
*remote_translate_xfer_address
;
207 CORE_ADDR frame_args_skip
;
208 gdbarch_frameless_function_invocation_ftype
*frameless_function_invocation
;
209 gdbarch_frame_chain_ftype
*frame_chain
;
210 gdbarch_frame_chain_valid_ftype
*frame_chain_valid
;
211 gdbarch_frame_saved_pc_ftype
*frame_saved_pc
;
212 gdbarch_frame_args_address_ftype
*frame_args_address
;
213 gdbarch_frame_locals_address_ftype
*frame_locals_address
;
214 gdbarch_saved_pc_after_call_ftype
*saved_pc_after_call
;
215 gdbarch_frame_num_args_ftype
*frame_num_args
;
216 gdbarch_stack_align_ftype
*stack_align
;
217 gdbarch_reg_struct_has_addr_ftype
*reg_struct_has_addr
;
221 /* The default architecture uses host values (for want of a better
224 extern const struct bfd_arch_info bfd_default_arch_struct
;
226 struct gdbarch startup_gdbarch
= {
227 /* basic architecture information */
228 &bfd_default_arch_struct
,
230 /* target specific vector */
232 /*per-architecture data-pointers and swap regions */
234 /* Multi-arch values */
240 8 * sizeof (LONGEST
),
243 8 * sizeof (long double),
281 generic_get_saved_register
,
324 /* startup_gdbarch() */
326 struct gdbarch
*current_gdbarch
= &startup_gdbarch
;
329 /* Create a new ``struct gdbarch'' based in information provided by
330 ``struct gdbarch_info''. */
333 gdbarch_alloc (const struct gdbarch_info
*info
,
334 struct gdbarch_tdep
*tdep
)
336 struct gdbarch
*gdbarch
= XMALLOC (struct gdbarch
);
337 memset (gdbarch
, 0, sizeof (*gdbarch
));
339 gdbarch
->tdep
= tdep
;
341 gdbarch
->bfd_arch_info
= info
->bfd_arch_info
;
342 gdbarch
->byte_order
= info
->byte_order
;
344 /* Force the explicit initialization of these. */
345 gdbarch
->bfd_vma_bit
= TARGET_ARCHITECTURE
->bits_per_address
;
346 gdbarch
->num_regs
= -1;
347 gdbarch
->sp_regnum
= -1;
348 gdbarch
->fp_regnum
= -1;
349 gdbarch
->pc_regnum
= -1;
350 gdbarch
->register_name
= legacy_register_name
;
351 gdbarch
->register_size
= -1;
352 gdbarch
->register_bytes
= -1;
353 gdbarch
->max_register_raw_size
= -1;
354 gdbarch
->max_register_virtual_size
= -1;
355 gdbarch
->use_generic_dummy_frames
= -1;
356 gdbarch
->call_dummy_start_offset
= -1;
357 gdbarch
->call_dummy_breakpoint_offset
= -1;
358 gdbarch
->call_dummy_breakpoint_offset_p
= -1;
359 gdbarch
->call_dummy_length
= -1;
360 gdbarch
->call_dummy_p
= -1;
361 gdbarch
->call_dummy_words
= legacy_call_dummy_words
;
362 gdbarch
->sizeof_call_dummy_words
= legacy_sizeof_call_dummy_words
;
363 gdbarch
->call_dummy_stack_adjust_p
= -1;
364 gdbarch
->coerce_float_to_double
= default_coerce_float_to_double
;
365 gdbarch
->register_convertible
= generic_register_convertible_not
;
366 gdbarch
->pointer_to_address
= generic_pointer_to_address
;
367 gdbarch
->address_to_pointer
= generic_address_to_pointer
;
368 gdbarch
->return_value_on_stack
= generic_return_value_on_stack_not
;
369 gdbarch
->breakpoint_from_pc
= legacy_breakpoint_from_pc
;
370 gdbarch
->memory_insert_breakpoint
= default_memory_insert_breakpoint
;
371 gdbarch
->memory_remove_breakpoint
= default_memory_remove_breakpoint
;
372 gdbarch
->decr_pc_after_break
= -1;
373 gdbarch
->function_start_offset
= -1;
374 gdbarch
->remote_translate_xfer_address
= generic_remote_translate_xfer_address
;
375 gdbarch
->frame_args_skip
= -1;
376 gdbarch
->frameless_function_invocation
= generic_frameless_function_invocation_not
;
377 /* gdbarch_alloc() */
383 /* Free a gdbarch struct. This should never happen in normal
384 operation --- once you've created a gdbarch, you keep it around.
385 However, if an architecture's init function encounters an error
386 building the structure, it may need to clean up a partially
387 constructed gdbarch. */
389 gdbarch_free (struct gdbarch
*arch
)
391 /* At the moment, this is trivial. */
396 /* Ensure that all values in a GDBARCH are reasonable. */
399 verify_gdbarch (struct gdbarch
*gdbarch
)
401 /* Only perform sanity checks on a multi-arch target. */
402 if (GDB_MULTI_ARCH
<= 0)
405 if (gdbarch
->byte_order
== 0)
406 internal_error ("verify_gdbarch: byte-order unset");
407 if (gdbarch
->bfd_arch_info
== NULL
)
408 internal_error ("verify_gdbarch: bfd_arch_info unset");
409 /* Check those that need to be defined for the given multi-arch level. */
410 /* Skip verify of bfd_vma_bit, invalid_p == 0 */
411 if ((GDB_MULTI_ARCH
>= 1)
412 && (gdbarch
->ptr_bit
== 0))
413 internal_error ("gdbarch: verify_gdbarch: ptr_bit invalid");
414 if ((GDB_MULTI_ARCH
>= 1)
415 && (gdbarch
->short_bit
== 0))
416 internal_error ("gdbarch: verify_gdbarch: short_bit invalid");
417 if ((GDB_MULTI_ARCH
>= 1)
418 && (gdbarch
->int_bit
== 0))
419 internal_error ("gdbarch: verify_gdbarch: int_bit invalid");
420 if ((GDB_MULTI_ARCH
>= 1)
421 && (gdbarch
->long_bit
== 0))
422 internal_error ("gdbarch: verify_gdbarch: long_bit invalid");
423 if ((GDB_MULTI_ARCH
>= 1)
424 && (gdbarch
->long_long_bit
== 0))
425 internal_error ("gdbarch: verify_gdbarch: long_long_bit invalid");
426 if ((GDB_MULTI_ARCH
>= 1)
427 && (gdbarch
->float_bit
== 0))
428 internal_error ("gdbarch: verify_gdbarch: float_bit invalid");
429 if ((GDB_MULTI_ARCH
>= 1)
430 && (gdbarch
->double_bit
== 0))
431 internal_error ("gdbarch: verify_gdbarch: double_bit invalid");
432 if ((GDB_MULTI_ARCH
>= 1)
433 && (gdbarch
->long_double_bit
== 0))
434 internal_error ("gdbarch: verify_gdbarch: long_double_bit invalid");
435 /* Skip verify of ieee_float, invalid_p == 0 */
436 if ((GDB_MULTI_ARCH
>= 1)
437 && (gdbarch
->read_pc
== 0))
438 internal_error ("gdbarch: verify_gdbarch: read_pc invalid");
439 if ((GDB_MULTI_ARCH
>= 1)
440 && (gdbarch
->write_pc
== 0))
441 internal_error ("gdbarch: verify_gdbarch: write_pc invalid");
442 if ((GDB_MULTI_ARCH
>= 1)
443 && (gdbarch
->read_fp
== 0))
444 internal_error ("gdbarch: verify_gdbarch: read_fp invalid");
445 if ((GDB_MULTI_ARCH
>= 1)
446 && (gdbarch
->write_fp
== 0))
447 internal_error ("gdbarch: verify_gdbarch: write_fp invalid");
448 if ((GDB_MULTI_ARCH
>= 1)
449 && (gdbarch
->read_sp
== 0))
450 internal_error ("gdbarch: verify_gdbarch: read_sp invalid");
451 if ((GDB_MULTI_ARCH
>= 1)
452 && (gdbarch
->write_sp
== 0))
453 internal_error ("gdbarch: verify_gdbarch: write_sp invalid");
454 if ((GDB_MULTI_ARCH
>= 2)
455 && (gdbarch
->num_regs
== -1))
456 internal_error ("gdbarch: verify_gdbarch: num_regs invalid");
457 if ((GDB_MULTI_ARCH
>= 2)
458 && (gdbarch
->sp_regnum
== -1))
459 internal_error ("gdbarch: verify_gdbarch: sp_regnum invalid");
460 if ((GDB_MULTI_ARCH
>= 2)
461 && (gdbarch
->fp_regnum
== -1))
462 internal_error ("gdbarch: verify_gdbarch: fp_regnum invalid");
463 if ((GDB_MULTI_ARCH
>= 2)
464 && (gdbarch
->pc_regnum
== -1))
465 internal_error ("gdbarch: verify_gdbarch: pc_regnum invalid");
466 /* Skip verify of register_name, invalid_p == 0 */
467 if ((GDB_MULTI_ARCH
>= 2)
468 && (gdbarch
->register_size
== -1))
469 internal_error ("gdbarch: verify_gdbarch: register_size invalid");
470 if ((GDB_MULTI_ARCH
>= 2)
471 && (gdbarch
->register_bytes
== -1))
472 internal_error ("gdbarch: verify_gdbarch: register_bytes invalid");
473 if ((GDB_MULTI_ARCH
>= 2)
474 && (gdbarch
->register_byte
== 0))
475 internal_error ("gdbarch: verify_gdbarch: register_byte invalid");
476 if ((GDB_MULTI_ARCH
>= 2)
477 && (gdbarch
->register_raw_size
== 0))
478 internal_error ("gdbarch: verify_gdbarch: register_raw_size invalid");
479 if ((GDB_MULTI_ARCH
>= 2)
480 && (gdbarch
->max_register_raw_size
== -1))
481 internal_error ("gdbarch: verify_gdbarch: max_register_raw_size invalid");
482 if ((GDB_MULTI_ARCH
>= 2)
483 && (gdbarch
->register_virtual_size
== 0))
484 internal_error ("gdbarch: verify_gdbarch: register_virtual_size invalid");
485 if ((GDB_MULTI_ARCH
>= 2)
486 && (gdbarch
->max_register_virtual_size
== -1))
487 internal_error ("gdbarch: verify_gdbarch: max_register_virtual_size invalid");
488 if ((GDB_MULTI_ARCH
>= 2)
489 && (gdbarch
->register_virtual_type
== 0))
490 internal_error ("gdbarch: verify_gdbarch: register_virtual_type invalid");
491 if ((GDB_MULTI_ARCH
>= 1)
492 && (gdbarch
->use_generic_dummy_frames
== -1))
493 internal_error ("gdbarch: verify_gdbarch: use_generic_dummy_frames invalid");
494 if ((GDB_MULTI_ARCH
>= 2)
495 && (gdbarch
->call_dummy_location
== 0))
496 internal_error ("gdbarch: verify_gdbarch: call_dummy_location invalid");
497 if ((GDB_MULTI_ARCH
>= 2)
498 && (gdbarch
->call_dummy_location
== AT_ENTRY_POINT
&& gdbarch
->call_dummy_address
== 0))
499 internal_error ("gdbarch: verify_gdbarch: call_dummy_address invalid");
500 if ((GDB_MULTI_ARCH
>= 2)
501 && (gdbarch
->call_dummy_start_offset
== -1))
502 internal_error ("gdbarch: verify_gdbarch: call_dummy_start_offset invalid");
503 if ((GDB_MULTI_ARCH
>= 2)
504 && (gdbarch
->call_dummy_breakpoint_offset
== -1))
505 internal_error ("gdbarch: verify_gdbarch: call_dummy_breakpoint_offset invalid");
506 if ((GDB_MULTI_ARCH
>= 1)
507 && (gdbarch
->call_dummy_breakpoint_offset_p
== -1))
508 internal_error ("gdbarch: verify_gdbarch: call_dummy_breakpoint_offset_p invalid");
509 if ((GDB_MULTI_ARCH
>= 2)
510 && (gdbarch
->call_dummy_length
== -1))
511 internal_error ("gdbarch: verify_gdbarch: call_dummy_length invalid");
512 if ((GDB_MULTI_ARCH
>= 2)
513 && (gdbarch
->pc_in_call_dummy
== 0))
514 internal_error ("gdbarch: verify_gdbarch: pc_in_call_dummy invalid");
515 if ((GDB_MULTI_ARCH
>= 1)
516 && (gdbarch
->call_dummy_p
== -1))
517 internal_error ("gdbarch: verify_gdbarch: call_dummy_p invalid");
518 /* Skip verify of call_dummy_words, invalid_p == 0 */
519 /* Skip verify of sizeof_call_dummy_words, invalid_p == 0 */
520 if ((GDB_MULTI_ARCH
>= 1)
521 && (gdbarch
->call_dummy_stack_adjust_p
== -1))
522 internal_error ("gdbarch: verify_gdbarch: call_dummy_stack_adjust_p invalid");
523 if ((GDB_MULTI_ARCH
>= 2)
524 && (gdbarch
->call_dummy_stack_adjust_p
&& gdbarch
->call_dummy_stack_adjust
== 0))
525 internal_error ("gdbarch: verify_gdbarch: call_dummy_stack_adjust invalid");
526 if ((GDB_MULTI_ARCH
>= 2)
527 && (gdbarch
->fix_call_dummy
== 0))
528 internal_error ("gdbarch: verify_gdbarch: fix_call_dummy invalid");
529 /* Skip verify of coerce_float_to_double, invalid_p == 0 */
530 if ((GDB_MULTI_ARCH
>= 1)
531 && (gdbarch
->get_saved_register
== 0))
532 internal_error ("gdbarch: verify_gdbarch: get_saved_register invalid");
533 /* Skip verify of register_convertible, invalid_p == 0 */
534 /* Skip verify of register_convert_to_virtual, invalid_p == 0 */
535 /* Skip verify of register_convert_to_raw, invalid_p == 0 */
536 /* Skip verify of pointer_to_address, invalid_p == 0 */
537 /* Skip verify of address_to_pointer, invalid_p == 0 */
538 /* Skip verify of return_value_on_stack, invalid_p == 0 */
539 if ((GDB_MULTI_ARCH
>= 2)
540 && (gdbarch
->extract_return_value
== 0))
541 internal_error ("gdbarch: verify_gdbarch: extract_return_value invalid");
542 if ((GDB_MULTI_ARCH
>= 1)
543 && (gdbarch
->push_arguments
== 0))
544 internal_error ("gdbarch: verify_gdbarch: push_arguments invalid");
545 if ((GDB_MULTI_ARCH
>= 2)
546 && (gdbarch
->push_dummy_frame
== 0))
547 internal_error ("gdbarch: verify_gdbarch: push_dummy_frame invalid");
548 if ((GDB_MULTI_ARCH
>= 1)
549 && (gdbarch
->push_return_address
== 0))
550 internal_error ("gdbarch: verify_gdbarch: push_return_address invalid");
551 if ((GDB_MULTI_ARCH
>= 2)
552 && (gdbarch
->pop_frame
== 0))
553 internal_error ("gdbarch: verify_gdbarch: pop_frame invalid");
554 /* Skip verify of d10v_make_daddr, invalid_p == 0 */
555 /* Skip verify of d10v_make_iaddr, invalid_p == 0 */
556 /* Skip verify of d10v_daddr_p, invalid_p == 0 */
557 /* Skip verify of d10v_iaddr_p, invalid_p == 0 */
558 /* Skip verify of d10v_convert_daddr_to_raw, invalid_p == 0 */
559 /* Skip verify of d10v_convert_iaddr_to_raw, invalid_p == 0 */
560 if ((GDB_MULTI_ARCH
>= 2)
561 && (gdbarch
->store_struct_return
== 0))
562 internal_error ("gdbarch: verify_gdbarch: store_struct_return invalid");
563 if ((GDB_MULTI_ARCH
>= 2)
564 && (gdbarch
->store_return_value
== 0))
565 internal_error ("gdbarch: verify_gdbarch: store_return_value invalid");
566 if ((GDB_MULTI_ARCH
>= 2)
567 && (gdbarch
->extract_struct_value_address
== 0))
568 internal_error ("gdbarch: verify_gdbarch: extract_struct_value_address invalid");
569 if ((GDB_MULTI_ARCH
>= 2)
570 && (gdbarch
->use_struct_convention
== 0))
571 internal_error ("gdbarch: verify_gdbarch: use_struct_convention invalid");
572 if ((GDB_MULTI_ARCH
>= 2)
573 && (gdbarch
->frame_init_saved_regs
== 0))
574 internal_error ("gdbarch: verify_gdbarch: frame_init_saved_regs invalid");
575 if ((GDB_MULTI_ARCH
>= 2)
576 && (gdbarch
->init_extra_frame_info
== 0))
577 internal_error ("gdbarch: verify_gdbarch: init_extra_frame_info invalid");
578 if ((GDB_MULTI_ARCH
>= 2)
579 && (gdbarch
->skip_prologue
== 0))
580 internal_error ("gdbarch: verify_gdbarch: skip_prologue invalid");
581 if ((GDB_MULTI_ARCH
>= 2)
582 && (gdbarch
->inner_than
== 0))
583 internal_error ("gdbarch: verify_gdbarch: inner_than invalid");
584 /* Skip verify of breakpoint_from_pc, invalid_p == 0 */
585 /* Skip verify of memory_insert_breakpoint, invalid_p == 0 */
586 /* Skip verify of memory_remove_breakpoint, invalid_p == 0 */
587 if ((GDB_MULTI_ARCH
>= 2)
588 && (gdbarch
->decr_pc_after_break
== -1))
589 internal_error ("gdbarch: verify_gdbarch: decr_pc_after_break invalid");
590 if ((GDB_MULTI_ARCH
>= 2)
591 && (gdbarch
->function_start_offset
== -1))
592 internal_error ("gdbarch: verify_gdbarch: function_start_offset invalid");
593 /* Skip verify of remote_translate_xfer_address, invalid_p == 0 */
594 if ((GDB_MULTI_ARCH
>= 2)
595 && (gdbarch
->frame_args_skip
== -1))
596 internal_error ("gdbarch: verify_gdbarch: frame_args_skip invalid");
597 /* Skip verify of frameless_function_invocation, invalid_p == 0 */
598 if ((GDB_MULTI_ARCH
>= 2)
599 && (gdbarch
->frame_chain
== 0))
600 internal_error ("gdbarch: verify_gdbarch: frame_chain invalid");
601 if ((GDB_MULTI_ARCH
>= 1)
602 && (gdbarch
->frame_chain_valid
== 0))
603 internal_error ("gdbarch: verify_gdbarch: frame_chain_valid invalid");
604 if ((GDB_MULTI_ARCH
>= 2)
605 && (gdbarch
->frame_saved_pc
== 0))
606 internal_error ("gdbarch: verify_gdbarch: frame_saved_pc invalid");
607 if ((GDB_MULTI_ARCH
>= 2)
608 && (gdbarch
->frame_args_address
== 0))
609 internal_error ("gdbarch: verify_gdbarch: frame_args_address invalid");
610 if ((GDB_MULTI_ARCH
>= 2)
611 && (gdbarch
->frame_locals_address
== 0))
612 internal_error ("gdbarch: verify_gdbarch: frame_locals_address invalid");
613 if ((GDB_MULTI_ARCH
>= 2)
614 && (gdbarch
->saved_pc_after_call
== 0))
615 internal_error ("gdbarch: verify_gdbarch: saved_pc_after_call invalid");
616 if ((GDB_MULTI_ARCH
>= 2)
617 && (gdbarch
->frame_num_args
== 0))
618 internal_error ("gdbarch: verify_gdbarch: frame_num_args invalid");
619 /* Skip verify of stack_align, has predicate */
620 /* Skip verify of reg_struct_has_addr, has predicate */
624 /* Print out the details of the current architecture. */
629 if (TARGET_ARCHITECTURE
!= NULL
)
630 fprintf_unfiltered (gdb_stdlog
,
631 "gdbarch_update: TARGET_ARCHITECTURE = %s\n",
632 TARGET_ARCHITECTURE
->printable_name
);
633 fprintf_unfiltered (gdb_stdlog
,
634 "gdbarch_update: TARGET_BYTE_ORDER = %ld\n",
635 (long) TARGET_BYTE_ORDER
);
636 fprintf_unfiltered (gdb_stdlog
,
637 "gdbarch_update: TARGET_BFD_VMA_BIT = %ld\n",
638 (long) TARGET_BFD_VMA_BIT
);
639 fprintf_unfiltered (gdb_stdlog
,
640 "gdbarch_update: TARGET_PTR_BIT = %ld\n",
641 (long) TARGET_PTR_BIT
);
642 fprintf_unfiltered (gdb_stdlog
,
643 "gdbarch_update: TARGET_SHORT_BIT = %ld\n",
644 (long) TARGET_SHORT_BIT
);
645 fprintf_unfiltered (gdb_stdlog
,
646 "gdbarch_update: TARGET_INT_BIT = %ld\n",
647 (long) TARGET_INT_BIT
);
648 fprintf_unfiltered (gdb_stdlog
,
649 "gdbarch_update: TARGET_LONG_BIT = %ld\n",
650 (long) TARGET_LONG_BIT
);
651 fprintf_unfiltered (gdb_stdlog
,
652 "gdbarch_update: TARGET_LONG_LONG_BIT = %ld\n",
653 (long) TARGET_LONG_LONG_BIT
);
654 fprintf_unfiltered (gdb_stdlog
,
655 "gdbarch_update: TARGET_FLOAT_BIT = %ld\n",
656 (long) TARGET_FLOAT_BIT
);
657 fprintf_unfiltered (gdb_stdlog
,
658 "gdbarch_update: TARGET_DOUBLE_BIT = %ld\n",
659 (long) TARGET_DOUBLE_BIT
);
660 fprintf_unfiltered (gdb_stdlog
,
661 "gdbarch_update: TARGET_LONG_DOUBLE_BIT = %ld\n",
662 (long) TARGET_LONG_DOUBLE_BIT
);
663 fprintf_unfiltered (gdb_stdlog
,
664 "gdbarch_update: IEEE_FLOAT = %ld\n",
666 fprintf_unfiltered (gdb_stdlog
,
667 "gdbarch_update: TARGET_READ_PC = 0x%08lx\n",
668 (long) current_gdbarch
->read_pc
669 /*TARGET_READ_PC ()*/);
670 fprintf_unfiltered (gdb_stdlog
,
671 "gdbarch_update: TARGET_WRITE_PC = 0x%08lx\n",
672 (long) current_gdbarch
->write_pc
673 /*TARGET_WRITE_PC ()*/);
674 fprintf_unfiltered (gdb_stdlog
,
675 "gdbarch_update: TARGET_READ_FP = 0x%08lx\n",
676 (long) current_gdbarch
->read_fp
677 /*TARGET_READ_FP ()*/);
678 fprintf_unfiltered (gdb_stdlog
,
679 "gdbarch_update: TARGET_WRITE_FP = 0x%08lx\n",
680 (long) current_gdbarch
->write_fp
681 /*TARGET_WRITE_FP ()*/);
682 fprintf_unfiltered (gdb_stdlog
,
683 "gdbarch_update: TARGET_READ_SP = 0x%08lx\n",
684 (long) current_gdbarch
->read_sp
685 /*TARGET_READ_SP ()*/);
686 fprintf_unfiltered (gdb_stdlog
,
687 "gdbarch_update: TARGET_WRITE_SP = 0x%08lx\n",
688 (long) current_gdbarch
->write_sp
689 /*TARGET_WRITE_SP ()*/);
690 fprintf_unfiltered (gdb_stdlog
,
691 "gdbarch_update: NUM_REGS = %ld\n",
693 fprintf_unfiltered (gdb_stdlog
,
694 "gdbarch_update: SP_REGNUM = %ld\n",
696 fprintf_unfiltered (gdb_stdlog
,
697 "gdbarch_update: FP_REGNUM = %ld\n",
699 fprintf_unfiltered (gdb_stdlog
,
700 "gdbarch_update: PC_REGNUM = %ld\n",
702 fprintf_unfiltered (gdb_stdlog
,
703 "gdbarch_update: REGISTER_NAME = 0x%08lx\n",
704 (long) current_gdbarch
->register_name
705 /*REGISTER_NAME ()*/);
706 fprintf_unfiltered (gdb_stdlog
,
707 "gdbarch_update: REGISTER_SIZE = %ld\n",
708 (long) REGISTER_SIZE
);
709 fprintf_unfiltered (gdb_stdlog
,
710 "gdbarch_update: REGISTER_BYTES = %ld\n",
711 (long) REGISTER_BYTES
);
712 fprintf_unfiltered (gdb_stdlog
,
713 "gdbarch_update: REGISTER_BYTE = 0x%08lx\n",
714 (long) current_gdbarch
->register_byte
715 /*REGISTER_BYTE ()*/);
716 fprintf_unfiltered (gdb_stdlog
,
717 "gdbarch_update: REGISTER_RAW_SIZE = 0x%08lx\n",
718 (long) current_gdbarch
->register_raw_size
719 /*REGISTER_RAW_SIZE ()*/);
720 fprintf_unfiltered (gdb_stdlog
,
721 "gdbarch_update: MAX_REGISTER_RAW_SIZE = %ld\n",
722 (long) MAX_REGISTER_RAW_SIZE
);
723 fprintf_unfiltered (gdb_stdlog
,
724 "gdbarch_update: REGISTER_VIRTUAL_SIZE = 0x%08lx\n",
725 (long) current_gdbarch
->register_virtual_size
726 /*REGISTER_VIRTUAL_SIZE ()*/);
727 fprintf_unfiltered (gdb_stdlog
,
728 "gdbarch_update: MAX_REGISTER_VIRTUAL_SIZE = %ld\n",
729 (long) MAX_REGISTER_VIRTUAL_SIZE
);
730 fprintf_unfiltered (gdb_stdlog
,
731 "gdbarch_update: REGISTER_VIRTUAL_TYPE = 0x%08lx\n",
732 (long) current_gdbarch
->register_virtual_type
733 /*REGISTER_VIRTUAL_TYPE ()*/);
734 fprintf_unfiltered (gdb_stdlog
,
735 "gdbarch_update: USE_GENERIC_DUMMY_FRAMES = %ld\n",
736 (long) USE_GENERIC_DUMMY_FRAMES
);
737 fprintf_unfiltered (gdb_stdlog
,
738 "gdbarch_update: CALL_DUMMY_LOCATION = %ld\n",
739 (long) CALL_DUMMY_LOCATION
);
740 fprintf_unfiltered (gdb_stdlog
,
741 "gdbarch_update: CALL_DUMMY_ADDRESS = 0x%08lx\n",
742 (long) current_gdbarch
->call_dummy_address
743 /*CALL_DUMMY_ADDRESS ()*/);
744 fprintf_unfiltered (gdb_stdlog
,
745 "gdbarch_update: CALL_DUMMY_START_OFFSET = 0x%08lx\n",
746 (long) CALL_DUMMY_START_OFFSET
);
747 fprintf_unfiltered (gdb_stdlog
,
748 "gdbarch_update: CALL_DUMMY_BREAKPOINT_OFFSET = 0x%08lx\n",
749 (long) CALL_DUMMY_BREAKPOINT_OFFSET
);
750 fprintf_unfiltered (gdb_stdlog
,
751 "gdbarch_update: CALL_DUMMY_BREAKPOINT_OFFSET_P = %ld\n",
752 (long) CALL_DUMMY_BREAKPOINT_OFFSET_P
);
753 if (CALL_DUMMY_LOCATION
== BEFORE_TEXT_END
|| CALL_DUMMY_LOCATION
== AFTER_TEXT_END
)
754 fprintf_unfiltered (gdb_stdlog
,
755 "gdbarch_update: CALL_DUMMY_LENGTH = %ld\n",
756 (long) CALL_DUMMY_LENGTH
);
757 fprintf_unfiltered (gdb_stdlog
,
758 "gdbarch_update: PC_IN_CALL_DUMMY = 0x%08lx\n",
759 (long) current_gdbarch
->pc_in_call_dummy
760 /*PC_IN_CALL_DUMMY ()*/);
761 fprintf_unfiltered (gdb_stdlog
,
762 "gdbarch_update: CALL_DUMMY_P = %ld\n",
763 (long) CALL_DUMMY_P
);
764 fprintf_unfiltered (gdb_stdlog
,
765 "gdbarch_update: CALL_DUMMY_WORDS = 0x%08lx\n",
766 (long) CALL_DUMMY_WORDS
);
767 fprintf_unfiltered (gdb_stdlog
,
768 "gdbarch_update: SIZEOF_CALL_DUMMY_WORDS = 0x%08lx\n",
769 (long) SIZEOF_CALL_DUMMY_WORDS
);
770 fprintf_unfiltered (gdb_stdlog
,
771 "gdbarch_update: CALL_DUMMY_STACK_ADJUST_P = 0x%08lx\n",
772 (long) CALL_DUMMY_STACK_ADJUST_P
);
773 if (CALL_DUMMY_STACK_ADJUST_P
)
774 fprintf_unfiltered (gdb_stdlog
,
775 "gdbarch_update: CALL_DUMMY_STACK_ADJUST = 0x%08lx\n",
776 (long) CALL_DUMMY_STACK_ADJUST
);
777 fprintf_unfiltered (gdb_stdlog
,
778 "gdbarch_update: FIX_CALL_DUMMY = 0x%08lx\n",
779 (long) current_gdbarch
->fix_call_dummy
780 /*FIX_CALL_DUMMY ()*/);
781 #ifdef BELIEVE_PCC_PROMOTION
782 fprintf_unfiltered (gdb_stdlog
,
783 "gdbarch_update: BELIEVE_PCC_PROMOTION = %ld\n",
784 (long) BELIEVE_PCC_PROMOTION
);
786 #ifdef BELIEVE_PCC_PROMOTION_TYPE
787 fprintf_unfiltered (gdb_stdlog
,
788 "gdbarch_update: BELIEVE_PCC_PROMOTION_TYPE = %ld\n",
789 (long) BELIEVE_PCC_PROMOTION_TYPE
);
791 fprintf_unfiltered (gdb_stdlog
,
792 "gdbarch_update: COERCE_FLOAT_TO_DOUBLE = 0x%08lx\n",
793 (long) current_gdbarch
->coerce_float_to_double
794 /*COERCE_FLOAT_TO_DOUBLE ()*/);
795 fprintf_unfiltered (gdb_stdlog
,
796 "gdbarch_update: GET_SAVED_REGISTER = 0x%08lx\n",
797 (long) current_gdbarch
->get_saved_register
798 /*GET_SAVED_REGISTER ()*/);
799 fprintf_unfiltered (gdb_stdlog
,
800 "gdbarch_update: REGISTER_CONVERTIBLE = 0x%08lx\n",
801 (long) current_gdbarch
->register_convertible
802 /*REGISTER_CONVERTIBLE ()*/);
803 fprintf_unfiltered (gdb_stdlog
,
804 "gdbarch_update: REGISTER_CONVERT_TO_VIRTUAL = 0x%08lx\n",
805 (long) current_gdbarch
->register_convert_to_virtual
806 /*REGISTER_CONVERT_TO_VIRTUAL ()*/);
807 fprintf_unfiltered (gdb_stdlog
,
808 "gdbarch_update: REGISTER_CONVERT_TO_RAW = 0x%08lx\n",
809 (long) current_gdbarch
->register_convert_to_raw
810 /*REGISTER_CONVERT_TO_RAW ()*/);
811 fprintf_unfiltered (gdb_stdlog
,
812 "gdbarch_update: POINTER_TO_ADDRESS = 0x%08lx\n",
813 (long) current_gdbarch
->pointer_to_address
814 /*POINTER_TO_ADDRESS ()*/);
815 fprintf_unfiltered (gdb_stdlog
,
816 "gdbarch_update: ADDRESS_TO_POINTER = 0x%08lx\n",
817 (long) current_gdbarch
->address_to_pointer
818 /*ADDRESS_TO_POINTER ()*/);
819 fprintf_unfiltered (gdb_stdlog
,
820 "gdbarch_update: RETURN_VALUE_ON_STACK = 0x%08lx\n",
821 (long) current_gdbarch
->return_value_on_stack
822 /*RETURN_VALUE_ON_STACK ()*/);
823 fprintf_unfiltered (gdb_stdlog
,
824 "gdbarch_update: EXTRACT_RETURN_VALUE = 0x%08lx\n",
825 (long) current_gdbarch
->extract_return_value
826 /*EXTRACT_RETURN_VALUE ()*/);
827 fprintf_unfiltered (gdb_stdlog
,
828 "gdbarch_update: PUSH_ARGUMENTS = 0x%08lx\n",
829 (long) current_gdbarch
->push_arguments
830 /*PUSH_ARGUMENTS ()*/);
831 fprintf_unfiltered (gdb_stdlog
,
832 "gdbarch_update: PUSH_DUMMY_FRAME = 0x%08lx\n",
833 (long) current_gdbarch
->push_dummy_frame
834 /*PUSH_DUMMY_FRAME ()*/);
835 fprintf_unfiltered (gdb_stdlog
,
836 "gdbarch_update: PUSH_RETURN_ADDRESS = 0x%08lx\n",
837 (long) current_gdbarch
->push_return_address
838 /*PUSH_RETURN_ADDRESS ()*/);
839 fprintf_unfiltered (gdb_stdlog
,
840 "gdbarch_update: POP_FRAME = 0x%08lx\n",
841 (long) current_gdbarch
->pop_frame
843 fprintf_unfiltered (gdb_stdlog
,
844 "gdbarch_update: D10V_MAKE_DADDR = 0x%08lx\n",
845 (long) current_gdbarch
->d10v_make_daddr
846 /*D10V_MAKE_DADDR ()*/);
847 fprintf_unfiltered (gdb_stdlog
,
848 "gdbarch_update: D10V_MAKE_IADDR = 0x%08lx\n",
849 (long) current_gdbarch
->d10v_make_iaddr
850 /*D10V_MAKE_IADDR ()*/);
851 fprintf_unfiltered (gdb_stdlog
,
852 "gdbarch_update: D10V_DADDR_P = 0x%08lx\n",
853 (long) current_gdbarch
->d10v_daddr_p
854 /*D10V_DADDR_P ()*/);
855 fprintf_unfiltered (gdb_stdlog
,
856 "gdbarch_update: D10V_IADDR_P = 0x%08lx\n",
857 (long) current_gdbarch
->d10v_iaddr_p
858 /*D10V_IADDR_P ()*/);
859 fprintf_unfiltered (gdb_stdlog
,
860 "gdbarch_update: D10V_CONVERT_DADDR_TO_RAW = 0x%08lx\n",
861 (long) current_gdbarch
->d10v_convert_daddr_to_raw
862 /*D10V_CONVERT_DADDR_TO_RAW ()*/);
863 fprintf_unfiltered (gdb_stdlog
,
864 "gdbarch_update: D10V_CONVERT_IADDR_TO_RAW = 0x%08lx\n",
865 (long) current_gdbarch
->d10v_convert_iaddr_to_raw
866 /*D10V_CONVERT_IADDR_TO_RAW ()*/);
867 fprintf_unfiltered (gdb_stdlog
,
868 "gdbarch_update: STORE_STRUCT_RETURN = 0x%08lx\n",
869 (long) current_gdbarch
->store_struct_return
870 /*STORE_STRUCT_RETURN ()*/);
871 fprintf_unfiltered (gdb_stdlog
,
872 "gdbarch_update: STORE_RETURN_VALUE = 0x%08lx\n",
873 (long) current_gdbarch
->store_return_value
874 /*STORE_RETURN_VALUE ()*/);
875 fprintf_unfiltered (gdb_stdlog
,
876 "gdbarch_update: EXTRACT_STRUCT_VALUE_ADDRESS = 0x%08lx\n",
877 (long) current_gdbarch
->extract_struct_value_address
878 /*EXTRACT_STRUCT_VALUE_ADDRESS ()*/);
879 fprintf_unfiltered (gdb_stdlog
,
880 "gdbarch_update: USE_STRUCT_CONVENTION = 0x%08lx\n",
881 (long) current_gdbarch
->use_struct_convention
882 /*USE_STRUCT_CONVENTION ()*/);
883 fprintf_unfiltered (gdb_stdlog
,
884 "gdbarch_update: FRAME_INIT_SAVED_REGS = 0x%08lx\n",
885 (long) current_gdbarch
->frame_init_saved_regs
886 /*FRAME_INIT_SAVED_REGS ()*/);
887 fprintf_unfiltered (gdb_stdlog
,
888 "gdbarch_update: INIT_EXTRA_FRAME_INFO = 0x%08lx\n",
889 (long) current_gdbarch
->init_extra_frame_info
890 /*INIT_EXTRA_FRAME_INFO ()*/);
891 fprintf_unfiltered (gdb_stdlog
,
892 "gdbarch_update: SKIP_PROLOGUE = 0x%08lx\n",
893 (long) current_gdbarch
->skip_prologue
894 /*SKIP_PROLOGUE ()*/);
895 fprintf_unfiltered (gdb_stdlog
,
896 "gdbarch_update: INNER_THAN = 0x%08lx\n",
897 (long) current_gdbarch
->inner_than
899 fprintf_unfiltered (gdb_stdlog
,
900 "gdbarch_update: BREAKPOINT_FROM_PC = 0x%08lx\n",
901 (long) current_gdbarch
->breakpoint_from_pc
902 /*BREAKPOINT_FROM_PC ()*/);
903 fprintf_unfiltered (gdb_stdlog
,
904 "gdbarch_update: MEMORY_INSERT_BREAKPOINT = 0x%08lx\n",
905 (long) current_gdbarch
->memory_insert_breakpoint
906 /*MEMORY_INSERT_BREAKPOINT ()*/);
907 fprintf_unfiltered (gdb_stdlog
,
908 "gdbarch_update: MEMORY_REMOVE_BREAKPOINT = 0x%08lx\n",
909 (long) current_gdbarch
->memory_remove_breakpoint
910 /*MEMORY_REMOVE_BREAKPOINT ()*/);
911 fprintf_unfiltered (gdb_stdlog
,
912 "gdbarch_update: DECR_PC_AFTER_BREAK = %ld\n",
913 (long) DECR_PC_AFTER_BREAK
);
914 fprintf_unfiltered (gdb_stdlog
,
915 "gdbarch_update: FUNCTION_START_OFFSET = %ld\n",
916 (long) FUNCTION_START_OFFSET
);
917 fprintf_unfiltered (gdb_stdlog
,
918 "gdbarch_update: REMOTE_TRANSLATE_XFER_ADDRESS = 0x%08lx\n",
919 (long) current_gdbarch
->remote_translate_xfer_address
920 /*REMOTE_TRANSLATE_XFER_ADDRESS ()*/);
921 fprintf_unfiltered (gdb_stdlog
,
922 "gdbarch_update: FRAME_ARGS_SKIP = %ld\n",
923 (long) FRAME_ARGS_SKIP
);
924 fprintf_unfiltered (gdb_stdlog
,
925 "gdbarch_update: FRAMELESS_FUNCTION_INVOCATION = 0x%08lx\n",
926 (long) current_gdbarch
->frameless_function_invocation
927 /*FRAMELESS_FUNCTION_INVOCATION ()*/);
928 fprintf_unfiltered (gdb_stdlog
,
929 "gdbarch_update: FRAME_CHAIN = 0x%08lx\n",
930 (long) current_gdbarch
->frame_chain
932 fprintf_unfiltered (gdb_stdlog
,
933 "gdbarch_update: FRAME_CHAIN_VALID = 0x%08lx\n",
934 (long) current_gdbarch
->frame_chain_valid
935 /*FRAME_CHAIN_VALID ()*/);
936 fprintf_unfiltered (gdb_stdlog
,
937 "gdbarch_update: FRAME_SAVED_PC = 0x%08lx\n",
938 (long) current_gdbarch
->frame_saved_pc
939 /*FRAME_SAVED_PC ()*/);
940 fprintf_unfiltered (gdb_stdlog
,
941 "gdbarch_update: FRAME_ARGS_ADDRESS = 0x%08lx\n",
942 (long) current_gdbarch
->frame_args_address
943 /*FRAME_ARGS_ADDRESS ()*/);
944 fprintf_unfiltered (gdb_stdlog
,
945 "gdbarch_update: FRAME_LOCALS_ADDRESS = 0x%08lx\n",
946 (long) current_gdbarch
->frame_locals_address
947 /*FRAME_LOCALS_ADDRESS ()*/);
948 fprintf_unfiltered (gdb_stdlog
,
949 "gdbarch_update: SAVED_PC_AFTER_CALL = 0x%08lx\n",
950 (long) current_gdbarch
->saved_pc_after_call
951 /*SAVED_PC_AFTER_CALL ()*/);
952 fprintf_unfiltered (gdb_stdlog
,
953 "gdbarch_update: FRAME_NUM_ARGS = 0x%08lx\n",
954 (long) current_gdbarch
->frame_num_args
955 /*FRAME_NUM_ARGS ()*/);
956 fprintf_unfiltered (gdb_stdlog
,
957 "gdbarch_update: STACK_ALIGN = 0x%08lx\n",
958 (long) current_gdbarch
->stack_align
960 fprintf_unfiltered (gdb_stdlog
,
961 "gdbarch_update: REG_STRUCT_HAS_ADDR = 0x%08lx\n",
962 (long) current_gdbarch
->reg_struct_has_addr
963 /*REG_STRUCT_HAS_ADDR ()*/);
966 struct gdbarch_tdep
*
967 gdbarch_tdep (struct gdbarch
*gdbarch
)
969 if (gdbarch_debug
>= 2)
970 fprintf_unfiltered (gdb_stdlog
, "gdbarch_tdep called\n");
971 return gdbarch
->tdep
;
975 const struct bfd_arch_info
*
976 gdbarch_bfd_arch_info (struct gdbarch
*gdbarch
)
978 if (gdbarch_debug
>= 2)
979 fprintf_unfiltered (gdb_stdlog
, "gdbarch_bfd_arch_info called\n");
980 return gdbarch
->bfd_arch_info
;
984 gdbarch_byte_order (struct gdbarch
*gdbarch
)
986 if (gdbarch_debug
>= 2)
987 fprintf_unfiltered (gdb_stdlog
, "gdbarch_byte_order called\n");
988 return gdbarch
->byte_order
;
992 gdbarch_bfd_vma_bit (struct gdbarch
*gdbarch
)
994 if (GDB_MULTI_ARCH
== 0)
995 return TARGET_ARCHITECTURE
->bits_per_address
;
996 /* Skip verify of bfd_vma_bit, invalid_p == 0 */
997 if (gdbarch_debug
>= 2)
998 fprintf_unfiltered (gdb_stdlog
, "gdbarch_bfd_vma_bit called\n");
999 return gdbarch
->bfd_vma_bit
;
1003 set_gdbarch_bfd_vma_bit (struct gdbarch
*gdbarch
,
1006 gdbarch
->bfd_vma_bit
= bfd_vma_bit
;
1010 gdbarch_ptr_bit (struct gdbarch
*gdbarch
)
1012 if (gdbarch
->ptr_bit
== 0)
1013 internal_error ("gdbarch: gdbarch_ptr_bit invalid");
1014 if (gdbarch_debug
>= 2)
1015 fprintf_unfiltered (gdb_stdlog
, "gdbarch_ptr_bit called\n");
1016 return gdbarch
->ptr_bit
;
1020 set_gdbarch_ptr_bit (struct gdbarch
*gdbarch
,
1023 gdbarch
->ptr_bit
= ptr_bit
;
1027 gdbarch_short_bit (struct gdbarch
*gdbarch
)
1029 if (gdbarch
->short_bit
== 0)
1030 internal_error ("gdbarch: gdbarch_short_bit invalid");
1031 if (gdbarch_debug
>= 2)
1032 fprintf_unfiltered (gdb_stdlog
, "gdbarch_short_bit called\n");
1033 return gdbarch
->short_bit
;
1037 set_gdbarch_short_bit (struct gdbarch
*gdbarch
,
1040 gdbarch
->short_bit
= short_bit
;
1044 gdbarch_int_bit (struct gdbarch
*gdbarch
)
1046 if (gdbarch
->int_bit
== 0)
1047 internal_error ("gdbarch: gdbarch_int_bit invalid");
1048 if (gdbarch_debug
>= 2)
1049 fprintf_unfiltered (gdb_stdlog
, "gdbarch_int_bit called\n");
1050 return gdbarch
->int_bit
;
1054 set_gdbarch_int_bit (struct gdbarch
*gdbarch
,
1057 gdbarch
->int_bit
= int_bit
;
1061 gdbarch_long_bit (struct gdbarch
*gdbarch
)
1063 if (gdbarch
->long_bit
== 0)
1064 internal_error ("gdbarch: gdbarch_long_bit invalid");
1065 if (gdbarch_debug
>= 2)
1066 fprintf_unfiltered (gdb_stdlog
, "gdbarch_long_bit called\n");
1067 return gdbarch
->long_bit
;
1071 set_gdbarch_long_bit (struct gdbarch
*gdbarch
,
1074 gdbarch
->long_bit
= long_bit
;
1078 gdbarch_long_long_bit (struct gdbarch
*gdbarch
)
1080 if (gdbarch
->long_long_bit
== 0)
1081 internal_error ("gdbarch: gdbarch_long_long_bit invalid");
1082 if (gdbarch_debug
>= 2)
1083 fprintf_unfiltered (gdb_stdlog
, "gdbarch_long_long_bit called\n");
1084 return gdbarch
->long_long_bit
;
1088 set_gdbarch_long_long_bit (struct gdbarch
*gdbarch
,
1091 gdbarch
->long_long_bit
= long_long_bit
;
1095 gdbarch_float_bit (struct gdbarch
*gdbarch
)
1097 if (gdbarch
->float_bit
== 0)
1098 internal_error ("gdbarch: gdbarch_float_bit invalid");
1099 if (gdbarch_debug
>= 2)
1100 fprintf_unfiltered (gdb_stdlog
, "gdbarch_float_bit called\n");
1101 return gdbarch
->float_bit
;
1105 set_gdbarch_float_bit (struct gdbarch
*gdbarch
,
1108 gdbarch
->float_bit
= float_bit
;
1112 gdbarch_double_bit (struct gdbarch
*gdbarch
)
1114 if (gdbarch
->double_bit
== 0)
1115 internal_error ("gdbarch: gdbarch_double_bit invalid");
1116 if (gdbarch_debug
>= 2)
1117 fprintf_unfiltered (gdb_stdlog
, "gdbarch_double_bit called\n");
1118 return gdbarch
->double_bit
;
1122 set_gdbarch_double_bit (struct gdbarch
*gdbarch
,
1125 gdbarch
->double_bit
= double_bit
;
1129 gdbarch_long_double_bit (struct gdbarch
*gdbarch
)
1131 if (gdbarch
->long_double_bit
== 0)
1132 internal_error ("gdbarch: gdbarch_long_double_bit invalid");
1133 if (gdbarch_debug
>= 2)
1134 fprintf_unfiltered (gdb_stdlog
, "gdbarch_long_double_bit called\n");
1135 return gdbarch
->long_double_bit
;
1139 set_gdbarch_long_double_bit (struct gdbarch
*gdbarch
,
1140 int long_double_bit
)
1142 gdbarch
->long_double_bit
= long_double_bit
;
1146 gdbarch_ieee_float (struct gdbarch
*gdbarch
)
1148 /* Skip verify of ieee_float, invalid_p == 0 */
1149 if (gdbarch_debug
>= 2)
1150 fprintf_unfiltered (gdb_stdlog
, "gdbarch_ieee_float called\n");
1151 return gdbarch
->ieee_float
;
1155 set_gdbarch_ieee_float (struct gdbarch
*gdbarch
,
1158 gdbarch
->ieee_float
= ieee_float
;
1162 gdbarch_read_pc (struct gdbarch
*gdbarch
, int pid
)
1164 if (gdbarch
->read_pc
== 0)
1165 internal_error ("gdbarch: gdbarch_read_pc invalid");
1166 if (gdbarch_debug
>= 2)
1167 fprintf_unfiltered (gdb_stdlog
, "gdbarch_read_pc called\n");
1168 return gdbarch
->read_pc (pid
);
1172 set_gdbarch_read_pc (struct gdbarch
*gdbarch
,
1173 gdbarch_read_pc_ftype read_pc
)
1175 gdbarch
->read_pc
= read_pc
;
1179 gdbarch_write_pc (struct gdbarch
*gdbarch
, CORE_ADDR val
, int pid
)
1181 if (gdbarch
->write_pc
== 0)
1182 internal_error ("gdbarch: gdbarch_write_pc invalid");
1183 if (gdbarch_debug
>= 2)
1184 fprintf_unfiltered (gdb_stdlog
, "gdbarch_write_pc called\n");
1185 gdbarch
->write_pc (val
, pid
);
1189 set_gdbarch_write_pc (struct gdbarch
*gdbarch
,
1190 gdbarch_write_pc_ftype write_pc
)
1192 gdbarch
->write_pc
= write_pc
;
1196 gdbarch_read_fp (struct gdbarch
*gdbarch
)
1198 if (gdbarch
->read_fp
== 0)
1199 internal_error ("gdbarch: gdbarch_read_fp invalid");
1200 if (gdbarch_debug
>= 2)
1201 fprintf_unfiltered (gdb_stdlog
, "gdbarch_read_fp called\n");
1202 return gdbarch
->read_fp ();
1206 set_gdbarch_read_fp (struct gdbarch
*gdbarch
,
1207 gdbarch_read_fp_ftype read_fp
)
1209 gdbarch
->read_fp
= read_fp
;
1213 gdbarch_write_fp (struct gdbarch
*gdbarch
, CORE_ADDR val
)
1215 if (gdbarch
->write_fp
== 0)
1216 internal_error ("gdbarch: gdbarch_write_fp invalid");
1217 if (gdbarch_debug
>= 2)
1218 fprintf_unfiltered (gdb_stdlog
, "gdbarch_write_fp called\n");
1219 gdbarch
->write_fp (val
);
1223 set_gdbarch_write_fp (struct gdbarch
*gdbarch
,
1224 gdbarch_write_fp_ftype write_fp
)
1226 gdbarch
->write_fp
= write_fp
;
1230 gdbarch_read_sp (struct gdbarch
*gdbarch
)
1232 if (gdbarch
->read_sp
== 0)
1233 internal_error ("gdbarch: gdbarch_read_sp invalid");
1234 if (gdbarch_debug
>= 2)
1235 fprintf_unfiltered (gdb_stdlog
, "gdbarch_read_sp called\n");
1236 return gdbarch
->read_sp ();
1240 set_gdbarch_read_sp (struct gdbarch
*gdbarch
,
1241 gdbarch_read_sp_ftype read_sp
)
1243 gdbarch
->read_sp
= read_sp
;
1247 gdbarch_write_sp (struct gdbarch
*gdbarch
, CORE_ADDR val
)
1249 if (gdbarch
->write_sp
== 0)
1250 internal_error ("gdbarch: gdbarch_write_sp invalid");
1251 if (gdbarch_debug
>= 2)
1252 fprintf_unfiltered (gdb_stdlog
, "gdbarch_write_sp called\n");
1253 gdbarch
->write_sp (val
);
1257 set_gdbarch_write_sp (struct gdbarch
*gdbarch
,
1258 gdbarch_write_sp_ftype write_sp
)
1260 gdbarch
->write_sp
= write_sp
;
1264 gdbarch_num_regs (struct gdbarch
*gdbarch
)
1266 if (gdbarch
->num_regs
== -1)
1267 internal_error ("gdbarch: gdbarch_num_regs invalid");
1268 if (gdbarch_debug
>= 2)
1269 fprintf_unfiltered (gdb_stdlog
, "gdbarch_num_regs called\n");
1270 return gdbarch
->num_regs
;
1274 set_gdbarch_num_regs (struct gdbarch
*gdbarch
,
1277 gdbarch
->num_regs
= num_regs
;
1281 gdbarch_sp_regnum (struct gdbarch
*gdbarch
)
1283 if (gdbarch
->sp_regnum
== -1)
1284 internal_error ("gdbarch: gdbarch_sp_regnum invalid");
1285 if (gdbarch_debug
>= 2)
1286 fprintf_unfiltered (gdb_stdlog
, "gdbarch_sp_regnum called\n");
1287 return gdbarch
->sp_regnum
;
1291 set_gdbarch_sp_regnum (struct gdbarch
*gdbarch
,
1294 gdbarch
->sp_regnum
= sp_regnum
;
1298 gdbarch_fp_regnum (struct gdbarch
*gdbarch
)
1300 if (gdbarch
->fp_regnum
== -1)
1301 internal_error ("gdbarch: gdbarch_fp_regnum invalid");
1302 if (gdbarch_debug
>= 2)
1303 fprintf_unfiltered (gdb_stdlog
, "gdbarch_fp_regnum called\n");
1304 return gdbarch
->fp_regnum
;
1308 set_gdbarch_fp_regnum (struct gdbarch
*gdbarch
,
1311 gdbarch
->fp_regnum
= fp_regnum
;
1315 gdbarch_pc_regnum (struct gdbarch
*gdbarch
)
1317 if (gdbarch
->pc_regnum
== -1)
1318 internal_error ("gdbarch: gdbarch_pc_regnum invalid");
1319 if (gdbarch_debug
>= 2)
1320 fprintf_unfiltered (gdb_stdlog
, "gdbarch_pc_regnum called\n");
1321 return gdbarch
->pc_regnum
;
1325 set_gdbarch_pc_regnum (struct gdbarch
*gdbarch
,
1328 gdbarch
->pc_regnum
= pc_regnum
;
1332 gdbarch_register_name (struct gdbarch
*gdbarch
, int regnr
)
1334 if (GDB_MULTI_ARCH
== 0)
1335 return legacy_register_name (regnr
);
1336 if (gdbarch
->register_name
== 0)
1337 internal_error ("gdbarch: gdbarch_register_name invalid");
1338 if (gdbarch_debug
>= 2)
1339 fprintf_unfiltered (gdb_stdlog
, "gdbarch_register_name called\n");
1340 return gdbarch
->register_name (regnr
);
1344 set_gdbarch_register_name (struct gdbarch
*gdbarch
,
1345 gdbarch_register_name_ftype register_name
)
1347 gdbarch
->register_name
= register_name
;
1351 gdbarch_register_size (struct gdbarch
*gdbarch
)
1353 if (gdbarch
->register_size
== -1)
1354 internal_error ("gdbarch: gdbarch_register_size invalid");
1355 if (gdbarch_debug
>= 2)
1356 fprintf_unfiltered (gdb_stdlog
, "gdbarch_register_size called\n");
1357 return gdbarch
->register_size
;
1361 set_gdbarch_register_size (struct gdbarch
*gdbarch
,
1364 gdbarch
->register_size
= register_size
;
1368 gdbarch_register_bytes (struct gdbarch
*gdbarch
)
1370 if (gdbarch
->register_bytes
== -1)
1371 internal_error ("gdbarch: gdbarch_register_bytes invalid");
1372 if (gdbarch_debug
>= 2)
1373 fprintf_unfiltered (gdb_stdlog
, "gdbarch_register_bytes called\n");
1374 return gdbarch
->register_bytes
;
1378 set_gdbarch_register_bytes (struct gdbarch
*gdbarch
,
1381 gdbarch
->register_bytes
= register_bytes
;
1385 gdbarch_register_byte (struct gdbarch
*gdbarch
, int reg_nr
)
1387 if (gdbarch
->register_byte
== 0)
1388 internal_error ("gdbarch: gdbarch_register_byte invalid");
1389 if (gdbarch_debug
>= 2)
1390 fprintf_unfiltered (gdb_stdlog
, "gdbarch_register_byte called\n");
1391 return gdbarch
->register_byte (reg_nr
);
1395 set_gdbarch_register_byte (struct gdbarch
*gdbarch
,
1396 gdbarch_register_byte_ftype register_byte
)
1398 gdbarch
->register_byte
= register_byte
;
1402 gdbarch_register_raw_size (struct gdbarch
*gdbarch
, int reg_nr
)
1404 if (gdbarch
->register_raw_size
== 0)
1405 internal_error ("gdbarch: gdbarch_register_raw_size invalid");
1406 if (gdbarch_debug
>= 2)
1407 fprintf_unfiltered (gdb_stdlog
, "gdbarch_register_raw_size called\n");
1408 return gdbarch
->register_raw_size (reg_nr
);
1412 set_gdbarch_register_raw_size (struct gdbarch
*gdbarch
,
1413 gdbarch_register_raw_size_ftype register_raw_size
)
1415 gdbarch
->register_raw_size
= register_raw_size
;
1419 gdbarch_max_register_raw_size (struct gdbarch
*gdbarch
)
1421 if (gdbarch
->max_register_raw_size
== -1)
1422 internal_error ("gdbarch: gdbarch_max_register_raw_size invalid");
1423 if (gdbarch_debug
>= 2)
1424 fprintf_unfiltered (gdb_stdlog
, "gdbarch_max_register_raw_size called\n");
1425 return gdbarch
->max_register_raw_size
;
1429 set_gdbarch_max_register_raw_size (struct gdbarch
*gdbarch
,
1430 int max_register_raw_size
)
1432 gdbarch
->max_register_raw_size
= max_register_raw_size
;
1436 gdbarch_register_virtual_size (struct gdbarch
*gdbarch
, int reg_nr
)
1438 if (gdbarch
->register_virtual_size
== 0)
1439 internal_error ("gdbarch: gdbarch_register_virtual_size invalid");
1440 if (gdbarch_debug
>= 2)
1441 fprintf_unfiltered (gdb_stdlog
, "gdbarch_register_virtual_size called\n");
1442 return gdbarch
->register_virtual_size (reg_nr
);
1446 set_gdbarch_register_virtual_size (struct gdbarch
*gdbarch
,
1447 gdbarch_register_virtual_size_ftype register_virtual_size
)
1449 gdbarch
->register_virtual_size
= register_virtual_size
;
1453 gdbarch_max_register_virtual_size (struct gdbarch
*gdbarch
)
1455 if (gdbarch
->max_register_virtual_size
== -1)
1456 internal_error ("gdbarch: gdbarch_max_register_virtual_size invalid");
1457 if (gdbarch_debug
>= 2)
1458 fprintf_unfiltered (gdb_stdlog
, "gdbarch_max_register_virtual_size called\n");
1459 return gdbarch
->max_register_virtual_size
;
1463 set_gdbarch_max_register_virtual_size (struct gdbarch
*gdbarch
,
1464 int max_register_virtual_size
)
1466 gdbarch
->max_register_virtual_size
= max_register_virtual_size
;
1470 gdbarch_register_virtual_type (struct gdbarch
*gdbarch
, int reg_nr
)
1472 if (gdbarch
->register_virtual_type
== 0)
1473 internal_error ("gdbarch: gdbarch_register_virtual_type invalid");
1474 if (gdbarch_debug
>= 2)
1475 fprintf_unfiltered (gdb_stdlog
, "gdbarch_register_virtual_type called\n");
1476 return gdbarch
->register_virtual_type (reg_nr
);
1480 set_gdbarch_register_virtual_type (struct gdbarch
*gdbarch
,
1481 gdbarch_register_virtual_type_ftype register_virtual_type
)
1483 gdbarch
->register_virtual_type
= register_virtual_type
;
1487 gdbarch_use_generic_dummy_frames (struct gdbarch
*gdbarch
)
1489 if (gdbarch
->use_generic_dummy_frames
== -1)
1490 internal_error ("gdbarch: gdbarch_use_generic_dummy_frames invalid");
1491 if (gdbarch_debug
>= 2)
1492 fprintf_unfiltered (gdb_stdlog
, "gdbarch_use_generic_dummy_frames called\n");
1493 return gdbarch
->use_generic_dummy_frames
;
1497 set_gdbarch_use_generic_dummy_frames (struct gdbarch
*gdbarch
,
1498 int use_generic_dummy_frames
)
1500 gdbarch
->use_generic_dummy_frames
= use_generic_dummy_frames
;
1504 gdbarch_call_dummy_location (struct gdbarch
*gdbarch
)
1506 if (gdbarch
->call_dummy_location
== 0)
1507 internal_error ("gdbarch: gdbarch_call_dummy_location invalid");
1508 if (gdbarch_debug
>= 2)
1509 fprintf_unfiltered (gdb_stdlog
, "gdbarch_call_dummy_location called\n");
1510 return gdbarch
->call_dummy_location
;
1514 set_gdbarch_call_dummy_location (struct gdbarch
*gdbarch
,
1515 int call_dummy_location
)
1517 gdbarch
->call_dummy_location
= call_dummy_location
;
1521 gdbarch_call_dummy_address (struct gdbarch
*gdbarch
)
1523 if (gdbarch
->call_dummy_address
== 0)
1524 internal_error ("gdbarch: gdbarch_call_dummy_address invalid");
1525 if (gdbarch_debug
>= 2)
1526 fprintf_unfiltered (gdb_stdlog
, "gdbarch_call_dummy_address called\n");
1527 return gdbarch
->call_dummy_address ();
1531 set_gdbarch_call_dummy_address (struct gdbarch
*gdbarch
,
1532 gdbarch_call_dummy_address_ftype call_dummy_address
)
1534 gdbarch
->call_dummy_address
= call_dummy_address
;
1538 gdbarch_call_dummy_start_offset (struct gdbarch
*gdbarch
)
1540 if (gdbarch
->call_dummy_start_offset
== -1)
1541 internal_error ("gdbarch: gdbarch_call_dummy_start_offset invalid");
1542 if (gdbarch_debug
>= 2)
1543 fprintf_unfiltered (gdb_stdlog
, "gdbarch_call_dummy_start_offset called\n");
1544 return gdbarch
->call_dummy_start_offset
;
1548 set_gdbarch_call_dummy_start_offset (struct gdbarch
*gdbarch
,
1549 CORE_ADDR call_dummy_start_offset
)
1551 gdbarch
->call_dummy_start_offset
= call_dummy_start_offset
;
1555 gdbarch_call_dummy_breakpoint_offset (struct gdbarch
*gdbarch
)
1557 if (gdbarch
->call_dummy_breakpoint_offset
== -1)
1558 internal_error ("gdbarch: gdbarch_call_dummy_breakpoint_offset invalid");
1559 if (gdbarch_debug
>= 2)
1560 fprintf_unfiltered (gdb_stdlog
, "gdbarch_call_dummy_breakpoint_offset called\n");
1561 return gdbarch
->call_dummy_breakpoint_offset
;
1565 set_gdbarch_call_dummy_breakpoint_offset (struct gdbarch
*gdbarch
,
1566 CORE_ADDR call_dummy_breakpoint_offset
)
1568 gdbarch
->call_dummy_breakpoint_offset
= call_dummy_breakpoint_offset
;
1572 gdbarch_call_dummy_breakpoint_offset_p (struct gdbarch
*gdbarch
)
1574 if (gdbarch
->call_dummy_breakpoint_offset_p
== -1)
1575 internal_error ("gdbarch: gdbarch_call_dummy_breakpoint_offset_p invalid");
1576 if (gdbarch_debug
>= 2)
1577 fprintf_unfiltered (gdb_stdlog
, "gdbarch_call_dummy_breakpoint_offset_p called\n");
1578 return gdbarch
->call_dummy_breakpoint_offset_p
;
1582 set_gdbarch_call_dummy_breakpoint_offset_p (struct gdbarch
*gdbarch
,
1583 int call_dummy_breakpoint_offset_p
)
1585 gdbarch
->call_dummy_breakpoint_offset_p
= call_dummy_breakpoint_offset_p
;
1589 gdbarch_call_dummy_length (struct gdbarch
*gdbarch
)
1591 if (gdbarch
->call_dummy_length
== -1)
1592 internal_error ("gdbarch: gdbarch_call_dummy_length invalid");
1593 if (gdbarch_debug
>= 2)
1594 fprintf_unfiltered (gdb_stdlog
, "gdbarch_call_dummy_length called\n");
1595 return gdbarch
->call_dummy_length
;
1599 set_gdbarch_call_dummy_length (struct gdbarch
*gdbarch
,
1600 int call_dummy_length
)
1602 gdbarch
->call_dummy_length
= call_dummy_length
;
1606 gdbarch_pc_in_call_dummy (struct gdbarch
*gdbarch
, CORE_ADDR pc
, CORE_ADDR sp
, CORE_ADDR frame_address
)
1608 if (gdbarch
->pc_in_call_dummy
== 0)
1609 internal_error ("gdbarch: gdbarch_pc_in_call_dummy invalid");
1610 if (gdbarch_debug
>= 2)
1611 fprintf_unfiltered (gdb_stdlog
, "gdbarch_pc_in_call_dummy called\n");
1612 return gdbarch
->pc_in_call_dummy (pc
, sp
, frame_address
);
1616 set_gdbarch_pc_in_call_dummy (struct gdbarch
*gdbarch
,
1617 gdbarch_pc_in_call_dummy_ftype pc_in_call_dummy
)
1619 gdbarch
->pc_in_call_dummy
= pc_in_call_dummy
;
1623 gdbarch_call_dummy_p (struct gdbarch
*gdbarch
)
1625 if (gdbarch
->call_dummy_p
== -1)
1626 internal_error ("gdbarch: gdbarch_call_dummy_p invalid");
1627 if (gdbarch_debug
>= 2)
1628 fprintf_unfiltered (gdb_stdlog
, "gdbarch_call_dummy_p called\n");
1629 return gdbarch
->call_dummy_p
;
1633 set_gdbarch_call_dummy_p (struct gdbarch
*gdbarch
,
1636 gdbarch
->call_dummy_p
= call_dummy_p
;
1640 gdbarch_call_dummy_words (struct gdbarch
*gdbarch
)
1642 if (GDB_MULTI_ARCH
== 0)
1643 return legacy_call_dummy_words
;
1644 /* Skip verify of call_dummy_words, invalid_p == 0 */
1645 if (gdbarch_debug
>= 2)
1646 fprintf_unfiltered (gdb_stdlog
, "gdbarch_call_dummy_words called\n");
1647 return gdbarch
->call_dummy_words
;
1651 set_gdbarch_call_dummy_words (struct gdbarch
*gdbarch
,
1652 LONGEST
* call_dummy_words
)
1654 gdbarch
->call_dummy_words
= call_dummy_words
;
1658 gdbarch_sizeof_call_dummy_words (struct gdbarch
*gdbarch
)
1660 if (GDB_MULTI_ARCH
== 0)
1661 return legacy_sizeof_call_dummy_words
;
1662 /* Skip verify of sizeof_call_dummy_words, invalid_p == 0 */
1663 if (gdbarch_debug
>= 2)
1664 fprintf_unfiltered (gdb_stdlog
, "gdbarch_sizeof_call_dummy_words called\n");
1665 return gdbarch
->sizeof_call_dummy_words
;
1669 set_gdbarch_sizeof_call_dummy_words (struct gdbarch
*gdbarch
,
1670 int sizeof_call_dummy_words
)
1672 gdbarch
->sizeof_call_dummy_words
= sizeof_call_dummy_words
;
1676 gdbarch_call_dummy_stack_adjust_p (struct gdbarch
*gdbarch
)
1678 if (gdbarch
->call_dummy_stack_adjust_p
== -1)
1679 internal_error ("gdbarch: gdbarch_call_dummy_stack_adjust_p invalid");
1680 if (gdbarch_debug
>= 2)
1681 fprintf_unfiltered (gdb_stdlog
, "gdbarch_call_dummy_stack_adjust_p called\n");
1682 return gdbarch
->call_dummy_stack_adjust_p
;
1686 set_gdbarch_call_dummy_stack_adjust_p (struct gdbarch
*gdbarch
,
1687 int call_dummy_stack_adjust_p
)
1689 gdbarch
->call_dummy_stack_adjust_p
= call_dummy_stack_adjust_p
;
1693 gdbarch_call_dummy_stack_adjust (struct gdbarch
*gdbarch
)
1695 if (gdbarch
->call_dummy_stack_adjust_p
&& gdbarch
->call_dummy_stack_adjust
== 0)
1696 internal_error ("gdbarch: gdbarch_call_dummy_stack_adjust invalid");
1697 if (gdbarch_debug
>= 2)
1698 fprintf_unfiltered (gdb_stdlog
, "gdbarch_call_dummy_stack_adjust called\n");
1699 return gdbarch
->call_dummy_stack_adjust
;
1703 set_gdbarch_call_dummy_stack_adjust (struct gdbarch
*gdbarch
,
1704 int call_dummy_stack_adjust
)
1706 gdbarch
->call_dummy_stack_adjust
= call_dummy_stack_adjust
;
1710 gdbarch_fix_call_dummy (struct gdbarch
*gdbarch
, char *dummy
, CORE_ADDR pc
, CORE_ADDR fun
, int nargs
, struct value
**args
, struct type
*type
, int gcc_p
)
1712 if (gdbarch
->fix_call_dummy
== 0)
1713 internal_error ("gdbarch: gdbarch_fix_call_dummy invalid");
1714 if (gdbarch_debug
>= 2)
1715 fprintf_unfiltered (gdb_stdlog
, "gdbarch_fix_call_dummy called\n");
1716 gdbarch
->fix_call_dummy (dummy
, pc
, fun
, nargs
, args
, type
, gcc_p
);
1720 set_gdbarch_fix_call_dummy (struct gdbarch
*gdbarch
,
1721 gdbarch_fix_call_dummy_ftype fix_call_dummy
)
1723 gdbarch
->fix_call_dummy
= fix_call_dummy
;
1727 gdbarch_believe_pcc_promotion (struct gdbarch
*gdbarch
)
1729 if (gdbarch_debug
>= 2)
1730 fprintf_unfiltered (gdb_stdlog
, "gdbarch_believe_pcc_promotion called\n");
1731 return gdbarch
->believe_pcc_promotion
;
1735 set_gdbarch_believe_pcc_promotion (struct gdbarch
*gdbarch
,
1736 int believe_pcc_promotion
)
1738 gdbarch
->believe_pcc_promotion
= believe_pcc_promotion
;
1742 gdbarch_believe_pcc_promotion_type (struct gdbarch
*gdbarch
)
1744 if (gdbarch_debug
>= 2)
1745 fprintf_unfiltered (gdb_stdlog
, "gdbarch_believe_pcc_promotion_type called\n");
1746 return gdbarch
->believe_pcc_promotion_type
;
1750 set_gdbarch_believe_pcc_promotion_type (struct gdbarch
*gdbarch
,
1751 int believe_pcc_promotion_type
)
1753 gdbarch
->believe_pcc_promotion_type
= believe_pcc_promotion_type
;
1757 gdbarch_coerce_float_to_double (struct gdbarch
*gdbarch
, struct type
*formal
, struct type
*actual
)
1759 if (GDB_MULTI_ARCH
== 0)
1760 return default_coerce_float_to_double (formal
, actual
);
1761 if (gdbarch
->coerce_float_to_double
== 0)
1762 internal_error ("gdbarch: gdbarch_coerce_float_to_double invalid");
1763 if (gdbarch_debug
>= 2)
1764 fprintf_unfiltered (gdb_stdlog
, "gdbarch_coerce_float_to_double called\n");
1765 return gdbarch
->coerce_float_to_double (formal
, actual
);
1769 set_gdbarch_coerce_float_to_double (struct gdbarch
*gdbarch
,
1770 gdbarch_coerce_float_to_double_ftype coerce_float_to_double
)
1772 gdbarch
->coerce_float_to_double
= coerce_float_to_double
;
1776 gdbarch_get_saved_register (struct gdbarch
*gdbarch
, char *raw_buffer
, int *optimized
, CORE_ADDR
*addrp
, struct frame_info
*frame
, int regnum
, enum lval_type
*lval
)
1778 if (gdbarch
->get_saved_register
== 0)
1779 internal_error ("gdbarch: gdbarch_get_saved_register invalid");
1780 if (gdbarch_debug
>= 2)
1781 fprintf_unfiltered (gdb_stdlog
, "gdbarch_get_saved_register called\n");
1782 gdbarch
->get_saved_register (raw_buffer
, optimized
, addrp
, frame
, regnum
, lval
);
1786 set_gdbarch_get_saved_register (struct gdbarch
*gdbarch
,
1787 gdbarch_get_saved_register_ftype get_saved_register
)
1789 gdbarch
->get_saved_register
= get_saved_register
;
1793 gdbarch_register_convertible (struct gdbarch
*gdbarch
, int nr
)
1795 if (GDB_MULTI_ARCH
== 0)
1796 return generic_register_convertible_not (nr
);
1797 if (gdbarch
->register_convertible
== 0)
1798 internal_error ("gdbarch: gdbarch_register_convertible invalid");
1799 if (gdbarch_debug
>= 2)
1800 fprintf_unfiltered (gdb_stdlog
, "gdbarch_register_convertible called\n");
1801 return gdbarch
->register_convertible (nr
);
1805 set_gdbarch_register_convertible (struct gdbarch
*gdbarch
,
1806 gdbarch_register_convertible_ftype register_convertible
)
1808 gdbarch
->register_convertible
= register_convertible
;
1812 gdbarch_register_convert_to_virtual (struct gdbarch
*gdbarch
, int regnum
, struct type
*type
, char *from
, char *to
)
1814 if (gdbarch
->register_convert_to_virtual
== 0)
1815 internal_error ("gdbarch: gdbarch_register_convert_to_virtual invalid");
1816 if (gdbarch_debug
>= 2)
1817 fprintf_unfiltered (gdb_stdlog
, "gdbarch_register_convert_to_virtual called\n");
1818 gdbarch
->register_convert_to_virtual (regnum
, type
, from
, to
);
1822 set_gdbarch_register_convert_to_virtual (struct gdbarch
*gdbarch
,
1823 gdbarch_register_convert_to_virtual_ftype register_convert_to_virtual
)
1825 gdbarch
->register_convert_to_virtual
= register_convert_to_virtual
;
1829 gdbarch_register_convert_to_raw (struct gdbarch
*gdbarch
, struct type
*type
, int regnum
, char *from
, char *to
)
1831 if (gdbarch
->register_convert_to_raw
== 0)
1832 internal_error ("gdbarch: gdbarch_register_convert_to_raw invalid");
1833 if (gdbarch_debug
>= 2)
1834 fprintf_unfiltered (gdb_stdlog
, "gdbarch_register_convert_to_raw called\n");
1835 gdbarch
->register_convert_to_raw (type
, regnum
, from
, to
);
1839 set_gdbarch_register_convert_to_raw (struct gdbarch
*gdbarch
,
1840 gdbarch_register_convert_to_raw_ftype register_convert_to_raw
)
1842 gdbarch
->register_convert_to_raw
= register_convert_to_raw
;
1846 gdbarch_pointer_to_address (struct gdbarch
*gdbarch
, struct type
*type
, char *buf
)
1848 if (GDB_MULTI_ARCH
== 0)
1849 return generic_pointer_to_address (type
, buf
);
1850 if (gdbarch
->pointer_to_address
== 0)
1851 internal_error ("gdbarch: gdbarch_pointer_to_address invalid");
1852 if (gdbarch_debug
>= 2)
1853 fprintf_unfiltered (gdb_stdlog
, "gdbarch_pointer_to_address called\n");
1854 return gdbarch
->pointer_to_address (type
, buf
);
1858 set_gdbarch_pointer_to_address (struct gdbarch
*gdbarch
,
1859 gdbarch_pointer_to_address_ftype pointer_to_address
)
1861 gdbarch
->pointer_to_address
= pointer_to_address
;
1865 gdbarch_address_to_pointer (struct gdbarch
*gdbarch
, struct type
*type
, char *buf
, CORE_ADDR addr
)
1867 if (GDB_MULTI_ARCH
== 0)
1869 generic_address_to_pointer (type
, buf
, addr
);
1872 if (gdbarch
->address_to_pointer
== 0)
1873 internal_error ("gdbarch: gdbarch_address_to_pointer invalid");
1874 if (gdbarch_debug
>= 2)
1875 fprintf_unfiltered (gdb_stdlog
, "gdbarch_address_to_pointer called\n");
1876 gdbarch
->address_to_pointer (type
, buf
, addr
);
1880 set_gdbarch_address_to_pointer (struct gdbarch
*gdbarch
,
1881 gdbarch_address_to_pointer_ftype address_to_pointer
)
1883 gdbarch
->address_to_pointer
= address_to_pointer
;
1887 gdbarch_return_value_on_stack (struct gdbarch
*gdbarch
, struct type
*type
)
1889 if (GDB_MULTI_ARCH
== 0)
1890 return generic_return_value_on_stack_not (type
);
1891 if (gdbarch
->return_value_on_stack
== 0)
1892 internal_error ("gdbarch: gdbarch_return_value_on_stack invalid");
1893 if (gdbarch_debug
>= 2)
1894 fprintf_unfiltered (gdb_stdlog
, "gdbarch_return_value_on_stack called\n");
1895 return gdbarch
->return_value_on_stack (type
);
1899 set_gdbarch_return_value_on_stack (struct gdbarch
*gdbarch
,
1900 gdbarch_return_value_on_stack_ftype return_value_on_stack
)
1902 gdbarch
->return_value_on_stack
= return_value_on_stack
;
1906 gdbarch_extract_return_value (struct gdbarch
*gdbarch
, struct type
*type
, char *regbuf
, char *valbuf
)
1908 if (gdbarch
->extract_return_value
== 0)
1909 internal_error ("gdbarch: gdbarch_extract_return_value invalid");
1910 if (gdbarch_debug
>= 2)
1911 fprintf_unfiltered (gdb_stdlog
, "gdbarch_extract_return_value called\n");
1912 gdbarch
->extract_return_value (type
, regbuf
, valbuf
);
1916 set_gdbarch_extract_return_value (struct gdbarch
*gdbarch
,
1917 gdbarch_extract_return_value_ftype extract_return_value
)
1919 gdbarch
->extract_return_value
= extract_return_value
;
1923 gdbarch_push_arguments (struct gdbarch
*gdbarch
, int nargs
, struct value
**args
, CORE_ADDR sp
, int struct_return
, CORE_ADDR struct_addr
)
1925 if (gdbarch
->push_arguments
== 0)
1926 internal_error ("gdbarch: gdbarch_push_arguments invalid");
1927 if (gdbarch_debug
>= 2)
1928 fprintf_unfiltered (gdb_stdlog
, "gdbarch_push_arguments called\n");
1929 return gdbarch
->push_arguments (nargs
, args
, sp
, struct_return
, struct_addr
);
1933 set_gdbarch_push_arguments (struct gdbarch
*gdbarch
,
1934 gdbarch_push_arguments_ftype push_arguments
)
1936 gdbarch
->push_arguments
= push_arguments
;
1940 gdbarch_push_dummy_frame (struct gdbarch
*gdbarch
)
1942 if (gdbarch
->push_dummy_frame
== 0)
1943 internal_error ("gdbarch: gdbarch_push_dummy_frame invalid");
1944 if (gdbarch_debug
>= 2)
1945 fprintf_unfiltered (gdb_stdlog
, "gdbarch_push_dummy_frame called\n");
1946 gdbarch
->push_dummy_frame ();
1950 set_gdbarch_push_dummy_frame (struct gdbarch
*gdbarch
,
1951 gdbarch_push_dummy_frame_ftype push_dummy_frame
)
1953 gdbarch
->push_dummy_frame
= push_dummy_frame
;
1957 gdbarch_push_return_address (struct gdbarch
*gdbarch
, CORE_ADDR pc
, CORE_ADDR sp
)
1959 if (gdbarch
->push_return_address
== 0)
1960 internal_error ("gdbarch: gdbarch_push_return_address invalid");
1961 if (gdbarch_debug
>= 2)
1962 fprintf_unfiltered (gdb_stdlog
, "gdbarch_push_return_address called\n");
1963 return gdbarch
->push_return_address (pc
, sp
);
1967 set_gdbarch_push_return_address (struct gdbarch
*gdbarch
,
1968 gdbarch_push_return_address_ftype push_return_address
)
1970 gdbarch
->push_return_address
= push_return_address
;
1974 gdbarch_pop_frame (struct gdbarch
*gdbarch
)
1976 if (gdbarch
->pop_frame
== 0)
1977 internal_error ("gdbarch: gdbarch_pop_frame invalid");
1978 if (gdbarch_debug
>= 2)
1979 fprintf_unfiltered (gdb_stdlog
, "gdbarch_pop_frame called\n");
1980 gdbarch
->pop_frame ();
1984 set_gdbarch_pop_frame (struct gdbarch
*gdbarch
,
1985 gdbarch_pop_frame_ftype pop_frame
)
1987 gdbarch
->pop_frame
= pop_frame
;
1991 gdbarch_d10v_make_daddr (struct gdbarch
*gdbarch
, CORE_ADDR x
)
1993 if (gdbarch
->d10v_make_daddr
== 0)
1994 internal_error ("gdbarch: gdbarch_d10v_make_daddr invalid");
1995 if (gdbarch_debug
>= 2)
1996 fprintf_unfiltered (gdb_stdlog
, "gdbarch_d10v_make_daddr called\n");
1997 return gdbarch
->d10v_make_daddr (x
);
2001 set_gdbarch_d10v_make_daddr (struct gdbarch
*gdbarch
,
2002 gdbarch_d10v_make_daddr_ftype d10v_make_daddr
)
2004 gdbarch
->d10v_make_daddr
= d10v_make_daddr
;
2008 gdbarch_d10v_make_iaddr (struct gdbarch
*gdbarch
, CORE_ADDR x
)
2010 if (gdbarch
->d10v_make_iaddr
== 0)
2011 internal_error ("gdbarch: gdbarch_d10v_make_iaddr invalid");
2012 if (gdbarch_debug
>= 2)
2013 fprintf_unfiltered (gdb_stdlog
, "gdbarch_d10v_make_iaddr called\n");
2014 return gdbarch
->d10v_make_iaddr (x
);
2018 set_gdbarch_d10v_make_iaddr (struct gdbarch
*gdbarch
,
2019 gdbarch_d10v_make_iaddr_ftype d10v_make_iaddr
)
2021 gdbarch
->d10v_make_iaddr
= d10v_make_iaddr
;
2025 gdbarch_d10v_daddr_p (struct gdbarch
*gdbarch
, CORE_ADDR x
)
2027 if (gdbarch
->d10v_daddr_p
== 0)
2028 internal_error ("gdbarch: gdbarch_d10v_daddr_p invalid");
2029 if (gdbarch_debug
>= 2)
2030 fprintf_unfiltered (gdb_stdlog
, "gdbarch_d10v_daddr_p called\n");
2031 return gdbarch
->d10v_daddr_p (x
);
2035 set_gdbarch_d10v_daddr_p (struct gdbarch
*gdbarch
,
2036 gdbarch_d10v_daddr_p_ftype d10v_daddr_p
)
2038 gdbarch
->d10v_daddr_p
= d10v_daddr_p
;
2042 gdbarch_d10v_iaddr_p (struct gdbarch
*gdbarch
, CORE_ADDR x
)
2044 if (gdbarch
->d10v_iaddr_p
== 0)
2045 internal_error ("gdbarch: gdbarch_d10v_iaddr_p invalid");
2046 if (gdbarch_debug
>= 2)
2047 fprintf_unfiltered (gdb_stdlog
, "gdbarch_d10v_iaddr_p called\n");
2048 return gdbarch
->d10v_iaddr_p (x
);
2052 set_gdbarch_d10v_iaddr_p (struct gdbarch
*gdbarch
,
2053 gdbarch_d10v_iaddr_p_ftype d10v_iaddr_p
)
2055 gdbarch
->d10v_iaddr_p
= d10v_iaddr_p
;
2059 gdbarch_d10v_convert_daddr_to_raw (struct gdbarch
*gdbarch
, CORE_ADDR x
)
2061 if (gdbarch
->d10v_convert_daddr_to_raw
== 0)
2062 internal_error ("gdbarch: gdbarch_d10v_convert_daddr_to_raw invalid");
2063 if (gdbarch_debug
>= 2)
2064 fprintf_unfiltered (gdb_stdlog
, "gdbarch_d10v_convert_daddr_to_raw called\n");
2065 return gdbarch
->d10v_convert_daddr_to_raw (x
);
2069 set_gdbarch_d10v_convert_daddr_to_raw (struct gdbarch
*gdbarch
,
2070 gdbarch_d10v_convert_daddr_to_raw_ftype d10v_convert_daddr_to_raw
)
2072 gdbarch
->d10v_convert_daddr_to_raw
= d10v_convert_daddr_to_raw
;
2076 gdbarch_d10v_convert_iaddr_to_raw (struct gdbarch
*gdbarch
, CORE_ADDR x
)
2078 if (gdbarch
->d10v_convert_iaddr_to_raw
== 0)
2079 internal_error ("gdbarch: gdbarch_d10v_convert_iaddr_to_raw invalid");
2080 if (gdbarch_debug
>= 2)
2081 fprintf_unfiltered (gdb_stdlog
, "gdbarch_d10v_convert_iaddr_to_raw called\n");
2082 return gdbarch
->d10v_convert_iaddr_to_raw (x
);
2086 set_gdbarch_d10v_convert_iaddr_to_raw (struct gdbarch
*gdbarch
,
2087 gdbarch_d10v_convert_iaddr_to_raw_ftype d10v_convert_iaddr_to_raw
)
2089 gdbarch
->d10v_convert_iaddr_to_raw
= d10v_convert_iaddr_to_raw
;
2093 gdbarch_store_struct_return (struct gdbarch
*gdbarch
, CORE_ADDR addr
, CORE_ADDR sp
)
2095 if (gdbarch
->store_struct_return
== 0)
2096 internal_error ("gdbarch: gdbarch_store_struct_return invalid");
2097 if (gdbarch_debug
>= 2)
2098 fprintf_unfiltered (gdb_stdlog
, "gdbarch_store_struct_return called\n");
2099 gdbarch
->store_struct_return (addr
, sp
);
2103 set_gdbarch_store_struct_return (struct gdbarch
*gdbarch
,
2104 gdbarch_store_struct_return_ftype store_struct_return
)
2106 gdbarch
->store_struct_return
= store_struct_return
;
2110 gdbarch_store_return_value (struct gdbarch
*gdbarch
, struct type
*type
, char *valbuf
)
2112 if (gdbarch
->store_return_value
== 0)
2113 internal_error ("gdbarch: gdbarch_store_return_value invalid");
2114 if (gdbarch_debug
>= 2)
2115 fprintf_unfiltered (gdb_stdlog
, "gdbarch_store_return_value called\n");
2116 gdbarch
->store_return_value (type
, valbuf
);
2120 set_gdbarch_store_return_value (struct gdbarch
*gdbarch
,
2121 gdbarch_store_return_value_ftype store_return_value
)
2123 gdbarch
->store_return_value
= store_return_value
;
2127 gdbarch_extract_struct_value_address (struct gdbarch
*gdbarch
, char *regbuf
)
2129 if (gdbarch
->extract_struct_value_address
== 0)
2130 internal_error ("gdbarch: gdbarch_extract_struct_value_address invalid");
2131 if (gdbarch_debug
>= 2)
2132 fprintf_unfiltered (gdb_stdlog
, "gdbarch_extract_struct_value_address called\n");
2133 return gdbarch
->extract_struct_value_address (regbuf
);
2137 set_gdbarch_extract_struct_value_address (struct gdbarch
*gdbarch
,
2138 gdbarch_extract_struct_value_address_ftype extract_struct_value_address
)
2140 gdbarch
->extract_struct_value_address
= extract_struct_value_address
;
2144 gdbarch_use_struct_convention (struct gdbarch
*gdbarch
, int gcc_p
, struct type
*value_type
)
2146 if (gdbarch
->use_struct_convention
== 0)
2147 internal_error ("gdbarch: gdbarch_use_struct_convention invalid");
2148 if (gdbarch_debug
>= 2)
2149 fprintf_unfiltered (gdb_stdlog
, "gdbarch_use_struct_convention called\n");
2150 return gdbarch
->use_struct_convention (gcc_p
, value_type
);
2154 set_gdbarch_use_struct_convention (struct gdbarch
*gdbarch
,
2155 gdbarch_use_struct_convention_ftype use_struct_convention
)
2157 gdbarch
->use_struct_convention
= use_struct_convention
;
2161 gdbarch_frame_init_saved_regs (struct gdbarch
*gdbarch
, struct frame_info
*frame
)
2163 if (gdbarch
->frame_init_saved_regs
== 0)
2164 internal_error ("gdbarch: gdbarch_frame_init_saved_regs invalid");
2165 if (gdbarch_debug
>= 2)
2166 fprintf_unfiltered (gdb_stdlog
, "gdbarch_frame_init_saved_regs called\n");
2167 gdbarch
->frame_init_saved_regs (frame
);
2171 set_gdbarch_frame_init_saved_regs (struct gdbarch
*gdbarch
,
2172 gdbarch_frame_init_saved_regs_ftype frame_init_saved_regs
)
2174 gdbarch
->frame_init_saved_regs
= frame_init_saved_regs
;
2178 gdbarch_init_extra_frame_info (struct gdbarch
*gdbarch
, int fromleaf
, struct frame_info
*frame
)
2180 if (gdbarch
->init_extra_frame_info
== 0)
2181 internal_error ("gdbarch: gdbarch_init_extra_frame_info invalid");
2182 if (gdbarch_debug
>= 2)
2183 fprintf_unfiltered (gdb_stdlog
, "gdbarch_init_extra_frame_info called\n");
2184 gdbarch
->init_extra_frame_info (fromleaf
, frame
);
2188 set_gdbarch_init_extra_frame_info (struct gdbarch
*gdbarch
,
2189 gdbarch_init_extra_frame_info_ftype init_extra_frame_info
)
2191 gdbarch
->init_extra_frame_info
= init_extra_frame_info
;
2195 gdbarch_skip_prologue (struct gdbarch
*gdbarch
, CORE_ADDR ip
)
2197 if (gdbarch
->skip_prologue
== 0)
2198 internal_error ("gdbarch: gdbarch_skip_prologue invalid");
2199 if (gdbarch_debug
>= 2)
2200 fprintf_unfiltered (gdb_stdlog
, "gdbarch_skip_prologue called\n");
2201 return gdbarch
->skip_prologue (ip
);
2205 set_gdbarch_skip_prologue (struct gdbarch
*gdbarch
,
2206 gdbarch_skip_prologue_ftype skip_prologue
)
2208 gdbarch
->skip_prologue
= skip_prologue
;
2212 gdbarch_inner_than (struct gdbarch
*gdbarch
, CORE_ADDR lhs
, CORE_ADDR rhs
)
2214 if (gdbarch
->inner_than
== 0)
2215 internal_error ("gdbarch: gdbarch_inner_than invalid");
2216 if (gdbarch_debug
>= 2)
2217 fprintf_unfiltered (gdb_stdlog
, "gdbarch_inner_than called\n");
2218 return gdbarch
->inner_than (lhs
, rhs
);
2222 set_gdbarch_inner_than (struct gdbarch
*gdbarch
,
2223 gdbarch_inner_than_ftype inner_than
)
2225 gdbarch
->inner_than
= inner_than
;
2229 gdbarch_breakpoint_from_pc (struct gdbarch
*gdbarch
, CORE_ADDR
*pcptr
, int *lenptr
)
2231 if (GDB_MULTI_ARCH
== 0)
2232 return legacy_breakpoint_from_pc (pcptr
, lenptr
);
2233 if (gdbarch
->breakpoint_from_pc
== 0)
2234 internal_error ("gdbarch: gdbarch_breakpoint_from_pc invalid");
2235 if (gdbarch_debug
>= 2)
2236 fprintf_unfiltered (gdb_stdlog
, "gdbarch_breakpoint_from_pc called\n");
2237 return gdbarch
->breakpoint_from_pc (pcptr
, lenptr
);
2241 set_gdbarch_breakpoint_from_pc (struct gdbarch
*gdbarch
,
2242 gdbarch_breakpoint_from_pc_ftype breakpoint_from_pc
)
2244 gdbarch
->breakpoint_from_pc
= breakpoint_from_pc
;
2248 gdbarch_memory_insert_breakpoint (struct gdbarch
*gdbarch
, CORE_ADDR addr
, char *contents_cache
)
2250 if (GDB_MULTI_ARCH
== 0)
2251 return default_memory_insert_breakpoint (addr
, contents_cache
);
2252 if (gdbarch
->memory_insert_breakpoint
== 0)
2253 internal_error ("gdbarch: gdbarch_memory_insert_breakpoint invalid");
2254 if (gdbarch_debug
>= 2)
2255 fprintf_unfiltered (gdb_stdlog
, "gdbarch_memory_insert_breakpoint called\n");
2256 return gdbarch
->memory_insert_breakpoint (addr
, contents_cache
);
2260 set_gdbarch_memory_insert_breakpoint (struct gdbarch
*gdbarch
,
2261 gdbarch_memory_insert_breakpoint_ftype memory_insert_breakpoint
)
2263 gdbarch
->memory_insert_breakpoint
= memory_insert_breakpoint
;
2267 gdbarch_memory_remove_breakpoint (struct gdbarch
*gdbarch
, CORE_ADDR addr
, char *contents_cache
)
2269 if (GDB_MULTI_ARCH
== 0)
2270 return default_memory_remove_breakpoint (addr
, contents_cache
);
2271 if (gdbarch
->memory_remove_breakpoint
== 0)
2272 internal_error ("gdbarch: gdbarch_memory_remove_breakpoint invalid");
2273 if (gdbarch_debug
>= 2)
2274 fprintf_unfiltered (gdb_stdlog
, "gdbarch_memory_remove_breakpoint called\n");
2275 return gdbarch
->memory_remove_breakpoint (addr
, contents_cache
);
2279 set_gdbarch_memory_remove_breakpoint (struct gdbarch
*gdbarch
,
2280 gdbarch_memory_remove_breakpoint_ftype memory_remove_breakpoint
)
2282 gdbarch
->memory_remove_breakpoint
= memory_remove_breakpoint
;
2286 gdbarch_decr_pc_after_break (struct gdbarch
*gdbarch
)
2288 if (gdbarch
->decr_pc_after_break
== -1)
2289 internal_error ("gdbarch: gdbarch_decr_pc_after_break invalid");
2290 if (gdbarch_debug
>= 2)
2291 fprintf_unfiltered (gdb_stdlog
, "gdbarch_decr_pc_after_break called\n");
2292 return gdbarch
->decr_pc_after_break
;
2296 set_gdbarch_decr_pc_after_break (struct gdbarch
*gdbarch
,
2297 CORE_ADDR decr_pc_after_break
)
2299 gdbarch
->decr_pc_after_break
= decr_pc_after_break
;
2303 gdbarch_function_start_offset (struct gdbarch
*gdbarch
)
2305 if (gdbarch
->function_start_offset
== -1)
2306 internal_error ("gdbarch: gdbarch_function_start_offset invalid");
2307 if (gdbarch_debug
>= 2)
2308 fprintf_unfiltered (gdb_stdlog
, "gdbarch_function_start_offset called\n");
2309 return gdbarch
->function_start_offset
;
2313 set_gdbarch_function_start_offset (struct gdbarch
*gdbarch
,
2314 CORE_ADDR function_start_offset
)
2316 gdbarch
->function_start_offset
= function_start_offset
;
2320 gdbarch_remote_translate_xfer_address (struct gdbarch
*gdbarch
, CORE_ADDR gdb_addr
, int gdb_len
, CORE_ADDR
*rem_addr
, int *rem_len
)
2322 if (GDB_MULTI_ARCH
== 0)
2324 generic_remote_translate_xfer_address (gdb_addr
, gdb_len
, rem_addr
, rem_len
);
2327 if (gdbarch
->remote_translate_xfer_address
== 0)
2328 internal_error ("gdbarch: gdbarch_remote_translate_xfer_address invalid");
2329 if (gdbarch_debug
>= 2)
2330 fprintf_unfiltered (gdb_stdlog
, "gdbarch_remote_translate_xfer_address called\n");
2331 gdbarch
->remote_translate_xfer_address (gdb_addr
, gdb_len
, rem_addr
, rem_len
);
2335 set_gdbarch_remote_translate_xfer_address (struct gdbarch
*gdbarch
,
2336 gdbarch_remote_translate_xfer_address_ftype remote_translate_xfer_address
)
2338 gdbarch
->remote_translate_xfer_address
= remote_translate_xfer_address
;
2342 gdbarch_frame_args_skip (struct gdbarch
*gdbarch
)
2344 if (gdbarch
->frame_args_skip
== -1)
2345 internal_error ("gdbarch: gdbarch_frame_args_skip invalid");
2346 if (gdbarch_debug
>= 2)
2347 fprintf_unfiltered (gdb_stdlog
, "gdbarch_frame_args_skip called\n");
2348 return gdbarch
->frame_args_skip
;
2352 set_gdbarch_frame_args_skip (struct gdbarch
*gdbarch
,
2353 CORE_ADDR frame_args_skip
)
2355 gdbarch
->frame_args_skip
= frame_args_skip
;
2359 gdbarch_frameless_function_invocation (struct gdbarch
*gdbarch
, struct frame_info
*fi
)
2361 if (GDB_MULTI_ARCH
== 0)
2362 return generic_frameless_function_invocation_not (fi
);
2363 if (gdbarch
->frameless_function_invocation
== 0)
2364 internal_error ("gdbarch: gdbarch_frameless_function_invocation invalid");
2365 if (gdbarch_debug
>= 2)
2366 fprintf_unfiltered (gdb_stdlog
, "gdbarch_frameless_function_invocation called\n");
2367 return gdbarch
->frameless_function_invocation (fi
);
2371 set_gdbarch_frameless_function_invocation (struct gdbarch
*gdbarch
,
2372 gdbarch_frameless_function_invocation_ftype frameless_function_invocation
)
2374 gdbarch
->frameless_function_invocation
= frameless_function_invocation
;
2378 gdbarch_frame_chain (struct gdbarch
*gdbarch
, struct frame_info
*frame
)
2380 if (gdbarch
->frame_chain
== 0)
2381 internal_error ("gdbarch: gdbarch_frame_chain invalid");
2382 if (gdbarch_debug
>= 2)
2383 fprintf_unfiltered (gdb_stdlog
, "gdbarch_frame_chain called\n");
2384 return gdbarch
->frame_chain (frame
);
2388 set_gdbarch_frame_chain (struct gdbarch
*gdbarch
,
2389 gdbarch_frame_chain_ftype frame_chain
)
2391 gdbarch
->frame_chain
= frame_chain
;
2395 gdbarch_frame_chain_valid (struct gdbarch
*gdbarch
, CORE_ADDR chain
, struct frame_info
*thisframe
)
2397 if (gdbarch
->frame_chain_valid
== 0)
2398 internal_error ("gdbarch: gdbarch_frame_chain_valid invalid");
2399 if (gdbarch_debug
>= 2)
2400 fprintf_unfiltered (gdb_stdlog
, "gdbarch_frame_chain_valid called\n");
2401 return gdbarch
->frame_chain_valid (chain
, thisframe
);
2405 set_gdbarch_frame_chain_valid (struct gdbarch
*gdbarch
,
2406 gdbarch_frame_chain_valid_ftype frame_chain_valid
)
2408 gdbarch
->frame_chain_valid
= frame_chain_valid
;
2412 gdbarch_frame_saved_pc (struct gdbarch
*gdbarch
, struct frame_info
*fi
)
2414 if (gdbarch
->frame_saved_pc
== 0)
2415 internal_error ("gdbarch: gdbarch_frame_saved_pc invalid");
2416 if (gdbarch_debug
>= 2)
2417 fprintf_unfiltered (gdb_stdlog
, "gdbarch_frame_saved_pc called\n");
2418 return gdbarch
->frame_saved_pc (fi
);
2422 set_gdbarch_frame_saved_pc (struct gdbarch
*gdbarch
,
2423 gdbarch_frame_saved_pc_ftype frame_saved_pc
)
2425 gdbarch
->frame_saved_pc
= frame_saved_pc
;
2429 gdbarch_frame_args_address (struct gdbarch
*gdbarch
, struct frame_info
*fi
)
2431 if (gdbarch
->frame_args_address
== 0)
2432 internal_error ("gdbarch: gdbarch_frame_args_address invalid");
2433 if (gdbarch_debug
>= 2)
2434 fprintf_unfiltered (gdb_stdlog
, "gdbarch_frame_args_address called\n");
2435 return gdbarch
->frame_args_address (fi
);
2439 set_gdbarch_frame_args_address (struct gdbarch
*gdbarch
,
2440 gdbarch_frame_args_address_ftype frame_args_address
)
2442 gdbarch
->frame_args_address
= frame_args_address
;
2446 gdbarch_frame_locals_address (struct gdbarch
*gdbarch
, struct frame_info
*fi
)
2448 if (gdbarch
->frame_locals_address
== 0)
2449 internal_error ("gdbarch: gdbarch_frame_locals_address invalid");
2450 if (gdbarch_debug
>= 2)
2451 fprintf_unfiltered (gdb_stdlog
, "gdbarch_frame_locals_address called\n");
2452 return gdbarch
->frame_locals_address (fi
);
2456 set_gdbarch_frame_locals_address (struct gdbarch
*gdbarch
,
2457 gdbarch_frame_locals_address_ftype frame_locals_address
)
2459 gdbarch
->frame_locals_address
= frame_locals_address
;
2463 gdbarch_saved_pc_after_call (struct gdbarch
*gdbarch
, struct frame_info
*frame
)
2465 if (gdbarch
->saved_pc_after_call
== 0)
2466 internal_error ("gdbarch: gdbarch_saved_pc_after_call invalid");
2467 if (gdbarch_debug
>= 2)
2468 fprintf_unfiltered (gdb_stdlog
, "gdbarch_saved_pc_after_call called\n");
2469 return gdbarch
->saved_pc_after_call (frame
);
2473 set_gdbarch_saved_pc_after_call (struct gdbarch
*gdbarch
,
2474 gdbarch_saved_pc_after_call_ftype saved_pc_after_call
)
2476 gdbarch
->saved_pc_after_call
= saved_pc_after_call
;
2480 gdbarch_frame_num_args (struct gdbarch
*gdbarch
, struct frame_info
*frame
)
2482 if (gdbarch
->frame_num_args
== 0)
2483 internal_error ("gdbarch: gdbarch_frame_num_args invalid");
2484 if (gdbarch_debug
>= 2)
2485 fprintf_unfiltered (gdb_stdlog
, "gdbarch_frame_num_args called\n");
2486 return gdbarch
->frame_num_args (frame
);
2490 set_gdbarch_frame_num_args (struct gdbarch
*gdbarch
,
2491 gdbarch_frame_num_args_ftype frame_num_args
)
2493 gdbarch
->frame_num_args
= frame_num_args
;
2497 gdbarch_stack_align_p (struct gdbarch
*gdbarch
)
2499 return gdbarch
->stack_align
!= 0;
2503 gdbarch_stack_align (struct gdbarch
*gdbarch
, CORE_ADDR sp
)
2505 if (gdbarch
->stack_align
== 0)
2506 internal_error ("gdbarch: gdbarch_stack_align invalid");
2507 if (gdbarch_debug
>= 2)
2508 fprintf_unfiltered (gdb_stdlog
, "gdbarch_stack_align called\n");
2509 return gdbarch
->stack_align (sp
);
2513 set_gdbarch_stack_align (struct gdbarch
*gdbarch
,
2514 gdbarch_stack_align_ftype stack_align
)
2516 gdbarch
->stack_align
= stack_align
;
2520 gdbarch_reg_struct_has_addr_p (struct gdbarch
*gdbarch
)
2522 return gdbarch
->reg_struct_has_addr
!= 0;
2526 gdbarch_reg_struct_has_addr (struct gdbarch
*gdbarch
, int gcc_p
, struct type
*type
)
2528 if (gdbarch
->reg_struct_has_addr
== 0)
2529 internal_error ("gdbarch: gdbarch_reg_struct_has_addr invalid");
2530 if (gdbarch_debug
>= 2)
2531 fprintf_unfiltered (gdb_stdlog
, "gdbarch_reg_struct_has_addr called\n");
2532 return gdbarch
->reg_struct_has_addr (gcc_p
, type
);
2536 set_gdbarch_reg_struct_has_addr (struct gdbarch
*gdbarch
,
2537 gdbarch_reg_struct_has_addr_ftype reg_struct_has_addr
)
2539 gdbarch
->reg_struct_has_addr
= reg_struct_has_addr
;
2543 /* Keep a registrary of per-architecture data-pointers required by GDB
2551 struct gdbarch_data_registration
2553 gdbarch_data_ftype
*init
;
2554 struct gdbarch_data
*data
;
2555 struct gdbarch_data_registration
*next
;
2558 struct gdbarch_data_registrary
2561 struct gdbarch_data_registration
*registrations
;
2564 struct gdbarch_data_registrary gdbarch_data_registrary
=
2569 struct gdbarch_data
*
2570 register_gdbarch_data (gdbarch_data_ftype
*init
)
2572 struct gdbarch_data_registration
**curr
;
2573 for (curr
= &gdbarch_data_registrary
.registrations
;
2575 curr
= &(*curr
)->next
);
2576 (*curr
) = XMALLOC (struct gdbarch_data_registration
);
2577 (*curr
)->next
= NULL
;
2578 (*curr
)->init
= init
;
2579 (*curr
)->data
= XMALLOC (struct gdbarch_data
);
2580 (*curr
)->data
->index
= gdbarch_data_registrary
.nr
++;
2581 return (*curr
)->data
;
2585 /* Walk through all the registered users initializing each in turn. */
2588 init_gdbarch_data (struct gdbarch
*gdbarch
)
2590 struct gdbarch_data_registration
*rego
;
2591 gdbarch
->nr_data
= gdbarch_data_registrary
.nr
+ 1;
2592 gdbarch
->data
= xmalloc (sizeof (void*) * gdbarch
->nr_data
);
2593 for (rego
= gdbarch_data_registrary
.registrations
;
2597 if (rego
->data
->index
< gdbarch
->nr_data
)
2598 gdbarch
->data
[rego
->data
->index
] = rego
->init ();
2603 /* Return the current value of the specified per-architecture
2608 struct gdbarch_data
*data
;
2610 if (data
->index
>= current_gdbarch
->nr_data
)
2611 internal_error ("gdbarch_data: request for non-existant data.");
2612 return current_gdbarch
->data
[data
->index
];
2617 /* Keep a registrary of swaped data required by GDB modules. */
2622 struct gdbarch_swap_registration
*source
;
2623 struct gdbarch_swap
*next
;
2626 struct gdbarch_swap_registration
2629 unsigned long sizeof_data
;
2630 gdbarch_swap_ftype
*init
;
2631 struct gdbarch_swap_registration
*next
;
2634 struct gdbarch_swap_registrary
2637 struct gdbarch_swap_registration
*registrations
;
2640 struct gdbarch_swap_registrary gdbarch_swap_registrary
=
2646 register_gdbarch_swap (void *data
,
2647 unsigned long sizeof_data
,
2648 gdbarch_swap_ftype
*init
)
2650 struct gdbarch_swap_registration
**rego
;
2651 for (rego
= &gdbarch_swap_registrary
.registrations
;
2653 rego
= &(*rego
)->next
);
2654 (*rego
) = XMALLOC (struct gdbarch_swap_registration
);
2655 (*rego
)->next
= NULL
;
2656 (*rego
)->init
= init
;
2657 (*rego
)->data
= data
;
2658 (*rego
)->sizeof_data
= sizeof_data
;
2663 init_gdbarch_swap (struct gdbarch
*gdbarch
)
2665 struct gdbarch_swap_registration
*rego
;
2666 struct gdbarch_swap
**curr
= &gdbarch
->swap
;
2667 for (rego
= gdbarch_swap_registrary
.registrations
;
2671 if (rego
->data
!= NULL
)
2673 (*curr
) = XMALLOC (struct gdbarch_swap
);
2674 (*curr
)->source
= rego
;
2675 (*curr
)->swap
= xmalloc (rego
->sizeof_data
);
2676 (*curr
)->next
= NULL
;
2677 memset (rego
->data
, 0, rego
->sizeof_data
);
2678 curr
= &(*curr
)->next
;
2680 if (rego
->init
!= NULL
)
2686 swapout_gdbarch_swap (struct gdbarch
*gdbarch
)
2688 struct gdbarch_swap
*curr
;
2689 for (curr
= gdbarch
->swap
;
2692 memcpy (curr
->swap
, curr
->source
->data
, curr
->source
->sizeof_data
);
2696 swapin_gdbarch_swap (struct gdbarch
*gdbarch
)
2698 struct gdbarch_swap
*curr
;
2699 for (curr
= gdbarch
->swap
;
2702 memcpy (curr
->source
->data
, curr
->swap
, curr
->source
->sizeof_data
);
2706 /* Keep a registrary of the architectures known by GDB. */
2708 struct gdbarch_init_registration
2710 enum bfd_architecture bfd_architecture
;
2711 gdbarch_init_ftype
*init
;
2712 struct gdbarch_list
*arches
;
2713 struct gdbarch_init_registration
*next
;
2716 static struct gdbarch_init_registration
*gdbarch_init_registrary
= NULL
;
2719 register_gdbarch_init (enum bfd_architecture bfd_architecture
,
2720 gdbarch_init_ftype
*init
)
2722 struct gdbarch_init_registration
**curr
;
2723 const struct bfd_arch_info
*bfd_arch_info
;
2724 /* Check that BFD reconizes this architecture */
2725 bfd_arch_info
= bfd_lookup_arch (bfd_architecture
, 0);
2726 if (bfd_arch_info
== NULL
)
2728 internal_error ("gdbarch: Attempt to register unknown architecture (%d)", bfd_architecture
);
2730 /* Check that we haven't seen this architecture before */
2731 for (curr
= &gdbarch_init_registrary
;
2733 curr
= &(*curr
)->next
)
2735 if (bfd_architecture
== (*curr
)->bfd_architecture
)
2736 internal_error ("gdbarch: Duplicate registraration of architecture (%s)",
2737 bfd_arch_info
->printable_name
);
2741 fprintf_unfiltered (gdb_stdlog
, "register_gdbarch_init (%s, 0x%08lx)\n",
2742 bfd_arch_info
->printable_name
,
2745 (*curr
) = XMALLOC (struct gdbarch_init_registration
);
2746 (*curr
)->bfd_architecture
= bfd_architecture
;
2747 (*curr
)->init
= init
;
2748 (*curr
)->arches
= NULL
;
2749 (*curr
)->next
= NULL
;
2754 /* Look for an architecture using gdbarch_info. Base search on only
2755 BFD_ARCH_INFO and BYTE_ORDER. */
2757 struct gdbarch_list
*
2758 gdbarch_list_lookup_by_info (struct gdbarch_list
*arches
,
2759 const struct gdbarch_info
*info
)
2761 for (; arches
!= NULL
; arches
= arches
->next
)
2763 if (info
->bfd_arch_info
!= arches
->gdbarch
->bfd_arch_info
)
2765 if (info
->byte_order
!= arches
->gdbarch
->byte_order
)
2773 /* Update the current architecture. Return ZERO if the update request
2777 gdbarch_update (struct gdbarch_info info
)
2779 struct gdbarch
*new_gdbarch
;
2780 struct gdbarch_list
**list
;
2781 struct gdbarch_init_registration
*rego
;
2783 /* Fill in any missing bits. Most important is the bfd_architecture
2784 which is used to select the target architecture. */
2785 if (info
.bfd_architecture
== bfd_arch_unknown
)
2787 if (info
.bfd_arch_info
!= NULL
)
2788 info
.bfd_architecture
= info
.bfd_arch_info
->arch
;
2789 else if (info
.abfd
!= NULL
)
2790 info
.bfd_architecture
= bfd_get_arch (info
.abfd
);
2791 /* FIXME - should query BFD for its default architecture. */
2793 info
.bfd_architecture
= current_gdbarch
->bfd_arch_info
->arch
;
2795 if (info
.bfd_arch_info
== NULL
)
2797 if (target_architecture_auto
&& info
.abfd
!= NULL
)
2798 info
.bfd_arch_info
= bfd_get_arch_info (info
.abfd
);
2800 info
.bfd_arch_info
= current_gdbarch
->bfd_arch_info
;
2802 if (info
.byte_order
== 0)
2804 if (target_byte_order_auto
&& info
.abfd
!= NULL
)
2805 info
.byte_order
= (bfd_big_endian (info
.abfd
) ? BIG_ENDIAN
2806 : bfd_little_endian (info
.abfd
) ? LITTLE_ENDIAN
2809 info
.byte_order
= current_gdbarch
->byte_order
;
2810 /* FIXME - should query BFD for its default byte-order. */
2812 /* A default for abfd? */
2814 /* Find the target that knows about this architecture. */
2815 for (rego
= gdbarch_init_registrary
;
2816 rego
!= NULL
&& rego
->bfd_architecture
!= info
.bfd_architecture
;
2821 fprintf_unfiltered (gdb_stdlog
, "gdbarch_update: No matching architecture\n");
2827 fprintf_unfiltered (gdb_stdlog
,
2828 "gdbarch_update: info.bfd_architecture %d (%s)\n",
2829 info
.bfd_architecture
,
2830 bfd_lookup_arch (info
.bfd_architecture
, 0)->printable_name
);
2831 fprintf_unfiltered (gdb_stdlog
,
2832 "gdbarch_update: info.bfd_arch_info %s\n",
2833 (info
.bfd_arch_info
!= NULL
2834 ? info
.bfd_arch_info
->printable_name
2836 fprintf_unfiltered (gdb_stdlog
,
2837 "gdbarch_update: info.byte_order %d (%s)\n",
2839 (info
.byte_order
== BIG_ENDIAN
? "big"
2840 : info
.byte_order
== LITTLE_ENDIAN
? "little"
2842 fprintf_unfiltered (gdb_stdlog
,
2843 "gdbarch_update: info.abfd 0x%lx\n",
2845 fprintf_unfiltered (gdb_stdlog
,
2846 "gdbarch_update: info.tdep_info 0x%lx\n",
2847 (long) info
.tdep_info
);
2850 /* Ask the target for a replacement architecture. */
2851 new_gdbarch
= rego
->init (info
, rego
->arches
);
2853 /* Did the target like it? No. Reject the change. */
2854 if (new_gdbarch
== NULL
)
2857 fprintf_unfiltered (gdb_stdlog
, "gdbarch_update: Target rejected architecture\n");
2861 /* Did the architecture change? No. Do nothing. */
2862 if (current_gdbarch
== new_gdbarch
)
2865 fprintf_unfiltered (gdb_stdlog
, "gdbarch_update: Architecture 0x%08lx (%s) unchanged\n",
2867 new_gdbarch
->bfd_arch_info
->printable_name
);
2871 /* Swap all data belonging to the old target out */
2872 swapout_gdbarch_swap (current_gdbarch
);
2874 /* Is this a pre-existing architecture? Yes. Swap it in. */
2875 for (list
= ®o
->arches
;
2877 list
= &(*list
)->next
)
2879 if ((*list
)->gdbarch
== new_gdbarch
)
2882 fprintf_unfiltered (gdb_stdlog
, "gdbarch_update: Previous architecture 0x%08lx (%s) selected\n",
2884 new_gdbarch
->bfd_arch_info
->printable_name
);
2885 current_gdbarch
= new_gdbarch
;
2886 swapin_gdbarch_swap (new_gdbarch
);
2891 /* Append this new architecture to this targets list. */
2892 (*list
) = XMALLOC (struct gdbarch_list
);
2893 (*list
)->next
= NULL
;
2894 (*list
)->gdbarch
= new_gdbarch
;
2896 /* Switch to this new architecture. Dump it out. */
2897 current_gdbarch
= new_gdbarch
;
2900 fprintf_unfiltered (gdb_stdlog
,
2901 "gdbarch_update: New architecture 0x%08lx (%s) selected\n",
2903 new_gdbarch
->bfd_arch_info
->printable_name
);
2907 /* Check that the newly installed architecture is valid. */
2908 verify_gdbarch (new_gdbarch
);
2910 /* Initialize the per-architecture memory (swap) areas.
2911 CURRENT_GDBARCH must be update before these modules are
2913 init_gdbarch_swap (new_gdbarch
);
2915 /* Initialize the per-architecture data-pointer of all parties that
2916 registered an interest in this architecture. CURRENT_GDBARCH
2917 must be updated before these modules are called. */
2918 init_gdbarch_data (new_gdbarch
);
2925 /* Functions to manipulate the endianness of the target. */
2927 #ifdef TARGET_BYTE_ORDER_SELECTABLE
2928 /* compat - Catch old targets that expect a selectable byte-order to
2929 default to BIG_ENDIAN */
2930 #ifndef TARGET_BYTE_ORDER_DEFAULT
2931 #define TARGET_BYTE_ORDER_DEFAULT BIG_ENDIAN
2934 #if !TARGET_BYTE_ORDER_SELECTABLE_P
2935 #ifndef TARGET_BYTE_ORDER_DEFAULT
2936 /* compat - Catch old non byte-order selectable targets that do not
2937 define TARGET_BYTE_ORDER_DEFAULT and instead expect
2938 TARGET_BYTE_ORDER to be used as the default. For targets that
2939 defined neither TARGET_BYTE_ORDER nor TARGET_BYTE_ORDER_DEFAULT the
2940 below will get a strange compiler warning. */
2941 #define TARGET_BYTE_ORDER_DEFAULT TARGET_BYTE_ORDER
2944 #ifndef TARGET_BYTE_ORDER_DEFAULT
2945 #define TARGET_BYTE_ORDER_DEFAULT BIG_ENDIAN /* arbitrary */
2947 int target_byte_order
= TARGET_BYTE_ORDER_DEFAULT
;
2948 int target_byte_order_auto
= 1;
2950 /* Chain containing the \"set endian\" commands. */
2951 static struct cmd_list_element
*endianlist
= NULL
;
2953 /* Called by ``show endian''. */
2955 show_endian (char *args
, int from_tty
)
2958 (TARGET_BYTE_ORDER_AUTO
2959 ? "The target endianness is set automatically (currently %s endian)\n"
2960 : "The target is assumed to be %s endian\n");
2961 printf_unfiltered (msg
, (TARGET_BYTE_ORDER
== BIG_ENDIAN
? "big" : "little"));
2964 /* Called if the user enters ``set endian'' without an argument. */
2966 set_endian (char *args
, int from_tty
)
2968 printf_unfiltered ("\"set endian\" must be followed by \"auto\", \"big\" or \"little\".\n");
2969 show_endian (args
, from_tty
);
2972 /* Called by ``set endian big''. */
2974 set_endian_big (char *args
, int from_tty
)
2976 if (TARGET_BYTE_ORDER_SELECTABLE_P
)
2978 target_byte_order
= BIG_ENDIAN
;
2979 target_byte_order_auto
= 0;
2982 struct gdbarch_info info
;
2983 memset (&info
, 0, sizeof info
);
2984 info
.byte_order
= BIG_ENDIAN
;
2985 gdbarch_update (info
);
2990 printf_unfiltered ("Byte order is not selectable.");
2991 show_endian (args
, from_tty
);
2995 /* Called by ``set endian little''. */
2997 set_endian_little (char *args
, int from_tty
)
2999 if (TARGET_BYTE_ORDER_SELECTABLE_P
)
3001 target_byte_order
= LITTLE_ENDIAN
;
3002 target_byte_order_auto
= 0;
3005 struct gdbarch_info info
;
3006 memset (&info
, 0, sizeof info
);
3007 info
.byte_order
= LITTLE_ENDIAN
;
3008 gdbarch_update (info
);
3013 printf_unfiltered ("Byte order is not selectable.");
3014 show_endian (args
, from_tty
);
3018 /* Called by ``set endian auto''. */
3020 set_endian_auto (char *args
, int from_tty
)
3022 if (TARGET_BYTE_ORDER_SELECTABLE_P
)
3024 target_byte_order_auto
= 1;
3028 printf_unfiltered ("Byte order is not selectable.");
3029 show_endian (args
, from_tty
);
3033 /* Set the endianness from a BFD. */
3035 set_endian_from_file (bfd
*abfd
)
3037 if (TARGET_BYTE_ORDER_SELECTABLE_P
)
3041 if (bfd_big_endian (abfd
))
3044 want
= LITTLE_ENDIAN
;
3045 if (TARGET_BYTE_ORDER_AUTO
)
3046 target_byte_order
= want
;
3047 else if (TARGET_BYTE_ORDER
!= want
)
3048 warning ("%s endian file does not match %s endian target.",
3049 want
== BIG_ENDIAN
? "big" : "little",
3050 TARGET_BYTE_ORDER
== BIG_ENDIAN
? "big" : "little");
3054 if (bfd_big_endian (abfd
)
3055 ? TARGET_BYTE_ORDER
!= BIG_ENDIAN
3056 : TARGET_BYTE_ORDER
== BIG_ENDIAN
)
3057 warning ("%s endian file does not match %s endian target.",
3058 bfd_big_endian (abfd
) ? "big" : "little",
3059 TARGET_BYTE_ORDER
== BIG_ENDIAN
? "big" : "little");
3065 /* Functions to manipulate the architecture of the target */
3067 enum set_arch
{ set_arch_auto
, set_arch_manual
};
3069 int target_architecture_auto
= 1;
3070 extern const struct bfd_arch_info bfd_default_arch_struct
;
3071 const struct bfd_arch_info
*target_architecture
= &bfd_default_arch_struct
;
3072 int (*target_architecture_hook
) (const struct bfd_arch_info
*ap
);
3074 static void show_endian (char *, int);
3075 static void set_endian (char *, int);
3076 static void set_endian_big (char *, int);
3077 static void set_endian_little (char *, int);
3078 static void set_endian_auto (char *, int);
3079 static void set_endian_from_file (bfd
*);
3080 static int arch_ok (const struct bfd_arch_info
*arch
);
3081 static void set_arch (const struct bfd_arch_info
*arch
, enum set_arch type
);
3082 static void show_architecture (char *, int);
3083 static void set_architecture (char *, int);
3084 static void info_architecture (char *, int);
3085 static void set_architecture_from_file (bfd
*);
3087 /* Do the real work of changing the current architecture */
3090 arch_ok (const struct bfd_arch_info
*arch
)
3092 /* Should be performing the more basic check that the binary is
3093 compatible with GDB. */
3094 /* Check with the target that the architecture is valid. */
3095 return (target_architecture_hook
== NULL
3096 || target_architecture_hook (arch
));
3100 set_arch (const struct bfd_arch_info
*arch
,
3106 if (!arch_ok (arch
))
3107 warning ("Target may not support %s architecture",
3108 arch
->printable_name
);
3109 target_architecture
= arch
;
3111 case set_arch_manual
:
3112 if (!arch_ok (arch
))
3114 printf_unfiltered ("Target does not support `%s' architecture.\n",
3115 arch
->printable_name
);
3119 target_architecture_auto
= 0;
3120 target_architecture
= arch
;
3128 /* Called if the user enters ``show architecture'' without an argument. */
3130 show_architecture (char *args
, int from_tty
)
3133 arch
= TARGET_ARCHITECTURE
->printable_name
;
3134 if (target_architecture_auto
)
3135 printf_filtered ("The target architecture is set automatically (currently %s)\n", arch
);
3137 printf_filtered ("The target architecture is assumed to be %s\n", arch
);
3140 /* Called if the user enters ``set architecture'' with or without an
3143 set_architecture (char *args
, int from_tty
)
3147 printf_unfiltered ("\"set architecture\" must be followed by \"auto\" or an architecture name.\n");
3149 else if (strcmp (args
, "auto") == 0)
3151 target_architecture_auto
= 1;
3153 else if (GDB_MULTI_ARCH
)
3155 const struct bfd_arch_info
*arch
= bfd_scan_arch (args
);
3157 printf_unfiltered ("Architecture `%s' not reconized.\n", args
);
3160 struct gdbarch_info info
;
3161 memset (&info
, 0, sizeof info
);
3162 info
.bfd_arch_info
= arch
;
3163 if (gdbarch_update (info
))
3164 target_architecture_auto
= 0;
3166 printf_unfiltered ("Architecture `%s' not reconized.\n", args
);
3171 const struct bfd_arch_info
*arch
= bfd_scan_arch (args
);
3173 set_arch (arch
, set_arch_manual
);
3175 printf_unfiltered ("Architecture `%s' not reconized.\n", args
);
3179 /* Called if the user enters ``info architecture'' without an argument. */
3181 info_architecture (char *args
, int from_tty
)
3183 enum bfd_architecture a
;
3186 if (gdbarch_init_registrary
!= NULL
)
3188 struct gdbarch_init_registration
*rego
;
3189 printf_filtered ("Available architectures are:\n");
3190 for (rego
= gdbarch_init_registrary
;
3194 const struct bfd_arch_info
*ap
;
3195 ap
= bfd_lookup_arch (rego
->bfd_architecture
, 0);
3200 printf_filtered (" %s", ap
->printable_name
);
3204 printf_filtered ("\n");
3210 printf_filtered ("There are no available architectures.\n");
3214 printf_filtered ("Available architectures are:\n");
3215 for (a
= bfd_arch_obscure
+ 1; a
< bfd_arch_last
; a
++)
3217 const struct bfd_arch_info
*ap
= bfd_lookup_arch (a
, 0);
3222 printf_filtered (" %s", ap
->printable_name
);
3226 printf_filtered ("\n");
3231 /* Set the architecture from arch/machine */
3233 set_architecture_from_arch_mach (arch
, mach
)
3234 enum bfd_architecture arch
;
3237 const struct bfd_arch_info
*wanted
= bfd_lookup_arch (arch
, mach
);
3239 set_arch (wanted
, set_arch_manual
);
3241 internal_error ("gdbarch: hardwired architecture/machine not reconized");
3244 /* Set the architecture from a BFD */
3246 set_architecture_from_file (bfd
*abfd
)
3248 const struct bfd_arch_info
*wanted
= bfd_get_arch_info (abfd
);
3249 if (target_architecture_auto
)
3251 set_arch (wanted
, set_arch_auto
);
3253 else if (wanted
!= target_architecture
)
3255 warning ("%s architecture file may be incompatible with %s target.",
3256 wanted
->printable_name
,
3257 target_architecture
->printable_name
);
3262 /* Misc helper functions for targets. */
3265 frame_num_args_unknown (fi
)
3266 struct frame_info
*fi
;
3273 generic_register_convertible_not (num
)
3282 /* Pointer to the target-dependent disassembly function. */
3283 int (*tm_print_insn
) (bfd_vma
, disassemble_info
*);
3284 disassemble_info tm_print_insn_info
;
3288 /* Set the dynamic target-system-dependant parameters (architecture,
3289 byte-order) using information found in the BFD */
3292 set_gdbarch_from_file (abfd
)
3297 struct gdbarch_info info
;
3298 memset (&info
, 0, sizeof info
);
3300 gdbarch_update (info
);
3303 set_architecture_from_file (abfd
);
3304 set_endian_from_file (abfd
);
3308 /* Initialize the current architecture. */
3310 initialize_current_architecture ()
3314 struct gdbarch_init_registration
*rego
;
3315 const struct bfd_arch_info
*chosen
= NULL
;
3316 for (rego
= gdbarch_init_registrary
; rego
!= NULL
; rego
= rego
->next
)
3318 const struct bfd_arch_info
*ap
3319 = bfd_lookup_arch (rego
->bfd_architecture
, 0);
3321 /* Choose the first architecture alphabetically. */
3323 || strcmp (ap
->printable_name
, chosen
->printable_name
) < 0)
3329 struct gdbarch_info info
;
3330 memset (&info
, 0, sizeof info
);
3331 info
.bfd_arch_info
= chosen
;
3332 gdbarch_update (info
);
3337 extern void _initialize_gdbarch (void);
3339 _initialize_gdbarch ()
3341 struct cmd_list_element
*c
;
3343 add_prefix_cmd ("endian", class_support
, set_endian
,
3344 "Set endianness of target.",
3345 &endianlist
, "set endian ", 0, &setlist
);
3346 add_cmd ("big", class_support
, set_endian_big
,
3347 "Set target as being big endian.", &endianlist
);
3348 add_cmd ("little", class_support
, set_endian_little
,
3349 "Set target as being little endian.", &endianlist
);
3350 add_cmd ("auto", class_support
, set_endian_auto
,
3351 "Select target endianness automatically.", &endianlist
);
3352 add_cmd ("endian", class_support
, show_endian
,
3353 "Show endianness of target.", &showlist
);
3355 add_cmd ("architecture", class_support
, set_architecture
,
3356 "Set architecture of target.", &setlist
);
3357 add_alias_cmd ("processor", "architecture", class_support
, 1, &setlist
);
3358 add_cmd ("architecture", class_support
, show_architecture
,
3359 "Show architecture of target.", &showlist
);
3360 add_cmd ("architecture", class_support
, info_architecture
,
3361 "List supported target architectures", &infolist
);
3363 INIT_DISASSEMBLE_INFO_NO_ARCH (tm_print_insn_info
, gdb_stdout
, (fprintf_ftype
)fprintf_filtered
);
3364 tm_print_insn_info
.flavour
= bfd_target_unknown_flavour
;
3365 tm_print_insn_info
.read_memory_func
= dis_asm_read_memory
;
3366 tm_print_insn_info
.memory_error_func
= dis_asm_memory_error
;
3367 tm_print_insn_info
.print_address_func
= dis_asm_print_address
;
3369 add_show_from_set (add_set_cmd ("arch",
3372 (char *)&gdbarch_debug
,
3373 "Set architecture debugging.\n\
3374 When non-zero, architecture debugging is enabled.", &setdebuglist
),
3376 c
= add_set_cmd ("archdebug",
3379 (char *)&gdbarch_debug
,
3380 "Set architecture debugging.\n\
3381 When non-zero, architecture debugging is enabled.", &setlist
);
3383 deprecate_cmd (c
, "set debug arch");
3384 deprecate_cmd (add_show_from_set (c
, &showlist
), "show debug arch");