* NEWS: Mention the new backtrace mechanism, DWARF 2 CFI, hosted
file I/O, multi-arch, TLS and NPTL, DWARF 2 Location Expressions,
and Java.
* PROBLEMS: Mention that mips*-*-*, powerpc*-*-*, sparc*-*-* and
arm*-*-* do not use the new frame code.
* sh-tdep.c (struct frame_extra_info): Remove.
(struct sh_frame_cache): New structure.
(GET_SOURCE_REG): New macro extracting source register of an opcode.
(GET_TARGET_REG): Ditto but target register.
(GET_PUSHED_REG): Remove.
(IS_MOV_ARG_TO_REG): New macro.
(IS_MOV_ARG_TO_IND_R14): New macro.
(IS_MOV_ARG_TO_IND_R14_WITH_DISP): New macro.
(IS_MOVW_PCREL_TO_REG): New macro.
(IS_MOVL_PCREL_TO_REG): New macro.
(IS_SUB_REG_FROM_SP): New macro.
(IS_ARG_MOV): Remove.
(IS_MOV_TO_R14): Remove.
(IS_RESTORE_FP): New macro.
(IS_RTS): New macro.
(IS_LDS): New macro.
(IS_MOV_FP_SP): New macro.
(IS_ADD_REG_TO_FP): New macro.
(IS_ADD_IMM_FP): New macro.
(sh_skip_prologue_hard_way): Remove.
(sh_saved_pc_after_call): Remove.
(sh_frame_chain): Remove.
(sh_find_callers_reg): Remove.
(sh_nofp_frame_init_saved_regs): Remove.
(sh_fp_frame_init_saved_regs): Remove.
(sh_init_extra_frame_info): Remove.
(sh_analyze_prologue): New function.
(sh_skip_prologue): Remove deprecated code. Rely on new function
sh_analyze_prologue when after_prologue fails.
(sh_frame_saved_pc): Remove.
(sh_alloc_frame_cache): New function.
(sh_frame_cache): Ditto.
(sh_frame_prev_register): Ditto.
(sh_frame_this_id): Ditto.
(sh_frame_unwind): New structure defining the heuristic frame
sniffer interface.
(sh_frame_sniffer): New function.
(sh_unwind_sp): Ditto.
(sh_unwind_pc): Ditto.
(sh_unwind_dummy_id): Ditto.
(sh_frame_base_address): Ditto.
(sh_frame_base): New structure defining new frame base code.
(sh_in_function_epilogue_p): New function.
(sh_gdbarch_init): Restructure and simplify to eliminate deprecated
code and to call all new code instead. Initialize dwarf2 and
heuristic frame sniffer.
* parser-defs.h (struct exp_descriptor): New definition, containing
language-specific info for printing, prefixifying, dumping, and
evaluating expressions.
(exp_descriptor_standard): Declare new variable.
(print_subexp): Make global and declare here (from expprint.c).
(dump_subexp): Ditto.
(dump_subexp_body_standard): Declare.
(operator_length_standard): Declare.
(op_name_standard): Declare.
(print_subexp): Declare.
(print_subexp_standard): Declare.
* language.h (struct language_defn): Add la_exp_desc field to hold
pointer to table for language-specific operators.
Remove evaluate_exp field, which is now in struct exp_descriptor.
* parse.c (operator_length): Move most code to new
operator_length_standard function. Use language-specific information.
(operator_length_standard): New function taking most code from
operator_length.
(exp_descriptor_standard): New constant.
* expression.h (enum exp_opcode): Add definitions of OP_EXTENDED0
and OP_EXTENDED_LAST.
* expprint.c (print_subexp): Use language-specific print_subexp.
Make global; remove static declaration.
Move most code to print_subexp_standard.
(print_subexp_standard): New function, containing code formerly in
print_subexp.
(op_name): Add expression to argument signature.
Use langauge-specific op_name.
Move most code to op_name_standard.
(op_name_standard): New function, containing code formerly in op_name.
(dump_subexp): Use new version of op_name function.
Use language-specific dump_subexp_body, and move most existing code to
dump_subexp_body_standard.
(dump_raw_expression): Use new op_name interface.
(dump_subexp_body): Move most code to dump_subexp_body_standard.
(dump_subexp_body_standard): New function, containing code formerly
in dump_subexp_body.
* jv-lang.c (exp_descriptor_java): New variable, containing
Java-specific expression evaluator.
(java_language_defn): Add la_exp_desc field and remove evaluate_exp
field.
* scm-lang.c (exp_descriptor_scm): New variable, containing
Scheme-specific expression evaluator.
(scm_language_defn): Add la_exp_desc field and remove evaluate_exp
field.
* objc-lang.c (print_object_command): Take evaluate_exp from the
la_exp_desc field.
* Makefile.in (eval.o): Add dependency on parser-defs.h.
* eval.c: Include parser-defs.h for the full declaration of
la_exp_desc's type.
(evaluate_subexp): Get evaluate_exp out of la_exp_desc field.
* elflink.c (elf_link_read_relocs_from_section): Add an argument
of a pointer to section. Check bad symbol index.
(_bfd_elf_link_read_relocs): Modify calls to
elf_link_read_relocs_from_section.
* profile.h (update_FR_ptime): New prototype.
(update_FRdouble_ptime): Ditto.
(update_SPR_ptime): Ditto.
(increase_ACC_busy): Ditto.
(enforce_full_acc_latency): Ditto.
(post_wait_for_SPR): Ditto.
* profile.c (update_FR_ptime): Moved here from profile-fr500.c.
(update_FRdouble_ptime): Ditto.
(update_SPR_ptime): New function.
(increase_ACC_busy): Ditto.
(enforce_full_acc_latency): Ditto.
(vliw_wait_for_fdiv_resource): Correct resource name.
(vliw_wait_for_fsqrt_resource): Ditto.
(post_wait_for_SPR): New function.
* profile-fr500.c (frvbf_model_fr500_u_commit): New function.
(frvbf_model_fr500_u_gr2fr): Pass out_FRk as output register to
adjust_float_register_busy.
(frvbf_model_fr500_u_gr_load): Record latency of SPR registers.
(frvbf_model_fr500_u_fr_load): Wait for and record latency of SPR
registers.
(frvbf_model_fr500_u_float_arith): Ditto.
(frvbf_model_fr500_u_float_dual_arith): Ditto.
(frvbf_model_fr500_u_float_div): Ditto.
(frvbf_model_fr500_u_float_sqrt): Ditto.
(frvbf_model_fr500_u_float_convert): Ditto.
(update_FR_ptime): Moved to profile.c
(update_FRdouble_ptime): Moved to profile.c
* profile-fr400.c (update_FR_ptime): Removed. Identical to functions
for other machines.
(update_FRdouble_ptime): Ditto.
* arch.h,cpu.h,sem.c,decode.[ch],model.c,sem.c: Regenerated.
* frv.cpu (u-commit): New modelling unit for fr500.
(mwtaccg): Use frv_ref_SI to reference ACC40Sk as an input operand.
(commit-r): Use u-commit model for fr500.
(commit): Ditto.
(conditional-float-binary-op): Take profiling data as an argument.
Update callers.
(ne-float-binary-op): Ditto.
* parse.c (length_of_subexp): Use operator_length to get operator
lengths and arities for operators.
Move most code to new operator_length function.
(operator_length): New function absorbing most code from
length_of_subexp.
(prefixify_subexp): Remove large case and use operator_length instead.
(parse_exp_1): Use renamings:
dump_prefix_expression => dump_raw_expression and
dump_postfix_expression => dump_prefix_expression.
* expression.h (dump_prefix_expression): Rename to ...
(dump_raw_expression): New name.
(dump_postfix_expression): Rename to ...
(dump_prefix_expression): New name.
* expprint.c (dump_subexp): Make global. Add comment.
Move most existing code to dump_subexp_body.
(dump_subexp_body): New function.
(dump_prefix_expression): Rename to dump_raw_expression.
Remove attempt to print the expression via print_expression: it can't
work before the expression is prefixified.
(dump_raw_expression): Renamed from dump_prefix_expression.
(dump_postfix_expression): Rename to dump_prefix_expression, since
that's what it does.
Remove 'note' parameter, since this routine must be used on
prefixified expression.
(dump_prefix_expression): Renamed from dump_postfix_expression.
Jim Blandy [Tue, 23 Sep 2003 16:25:13 +0000 (16:25 +0000)]
* dwarf2read.c (read_array_type): When building the type for an
array of unspecified length, make sure to choose the upper bound
so that the array's total length comes out to be zero --- that's
how we represent such arrays.
Alan Modra [Tue, 23 Sep 2003 00:41:14 +0000 (00:41 +0000)]
* config/obj-elf.c (obj_elf_change_section): Adjust for
_bfd_elf_get_sec_type_attr changes. Allow SHF_MERGE and SHF_STRINGS
to be set when defaults are not. Don't set attr from defaults if
old_sec.
* utils.c (align_up, align_down): New functions.
* defs.h (align_up, align_down): Declare.
* ppc-sysv-tdep.c (align_up, align_down): Delete functions.
* s390-tdep.c: Replace "round_up" and "round_down" with "align_up"
and "align_down".
(round_up, round_down): Delete functions.
* mips-tdep.c: Replace ROUND_UP and ROUND_DOWN with "align_up" and
"align_down".
(ROUND_DOWN, ROUND_UP): Delete macros.
(mips_dump_tdep): Do not print "ROUND_UP" or "ROUND_DOWN".
* h8300-tdep.c: Replace "round_up" and "round_down" with
"align_up" and "align_down".
(round_up, round_down): Delete macros.
* frv-tdep.c: Replace ROUND_UP and ROUND_DOWN with "align_up" and
"align_down".
(ROUND_UP, ROUND_DOWN): Delete macros.
* acinclude.m4: Include ../config/accross.m4.
* aclocal.m4: Regenerated.
* configure.host (HOST_64BIT_TYPE): Remove if it is set to long
or long long.
(HOST_U_64BIT_TYPE): Remove if it is set to unsigned long long.
(host64): Remove if HOST_64BIT_TYPE is set to long.
* configure.in (HOST_64BIT_TYPE): Set according to the size of
long and long long.
(HOST_U_64BIT_TYPE): Likewise.
(host64): Likewise.
* configure: Regenerated.
* ppc-linux-tdep.c (ppc_linux_init_abi): Set the 32 bit
"use_struct_convention" to "ppc_linux_use_struct_convention".
(ppc_linux_use_struct_convention): New function.
* rs6000-tdep.c (rs6000_use_struct_convention): New function.
(rs6000_gdbarch_init): For AIX, set "use_struct_convention" to
"rs6000_use_struct_convention".
* ppc-tdep.h (ppc_sysv_abi_broken_use_struct_convention): Delete
declaration.
* ppc-sysv-tdep.c (ppc_sysv_abi_broken_use_struct_convention):
Delete function.
Mark Kettenis [Mon, 15 Sep 2003 19:30:50 +0000 (19:30 +0000)]
* amd64fbsd-nat.c (_initialize_amd64fbsd_nat): Rename from
_initialize_am64fbsd_nat.
* gdbarch.sh (DEPRECATED_REG_STRUCT_HAS_ADDR): Add comment.
(stabs_argument_has_addr): New architecture method.
* arch-utils.h (default_stabs_argument_has_addr): New prototype.
* arch-utils.c: Include "buildsym.h".
(default_stabs_argument_has_addr): New function.
* stabsread.c (define_symbol): Use stabs_argument_has_addr
instead of DEPRECATED_REG_STRUCT_HAS_ADDR.