sparc.h (PREFERRED_RELOAD_CLASS): Select GENERAL_REGS for integer data not destined for fp regs.
* sparc.h (PREFERRED_RELOAD_CLASS): Select GENERAL_REGS for
integer data not destined for fp regs.
(LEGITIMIZE_RELOAD_ADDRESS): New.
Thu Jan 7 03:03:42 1999 Stan Cox <scox@cygnus.com>
Richard Henderson <rth@cygnus.com>
Support for Hypersparc and Sparclite86x:
* sparc.h (TARGET_CPU_hypersparc, TARGET_CPU_sparclite86x): New.
(CPP_CPU32_DEFAULT_SPEC): Fix up for the new targets.
(ASM_CPU32_DEFAULT_SPEC): Likewise.
(TARGET_CPU_DEFAULT): Likewise.
(enum processor_type): Likewise.
(CPP_ENDIAN_SPEC): Handle little endian data.
(LIBGCC2_WORDS_BIG_ENDIAN): Likewise.
(ADJUST_COST): Call sparc_adjust_cost.
* sparc.c (sparc_override_options): Fix up for the new targets.
(supersparc_adjust_cost): Make static.
(hypersparc_adjust_cost): New.
(ultrasparc_adjust_cost): Make static.
(sparc_adjust_cost): New.
* sparc.md (attr cpu): Add hypersparc and sparclite86x.
(function_unit): Add hypersparc scheduling rules.
* configure.in (with_cpu handler): Recognize hypersparc.
Mark Mitchell [Wed, 6 Jan 1999 23:38:05 +0000 (23:38 +0000)]
cp-tree.h (IDENTIFIER_TYPENAME_P): Use OPERATOR_TYPENAME_FORMAT here.
* cp-tree.h (IDENTIFIER_TYPENAME_P): Use OPERATOR_TYPENAME_FORMAT
here.
(lang_type): Add is_partial_instantiation. Decrease width of
dummy.
(PARTIAL_INSTANTIATION_P): New macro.
(OPERATOR_TYPENAME_P): Remove.
* decl.c (unary_op_p): Use IDENTIFIER_TYPENAME_P, not
OPERATOR_TYPENAME_P.
(grok_op_properties): Likewise.
* friend.c (do_friend): Handle friends that are member functions
correctly.
* lex.c (init_parse): Use OPERATOR_TYPENAME_FORMAT.
* pt.c (instantiate_class_template): Rework for clarity. Avoid
leaving TYPE_BEING_DEFINED set in obscure cases. Don't do
any more partial instantiation than is absolutely necessary for
implicit typename. Set PARTIAL_INSTANTIATION_P.
(tsubst_decl): Use IDENTIFIER_TYPENAME_P.
* semantics.c (begin_class_definition): Handle partial
specializations of a type that was previously partially
instantiated.
Bernd Schmidt [Wed, 6 Jan 1999 23:33:29 +0000 (16:33 -0700)]
combine.c (num_sign_bit_copies): In NEG...
* combine.c (num_sign_bit_copies): In NEG, MULT, DIV and MOD cases,
when a test can't be performed due to limited width of
HOST_BITS_PER_WIDE_INT, use the more conservative approximation.
Fix UDIV case for cases where the first operand has the highest bit
set.
Brendan Kehoe [Wed, 6 Jan 1999 22:05:45 +0000 (22:05 +0000)]
fixincludes: For HP/UX 10.20, also look in curses_colr/curses.h for a typedef of bool.
* fixincludes: For HP/UX 10.20, also look in curses_colr/curses.h
for a typedef of bool. Make sure to have a copy of the file is
in place before we look to fix it. Fix typo in variable name to
FILE.
Per Bothner [Wed, 6 Jan 1999 16:50:39 +0000 (16:50 +0000)]
lex.h: Moved static function declarations to lex.c, to shut up some -Wall warnings.
�
* lex.h: Moved static function declarations to lex.c,
to shut up some -Wall warnings.
* lex.c: Static function declarations moved here.
* jcf-dump.c: Small fixes to shut up -Wall warnings.
Michael Hayes [Wed, 6 Jan 1999 03:20:44 +0000 (03:20 +0000)]
c4x.md (addqi3): If the destination operand is a hard register other than an extended precision...
* config/c4x/c4x.md (addqi3): If the destination operand is
a hard register other than an extended precision register,
emit addqi3_noclobber.
(*addqi3_noclobber_reload): New pattern added so that reload
will recognise a store of a pseudo, equivalent to the sum
of the frame pointer and a constant, as an add insn.
expr.c (store_expr): If the lhs is a memory location pointed to be a postincremented (or...
�
* expr.c (store_expr): If the lhs is a memory location pointed
to be a postincremented (or postdecremented) pointer, always
force the rhs to be evaluated into a pseudo.
expr.c (store_expr): If the lhs is a memory location pointed to be a postincremented (or...
�
* expr.c (store_expr): If the lhs is a memory location pointed
to be a postincremented (or postdecremented) pointer, always
force the rhs to be evaluated into a pseudo.
Kaveh R. Ghazi [Tue, 5 Jan 1999 19:11:22 +0000 (19:11 +0000)]
Makefile.in (gcc.o, [...]): Depend on prefix.h.
* Makefile.in (gcc.o, prefix.o, cccp.o, cpplib.o): Depend on prefix.h.
* cccp.c: Include prefix.h, don't prototype prefix.c functions.
(new_include_prefix): Constify char* parameters.
* cppfiles.c (read_name_map): Likewise.
(append_include_chain): Likewise. Also, use a writable char* copy
of parameter `dir' which we then modify, rather than using the
parameter itself to store the new writable string.
(remap_filename): Constify some variables. Also, use a writable
char* to store an allocated string which we will be modifying.
* cpplib.c: Include prefix.h, don't prototype prefix.c functions.
(cpp_start_read): Constify variable `str'.
* cpplib.h (append_include_chain): Constify a char* parameter.
* gcc.c Include prefix.h, don't prototype prefix.c functions.
(add_prefix, save_string): Constify char* parameters.
(fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
* prefix.c: Include prefix.h.
(get_key_value, translate_name, save_string, update_path,
set_std_prefix): Constify various char* parameters and variables.
(save_string): Use xmalloc, not malloc.
(translate_name): Use a writable temporary variable to create and
modify a string before setting it to a const char*.
* prefix.h: New file to prototype functions exported from prefix.c.
Zack Weinberg [Mon, 4 Jan 1999 12:38:22 +0000 (12:38 +0000)]
cpplib.c (skip_if_group): Split out the logic that handles directive recognition to its own function.
1998-12-21 18:03 -0500 Zack Weinberg <zack@rabi.phys.columbia.edu>
* cpplib.c (skip_if_group): Split out the logic that handles
directive recognition to its own function. Don't use
parse markers; use a bare pointer into the buffer. Use
copy/skip_rest_of_line instead of doing it by hand. Remove
`return on any directive' mode which was never used, and take
only one argument.
(consider_directive_while_skipping): New function, subroutine
of skip_if_group. Logic streamlined a bit.
(conditional_skip, do_elif, do_else): Call skip_if_group with
only one argument.
Kaveh R. Ghazi [Mon, 4 Jan 1999 08:11:13 +0000 (08:11 +0000)]
Warning fixes:
* mips-tdump.c (st_to_string, sc_to_string, glevel_to_string,
lang_to_string, type_to_string): Make return type const char*.
(print_symbol): Apply `const' keyword to a char*.
(print_file_desc): Cast structure member `crfd' to ulong when
comparing against one.
* mips-tfile.c (pfatal_with_name): Apply `const' keyword to char*.
(fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
(progname, input_name): Apply `const' keyword to a char*.
Don't redundantly include sys/stat.h.
(alloc_info): Apply `const' keyword to a char*.
(st_to_string, sc_to_string): Likewise.
(hash_string): Cast variable `hash_string' to a symint_t when
comparing against one.
(add_string): Cast PAGE_USIZE to Ptrdiff_t when comparing against one.
Likewise cast it to long when comparing against one.
(add_local_symbol): Apply `const' keyword to a char*.
(add_ext_symbol): Likewise.
(add_unknown_tag): Likewise.
(add_procedure): Cast a printf-style field width to an int.
(add_file): Cast PAGE_USIZE to long when comparing against one
(parse_begin): Cast a printf-style field width to an int.
(parse_bend): Likewise.
(parse_def): Likewise.
(parse_end): Likewise.
(mark_stabs): Mark parameter `start' with ATTRIBUTE_UNUSED.
(parse_stabs_common): Fix format specifier.
(parse_input): Change type of variable `i' to Size_t.
(write_object): Fix arguments to match format specifiers.
Cast variable `num_write' to long when comparing against one.
(read_seek): Cast variable `sys_read' to symint_t when comparing
against one. Fix arguments to match format specifiers. Cast
variable `size' to long when comparing against one.
(copy_object): Cast result of `sizeof' to int when comparing
against one. Fix arguments to match format specifiers. Cast
variable `ifd' to long when comparing against a signed value.
Likewise, likewise.
Kaveh R. Ghazi [Mon, 4 Jan 1999 07:48:37 +0000 (07:48 +0000)]
c-common.c (decl_attributes): Allow applying attribute `unused' on a LABEL_DECL.
* c-common.c (decl_attributes): Allow applying attribute `unused'
on a LABEL_DECL.
* c-parse.in (label): Parse attributes after a label, and call
`decl_attributes' to handle them.
* gansidecl.h (ATTRIBUTE_UNUSED_LABEL): Define.
* genrecog.c (OUTPUT_LABEL, write_tree_1, write_tree): When
generating labels, mark them with ATTRIBUTE_UNUSED_LABEL.
* invoke.texi: Note that labels can be marked `unused'.
Michael Hayes [Sun, 3 Jan 1999 20:43:14 +0000 (20:43 +0000)]
optabs.c (emit_cmp_insn): Abort if asked to emit non-canonical RTL for a target with HAVE_cc0 defined.
* optabs.c (emit_cmp_insn): Abort if asked to emit non-canonical RTL
for a target with HAVE_cc0 defined.
(emit_cmp_and_jump_insns): New function.
* expr.h (emit_cmp_and_jump_insns): Prototype it.
* loop.c (check_dbra_loop): Use it to replace calls
to emit_cmp_insn and emit_jump_insn and to canonicalise
the comparison if necessary.
* unroll.c (unroll_loop): Likewise.
Jeffrey A Law [Sun, 3 Jan 1999 19:45:34 +0000 (19:45 +0000)]
pa.md (branch, [...]): Handle (const_int 0) as first source operand.
* pa.md (branch, negated branch): Handle (const_int 0) as first
source operand.
* pa.c (output_cbranch): Likewise.
Should fix unrolling aborts on the PA.
Jeffrey A Law [Wed, 30 Dec 1998 23:14:25 +0000 (23:14 +0000)]
reload1.c (reload_as_needed): Verify that the insn satisfies its constraints after replacing a register...
* reload1.c (reload_as_needed): Verify that the insn satisfies its
constraints after replacing a register address with an autoincrement
address for reload inheritance purposes.