David S. Miller [Sat, 15 Aug 1998 07:36:04 +0000 (07:36 +0000)]
Fix all known bugs remaining in sparc64 constant formation.
* config/sparc/sparc.c (sparc_emit_set_const64_quick1): If
emitting a XOR of -1 at the end, emit a NOT instead for combine's
sake.
(sparc_emit_set_const64): Likewise, also when computing trailing
bits do not negate low_bits and make fast_int an int.
Jeffrey A Law [Sat, 15 Aug 1998 00:33:57 +0000 (00:33 +0000)]
loop.c (add_label_notes): Do not ignore references to labels before dispatch tables.
* loop.c (add_label_notes): Do not ignore references to labels
before dispatch tables. Mirrors Apr 8 change to mark_jump_label.
* gcse.c (add_label_notes): Similarly.
Jason Merrill [Fri, 14 Aug 1998 16:28:30 +0000 (12:28 -0400)]
i386.h (MODES_TIEABLE_P): Reorganize to shut up warnings.
* i386.h (MODES_TIEABLE_P): Reorganize to shut up warnings.
* alias.c (memrefs_conflict_p): Add braces to shut up warnings.
* cse.c (cse_basic_block): Add parens to shut up warnings.
David S. Miller [Fri, 14 Aug 1998 14:11:34 +0000 (14:11 +0000)]
sparc.c (sparc_emit_set_const64_quick2, [...]): Fix more bugs in 64-bit constant formation.
* config/sparc/sparc.c (sparc_emit_set_const64_quick2,
sparc_emit_set_const64_longway, const64_is_2insns,
create_simple_focus_bits, sparc_emit_set_const64): Fix more bugs
in 64-bit constant formation.
* config/sparc/sparc.md (snesi_zero_extend split): Generate
rtl for addx not subx.
(define_insn movdi_const64_special): Make available even when
HOST_BITS_PER_WIDE_INT is not 64.
(movdi_lo_sum_sp64_cint, movdi_high_sp64_cint): Remove.
(losum_di_medlow, sethm, setlo): Make op2 symbolic_operand.
(cmp_siqi_trunc_set, cmp_diqi_trunc_set): Encapsulate both
instances of operand 1 inside a QI subreg.
(xordi3_sp64_dbl): Remove '%' constraint for op1.
(one_cmpldi2_sp64): Fix output string.
(one_cmplsi2_not_liveg0): Rewrite to remove unneeded extra
alternative case.
(unnamed arch64 ashift DI): Truncate shift count if greater than
63, not 31.
John Carr [Fri, 14 Aug 1998 13:52:58 +0000 (13:52 +0000)]
genrecog.c (add_to_sequence): Fatal error if the modes of the operands of SET are incompatible.
* genrecog.c (add_to_sequence): Fatal error if the modes of the operands
of SET are incompatible.
* alpha.md: Fix max and min patterns so modes of SET operands match.
David S. Miller [Fri, 14 Aug 1998 01:49:23 +0000 (01:49 +0000)]
sparc.c (const64_operand, [...]): Get it right when HOST_BITS_PER_WIDE_INT is not 64.
* config/sparc/sparc.c (const64_operand, const64_high_operand):
Get it right when HOST_BITS_PER_WIDE_INT is not 64.
(input_operand): Fixup test for what we accept for constant
integers.
(sparc_emit_set_const32, sparc_emit_set_symbolic_const64): Give
set VOIDmode.
(safe_constDI): Remove.
(sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
gen_safe_XOR64): New functions.
(sparc_emit_set_const64_quick1, sparc_emit_set_const64_quick2,
sparc_emit_set_const64_longway, sparc_emit_set_const64): Use
them.
* config/sparc/sparc.md (define_insn xordi3_sp64_dbl): Only make
available when HOST_BITS_PER_WIDE_INT is not 64.
(define_insn movdi_sp64_dbl, movdi_const64_special): Likewise and
move before movdi_insn_sp64 pattern.
(define_insn movdi_lo_sum_sp64_dbl, movdi_high_sp64_dbl): Remove.
(define_insn sethi_di_medlow, seth44, setm44, sethh): Use
symbolic_operand as predicate for second operand.
(DImode minus split on arch32, negsi2 expander, one_cmplsi2
expander): Give set VOIDmode.
Jim Wilson [Fri, 14 Aug 1998 00:14:09 +0000 (00:14 +0000)]
reload1.c (eliminate_regs_in_insn): Handle another case when eliminating the frame pointer to the hard frame pointer.
* reload1.c (eliminate_regs_in_insn): Handle another case when
eliminating the frame pointer to the hard frame pointer. Add
missing ep->to_rtx check to one existing case.
Jason Merrill [Thu, 13 Aug 1998 16:12:55 +0000 (12:12 -0400)]
expr.c (safe_from_p): Change code to ERROR_MARK only when not accessing nodes.
* expr.c (safe_from_p): Change code to ERROR_MARK only when not
accessing nodes.
* toplev.c (display_help): Add braces to shut up warnings.
* fold-const.c (non_lvalue): Don't deal with null pointer
constants here.
(fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
Jeffrey A Law [Wed, 12 Aug 1998 16:41:11 +0000 (16:41 +0000)]
mn10300.c (REG_SAVE_BYTES): Only reserve space for registers which will be saved.
* mn10300.c (REG_SAVE_BYTES): Only reserve space for registers
which will be saved.
* mn10300.md (prologue insn): Only save registers which need saving.
(epilogue insn): Similarly.
Mark Mitchell [Wed, 12 Aug 1998 13:48:30 +0000 (13:48 +0000)]
decl.c (grokdeclarator): Issue errors on namespace qualified declarators in parameter lists or in class...
1998-08-12 Mark Mitchell <mark@markmitchell.com>
* decl.c (grokdeclarator): Issue errors on namespace qualified
declarators in parameter lists or in class scope.
John Carr [Wed, 12 Aug 1998 00:09:15 +0000 (00:09 +0000)]
sparc.c: Change return <exp> to <exp>; return; in functions returning void.
* sparc.c: Change return <exp> to <exp>; return; in functions
returning void.
* sparc.md: Add empty semicolon statement after final label in
move expanders.
David S. Miller [Tue, 11 Aug 1998 23:50:23 +0000 (23:50 +0000)]
sparc.md (define_insn addx_extend): Rename to addx_extend_sp64, only allow when TARGET_ARCH64.
* config/sparc/sparc.md (define_insn addx_extend): Rename to
addx_extend_sp64, only allow when TARGET_ARCH64.
(define_insn addx_extend_sp32 and split): Version that works when
not TARGET_ARCH64.
(define_insn subx_extend): Likewise.
(define_split adddi3 and subdi3 with zero extension): Fixup and
correct bugs when not TARGET_ARCH64.
John Carr [Tue, 11 Aug 1998 13:36:42 +0000 (13:36 +0000)]
except.c (set_exception_lang_code, [...]): Use prototype-style definition if __STDC__, to match declaration in except.h.
* except.c (set_exception_lang_code, set_exception_version_code):
Use prototype-style definition if __STDC__, to match declaration
in except.h.
* genemit.c: Change FAIL and DONE macros not to use loops.
David S. Miller [Tue, 11 Aug 1998 05:54:17 +0000 (05:54 +0000)]
sparc.c (sparc_emit_set_const32): INTVAL is of type HOST_WIDE_INT.
* config/sparc/sparc.c (sparc_emit_set_const32): INTVAL is of
type HOST_WIDE_INT.
(safe_constDI sparc_emit_set_const64_quick1,
sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
analyze_64bit_constant, const64_is_2insns,
create_simple_focus_bits): Fix some bugs when compiled on real
64-bit hosts.
(function_arg_record_value_3, function_arg_record_value_2,
function_arg_record_value): Add fully prototyped forward decls.
* config/sparc/sparc.md (define_insn cmpsi_insn_sp32): Rename back
to cmpsi_insn and use on both 64 and 32 bit targets.
(define_insn cmpsi_insn_sp64): Remove.
(define_expand zero_extendsidi2): Allow for 32-bit target too.
(define_insn zero_extendsidi2_insn): Rename to
zero_extendsidi2_insn_sp64.
(define_insn zero_extendsidi2_insn_sp32): New pattern and
assosciated forced split for it.
David S. Miller [Mon, 10 Aug 1998 23:47:28 +0000 (23:47 +0000)]
sparc.c (input_operand): Do not accept a LO_SUM MEM for TFmode when !v9.
* config/sparc/sparc.c (input_operand): Do not accept a LO_SUM MEM
for TFmode when !v9. We require offsettable memory addresses.
* config/sparc/sparc.h (ALTER_HARD_SUBREG): Handle TFmode to
DFmode register number conversions.
* config/sparc/sparc.md (define_split DFmode moves): If register
is a SUBREG do alter_subreg on it before using.
(define_expand movtf): Fixup comment about alignment on v9.
(define_split TFmode moves): Don't use gen_{high,low}part, create
explicit SUBREGs instead.
Dave Love [Sun, 9 Aug 1998 03:59:14 +0000 (03:59 +0000)]
Make-lang.in (f/g77.dvi): Replace non-working use of texi2dvi with explicit use of tex.
1998-08-09 Dave Love <d.love@dl.ac.uk>
* Make-lang.in (f/g77.dvi): Replace non-working use of texi2dvi
with explicit use of tex.
(f77.mostlyclean): Remove TeX index files.
* g77install.texi (Prerequisites): Kluge round TeX lossage with
hyphen in @value in @code.
Mark Mitchell [Fri, 7 Aug 1998 16:33:34 +0000 (16:33 +0000)]
typeck.c (require_complete_type): Use complete_type_or_else.
* typeck.c (require_complete_type): Use complete_type_or_else.
(complete_type_or_else): Always return NULL_TREE on failure, as
documented.
* pt.c (tsubst_aggr_type): Prototype.
(tsubst_decl): New function, split out from tsubst. Set
input_filename and lineno as appropriate.
(pop_tinst_level): Restore the file and line number saved in
push_tinst_level.
(instantiate_class_template): Set input_filename and lineno as
appropriate.
(tsubst): Move _DECL processing to tsubst_decl. Make sure the
context for a TYPENAME_TYPE is complete.
* decl2.c (grokbitfield): Issue errors on bitfields declared with
function type.
(do_dtors): As in do_ctors, pretend to be a member of the same
class as a static data member while generating a call to its
destructor.
Mark Mitchell [Thu, 6 Aug 1998 16:58:43 +0000 (16:58 +0000)]
cp-tree.h (ENUM_TEMPLATE_INFO): New macro.
* cp-tree.h (ENUM_TEMPLATE_INFO): New macro.
(TYPE_TEMPLATE_INFO): Likewise.
(SET_TYPE_TEMPLATE_INFO): Likewise.
(ENUM_TI_TEMPLATE): Likewise.
(ENUM_TI_ARGS): Likewise.
(lookup_nested_type_by_name): Remove.
* decl.c (maybe_process_template_type_declaration): Handle enums.
(start_enum): Don't check for primary-template enum declarations
here.
(finish_enum): Clean up, document. Make sure template enum
constants get the correct type.
(build_enumerator): Copy initializers for template enumerations,
too.
(grok_enum_decls): Document.
* lex.c (do_identifier): Document use of LOOKUP_EXPR a bit
better. Build LOOKUP_EXPRs for local variables, even if they are
TREE_PERMANENT.
* pt.c (tsubst_enum): Remove field_chain parameter.
(template_class_depth): Include the depth of surrounding function
contexts.
(push_template_decl): Check for primary-template enum declarations
here. Deal with enumeration templates.
(lookup_template_class): Likewise.
(for_each_template_parm): Likewise.
(instantiate_class_template): Don't call tsubst_enum directly,
call tsubst instead, to instantiate enums. Deal with all
field_chain issues here, not in tsubst_enum.
(lookup_nested_type_by_name): Remove.
(tsubst_aggr_type): Revise handling of enumeration types.
(tsubst): Likewise.
(tsubst_copy): Likewise.
(tsubst_expr): Call tsubst, not tsubst_enum for TAG_DEFNs.
Craig Burley [Wed, 5 Aug 1998 11:22:15 +0000 (11:22 +0000)]
com.c (ffecom_convert_narrow_, [...]): Allow conversion from pointer to same-sized integer...
Tue Aug 4 16:59:39 1998 Craig Burley <burley@gnu.org>
* com.c (ffecom_convert_narrow_, ffecom_convert_widen_):
Allow conversion from pointer to same-sized integer,
to fix invoking SIGNAL as a function.
Craig Burley [Wed, 5 Aug 1998 11:19:05 +0000 (07:19 -0400)]
com.c (ffecom_convert_narrow_, [...]): Allow conversion from pointer to same-sized integer...
Tue Aug 4 16:59:39 1998 Craig Burley <burley@gnu.org>
* com.c (ffecom_convert_narrow_, ffecom_convert_widen_):
Allow conversion from pointer to same-sized integer,
to fix invoking SIGNAL as a function.
Mark Mitchell [Tue, 4 Aug 1998 11:46:41 +0000 (11:46 +0000)]
decl.c (pushtag): Don't mangle the name of a TYPE_DECL if it uses template parameters.
* decl.c (pushtag): Don't mangle the name of a TYPE_DECL if it
uses template parameters.
* method.c (build_template_parm_names): Use the full set of
template arguments for tsubst'ing.
(build_overload_identifier): Pass the full set of template
arguments to build_template_parm_names, not just the
innermost_args.
* pt.c (TMPL_ARGS_DEPTH): Define using
TMPL_ARGS_HAVE_MULTIPLE_LEVELS, for clarity.
(NUM_TMPL_ARGS): New macro.
(add_outermost_template_args): Deal with the case where the outer
args will be completely discarded.
(coerce_template_parms): Use the full set of template arguments
for tsubst'ing. Simplify. Add some asserts. Improve
error messages.
(lookup_template_class): Pass the full set of template arguments
to coerce_template_parms.
(tsubst): Add assertion.
(do_type_instantiation): Don't instantiate member template
classes.
* init.c (build_offset_ref): Deal with a TEMPLATE_ID_EXPR whose
name is a LOOKUP_EXPR, rather than an IDENTIFIER_NODE.
Jason Merrill [Mon, 3 Aug 1998 22:11:25 +0000 (22:11 +0000)]
method.c (set_mangled_name_for_decl): Change return type to void.
* method.c (set_mangled_name_for_decl): Change return type to void.
* decl.c (lookup_name_real): A namespace-level decl takes priority
over implicit typename. Avoid doing the same lookup twice.
* search.c (dependent_base_p): New fn.
(dfs_pushdecls, dfs_compress_decls): Use it.
* typeck.c (get_member_function_from_ptrfunc): Don't try to handle
virtual functions if the type doesn't have any.
Mark Mitchell [Sun, 2 Aug 1998 21:37:23 +0000 (21:37 +0000)]
cp-tree.def (LOOKUP_EXPR): Document.
* cp-tree.def (LOOKUP_EXPR): Document. Remove second argument.
* cp-tree.h (DECL_TI_TEMPLATE): Improve documentation.
* lex.c (do_identifier): Don't use a second argument, or a type,
when building LOOKUP_EXPRs.
(do_identifier): Likewise.
(do_scoped_id): Likewise.
* method.c (hack_identifier): Improve error message.
* pt.c (lookup_template_function): Don't needlessly call
copy_to_permanent or build_min.
(tsubst_copy): Remove #if 0'd code. Tsubst into LOOKUP_EXPRs if
necessary.
(do_decl_instantiation): Improve error message.
* tree.c (mapcar, case LOOKUP_EXPR): Don't be sorry; make a copy.
(build_min): Copy the type to the permanent obstack, too.