* gdbarch.sh: Add field ``postdefault''. Rename fields

``startup'' and ``default'' to ``staticdefault'' and
``predefault''.  Fix initialization of valid_p.  Create/compare
gdbarch.log.
This commit is contained in:
Andrew Cagney 2000-05-30 01:29:26 +00:00
parent 0a415da9b7
commit 0b8f9e4d9d
2 changed files with 136 additions and 90 deletions

View File

@ -1,3 +1,10 @@
Tue May 30 11:22:28 2000 Andrew Cagney <cagney@b1.cygnus.com>
* gdbarch.sh: Add field ``postdefault''. Rename fields
``startup'' and ``default'' to ``staticdefault'' and
``predefault''. Fix initialization of valid_p. Create/compare
gdbarch.log.
Mon May 29 22:47:16 2000 Andrew Cagney <cagney@b1.cygnus.com> Mon May 29 22:47:16 2000 Andrew Cagney <cagney@b1.cygnus.com>
* config/sparc/nm-sun4sol2.h (GDB_GREGSET_T, GDB_FPREGSET_T): * config/sparc/nm-sun4sol2.h (GDB_GREGSET_T, GDB_FPREGSET_T):

View File

@ -38,11 +38,11 @@ compare_new ()
# multi-arch is not enabled. # multi-arch is not enabled.
default_is_fallback_p () default_is_fallback_p ()
{ {
[ "${default}" != "" -a "${invalid_p}" = "0" ] [ "${predefault}" != "" -a "${invalid_p}" = "0" ]
} }
# Format of the input table # Format of the input table
read="class level macro returntype function formal actual attrib startup default invalid_p fmt print print_p description" read="class level macro returntype function formal actual attrib staticdefault predefault postdefault invalid_p fmt print print_p description"
class_is_variable_p () class_is_variable_p ()
{ {
@ -69,18 +69,24 @@ do_read ()
{ {
if eval read $read if eval read $read
then then
test "${startup}" || startup=0 test "${staticdefault}" || staticdefault=0
test "${fmt}" || fmt="%ld" test "${fmt}" || fmt="%ld"
test "${print}" || print="(long) ${macro}" test "${print}" || print="(long) ${macro}"
#FIXME: #FIXME:
#Should set DEFAULT to zero and force the user to provide #Should set PREDEFAULT to zero and force the user to provide
#an invalid_p=0 #an invalid_p=0
#test "${default}" || default=0 - NO #test "${predefault}" || predefault=0 - NO
case "${invalid_p}" in case "${invalid_p}" in
0 ) valid_p=1 ;; 0 ) valid_p=1 ;;
"" ) test "${default}" && valid_p="gdbarch->${function} != ${default}" "" )
if [ "${predefault}" ]
then
valid_p="gdbarch->${function} != ${predefault}"
else
valid_p="gdbarch->${function} != 0"
fi
#NOT_YET #NOT_YET
#test "${default}" && invalid_p="gdbarch->${function} == ${default}" #test "${predefault}" && invalid_p="gdbarch->${function} == ${predefault}"
;; ;;
* ) valid_p="!(${invalid_p})" * ) valid_p="!(${invalid_p})"
esac esac
@ -149,32 +155,61 @@ do
# Any GCC attributes that should be attached to the function # Any GCC attributes that should be attached to the function
# declaration. At present this field is unused. # declaration. At present this field is unused.
startup ) : ;; staticdefault ) : ;;
# To help with the GDB startup a static gdbarch object is # To help with the GDB startup a static gdbarch object is
# created. STARTUP is the value to insert into that static # created. STATICDEFAULT is the value to insert into that
# gdbarch object. # static gdbarch object. Since this a static object only
# simple expressions can be used.
# By default ``0'' is used. # If STATICDEFAULT is empty, zero is used.
default ) : ;; predefault ) : ;;
# Any initial value to assign to a new gdbarch object after it # A initial value to assign to MEMBER of the freshly
# as been malloc()ed. Zero is used by default. # malloc()ed gdbarch object. After the gdbarch object has
# been initialized using PREDEFAULT, it is passed to the
# target code for further updates.
# Specify a non-empty DEFAULT and a zero INVALID_P to create a # If PREDEFAULT is empty, zero is used.
# Specify a non-empty PREDEFAULT and a zero INVALID_P to
# create a fallback value or function for when multi-arch is
# disabled. Specify a zero PREDEFAULT function to make that
# fallback call internal_error().
postdefault ) : ;;
# A value to assign to MEMBER of the new gdbarch object should
# the target code fail to change the PREDEFAULT value.
# If POSTDEFAULT is empty, no post update is performed.
# If both INVALID_P and POSTDEFAULT are non-empty then
# INVALID_P will be used to determine if MEMBER should be
# changed to POSTDEFAULT.
# FIXME: NOT YET. Can this be simplified? Specify a
# non-empty POSTDEFAULT and a zero INVALID_P to create a
# fallback value or function for when multi-arch is disabled. # fallback value or function for when multi-arch is disabled.
# Specify a zero DEFAULT function to make that fallback # Specify a zero POSTDEFAULT function to make that fallback
# illegal to call. # call internal_error(). This overrides PREDEFAULT.
invalid_p ) : ;; invalid_p ) : ;;
# A predicate equation that validates MEMBER. Non-zero is # A predicate equation that validates MEMBER. Non-zero is
# returned if the code creating the new architecture failed to # returned if the code creating the new architecture failed to
# initialize the MEMBER or initialized the member to something # initialize MEMBER or the initialized the member is invalid.
# invalid. By default, a check that the value is no longer # If POSTDEFAULT is non-empty then MEMBER will be updated to
# equal to DEFAULT is performed. The equation ``0'' disables # that value. If POSTDEFAULT is empty then internal_error()
# the invalid_p check. # is called.
# If INVALID_P is empty, a check that MEMBER is no longer
# equal to PREDEFAULT is used.
# The expression ``0'' disables the INVALID_P check.
# See also PREDEFAULT and POSTDEFAULT.
fmt ) : ;; fmt ) : ;;
@ -182,14 +217,14 @@ do
# MEMBER. Sometimes "%s" is useful. For functions, this is # MEMBER. Sometimes "%s" is useful. For functions, this is
# ignored and the function address is printed. # ignored and the function address is printed.
# By default ```%ld'' is used. # If FMT is empty, ``%ld'' is used.
print ) : ;; print ) : ;;
# An optional equation that casts MEMBER to a value suitable # An optional equation that casts MEMBER to a value suitable
# for formatting by FMT. # for formatting by FMT.
# By default ``(long)'' is used. # If PRINT is empty, ``(long)'' is used.
print_p ) : ;; print_p ) : ;;
@ -199,6 +234,8 @@ do
# exp -> Wrap print up in ``if (${print_p}) ... # exp -> Wrap print up in ``if (${print_p}) ...
# ``'' -> No predicate # ``'' -> No predicate
# If PRINT_P is empty, ``1'' is always used.
description ) : ;; description ) : ;;
# Currently unused. # Currently unused.
@ -213,11 +250,11 @@ function_list ()
{ {
# See below (DOCO) for description of each field # See below (DOCO) for description of each field
cat <<EOF | cat <<EOF |
i:2:TARGET_ARCHITECTURE:const struct bfd_arch_info *:bfd_arch_info::::&bfd_default_arch_struct:::%s:TARGET_ARCHITECTURE->printable_name:TARGET_ARCHITECTURE != NULL i:2:TARGET_ARCHITECTURE:const struct bfd_arch_info *:bfd_arch_info::::&bfd_default_arch_struct::::%s:TARGET_ARCHITECTURE->printable_name:TARGET_ARCHITECTURE != NULL
# #
i:2:TARGET_BYTE_ORDER:int:byte_order::::BIG_ENDIAN i:2:TARGET_BYTE_ORDER:int:byte_order::::BIG_ENDIAN
# #
v:1:TARGET_BFD_VMA_BIT:int:bfd_vma_bit::::8 * sizeof (void*):TARGET_ARCHITECTURE->bits_per_address:0 v:1:TARGET_BFD_VMA_BIT:int:bfd_vma_bit::::8 * sizeof (void*):TARGET_ARCHITECTURE->bits_per_address::0
v:1:TARGET_PTR_BIT:int:ptr_bit::::8 * sizeof (void*):0 v:1:TARGET_PTR_BIT:int:ptr_bit::::8 * sizeof (void*):0
#v:1:TARGET_CHAR_BIT:int:char_bit::::8 * sizeof (char):0 #v:1:TARGET_CHAR_BIT:int:char_bit::::8 * sizeof (char):0
v:1:TARGET_SHORT_BIT:int:short_bit::::8 * sizeof (short):0 v:1:TARGET_SHORT_BIT:int:short_bit::::8 * sizeof (short):0
@ -227,7 +264,7 @@ v:1:TARGET_LONG_LONG_BIT:int:long_long_bit::::8 * sizeof (LONGEST):0
v:1:TARGET_FLOAT_BIT:int:float_bit::::8 * sizeof (float):0 v:1:TARGET_FLOAT_BIT:int:float_bit::::8 * sizeof (float):0
v:1:TARGET_DOUBLE_BIT:int:double_bit::::8 * sizeof (double):0 v:1:TARGET_DOUBLE_BIT:int:double_bit::::8 * sizeof (double):0
v:1:TARGET_LONG_DOUBLE_BIT:int:long_double_bit::::8 * sizeof (long double):0 v:1:TARGET_LONG_DOUBLE_BIT:int:long_double_bit::::8 * sizeof (long double):0
v:1:IEEE_FLOAT:int:ieee_float::::0:0:0::: v:1:IEEE_FLOAT:int:ieee_float::::0:0::0:::
# #
f:1:TARGET_READ_PC:CORE_ADDR:read_pc:int pid:pid::0:0 f:1:TARGET_READ_PC:CORE_ADDR:read_pc:int pid:pid::0:0
f:1:TARGET_WRITE_PC:void:write_pc:CORE_ADDR val, int pid:val, pid::0:0 f:1:TARGET_WRITE_PC:void:write_pc:CORE_ADDR val, int pid:val, pid::0:0
@ -240,10 +277,10 @@ v:2:NUM_REGS:int:num_regs::::0:-1
v:2:SP_REGNUM:int:sp_regnum::::0:-1 v:2:SP_REGNUM:int:sp_regnum::::0:-1
v:2:FP_REGNUM:int:fp_regnum::::0:-1 v:2:FP_REGNUM:int:fp_regnum::::0:-1
v:2:PC_REGNUM:int:pc_regnum::::0:-1 v:2:PC_REGNUM:int:pc_regnum::::0:-1
v:2:FP0_REGNUM:int:fp0_regnum::::0:-1:0 v:2:FP0_REGNUM:int:fp0_regnum::::0:-1::0
v:2:NPC_REGNUM:int:npc_regnum::::0:-1:0 v:2:NPC_REGNUM:int:npc_regnum::::0:-1::0
v:2:NNPC_REGNUM:int:nnpc_regnum::::0:-1:0 v:2:NNPC_REGNUM:int:nnpc_regnum::::0:-1::0
f:2:REGISTER_NAME:char *:register_name:int regnr:regnr:::legacy_register_name:0 f:2:REGISTER_NAME:char *:register_name:int regnr:regnr:::legacy_register_name::0
v:2:REGISTER_SIZE:int:register_size::::0:-1 v:2:REGISTER_SIZE:int:register_size::::0:-1
v:2:REGISTER_BYTES:int:register_bytes::::0:-1 v:2:REGISTER_BYTES:int:register_bytes::::0:-1
f:2:REGISTER_BYTE:int:register_byte:int reg_nr:reg_nr::0:0 f:2:REGISTER_BYTE:int:register_byte:int reg_nr:reg_nr::0:0
@ -255,32 +292,32 @@ f:2:REGISTER_VIRTUAL_TYPE:struct type *:register_virtual_type:int reg_nr:reg_nr:
# #
v:1:USE_GENERIC_DUMMY_FRAMES:int:use_generic_dummy_frames::::0:-1 v:1:USE_GENERIC_DUMMY_FRAMES:int:use_generic_dummy_frames::::0:-1
v:2:CALL_DUMMY_LOCATION:int:call_dummy_location::::0:0 v:2:CALL_DUMMY_LOCATION:int:call_dummy_location::::0:0
f:2:CALL_DUMMY_ADDRESS:CORE_ADDR:call_dummy_address:void:::0:0:gdbarch->call_dummy_location == AT_ENTRY_POINT && gdbarch->call_dummy_address == 0: f:2:CALL_DUMMY_ADDRESS:CORE_ADDR:call_dummy_address:void:::0:0::gdbarch->call_dummy_location == AT_ENTRY_POINT && gdbarch->call_dummy_address == 0
v:2:CALL_DUMMY_START_OFFSET:CORE_ADDR:call_dummy_start_offset::::0:-1::0x%08lx v:2:CALL_DUMMY_START_OFFSET:CORE_ADDR:call_dummy_start_offset::::0:-1:::0x%08lx
v:2:CALL_DUMMY_BREAKPOINT_OFFSET:CORE_ADDR:call_dummy_breakpoint_offset::::0:-1::0x%08lx v:2:CALL_DUMMY_BREAKPOINT_OFFSET:CORE_ADDR:call_dummy_breakpoint_offset::::0:-1:::0x%08lx
v:1:CALL_DUMMY_BREAKPOINT_OFFSET_P:int:call_dummy_breakpoint_offset_p::::0:-1 v:1:CALL_DUMMY_BREAKPOINT_OFFSET_P:int:call_dummy_breakpoint_offset_p::::0:-1
v:2:CALL_DUMMY_LENGTH:int:call_dummy_length::::0:-1::::CALL_DUMMY_LOCATION == BEFORE_TEXT_END || CALL_DUMMY_LOCATION == AFTER_TEXT_END v:2:CALL_DUMMY_LENGTH:int:call_dummy_length::::0:-1:::::CALL_DUMMY_LOCATION == BEFORE_TEXT_END || CALL_DUMMY_LOCATION == AFTER_TEXT_END
f:2:PC_IN_CALL_DUMMY:int:pc_in_call_dummy:CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address:pc, sp, frame_address::0:0 f:2:PC_IN_CALL_DUMMY:int:pc_in_call_dummy:CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address:pc, sp, frame_address::0:0
v:1:CALL_DUMMY_P:int:call_dummy_p::::0:-1 v:1:CALL_DUMMY_P:int:call_dummy_p::::0:-1
v:2:CALL_DUMMY_WORDS:LONGEST *:call_dummy_words::::0:legacy_call_dummy_words:0:0x%08lx v:2:CALL_DUMMY_WORDS:LONGEST *:call_dummy_words::::0:legacy_call_dummy_words::0:0x%08lx
v:2:SIZEOF_CALL_DUMMY_WORDS:int:sizeof_call_dummy_words::::0:legacy_sizeof_call_dummy_words:0:0x%08lx v:2:SIZEOF_CALL_DUMMY_WORDS:int:sizeof_call_dummy_words::::0:legacy_sizeof_call_dummy_words::0:0x%08lx
v:1:CALL_DUMMY_STACK_ADJUST_P:int:call_dummy_stack_adjust_p::::0:-1::0x%08lx v:1:CALL_DUMMY_STACK_ADJUST_P:int:call_dummy_stack_adjust_p::::0:-1:::0x%08lx
v:2:CALL_DUMMY_STACK_ADJUST:int:call_dummy_stack_adjust::::0::gdbarch->call_dummy_stack_adjust_p && gdbarch->call_dummy_stack_adjust == 0:0x%08lx::CALL_DUMMY_STACK_ADJUST_P v:2:CALL_DUMMY_STACK_ADJUST:int:call_dummy_stack_adjust::::0:::gdbarch->call_dummy_stack_adjust_p && gdbarch->call_dummy_stack_adjust == 0:0x%08lx::CALL_DUMMY_STACK_ADJUST_P
f:2:FIX_CALL_DUMMY:void:fix_call_dummy:char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs, struct value **args, struct type *type, int gcc_p:dummy, pc, fun, nargs, args, type, gcc_p::0:0 f:2:FIX_CALL_DUMMY:void:fix_call_dummy:char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs, struct value **args, struct type *type, int gcc_p:dummy, pc, fun, nargs, args, type, gcc_p:::0
# #
v:2:BELIEVE_PCC_PROMOTION:int:believe_pcc_promotion::::0::::: v:2:BELIEVE_PCC_PROMOTION:int:believe_pcc_promotion::::0:::::
v:2:BELIEVE_PCC_PROMOTION_TYPE:int:believe_pcc_promotion_type::::0::::: v:2:BELIEVE_PCC_PROMOTION_TYPE:int:believe_pcc_promotion_type::::0:::::
f:2:COERCE_FLOAT_TO_DOUBLE:int:coerce_float_to_double:struct type *formal, struct type *actual:formal, actual:::default_coerce_float_to_double:0 f:2:COERCE_FLOAT_TO_DOUBLE:int:coerce_float_to_double:struct type *formal, struct type *actual:formal, actual:::default_coerce_float_to_double::0
f:1:GET_SAVED_REGISTER:void:get_saved_register:char *raw_buffer, int *optimized, CORE_ADDR *addrp, struct frame_info *frame, int regnum, enum lval_type *lval:raw_buffer, optimized, addrp, frame, regnum, lval::generic_get_saved_register:0 f:1:GET_SAVED_REGISTER:void:get_saved_register:char *raw_buffer, int *optimized, CORE_ADDR *addrp, struct frame_info *frame, int regnum, enum lval_type *lval:raw_buffer, optimized, addrp, frame, regnum, lval::generic_get_saved_register:0
# #
f:1:REGISTER_CONVERTIBLE:int:register_convertible:int nr:nr:::generic_register_convertible_not:0 f:1:REGISTER_CONVERTIBLE:int:register_convertible:int nr:nr:::generic_register_convertible_not::0
f:2:REGISTER_CONVERT_TO_VIRTUAL:void:register_convert_to_virtual:int regnum, struct type *type, char *from, char *to:regnum, type, from, to:::0:0 f:2:REGISTER_CONVERT_TO_VIRTUAL:void:register_convert_to_virtual:int regnum, struct type *type, char *from, char *to:regnum, type, from, to:::0::0
f:2:REGISTER_CONVERT_TO_RAW:void:register_convert_to_raw:struct type *type, int regnum, char *from, char *to:type, regnum, from, to:::0:0 f:2:REGISTER_CONVERT_TO_RAW:void:register_convert_to_raw:struct type *type, int regnum, char *from, char *to:type, regnum, from, to:::0::0
# #
f:2:POINTER_TO_ADDRESS:CORE_ADDR:pointer_to_address:struct type *type, char *buf:type, buf:::generic_pointer_to_address:0 f:2:POINTER_TO_ADDRESS:CORE_ADDR:pointer_to_address:struct type *type, char *buf:type, buf:::generic_pointer_to_address::0
f:2:ADDRESS_TO_POINTER:void:address_to_pointer:struct type *type, char *buf, CORE_ADDR addr:type, buf, addr:::generic_address_to_pointer:0 f:2:ADDRESS_TO_POINTER:void:address_to_pointer:struct type *type, char *buf, CORE_ADDR addr:type, buf, addr:::generic_address_to_pointer::0
# #
f:2:RETURN_VALUE_ON_STACK:int:return_value_on_stack:struct type *type:type:::generic_return_value_on_stack_not:0 f:2:RETURN_VALUE_ON_STACK:int:return_value_on_stack:struct type *type:type:::generic_return_value_on_stack_not::0
f:2:EXTRACT_RETURN_VALUE:void:extract_return_value:struct type *type, char *regbuf, char *valbuf:type, regbuf, valbuf::0:0 f:2:EXTRACT_RETURN_VALUE:void:extract_return_value:struct type *type, char *regbuf, char *valbuf:type, regbuf, valbuf::0:0
f:1:PUSH_ARGUMENTS:CORE_ADDR:push_arguments:int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr:nargs, args, sp, struct_return, struct_addr::0:0 f:1:PUSH_ARGUMENTS:CORE_ADDR:push_arguments:int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr:nargs, args, sp, struct_return, struct_addr::0:0
f:2:PUSH_DUMMY_FRAME:void:push_dummy_frame:void:-:::0 f:2:PUSH_DUMMY_FRAME:void:push_dummy_frame:void:-:::0
@ -288,12 +325,12 @@ f:1:PUSH_RETURN_ADDRESS:CORE_ADDR:push_return_address:CORE_ADDR pc, CORE_ADDR sp
f:2:POP_FRAME:void:pop_frame:void:-:::0 f:2:POP_FRAME:void:pop_frame:void:-:::0
# #
# I wish that these would just go away.... # I wish that these would just go away....
f:2:D10V_MAKE_DADDR:CORE_ADDR:d10v_make_daddr:CORE_ADDR x:x:::0:0 f:2:D10V_MAKE_DADDR:CORE_ADDR:d10v_make_daddr:CORE_ADDR x:x:::0::0
f:2:D10V_MAKE_IADDR:CORE_ADDR:d10v_make_iaddr:CORE_ADDR x:x:::0:0 f:2:D10V_MAKE_IADDR:CORE_ADDR:d10v_make_iaddr:CORE_ADDR x:x:::0::0
f:2:D10V_DADDR_P:int:d10v_daddr_p:CORE_ADDR x:x:::0:0 f:2:D10V_DADDR_P:int:d10v_daddr_p:CORE_ADDR x:x:::0::0
f:2:D10V_IADDR_P:int:d10v_iaddr_p:CORE_ADDR x:x:::0:0 f:2:D10V_IADDR_P:int:d10v_iaddr_p:CORE_ADDR x:x:::0::0
f:2:D10V_CONVERT_DADDR_TO_RAW:CORE_ADDR:d10v_convert_daddr_to_raw:CORE_ADDR x:x:::0:0 f:2:D10V_CONVERT_DADDR_TO_RAW:CORE_ADDR:d10v_convert_daddr_to_raw:CORE_ADDR x:x:::0::0
f:2:D10V_CONVERT_IADDR_TO_RAW:CORE_ADDR:d10v_convert_iaddr_to_raw:CORE_ADDR x:x:::0:0 f:2:D10V_CONVERT_IADDR_TO_RAW:CORE_ADDR:d10v_convert_iaddr_to_raw:CORE_ADDR x:x:::0::0
# #
f:2:STORE_STRUCT_RETURN:void:store_struct_return:CORE_ADDR addr, CORE_ADDR sp:addr, sp:::0 f:2:STORE_STRUCT_RETURN:void:store_struct_return:CORE_ADDR addr, CORE_ADDR sp:addr, sp:::0
f:2:STORE_RETURN_VALUE:void:store_return_value:struct type *type, char *valbuf:type, valbuf:::0 f:2:STORE_RETURN_VALUE:void:store_return_value:struct type *type, char *valbuf:type, valbuf:::0
@ -304,18 +341,18 @@ f:2:FRAME_INIT_SAVED_REGS:void:frame_init_saved_regs:struct frame_info *frame:fr
f:2:INIT_EXTRA_FRAME_INFO:void:init_extra_frame_info:int fromleaf, struct frame_info *frame:fromleaf, frame:::0 f:2:INIT_EXTRA_FRAME_INFO:void:init_extra_frame_info:int fromleaf, struct frame_info *frame:fromleaf, frame:::0
# #
f:2:SKIP_PROLOGUE:CORE_ADDR:skip_prologue:CORE_ADDR ip:ip::0:0 f:2:SKIP_PROLOGUE:CORE_ADDR:skip_prologue:CORE_ADDR ip:ip::0:0
f:2:PROLOGUE_FRAMELESS_P:int:prologue_frameless_p:CORE_ADDR ip:ip::0:generic_prologue_frameless_p:0 f:2:PROLOGUE_FRAMELESS_P:int:prologue_frameless_p:CORE_ADDR ip:ip::0:generic_prologue_frameless_p::0
f:2:INNER_THAN:int:inner_than:CORE_ADDR lhs, CORE_ADDR rhs:lhs, rhs::0:0 f:2:INNER_THAN:int:inner_than:CORE_ADDR lhs, CORE_ADDR rhs:lhs, rhs::0:0
f:2:BREAKPOINT_FROM_PC:unsigned char *:breakpoint_from_pc:CORE_ADDR *pcptr, int *lenptr:pcptr, lenptr:::legacy_breakpoint_from_pc:0 f:2:BREAKPOINT_FROM_PC:unsigned char *:breakpoint_from_pc:CORE_ADDR *pcptr, int *lenptr:pcptr, lenptr:::legacy_breakpoint_from_pc::0
f:2:MEMORY_INSERT_BREAKPOINT:int:memory_insert_breakpoint:CORE_ADDR addr, char *contents_cache:addr, contents_cache::0:default_memory_insert_breakpoint:0 f:2:MEMORY_INSERT_BREAKPOINT:int:memory_insert_breakpoint:CORE_ADDR addr, char *contents_cache:addr, contents_cache::0:default_memory_insert_breakpoint::0
f:2:MEMORY_REMOVE_BREAKPOINT:int:memory_remove_breakpoint:CORE_ADDR addr, char *contents_cache:addr, contents_cache::0:default_memory_remove_breakpoint:0 f:2:MEMORY_REMOVE_BREAKPOINT:int:memory_remove_breakpoint:CORE_ADDR addr, char *contents_cache:addr, contents_cache::0:default_memory_remove_breakpoint::0
v:2:DECR_PC_AFTER_BREAK:CORE_ADDR:decr_pc_after_break::::0:-1 v:2:DECR_PC_AFTER_BREAK:CORE_ADDR:decr_pc_after_break::::0:-1
v:2:FUNCTION_START_OFFSET:CORE_ADDR:function_start_offset::::0:-1 v:2:FUNCTION_START_OFFSET:CORE_ADDR:function_start_offset::::0:-1
# #
f:2:REMOTE_TRANSLATE_XFER_ADDRESS:void:remote_translate_xfer_address:CORE_ADDR gdb_addr, int gdb_len, CORE_ADDR *rem_addr, int *rem_len:gdb_addr, gdb_len, rem_addr, rem_len:::generic_remote_translate_xfer_address:0 f:2:REMOTE_TRANSLATE_XFER_ADDRESS:void:remote_translate_xfer_address:CORE_ADDR gdb_addr, int gdb_len, CORE_ADDR *rem_addr, int *rem_len:gdb_addr, gdb_len, rem_addr, rem_len:::generic_remote_translate_xfer_address::0
# #
v:2:FRAME_ARGS_SKIP:CORE_ADDR:frame_args_skip::::0:-1 v:2:FRAME_ARGS_SKIP:CORE_ADDR:frame_args_skip::::0:-1
f:2:FRAMELESS_FUNCTION_INVOCATION:int:frameless_function_invocation:struct frame_info *fi:fi:::generic_frameless_function_invocation_not:0 f:2:FRAMELESS_FUNCTION_INVOCATION:int:frameless_function_invocation:struct frame_info *fi:fi:::generic_frameless_function_invocation_not::0
f:2:FRAME_CHAIN:CORE_ADDR:frame_chain:struct frame_info *frame:frame::0:0 f:2:FRAME_CHAIN:CORE_ADDR:frame_chain:struct frame_info *frame:frame::0:0
f:1:FRAME_CHAIN_VALID:int:frame_chain_valid:CORE_ADDR chain, struct frame_info *thisframe:chain, thisframe::0:0 f:1:FRAME_CHAIN_VALID:int:frame_chain_valid:CORE_ADDR chain, struct frame_info *thisframe:chain, thisframe::0:0
f:2:FRAME_SAVED_PC:CORE_ADDR:frame_saved_pc:struct frame_info *fi:fi::0:0 f:2:FRAME_SAVED_PC:CORE_ADDR:frame_saved_pc:struct frame_info *fi:fi::0:0
@ -331,19 +368,19 @@ EOF
grep -v '^#' grep -v '^#'
} }
#
# dump it out # The .log file
if true #
then exec > new-gdbarch.log
exec > new-gdbarch
function_list | while do_read # eval read $read function_list | while do_read # eval read $read
do do
cat <<EOF cat <<EOF
${class} ${macro}(${actual}) ${class} ${macro}(${actual})
${returntype} ${function} ($formal)${attrib} ${returntype} ${function} ($formal)${attrib}
level=${level} level=${level}
startup=${startup} staticdefault=${staticdefault}
default=${default} predefault=${predefault}
postdefault=${predefault}
invalid_p=${invalid_p} invalid_p=${invalid_p}
valid_p=${valid_p} valid_p=${valid_p}
fmt=${fmt} fmt=${fmt}
@ -358,8 +395,10 @@ EOF
exit 1 exit 1
fi fi
done done
exec 1>&2 exec 1>&2
fi compare_new gdbarch.log
copyright () copyright ()
{ {
@ -493,7 +532,7 @@ do
echo "" echo ""
echo "/* Default (value) for non- multi-arch platforms. */" echo "/* Default (value) for non- multi-arch platforms. */"
echo "#if (GDB_MULTI_ARCH == 0) && !defined (${macro})" echo "#if (GDB_MULTI_ARCH == 0) && !defined (${macro})"
echo "#define ${macro} (${default})" echo "#define ${macro} (${predefault})"
echo "#endif" echo "#endif"
fi fi
echo "" echo ""
@ -512,11 +551,11 @@ do
echo "" echo ""
echo "/* Default (function) for non- multi-arch platforms. */" echo "/* Default (function) for non- multi-arch platforms. */"
echo "#if (GDB_MULTI_ARCH == 0) && !defined (${macro})" echo "#if (GDB_MULTI_ARCH == 0) && !defined (${macro})"
if [ "${default}" = "0" ] if [ "${predefault}" = "0" ]
then then
echo "#define ${macro}(${actual}) (internal_error (\"${macro}\"), 0)" echo "#define ${macro}(${actual}) (internal_error (\"${macro}\"), 0)"
else else
echo "#define ${macro}(${actual}) (${default} (${actual}))" echo "#define ${macro}(${actual}) (${predefault} (${actual}))"
fi fi
echo "#endif" echo "#endif"
fi fi
@ -983,7 +1022,7 @@ function_list | while do_read # eval read $read
do do
if class_is_info_p if class_is_info_p
then then
echo " ${startup}," echo " ${staticdefault},"
fi fi
done done
cat <<EOF cat <<EOF
@ -997,7 +1036,7 @@ function_list | while do_read # eval read $read
do do
if class_is_function_p || class_is_variable_p if class_is_function_p || class_is_variable_p
then then
echo " ${startup}," echo " ${staticdefault},"
fi fi
done done
cat <<EOF cat <<EOF
@ -1038,9 +1077,9 @@ function_list | while do_read # eval read $read
do do
if class_is_function_p || class_is_variable_p if class_is_function_p || class_is_variable_p
then then
if [ "${default}" != "" -a "${default}" != "0" ] if [ "${predefault}" != "" -a "${predefault}" != "0" ]
then then
echo " gdbarch->${function} = ${default};" echo " gdbarch->${function} = ${predefault};"
fi fi
fi fi
done done
@ -1102,10 +1141,10 @@ do
echo " if ((GDB_MULTI_ARCH >= ${level})" echo " if ((GDB_MULTI_ARCH >= ${level})"
echo " && (${invalid_p}))" echo " && (${invalid_p}))"
echo " internal_error (\"gdbarch: verify_gdbarch: ${function} invalid\");" echo " internal_error (\"gdbarch: verify_gdbarch: ${function} invalid\");"
elif [ "${default}" ] elif [ "${predefault}" ]
then then
echo " if ((GDB_MULTI_ARCH >= ${level})" echo " if ((GDB_MULTI_ARCH >= ${level})"
echo " && (gdbarch->${function} == ${default}))" echo " && (gdbarch->${function} == ${predefault}))"
echo " internal_error (\"gdbarch: verify_gdbarch: ${function} invalid\");" echo " internal_error (\"gdbarch: verify_gdbarch: ${function} invalid\");"
fi fi
fi fi
@ -1227,9 +1266,9 @@ do
then then
echo " if (${invalid_p})" echo " if (${invalid_p})"
echo " internal_error (\"gdbarch: gdbarch_${function} invalid\");" echo " internal_error (\"gdbarch: gdbarch_${function} invalid\");"
elif [ "${default}" ] elif [ "${predefault}" ]
then then
echo " if (gdbarch->${function} == ${default})" echo " if (gdbarch->${function} == ${predefault})"
echo " internal_error (\"gdbarch: gdbarch_${function} invalid\");" echo " internal_error (\"gdbarch: gdbarch_${function} invalid\");"
fi fi
echo " if (gdbarch_debug >= 2)" echo " if (gdbarch_debug >= 2)"