Michael Hayes [Sun, 24 Jan 1999 01:52:01 +0000 (01:52 +0000)]
Convert all direct memory references to use LO_SUM and remove machdep hack that used to do this.
Convert all direct memory references to use LO_SUM and remove machdep
hack that used to do this.
Sun Jan 24 21:24:43 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.c (c4x_emit_move_sequence, c4x_encode_section_info):
New functions.
(c4x_check_legit_addr): Remove USE and PLUS, allow
LO_SUM, and disable SYMBOL_REF, LABEL_REF, and CONST cases.
(c4x_legitimize_address): Penalise SYMBOL_REF, LABEL_REF, and
CONST cases. Add LO_SUM.
(c4x_print_operand): Modified 'C' and 'R' cases for calls.
Added 'U' case. Remove dependence on SYMBOL_REF_FLAG.
(c4x_print_operand_address): Handle LO_SUM.
(c4x_scan_for_ldp): Delete. Hooray!
(c4x_process_after_reload): Remove call to c4x_scan_for_ldp.
Split all insns.
(c4x_immed_int_constant): Renamed from c4x_int_constant. All callers
changed.
(c4x_immed_float_constant): Renamed from c4x_float_constant. All
callers changed.
(c4x_T_constraint): Allow LO_SUM, disable SYMBOL_REF, LABEL_REF,
and CONST.
(c4x_U_constraint, symbolic_operand): New functions.
(src_operand): Allow 'I' constants in HImode. Allow LO_SUM,
disable SYMBOL_REF, LABEL_REF, and CONST.
(lsrc_operand, tsrc_operand): Call src_operand instead of
general_operand.
(c4x_operand_subword): Update comments.
* config/c4x/c4x.c (TARGET_LOAD_ADDRESS): New macro.
(LEGITIMATE_CONSTANT_P): Allow SYMBOL_REF, LABEL_REF, CONST,
plus HIGH and LO_SUM for the C40.
(ENCODE_SECTION_INFO): Define macro.
(symbolic_operand, c4x_U_constraint, c4x_emit_move_sequence): New
prototypes.
(PREDICATE_CODES): Add symbolic_operand.
* config/c4x/c4x.md (movqi, movgqf, movhi, movhi): Call
c4x_emit_move_sequence.
(floatunsqiqf2, fixuns_truncqfqi2): Rework emitted RTL
to avoid symbol references.
(all patterns with g constraint): Replace 'g' constraint with 'rIm'.
(set_high): Renamed from set_high_use.
(set_lo_sum): Renamed from set_ior_lo_use.
(all call patterns): Make MEM explicit in call address operands.
Modified output templates to use 'U' modifier.
Jason Merrill [Sun, 24 Jan 1999 00:59:21 +0000 (00:59 +0000)]
decl.c (start_function): Make member functions one_only on windows.
* decl.c (start_function): Make member functions one_only on windows.
* decl2.c (import_export_decl): Likewise.
* decl.c (grokdeclarator): Don't complain about implicit int in
a system header. Change same-name field check to not complain in
a system header instead of within extern "C".
Kaveh R. Ghazi [Sat, 23 Jan 1999 20:47:03 +0000 (20:47 +0000)]
Warning fixes:
* Makefile.in (parse.o): Depend on $(CONFIG_H) and
$(srcdir)/../system.h.
(class.o): Depend on $(PARSE_H) and $(srcdir)/../output.h.
(jcf-parse.o): Depend on $(srcdir)/../toplev.h.
(jcf-write.o): Likewise.
(jv-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
(mangle.o): Depend on $(srcdir)/../toplev.h.
(parse-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
(zextract.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
* class.c: Include output.h and parse.h.
(mangled_classname): Add the `const' keyword to a char*.
(find_named_method): Hide unused function definition.
(build_utf8_ref): Change type of variable `c' to unsigned char.
Use ISALPHA/ISDIGIT instead of isalpha/isdigit.
(build_class_ref): Add the `const' keyword to a char*.
(layout_class_method): Remove unused variable `buf'.
* decl.c (find_local_variable): Remove unused variable `rtl'.
(pushdecl): Likewise for variables `different_binding_level' and
`oldglobal'.
(pushlevel): Mark parameter `unused' with ATTRIBUTE_UNUSED.
(maybe_build_cleanup): Likewise for parameter `decl'.
* except.c (expand_start_java_handler): Mark parameter `range'
with ATTRIBUTE_UNUSED.
* expr.c: Include except.h.
(pop_type): Remove unused variable `i'.
(pop_value): Likewise for variables `n_words' and `i'.
(expand_java_arrayload): Likewise for variable `convert'.
(java_lang_expand_expr): Likewise for variables `op0', `type',
`mode', `unsignedp', `node' and `elements'.
(expand_byte_code): Likewise for variables `prev_eh_ranges' and
`eh_ranges'.
(process_jvm_instruction): Add a `const' qualifier to a char*.
* gjavah.c (output_directory): Add the `const' keyword to a char*.
(temp_directory): Likewise.
(print_c_decl): Likewise.
(print_method_info): Likewise.
(decode_signature_piece): Likewise.
(print_mangled_classname): Likewise.
* java-except.h: Provide prototypes for maybe_start_try,
maybe_end_try and add_handler.
* java-tree.h (mangled_classname): Add the `const' keyword to a char*.
(parse_error_context): Likewise. Also add ATTRIBUTE_PRINTF_2.
(pushdecl_top_level, alloc_class_constant, unicode_mangling_length,
init_expr_processing, push_super_field, init_class_processing,
can_widen_reference_to, class_depth, verify_jvm_instructions,
maybe_pushlevels, maybe_poplevels, process_jvm_instruction,
set_local_type, merge_type_state, push_type, load_type_state,
add_interface, find_in_current_zip, append_gpp_mangled_classtype,
emit_unicode_mangled_name): Add prototypes.
* jcf-dump.c (print_constant): Add the `const' keyword to a char*.
(print_signature_type): Use ISDIGIT, not isdigit.
(print_signature): Remove unused variable `j'.
* jcf-io.c (jcf_filbuf_from_stdio): Cast the result of `fread' to
int when comparing against one.
* jcf-parse.c: Include toplev.h.
* jcf-write.c: Likewise. Don't include <string.h> or <sys/stat.h>.
(localvar_free): Remove unused variable `i'.
(generate_bytecode_conditional): Likewise for variable `kind'.
* jv-scan.c: Include config.h and system.h. Remove redundant
OS header and gansidecl.h includes.
(warning): Add the `const' keyword to a char*. Also add
ATTRIBUTE_PRINTF_1 to the prototype. Check ANSI_PROTOTYPES, not
__STDC__, when determining whether to use ANSI-isms.
(fatal): Likewise. Also add ATTRIBUTE_UNUSED.
(xmalloc): Don't redundantly prototype here.
(main): Remove unused parameter `envp'. Also fix the arguments
passed to function `fatal' to match the format specifier.
* lang.c (java_tree_code_name): Add the `const' keyword to a char*.
* mangle.c: Include toplev.h.
(emit_unicode_mangled_name): Declare parameter `len'.
* parse.y (parse_warning_context): Add the `const' keyword to a
char*. Also add ATTRIBUTE_PRINTF_2 to the prototype. Check
`ANSI_PROTOTYPES' not `__STDC__' for whether to use ANSI-isms.
(issue_warning_error_from_context): Add the `const' keyword to
a char*.
(parse_error_context): Likewise. Also check `ANSI_PROTOTYPES'
not `__STDC__' for whether to use ANSI-isms.
* typeck.c (incomplete_type_error): Mark parameters `value' and
`type' with ATTRIBUTE_UNUSED.
(parse_signature_type): Use ISDIGIT, not isdigit.
* verify.c (check_pending_block): Add the `const' keyword to a char*.
(verify_jvm_instructions): Likewise. Remove unused variables
`field_name' and `default_val'.
* zextract.c: Include config.h and system.h. Remove redundant
OS header includes.
* zipfile.h: Prototype `read_zip_archive'.
Zack Weinberg [Fri, 22 Jan 1999 10:33:38 +0000 (10:33 +0000)]
cpp-if1.c: New test - torture test of preprocessor's number conversion in #if directives.
* cpp-if1.c: New test - torture test of preprocessor's number conversion
in #if directives.
* cpp-if2.c: New test - torture test of preprocessor's character constant
conversion in #if directives.
Both these tests are entirely my own invention.
Jeffrey A Law [Fri, 22 Jan 1999 07:17:21 +0000 (07:17 +0000)]
Makefile.in (gcc_tooldir): Move before first reference.
* Makefile.in (gcc_tooldir): Move before first reference.
Let autoconf substitute in a value.
* configure.in (gcc_tooldir): Only use a relative path to the
tool directory if $exec_prefix == $prefix.
* configure: Rebuilt.
Mark Mitchell [Thu, 21 Jan 1999 21:16:22 +0000 (21:16 +0000)]
cp-tree.h (PUSH_GLOBAL): New macro.
* cp-tree.h (PUSH_GLOBAL): New macro.
(PUSH_LOCAL): Likewise.
(PUSH_USING): Likewise.
(namespace_bindings_p): Declare.
(push_overloaded_decl): Likewise.
* decl.c (push_overloaded_decl): Don't make it static. Check for
illegal declarations after using declarations here.
(namespace_bindings_p): Likewise.
(duplicate_decls): Don't consider declarations from different
namespaces to be the same.
(pushdecl): Use symbolic PUSH_ constants in calls to
push_overloaded_decl.
(push_overloaded_decl_1): Likewise.
* decl2.c (validate_nonmember_using_decl): Tweak `std' handling.
(do_nonmember_using_decl): Check for illegal using declarations
after ordinary declarations here.
(do_local_using_decl): Call pushdecl to insert declarations.
rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Recognize and accept transformations that we have performed earlier.
* rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Recognize and accept
transformations that we have performed earlier.
* alpha.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
Mark Mitchell [Thu, 21 Jan 1999 14:29:33 +0000 (14:29 +0000)]
cp-tree.h (PARM_DECL_EXPR): Delete.
* cp-tree.h (PARM_DECL_EXPR): Delete.
(convert_default_arg): Change prototype.
(check_default_argument): Declare.
(search_tree): Likewise.
* call.c (convert_default_arg): Take the function to which the
default argument belongs as a parameter, and do any necessary
instantiation here, instead of ...
(build_over_call): Here.
* decl.c (local_variable_p): New function.
(check_default_argument): Likewise, split out and tidied from ...
(grokparms): Here.
* error.c (dump_expr): Don't set PARM_DECL_EXPR.
* pt.c (tsubst_call_declarator_parms): New function.
(for_each_template_parm): Handle ARRAY_REFs. Do the obvious thing
with CALL_EXPRs, rather than trying to be clever.
(tsubst): Use tsubst_call_declarator_parms.
* tree.c (search_tree): Don't make it static.
* typeck.c (convert_arguments): Use new interface to
convert_default_arg.
Andrew MacLeod [Thu, 21 Jan 1999 11:33:44 +0000 (11:33 +0000)]
expr.c (MOVE_BY_PIECES_P): Define condition for deciding to use move_by_pieces.
* expr.c (MOVE_BY_PIECES_P): Define condition for deciding to use
move_by_pieces.
(MOVE_MAX_PIECES): Define maximum number of bytes to move at once.
(USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): Define defaults.
(USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define defaults.
(move_by_pieces): Use new macros.
(emit_block_move): Use new macros.
(clear_by_pieces): Use new macros.
(clear_storage): Use new macros.
(emit_push_insn): Use new macros.
(expand_expr): Use new macros.
* config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT):
Define.
(USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define.
(MOVE_BY_PIECES_P): Define based on alignment and TARGET_SMALLCODE.
(MOVE_MAX_PIECES): move 8 bytes on SH4.
* tm.texi(MOVE_BY_PIECES_P, MOVE_MAX_PIECES, USE_LOAD_POST_INCREMENT,
USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT,
USE_STORE_PRE_DECREMENT): Describe new macros.
varasm.c (output_constant_pool): Use floor_log2 instead of exact_log2 for ASM_OUTPUT_ALIGN.
Thu Jan 21 14:13:31 1999 Vladimir N. Makarov <vmakarov@cygnus.com>
* varasm.c (output_constant_pool): Use floor_log2 instead of
exact_log2 for ASM_OUTPUT_ALIGN.
* stor-layout.c (layout_type): Do machine-dependent extra alignment.
* emit-rtl.c (operand_subword): Handle case when a subword outside
the operand.
* tm.texi (ROUND_TYPE_{SIZE,ALIGN}): More accurate descriptions of
the macros.
Andrew Haley [Thu, 21 Jan 1999 08:50:06 +0000 (08:50 +0000)]
[multiple changes]
Thu Jan 21 16:00:06 1999 Andrew Haley <aph@cygnus.com>
* typeck.c (convert): Allow conversions to void type: some
optimizations in gcc do this.
Thu Jan 21 15:21:49 1999 Andrew Haley <aph@cygnus.com>
* typeck.c (convert_ieee_real_to_integer): New function.
(convert): When not using fast-math and using hardware fp, convert
an IEEE NaN to zero.
Mark Mitchell [Wed, 20 Jan 1999 13:11:59 +0000 (13:11 +0000)]
error.c (dump_function_decl): Don't print the argument types for a function when the verbosity level is negative.
* error.c (dump_function_decl): Don't print the argument types for
a function when the verbosity level is negative.
* call.c (build_over_call): Check format attributes at call-time.
* pt.c (tsubst_copy): Fix comment.
(unify): Don't allow unification with variable-sized arrays.
* semantics.c (finish_stmt_expr): When processing a template make
the BIND_EXPR long-lived.
Jeff Law [Wed, 20 Jan 1999 02:09:52 +0000 (19:09 -0700)]
loop.c (NUM_STORES): Delete.
* loop.c (NUM_STORES): Delete.
(loop_store_mems): Turn into an EXPR_LIST of MEMs.
(prescan_loop): Properly initialize loop_mems_idx.
(note_addr_stored): Simplify using list structure instead of
fixed sized array.
(invariant_p, check_dbra_loop, load_mems): Similarly.
* genoutput.c (name_for_index): New function.
(scan_operands, validate_insn_alternatives): Use it.
* genrecog.c (insn_name_ptr_size): New variable.
(make_insn_sequence): Fill in insn_name_ptr.
(merge_trees): Use it.
Andrew MacLeod [Tue, 19 Jan 1999 09:39:37 +0000 (09:39 +0000)]
optabs.c (emit_libcall_block): Add a REG_EH_REGION reg note to all calls within a libcall block to indicate no...
* optabs.c (emit_libcall_block): Add a REG_EH_REGION reg note to all
calls within a libcall block to indicate no throws are possible.
* flow.c (find_basic_blocks, find_basic_blocks_1): Don't look for
libcall blocks. Don't add edges to exception handlers if we see
a REG_EH_REGION note with a value of 0.
(make_edges): Override active_eh_region vector if the call has a note
indicating the call does not throw.
Jason Merrill [Mon, 18 Jan 1999 14:07:32 +0000 (09:07 -0500)]
typeck.c (build_component_ref): Wrap an OVERLOAD around a unique non-static member function.
* typeck.c (build_component_ref): Wrap an OVERLOAD around a unique
non-static member function.
* class.c (instantiate_type): Only diagnose illegal address of member
function if complaining.
* decl.c (lookup_name_real): Remove duplicate code.
Jason Merrill [Mon, 18 Jan 1999 13:32:57 +0000 (08:32 -0500)]
tree.c (copy_template_template_parm): Use permanent_obstack.
* tree.c (copy_template_template_parm): Use permanent_obstack.
* pt.c (unify): Remove restrictions on deduction of argument
of template template parameters.
* rtti.c (build_dynamic_cast_1): Resolve OFFSET_REF exprs.
* class.c (resolve_address_of_overloaded_function): Show list of
all candidates, when none of them match.
Jason Merrill [Mon, 18 Jan 1999 12:49:20 +0000 (07:49 -0500)]
typeck.c (comp_ptr_ttypes_reinterpret): Per ANSI, tighten up definition of 'casting away const' in reinterpret_cast<>.
* typeck.c (comp_ptr_ttypes_reinterpret): Per ANSI, tighten up
definition of 'casting away const' in reinterpret_cast<>.
* cvt.c: Add include for decl.h, remove extern for
static_aggregates which is now provided by decl.h.
* Makefile.in (cvt.o): Add dependency for decl.h and missing
dependencies for convert.h and flags.h.
* decl2.c (do_dtors): Set current location to that of the
decl, for sensible diagnostics and debugging.
(check_classfn): Issue `incomplete type' error, if
class is not defined.
* cp-tree.h: Add prototype for bound_pmf_p.
Vladimir Makarov [Mon, 18 Jan 1999 09:37:00 +0000 (09:37 +0000)]
[multiple changes]
1999-01-18 Vladimir N. Makarov <vmakarov@cygnus.com>
* invoke.texi (-mcpu=740, -mcpu=750): New options.
(-m(no-)multiple, -m(no-)string): Describe cases for PPC740 &
PPC750.
1999-01-18 Michael Meissner <meissner@cygnus.com>
* rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines
supported with -mcpu=xxx.
(processor_type): Add PROCESSOR_PPC750.
(ADJUST_PRIORITY): Call rs6000_adjust_priority.
(RTX_COSTS): Supply costs for 750 multiply/divide operations.
(rs6000_adjust_priority): Add declaration.
* rs6000.c (rs6000_override_options): -mcpu={750,740} now sets the
processor type as 750, not 603. Allow -mmultiple and -mstring on
little endian 750 systems.
(rs6000_adjust_priority): Stub for now.
(get_issue_rate): The PowerPC 750 can issue 2 instructions/cycle.
* rs6000.md (function/cpu attributes): Add initial ppc750 support.
* sysv4.h (STRICT_ALIGNMENT): Don't force strict alignment if
little endian.
(CC1_SPEC): Pass -mstrict-align if little endian, and not
overridden.
(CC1_ENDIAN_{LITTLE,BIG,DEFAULT}_SPEC): Endian specific configs.
(SUBTARGET_EXTRA_SPECS): Add cc1 endian specs.
* {sysv4,eabi}le.h (CC1_ENDIAN_DEFAULT_SPEC): Override, default is
little endian.
* t-ppcgas (MULTILIB_*): Delete obsolete Solaris multilibs.
Andrew Haley [Mon, 18 Jan 1999 06:29:26 +0000 (06:29 +0000)]
parse.y (patch_binop): Do a type conversion from signed to unsigned and then back to signed when...
1999-01-18 Andrew Haley <aph@cygnus.com>
* parse.y (patch_binop): Do a type conversion from signed to
unsigned and then back to signed when a ">>>" is found.
Kaveh R. Ghazi [Mon, 18 Jan 1999 06:17:31 +0000 (06:17 +0000)]
Warning fixes:
* loop.c (insert_bct): Hide the definition of variables
`increment_direction', `compare_direction', `add_iteration' and
`loop_var_mode'.
* recog.c (mode_dependent_address_p): Mark parameter `addr' with
ATTRIBUTE_UNUSED. Mark label `win' with ATTRIBUTE_UNUSED_LABEL.
(mode_independent_operand): Mark label `lose' with
ATTRIBUTE_UNUSED_LABEL.
* regclass.c (n_occurrences): Remove prototype and definition.
* reload.c (find_reloads_address_1): Mark variable `tem' with
ATTRIBUTE_UNUSED.
* reload1.c (reload): Cast the first two arguments of `bcopy' to PTR.
* sbitmap.c (sbitmap_copy): Likewise.
* scan-decls.c (scan_decls): Hide label `handle_comma'.
* toplev.c (output_lang_identify): Mark prototype with
ATTRIBUTE_UNUSED.
* tree.c (make_node): Cast the first argument of `bzero' to PTR.
(make_tree_vec): Likewise.
(build1): Likewise.
* varasm.c (assemble_static_space): Mark variable `tem' with
ATTRIBUTE_UNUSED.
Nathan Sidwell [Mon, 18 Jan 1999 03:32:53 +0000 (03:32 +0000)]
Makefile.in (GCOV_INSTALL_NAME): New macro.
* Makefile.in (GCOV_INSTALL_NAME): New macro.
(install-common): Use it.
(uninstall): Use it.
(uninstall): Use correct names for protoize and unprotoize.