jakub [Fri, 5 Jan 2001 22:11:37 +0000 (5 22:11 +0000)]
* recog.c (validate_replace_rtx_1): Simplify SUBREG of VOIDmode
CONST_DOUBLE.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/subreg-byte-branch@38727 138bc75d-0d04-0410-961f-82ee72b054a4
amacleod [Fri, 17 Nov 2000 22:46:30 +0000 (17 22:46 +0000)]
2000-11-17 Andrew MacLeod <amacleod@redhat.com>
* rtl.h (SUBREG_REGNO_OFFSET, SUBREG_REGNO): Remove macros.
(subreg_regno_offset, subreg_regno): Define prototypes.
* rtlanal.c (refers_to_regno_p, reg_overlap_mentioned_p): Use
subreg_regno function.
(subreg_regno_offset): New function replaces SUBREG_REGNO_OFFSET macro.
(subreg_regno): New function to replace SUBREG_REGNO macro.
* alias.c (nonlocal_reference_p): Use subreg_regno function.
* caller-save.c (add_stored_regs): Use subreg_regno_offset function.
* emit-rtl.c (subreg_hard_regno, gen_lowpart_common, gen_highpart,
operand_subword): Use new subreg_regno_* functions.
* flow.c (mark_set_1): Use subreg_regno_offset function.
* function.c (purge_single_hard_subreg_set): Use subreg_regno_offset
function.
* global.c (set_preference): Use subreg_regno_offset function.
* integrate.c (mark_stores): Use subreg_regno_offset function.
* jump.c (rtx_renumbered_equal_p, true_regnum): Use subreg_regno_offset
function.
* local-alloc.c (combine_regs): Use subreg_regno_offset function.
* recog.c (constrain_operands): Use subreg_regno_offset function.
* reg-stack.c (get_true_reg): Use subreg_regno_offset function.
* reload.c (reload_inner_reg_of_subreg, push_reload, find_dummy_reload,
operands_match_p, find_reloads, find_reloads_toplev,
find_reloads_address_1, find_replacement, refers_to_regno_for_reload_p,
reg_overlap_mentioned_for_reload_p): Use new subreg_regno_* functions.
* reload1.c (forget_old_reloads_1, choose_reload_regs,
reload_combine_note_store, move2add_note_store): Use new subreg_regno_*
functions.
* resource.c (update_live_status, mark_referenced_resources): Use
subreg_regno function.
* tm.texi (SUBREG_REGNO_OFFSET): Document macro.
* config/a29k/a29k.c (gpc_reg_operand): Use subreg_regno function.
* config/d30v/d30v.c (d30v_split_double,
d30v_print_operand_memory_reference): Use subreg_regno_offset function.
* config/mips/mips.c (mips_move_1word, mips_move_2words,
mips_secondary_reload_class): Use subreg_regno_offset function.
* config/mn10200/mn10200.c (print_operand): Use subreg_regno function.
* config/mn10300/mn10300.c (print_operand): Use subreg_regno function.
* config/pyr/pyr.c (subreg_overlap_mentioned_p, consecutive_operands):
Use subreg_regno_offset function.
* config/sh/sh.c (output_movedouble, regs_used,
machine_dependent_reorg): Use new subreg_regno_* functions.
* config/sh/sh.md: Use subreg_regno function.
* config/v850/v850.c (print_operand, output_move_double): Use
subreg_regno function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/subreg-byte-branch@37530 138bc75d-0d04-0410-961f-82ee72b054a4
jakub [Fri, 17 Nov 2000 21:45:23 +0000 (17 21:45 +0000)]
* expmed.c (store_bit_field): Set SUBREG_BYTE correctly on big
endian.
(extract_bit_field): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/subreg-byte-branch@37527 138bc75d-0d04-0410-961f-82ee72b054a4
jakub [Fri, 3 Nov 2000 20:27:22 +0000 (3 20:27 +0000)]
* emit-rtl.c (operand_subword): Return const0_rtx if looking for a
word outside of OP.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/subreg-byte-branch@37233 138bc75d-0d04-0410-961f-82ee72b054a4
amacleod [Tue, 3 Oct 2000 01:08:36 +0000 (3 01:08 +0000)]
2000-10-01 Andrew MacLeod <amacleod@redhat.com>
* dwarf2out.c (loc_descriptor): use SUBREG_REG to get the register.
* emit-rtl.c (gen_lowpart_common, gen_imagpart): Spacing nits.
(gen_highpart, constant_subword, operand_subword): Spacing nits.
* function.c (purge_single_hard_subreg_set): Correct last change, find
correct offsets for subreg.
* reload.c (push_reload): Replace missing clause.
Index: gcc/dwarf2out.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/dwarf2out.c,v
retrieving revision 1.205.2.1
diff -c -p -r1.205.2.1 dwarf2out.c
*** dwarf2out.c 2000/09/24 22:21:31 1.205.2.1
--- dwarf2out.c 2000/10/03 00:15:35
*************** loc_descriptor (rtl)
*** 7363,7369 ****
up an entire register. For now, just assume that it is
legitimate to make the Dwarf info refer to the whole register which
contains the given subreg. */
! rtl = XEXP (rtl, 0);
/* Fall through. */
--- 7363,7369 ----
up an entire register. For now, just assume that it is
legitimate to make the Dwarf info refer to the whole register which
contains the given subreg. */
! rtl = SUBREG_REG (rtl);
/* Fall through. */
Index: gcc/emit-rtl.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/emit-rtl.c,v
retrieving revision 1.147.2.1
diff -c -p -r1.147.2.1 emit-rtl.c
*** emit-rtl.c 2000/09/24 22:21:31 1.147.2.1
--- emit-rtl.c 2000/10/03 00:15:36
*************** gen_lowpart_common (mode, x)
*** 830,836 ****
if (REGNO (x) < FIRST_PSEUDO_REGISTER)
{
int final_regno = REGNO (x) +
! SUBREG_REGNO_OFFSET(REGNO (x), GET_MODE (x), offset, mode);
/* If the final regno is not valid for MODE, punt. */
/* ??? We do allow it if the current REG is not valid for
--- 830,836 ----
if (REGNO (x) < FIRST_PSEUDO_REGISTER)
{
int final_regno = REGNO (x) +
! SUBREG_REGNO_OFFSET (REGNO (x), GET_MODE (x), offset, mode);
/* If the final regno is not valid for MODE, punt. */
/* ??? We do allow it if the current REG is not valid for
*************** gen_imagpart (mode, x)
*** 1127,1133 ****
return XEXP (x, 1);
else if (WORDS_BIG_ENDIAN)
return gen_lowpart (mode, x);
! else if (!WORDS_BIG_ENDIAN
&& GET_MODE_BITSIZE (mode) < BITS_PER_WORD
&& REG_P (x)
&& REGNO (x) < FIRST_PSEUDO_REGISTER)
--- 1127,1133 ----
return XEXP (x, 1);
else if (WORDS_BIG_ENDIAN)
return gen_lowpart (mode, x);
! else if (! WORDS_BIG_ENDIAN
&& GET_MODE_BITSIZE (mode) < BITS_PER_WORD
&& REG_P (x)
&& REGNO (x) < FIRST_PSEUDO_REGISTER)
*************** gen_highpart (mode, x)
*** 1266,1272 ****
if (REGNO (x) < FIRST_PSEUDO_REGISTER)
{
int final_regno = REGNO (x) +
! SUBREG_REGNO_OFFSET(REGNO (x), GET_MODE (x), offset, mode);
/* integrate.c can't handle parts of a return value register.
??? Then integrate.c should be fixed!
--- 1266,1272 ----
if (REGNO (x) < FIRST_PSEUDO_REGISTER)
{
int final_regno = REGNO (x) +
! SUBREG_REGNO_OFFSET (REGNO (x), GET_MODE (x), offset, mode);
/* integrate.c can't handle parts of a return value register.
??? Then integrate.c should be fixed!
*************** constant_subword (op, offset, mode)
*** 1377,1383 ****
else if (BITS_PER_WORD == 16)
{
val = k[offset >> 1];
! if ((offset & 1) == !WORDS_BIG_ENDIAN)
val >>= 16;
val &= 0xffff;
return GEN_INT (val);
--- 1377,1383 ----
else if (BITS_PER_WORD == 16)
{
val = k[offset >> 1];
! if ((offset & 1) == ! WORDS_BIG_ENDIAN)
val >>= 16;
val &= 0xffff;
return GEN_INT (val);
*************** constant_subword (op, offset, mode)
*** 1405,1413 ****
#if HOST_BITS_PER_WIDE_INT >= 64
else if (BITS_PER_WORD >= 64 && offset <= 1)
{
! val = k[offset*2 + ! WORDS_BIG_ENDIAN];
val = (((val & 0xffffffff) ^ 0x80000000) - 0x80000000) << 32;
! val |= (HOST_WIDE_INT) k[offset*2 + WORDS_BIG_ENDIAN] & 0xffffffff;
return GEN_INT (val);
}
#endif
--- 1405,1413 ----
#if HOST_BITS_PER_WIDE_INT >= 64
else if (BITS_PER_WORD >= 64 && offset <= 1)
{
! val = k[offset * 2 + ! WORDS_BIG_ENDIAN];
val = (((val & 0xffffffff) ^ 0x80000000) - 0x80000000) << 32;
! val |= (HOST_WIDE_INT) k[offset * 2 + WORDS_BIG_ENDIAN] & 0xffffffff;
return GEN_INT (val);
}
#endif
*************** constant_subword (op, offset, mode)
*** 1456,1462 ****
if (BITS_PER_WORD == 16)
{
! if ((offset & 1) == !WORDS_BIG_ENDIAN)
val >>= 16;
val &= 0xffff;
}
--- 1456,1462 ----
if (BITS_PER_WORD == 16)
{
! if ((offset & 1) == ! WORDS_BIG_ENDIAN)
val >>= 16;
val &= 0xffff;
}
*************** operand_subword (op, offset, validate_ad
*** 1602,1608 ****
if (REGNO (op) < FIRST_PSEUDO_REGISTER)
{
int final_regno = REGNO (op) +
! SUBREG_REGNO_OFFSET(REGNO (op), GET_MODE (op),
offset * UNITS_PER_WORD,
word_mode);
--- 1602,1608 ----
if (REGNO (op) < FIRST_PSEUDO_REGISTER)
{
int final_regno = REGNO (op) +
! SUBREG_REGNO_OFFSET (REGNO (op), GET_MODE (op),
offset * UNITS_PER_WORD,
word_mode);
Index: gcc/function.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/function.c,v
retrieving revision 1.220.2.2
diff -c -p -r1.220.2.2 function.c
*** function.c 2000/09/30 13:32:25 1.220.2.2
--- function.c 2000/10/03 00:15:39
*************** purge_single_hard_subreg_set (pattern)
*** 3409,3418 ****
{
rtx reg = SET_DEST (pattern);
enum machine_mode mode = GET_MODE (SET_DEST (pattern));
! if (GET_CODE (reg) == SUBREG && REGNO (reg) < FIRST_PSEUDO_REGISTER)
{
! reg = gen_rtx_REG (mode, SUBREG_REGNO (reg));
SET_DEST (pattern) = reg;
}
}
--- 3409,3430 ----
{
rtx reg = SET_DEST (pattern);
enum machine_mode mode = GET_MODE (SET_DEST (pattern));
+ int offset = 0;
+
+ if (GET_CODE (reg) == SUBREG && GET_CODE (SUBREG_REG (reg)) == REG
+ && REGNO (SUBREG_REG (reg)) < FIRST_PSEUDO_REGISTER)
+ {
+ offset = SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (reg)),
+ GET_MODE (SUBREG_REG (reg)),
+ SUBREG_BYTE (reg),
+ GET_MODE (reg));
+ reg = SUBREG_REG (reg);
+ }
+
! if (REGNO (reg) < FIRST_PSEUDO_REGISTER)
{
! reg = gen_rtx_REG (mode, REGNO (reg) + offset);
SET_DEST (pattern) = reg;
}
}
Index: gcc/reload.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/reload.c,v
retrieving revision 1.130.2.2
diff -c -p -r1.130.2.2 reload.c
*** reload.c 2000/09/30 13:32:26 1.130.2.2
--- reload.c 2000/10/03 00:15:41
*************** push_reload (in, out, inloc, outloc, cla
*** 1051,1056 ****
--- 1051,1057 ----
(except in the case of STRICT_LOW_PART,
and in that case the constraint should label it input-output.) */
if (out != 0 && GET_CODE (out) == SUBREG
+ && (SUBREG_BYTE (out) == 0 || strict_low)
#ifdef CLASS_CANNOT_CHANGE_MODE
&& (class != CLASS_CANNOT_CHANGE_MODE
|| ! CLASS_CANNOT_CHANGE_MODE_P (GET_MODE (SUBREG_REG (out)),
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/subreg-byte-branch@36697 138bc75d-0d04-0410-961f-82ee72b054a4
amacleod [Sat, 30 Sep 2000 13:32:26 +0000 (30 13:32 +0000)]
2000-09-30 Andrew MacLeod <amacleod@redhat.com>
* function.c (purge_single_hard_subreg_set): Dont use SUBREG_WORD.
* recog.c (validate_replace_rtx_1): Use SUBREG_BYTE.
* reload.c (reload_inner_reg_of_subreg): SUBREG_REGNO should be used
on the entire subreg rtx.
* config/i960/i960.md (zero_extendqihi2): SUBREG's are byte offsets.
* config/m68hc11/m68hc11.c (m68hc11_gen_lowpart): Don't use SUBREG_WORD.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/subreg-byte-branch@36681 138bc75d-0d04-0410-961f-82ee72b054a4
rth [Sun, 24 Sep 2000 22:21:49 +0000 (24 22:21 +0000)]
Drop Jakub's most recent SUBREG_BYTE patches onto the branch.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/subreg-byte-branch@36594 138bc75d-0d04-0410-961f-82ee72b054a4
(no author) [Sun, 24 Sep 2000 20:52:25 +0000 (24 20:52 +0000)]
This commit was manufactured by cvs2svn to create branch
'subreg-byte-branch'.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/subreg-byte-branch@36590 138bc75d-0d04-0410-961f-82ee72b054a4
aldyh [Sun, 24 Sep 2000 20:52:25 +0000 (24 20:52 +0000)]
add self to maintainers list
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36589 138bc75d-0d04-0410-961f-82ee72b054a4
kenner [Sun, 24 Sep 2000 15:35:44 +0000 (24 15:35 +0000)]
* expr.c (store_field): If BITSIZE is negative, use size of type.
(expand_expr, case COMPONENT_EXPR): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36588 138bc75d-0d04-0410-961f-82ee72b054a4
neil [Sun, 24 Sep 2000 10:42:09 +0000 (24 10:42 +0000)]
* cpplex.c: Update TODO comment.
* cpplib.c (do_error, do_warning): Merge common code of
do_error and do_warning into do_diagnostic. Use it.
(do_diagnostic): New function.
* cpplib.h: Fix comment typo.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36587 138bc75d-0d04-0410-961f-82ee72b054a4
jsm28 [Sun, 24 Sep 2000 09:52:53 +0000 (24 09:52 +0000)]
* c-common.c (check_format_info): Warn for a wide character string
used as a non-wide format argument.
testsuite:
* gcc.dg/c90-printf-1.c: Add test for wide string format.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36586 138bc75d-0d04-0410-961f-82ee72b054a4
jsm28 [Sun, 24 Sep 2000 09:50:30 +0000 (24 09:50 +0000)]
* builtins.def (BUILT_IN_LLABS): Add.
* builtins.c (expand_builtin): Also abort on BUILT_IN_LLABS.
* c-common.c (c_common_nodes_builtins): Create builtin functions
__builtin_llabs, and plain llabs unless no_nonansi_builtins
outside of C99 mode.
(expand_tree_builtin): Handle BUILT_IN_LLABS.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36585 138bc75d-0d04-0410-961f-82ee72b054a4
law [Sun, 24 Sep 2000 07:45:11 +0000 (24 07:45 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36584 138bc75d-0d04-0410-961f-82ee72b054a4
neil [Sat, 23 Sep 2000 21:41:41 +0000 (23 21:41 +0000)]
* cpphash.h (CPP_RESERVE, CPP_PUTS_Q, CPP_PUTS, CPP_PUTC_Q,
CPP_PUTC, DUMMY_TOKEN, NO_DUMMY_TOKEN): Delete.
* cpplex.c (_cpp_expand_token_space, _cpp_init_toklist,
_cpp_free_toklist): No need to worry about extra dummy token
at the start of token lists any more.
(trigraph_ok): Only warn outside comments.
(skip_block_comment): Set and clear lexing_comment.
(skip_line_comment): Take a cpp_reader not cpp_buffer.
Set and clear lexing_comment.
(parse_number): Handle leading '.' indicated by pfile->seen_dot.
(check_long_token): Delete.
(lex_percent, lex_dot): New subroutines of lex_token to
handle lexing of '.' and '%' without lookback.
(lex_token): Use lex_dot and lex_percent.
(lex_line): Don't check for LIST_OFFSET.
(_cpp_init_input_buffer): Update for new _cpp_init_toklist.
* cpplib.c (_cpp_parse_assertion): Similarly.
(cpp_push_buffer): Initialize extra_char.
* cpplib.h (LIST_OFFSET): Delete.
(struct cpp_buffer): New member extra_char.
(struct lexer_state): New members lexing_comment and seen_dot.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36582 138bc75d-0d04-0410-961f-82ee72b054a4
mmitchel [Sat, 23 Sep 2000 17:09:39 +0000 (23 17:09 +0000)]
* Make-lang.in (JAVA_SRCS): Include java-tree.h.
* Makefile.in (parse.o): Depend on ggc.h.
(class.o): Likewise.
(constants.o): Likewise.
(decl.o): Likewise.
(expr.o): Likewise.
(jcf-parse.o): Likewise.
(jcf-write.o): Likewise.
(mangle.o): Likewise.
* class.c: Include ggc.h.
(build_static_field_ref): Register GC roots.
(layout_class): Likewise.
(init_class_processing): Likewise.
* constants.c: Include ggc.h.
(current_constant_pool_data_ref): Remove.
(tag_nodes): Move it to ...
(get_tag_node): ... here. Register GC roots.
* decl.c: Include ggc.h. Remove many global tree definitions.
(throw_node): Define.
(java_global_trees): Likewise.
(predef_filenames): Make the size a constant.
(init_decl_processing): Adjust accordingly.
(init_decl_processing): Call init_jcf_parse. Register GC roots.
* expr.c: Include ggc.h.
(init_expr_processing): Register GC roots.
(build_invokeinterface): Likewise.
* java-tree.h: Replace extern tree declarations with macros.
(java_global_trees): New variable.
(java_tree_index): New enumeration.
(init_jcf_parse): Declare.
* jcf-parse.c: Include ggc.h.
(current_class): Remove declaration.
(main_class): Likewise.
(all_class_list): Likewise.
(predefined_filename_p): Adjust for constant size of
predef_filenames.
(init_jcf_parse): New function.
* jcf-write.c: Include ggc.h.
(generate_classfile): Register GC roots.
(append_synthetic_attribute): Likewise.
(append_innerclass_attribute_entry): Likewise.
* lang.c: Include ggc.h.
(lang_print_error): Register GC roots.
* parse.h (struct parser_ctxt): Rename fields to avoid conflicts
with macros.
* parse.y: Include ggc.h.
(wfl_operator): Remove.
(goal): Register GC roots.
(java_pop_parser_context): Adjust for new field names.
(java_parser_context_save_global): Likewse.
(java_parser_context_restore_global): Likewise.
(java_parser_context_suspend): Likewise.
(java_parser_context_resume): Likewise.
(verify_constructor_circularity): Register GC roots.
(lookup_cl): Likewise.
(java_reorder_fields): Likewise.
(build_current_this): Likewise.
(class_in_current_package): Likewise.
(argument_types_convertible): Likewise.
(patch_cast): Rename wfl_op parameter to avoid macro conflicts.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36581 138bc75d-0d04-0410-961f-82ee72b054a4
sirl [Sat, 23 Sep 2000 17:01:47 +0000 (23 17:01 +0000)]
2000-09-23 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* stdstreams.cc: Include <libio.h>, not "libio.h".
* iolibio.h: Likewise.
(_IO_pos_BAD): Use _IO_off_t instead of _IO_fpos_t.
* libio.h (_IO_USER_LOCK): Define.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36580 138bc75d-0d04-0410-961f-82ee72b054a4
jason [Sat, 23 Sep 2000 15:23:13 +0000 (23 15:23 +0000)]
* config/rs6000/x-aix41 (CLIB): Define here.
* config/rs6000/t-aix43: Not here.
* config/rs6000/t-aix41: Or here. Remove.
* configure.in: Don't use it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36579 138bc75d-0d04-0410-961f-82ee72b054a4
jason [Sat, 23 Sep 2000 15:16:29 +0000 (23 15:16 +0000)]
add missing error marker
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36578 138bc75d-0d04-0410-961f-82ee72b054a4
neil [Sat, 23 Sep 2000 11:47:05 +0000 (23 11:47 +0000)]
* gcc.dg/cpp/
20000510-1.S: Rename assembler.S. Add test
that we continue to preprocess after an unknown directive.
* gcc.dg/cpp/tr-str.c: Run-time test for traditional
stringification.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36577 138bc75d-0d04-0410-961f-82ee72b054a4
law [Sat, 23 Sep 2000 07:45:07 +0000 (23 07:45 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36575 138bc75d-0d04-0410-961f-82ee72b054a4
jason [Fri, 22 Sep 2000 19:10:58 +0000 (22 19:10 +0000)]
fix
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36574 138bc75d-0d04-0410-961f-82ee72b054a4
jason [Fri, 22 Sep 2000 19:03:53 +0000 (22 19:03 +0000)]
revert
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36573 138bc75d-0d04-0410-961f-82ee72b054a4
jason [Fri, 22 Sep 2000 18:24:29 +0000 (22 18:24 +0000)]
* configure.in: Fix checks for assembler features when using a
one-tree assembler that has not yet been built.
Fix --disable-threads.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36572 138bc75d-0d04-0410-961f-82ee72b054a4
geoffk [Fri, 22 Sep 2000 18:07:49 +0000 (22 18:07 +0000)]
In gcc/ChangeLog:
* stmt.c (expand_asm_operands): Allow # in constraints.
In gcc/testsuite/ChangeLog:
* gcc.c-torture/compile/
20000922-1.c: New file.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36571 138bc75d-0d04-0410-961f-82ee72b054a4
jason [Fri, 22 Sep 2000 17:59:46 +0000 (22 17:59 +0000)]
* c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace.
* dbxout.c (dbxout_symbol_name): Just use DECL_NAME for
function-local names.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36570 138bc75d-0d04-0410-961f-82ee72b054a4
law [Fri, 22 Sep 2000 07:45:12 +0000 (22 07:45 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36569 138bc75d-0d04-0410-961f-82ee72b054a4
mmitchel [Fri, 22 Sep 2000 07:22:07 +0000 (22 07:22 +0000)]
* toplev.c (warn_disabled_optimization): Declare new warning flag.
* flags.h (warn_disabled_optimization): Add it here.
* gcse.c (gcse_main): Add warning when disabled.
* invoke.texi: Document -Wdisabled-optimization
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36568 138bc75d-0d04-0410-961f-82ee72b054a4
jason [Thu, 21 Sep 2000 22:05:48 +0000 (21 22:05 +0000)]
* decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36567 138bc75d-0d04-0410-961f-82ee72b054a4
jason [Thu, 21 Sep 2000 21:47:55 +0000 (21 21:47 +0000)]
* decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36566 138bc75d-0d04-0410-961f-82ee72b054a4
jason [Thu, 21 Sep 2000 21:42:02 +0000 (21 21:42 +0000)]
* dwarf2out.c (add_const_value_attribute): Multiply by length, not 4.
* dwarf2out.c (tree_add_const_value_attribute): New fn.
(gen_variable_die): Call it for non-definitions.
* dwarf2out.c (die_struct): Add die_mark field.
(mark_dies, unmark_dies): New fns.
(clear_die_sizes): Remove.
(print_die): Check die_symbol rather than die_offset.
(build_abbrev_table, output_pubnames, output_aranges): Check
die_mark rather than die_offset.
(output_comp_unit): Move calc_die_sizes after build_abbrev_table.
Call mark_dies.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36565 138bc75d-0d04-0410-961f-82ee72b054a4
neil [Thu, 21 Sep 2000 18:01:22 +0000 (21 18:01 +0000)]
* cppfiles.c (lookup_include_file): Rename to open_file.
Always create a splay tree value, even on syscall failures.
Negative entries indicated by fd == -2.
Re-open files closed in the meantime.
(_cpp_fake_include): Create a negative splay tree entry.
(find_include_file, cpp_read_file): Update for function name
change.
* gcc.gd/cpp/mi4.c: Testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36564 138bc75d-0d04-0410-961f-82ee72b054a4
nickc [Thu, 21 Sep 2000 17:36:19 +0000 (21 17:36 +0000)]
Enable multilibs for ARM and Thumb modes
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36563 138bc75d-0d04-0410-961f-82ee72b054a4
nickc [Thu, 21 Sep 2000 17:33:51 +0000 (21 17:33 +0000)]
Fix compile time warnings
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36562 138bc75d-0d04-0410-961f-82ee72b054a4
nickc [Thu, 21 Sep 2000 17:30:11 +0000 (21 17:30 +0000)]
Add extra tests (for modulos of very large dividends by very small divisors)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36561 138bc75d-0d04-0410-961f-82ee72b054a4
law [Thu, 21 Sep 2000 07:45:08 +0000 (21 07:45 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36560 138bc75d-0d04-0410-961f-82ee72b054a4
aj [Thu, 21 Sep 2000 05:37:11 +0000 (21 05:37 +0000)]
Fix typo in applying last patch to configure.in and regenerate configure.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36559 138bc75d-0d04-0410-961f-82ee72b054a4
aj [Thu, 21 Sep 2000 05:30:35 +0000 (21 05:30 +0000)]
2000-09-20 J. David Anglin <dave@hiauly1.hia.nrc.ca>
* configure.in: Correct test of gcc_cv_glibc.
* configure: Rebuilt.
* config.in: Rebuilt.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36558 138bc75d-0d04-0410-961f-82ee72b054a4
aj [Thu, 21 Sep 2000 03:43:14 +0000 (21 03:43 +0000)]
* errfn.c: Move declaration of cp_printer and cp_printers to ...
* cp-tree.h: ... here.
* error.c: Remove declaration of cp_printer.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36557 138bc75d-0d04-0410-961f-82ee72b054a4
ghazi [Thu, 21 Sep 2000 01:59:07 +0000 (21 01:59 +0000)]
* builtins.c (expand_builtin_fputs): Also expand when length!=1.
(expand_builtin): Handle BUILT_IN_FWRITE.
* builtins.def (BUILT_IN_FWRITE): New entry.
* c-common.c (c_common_nodes_and_builtins): Declare __builtin_fwrite.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36556 138bc75d-0d04-0410-961f-82ee72b054a4
kenner [Wed, 20 Sep 2000 20:06:55 +0000 (20 20:06 +0000)]
* gcc.c (modify_target): New variable and struct.
(process_command): Handle MODIFY_TARGET_NAME.
* tm.texi (MODIFY_TARGET_NAME): Add documentation for new macro.
* config/pa/pa.h (MODIFY_TARGET_NAME): New macro.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36555 138bc75d-0d04-0410-961f-82ee72b054a4
kenner [Wed, 20 Sep 2000 19:35:10 +0000 (20 19:35 +0000)]
* c-decl.c (finish_decl): Add else's to avoid referencing
TYPE_DOMAIN of an ERROR_MARK.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36554 138bc75d-0d04-0410-961f-82ee72b054a4
mmitchel [Wed, 20 Sep 2000 18:28:36 +0000 (20 18:28 +0000)]
* tree.c (mark_local_for_remap_r): Handle CASE_LABELs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36553 138bc75d-0d04-0410-961f-82ee72b054a4
denisc [Wed, 20 Sep 2000 18:01:20 +0000 (20 18:01 +0000)]
* config/avr/avr.c (adjust_insn_length): Adjust lengths of
`reload_in*' insns.
* config/avr/avr.md (neghi2): Add alternative for input and output
operands in different registers, as in negsi2.
(*negsi2): Remove '*' from the name. Use "movw" if available.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36552 138bc75d-0d04-0410-961f-82ee72b054a4
hp [Wed, 20 Sep 2000 10:33:05 +0000 (20 10:33 +0000)]
* except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and
users.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36551 138bc75d-0d04-0410-961f-82ee72b054a4
bkoz [Wed, 20 Sep 2000 08:19:07 +0000 (20 08:19 +0000)]
2000-09-19 Benjamin Kosnik <bkoz@purist.soma.redhat.com>
* src/localename.cc (locale::_Imp) : Remove typedefs.
* bits/localefwd.h (locale::locale(const locale& __other, _Facet*
__f): Consistency check,, call _Imp ctor with refererence argument
of 1.
* bits/localefwd.h: Change _S_num_categories to
_S_categories_num. Add new data member, _S_facets_num, which is
the number of standard facets.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36550 138bc75d-0d04-0410-961f-82ee72b054a4
law [Wed, 20 Sep 2000 07:45:07 +0000 (20 07:45 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36549 138bc75d-0d04-0410-961f-82ee72b054a4
wilson [Wed, 20 Sep 2000 01:22:44 +0000 (20 01:22 +0000)]
Fix glibc make check failure.
* config/ia64/crtbegin.asm (__dso_handle): Delete use of
HAVE_GAS_HIDDEN macro.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36548 138bc75d-0d04-0410-961f-82ee72b054a4
pme [Tue, 19 Sep 2000 21:54:48 +0000 (19 21:54 +0000)]
2000-09-19 Phil Edwards <pme@sources.redhat.com>
* docs/21_strings/howto.html: Fix editor lossage from last commit.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36547 138bc75d-0d04-0410-961f-82ee72b054a4
pme [Tue, 19 Sep 2000 21:44:30 +0000 (19 21:44 +0000)]
2000-09-19 Phil Edwards <pme@sources.redhat.com>
* docs/thanks.html: More thanks.
* docs/18_support/howto.html: Fix thinko.
* docs/21_strings/howto.html: Minor tweaks and updates to URLs.
Redo the string transformation notes and link to...
* docs/22_locale/howto.html: ...here.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36546 138bc75d-0d04-0410-961f-82ee72b054a4
neil [Tue, 19 Sep 2000 21:41:26 +0000 (19 21:41 +0000)]
* cpplex.c (lex_line): Drop the EOF token for unknown
directives in assembler.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36545 138bc75d-0d04-0410-961f-82ee72b054a4
pme [Tue, 19 Sep 2000 21:41:11 +0000 (19 21:41 +0000)]
Dummy checkin of footer.html to force web update.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36544 138bc75d-0d04-0410-961f-82ee72b054a4
dje [Tue, 19 Sep 2000 20:36:39 +0000 (19 20:36 +0000)]
* configure.in: Add AIX multithread support fragment.
* config/aix.mt: Define _PTHREADS in MT_CFLAGS if -pthread
commandline option present.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36543 138bc75d-0d04-0410-961f-82ee72b054a4
dje [Tue, 19 Sep 2000 20:31:53 +0000 (19 20:31 +0000)]
Fix previous ChangeLog entry
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36542 138bc75d-0d04-0410-961f-82ee72b054a4
dje [Tue, 19 Sep 2000 20:30:27 +0000 (19 20:30 +0000)]
* configure.in: Allow enable_threads_flag value of "aix". Define
thread_file as "aix" for AIX 4.3 and above..
* configure: Regenerated.
* gthr-aix.h: New file.
* rs6000/t-aix43: Replace soft-float multilib with pthread.
Remove 403 processor multilib match. Fix rios2 processor multilib
match.
* rs6000/aix.h (ASM_DECLARE_FUNCTION_NAME): Use function_section
to return to appropriate csect.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36541 138bc75d-0d04-0410-961f-82ee72b054a4
ghazi [Tue, 19 Sep 2000 18:19:44 +0000 (19 18:19 +0000)]
* builtins.c (is_valid_printf_arglist, expand_builtin_printf): New
functions.
(expand_builtin_fputs): Set `target' parameter for `expand_expr'.
(expand_builtin): Handle BUILT_IN_PUTCHAR, BUILT_IN_PUTS and
BUILT_IN_PRINTF.
* builtins.def (BUILT_IN_PUTCHAR, BUILT_IN_PUTS, BUILT_IN_PRINTF):
New entries.
* c-common.c (init_function_format_info): Handle __builtin_printf.
Set `check_function_format_ptr'.
(c_common_nodes_and_builtins): Set `puts_ftype' and
`printf_ftype'. Declare __builtin_putchar, __builtin_puts,
__builtin_printf and printf.
* tree.c, tree.h (check_function_format_ptr): Declare.
testsuite:
* g++.old-deja/g++.other/virtual8.C: Declare printf correctly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36540 138bc75d-0d04-0410-961f-82ee72b054a4
neil [Tue, 19 Sep 2000 17:28:46 +0000 (19 17:28 +0000)]
* cppfiles.c (read_include_file): Take no special action for
zero-length files.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36539 138bc75d-0d04-0410-961f-82ee72b054a4
crux [Tue, 19 Sep 2000 16:43:36 +0000 (19 16:43 +0000)]
Fix shorten_branches bugs
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36538 138bc75d-0d04-0410-961f-82ee72b054a4
rth [Tue, 19 Sep 2000 16:29:22 +0000 (19 16:29 +0000)]
Fix target selector regexp.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36537 138bc75d-0d04-0410-961f-82ee72b054a4
rth [Tue, 19 Sep 2000 16:01:13 +0000 (19 16:01 +0000)]
Kill recombine_givs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36536 138bc75d-0d04-0410-961f-82ee72b054a4
crux [Tue, 19 Sep 2000 15:33:16 +0000 (19 15:33 +0000)]
Some sh.md fixes (fallout from earlier changes)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36535 138bc75d-0d04-0410-961f-82ee72b054a4
rth [Tue, 19 Sep 2000 14:41:56 +0000 (19 14:41 +0000)]
* config/i386/i386.h (CPP_CPU_SPEC): Define i586 and i686 symbols
in addition to pentium and pentiumpro symbols.
(CPP_CPU_DEFAULT_SPEC): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36534 138bc75d-0d04-0410-961f-82ee72b054a4
rth [Tue, 19 Sep 2000 14:26:38 +0000 (19 14:26 +0000)]
* c-typeck.c (c_expand_asm_operands): Restore the output tree
after expanding.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36533 138bc75d-0d04-0410-961f-82ee72b054a4
rth [Tue, 19 Sep 2000 13:39:10 +0000 (19 13:39 +0000)]
* stmt.c (expand_expr_stmt): Only call warn_if_unused_value
if the tree has side effects.
(warn_if_unused_value): Do not warn about void constructs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36532 138bc75d-0d04-0410-961f-82ee72b054a4
rth [Tue, 19 Sep 2000 07:59:58 +0000 (19 07:59 +0000)]
* c-decl.c (poplevel): Invoke warn_about_unused_variables.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36531 138bc75d-0d04-0410-961f-82ee72b054a4
law [Tue, 19 Sep 2000 07:45:08 +0000 (19 07:45 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36530 138bc75d-0d04-0410-961f-82ee72b054a4
rth [Tue, 19 Sep 2000 07:35:55 +0000 (19 07:35 +0000)]
* unroll.c (copy_loop_body): Update LABEL_NUSES before
calling invert_jump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36529 138bc75d-0d04-0410-961f-82ee72b054a4
rth [Tue, 19 Sep 2000 07:33:44 +0000 (19 07:33 +0000)]
* gcc.dg/compare2.c (case 10): XFAIL.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36528 138bc75d-0d04-0410-961f-82ee72b054a4
mmitchel [Tue, 19 Sep 2000 07:29:33 +0000 (19 07:29 +0000)]
* decl.c (start_function): Robustify.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36527 138bc75d-0d04-0410-961f-82ee72b054a4
bkoz [Tue, 19 Sep 2000 06:47:52 +0000 (19 06:47 +0000)]
2000-09-18 Benjamin Kosnik <bkoz@purist.soma.redhat.com>
* src/locale-inst.cc: Add time_put_byname and
time_get_byname instantiations.
* bits/locale_facets.h: Correct default, private derivation to
public derivation in _byname declarations.
* src/locale.cc (locale::classic()): Simplify.
* src/localename.cc (locale::_Impl:: _Impl(const _Impl& __other,
const string& __name, category __cat, size_t __refs): Re-work for
named locales.
(_M_normalize_category_names): Remove.
* testsuite/22_locale/global_templates.cc (test01): Tweaks.
* testsuite/22_locale/ctor_copy_dtor.cc (test01): More tests.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36526 138bc75d-0d04-0410-961f-82ee72b054a4
geoffk [Tue, 19 Sep 2000 04:49:44 +0000 (19 04:49 +0000)]
* combine.c (can_combine_p): Don't substitute an ASM_OPERANDS
into anything.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36525 138bc75d-0d04-0410-961f-82ee72b054a4
ghazi [Tue, 19 Sep 2000 03:26:11 +0000 (19 03:26 +0000)]
* Makefile.in (c-common.o): Depend on diagnostic.h.
* c-common.c: Include diagnostic.h.
(tfaff): Delete.
(status_warning): New function.
(check_format_info, maybe_read_dollar_number, check_format_types,
finish_dollar_format_checking, check_function_format): Accept a
`status' parameter. All callers changed.
* c-common.h (check_function_format): Accept a `status' parameter.
* c-typeck.c: Update call to `check_function_format'.
cp:
* cp-tree.h (check_function_format): Accept a `status' parameter.
* call.c, typeck.c: Updates calls to `check_function_format'.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36524 138bc75d-0d04-0410-961f-82ee72b054a4
rth [Tue, 19 Sep 2000 02:14:33 +0000 (19 02:14 +0000)]
* c-decl.c (c_expand_body): Call mark_varargs before
expand_function_start.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36523 138bc75d-0d04-0410-961f-82ee72b054a4
rth [Tue, 19 Sep 2000 02:10:27 +0000 (19 02:10 +0000)]
* gcc.c-torture/execute/
20000906-1.c: Move ...
* gcc.dg/
20000906-1.c: ... here. Only run on targets
that support __builtin_trap.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36522 138bc75d-0d04-0410-961f-82ee72b054a4
geoffk [Tue, 19 Sep 2000 01:25:31 +0000 (19 01:25 +0000)]
* config/rs6000/eabi-cn.asm: Use /**/ to delimit comments, not #.
* config/rs6000/eabi-ci.asm: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36521 138bc75d-0d04-0410-961f-82ee72b054a4
rth [Mon, 18 Sep 2000 23:48:35 +0000 (18 23:48 +0000)]
* emit-rtl.c (init_emit_once): Initialize const_tiny_rtx
for BImode.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36520 138bc75d-0d04-0410-961f-82ee72b054a4
wilson [Mon, 18 Sep 2000 23:19:53 +0000 (18 23:19 +0000)]
Fix IA-64 abort compiling ping.
* unroll.c (loop_iterations): Pass increment to extend_for_giv_value
before passing it to fold_rtx_mult_add.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36518 138bc75d-0d04-0410-961f-82ee72b054a4
wilson [Mon, 18 Sep 2000 22:48:52 +0000 (18 22:48 +0000)]
Fix for IA-64 abort compiling xaaPCache.c from XFree86
* unroll.c (final_giv_value): Pass increment through
extend_value_for_giv before passing it to emit_iv_add_mult.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36517 138bc75d-0d04-0410-961f-82ee72b054a4
pthomas [Mon, 18 Sep 2000 22:05:52 +0000 (18 22:05 +0000)]
2000-09-18 Bruno Haible <haible@clisp.cons.org>
* intl/dcgettext.c: Outside libc, use local variable names that don't
clash with those in libc.
* intl/bindtextdom.c: Likewise.
* intl/textdomain.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36516 138bc75d-0d04-0410-961f-82ee72b054a4
wilson [Mon, 18 Sep 2000 21:37:37 +0000 (18 21:37 +0000)]
Fix ia64-linux kernel fn_hash() miscompilation.
* function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a
paradoxical subreg, then directly substitute the replacement and
return.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36515 138bc75d-0d04-0410-961f-82ee72b054a4
neil [Mon, 18 Sep 2000 21:14:44 +0000 (18 21:14 +0000)]
* cpp.texi: Update documentation, including some clarifications,
the treatment of various newline combinations, and space
between backslash and newline.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36514 138bc75d-0d04-0410-961f-82ee72b054a4
amylaar [Mon, 18 Sep 2000 20:00:58 +0000 (18 20:00 +0000)]
* sdbout.c (PUT_SDB_DEF, PUT_SDB_TAG, PUT_SDB_EPILOGUE_END):
Replace ASM_OUTPUT_LABELREF with assemble_name.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36513 138bc75d-0d04-0410-961f-82ee72b054a4
amylaar [Mon, 18 Sep 2000 19:31:28 +0000 (18 19:31 +0000)]
* sh.c (addsubcosts): CONST is not cheap.
(find_barrier): For Sh1, take alignment after jumps into account.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36512 138bc75d-0d04-0410-961f-82ee72b054a4
aph [Mon, 18 Sep 2000 19:27:37 +0000 (18 19:27 +0000)]
2000-09-15 Andrew Haley <aph@redhat.com>
* toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to
remove all SETs of SUBREGs of hard registers.
* function.c (purge_hard_subreg_sets): New function.
(purge_single_hard_subreg_set): New function.
* rtl.h: (purge_hard_subreg_sets): New function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36511 138bc75d-0d04-0410-961f-82ee72b054a4
rth [Mon, 18 Sep 2000 19:03:37 +0000 (18 19:03 +0000)]
* config/ia64/ia64-protos.h: Update.
* config/ia64/ia64.c (signed_inequality_operator): New.
(ia64_expand_compare): New.
(ia64_register_move_cost): Handle PR_REGS moves.
(ia64_secondary_reload_class): Require a GR when moving to a PR.
(struct reg_write_state): Add written_by_and/or.
(struct reg_flags): Add is_and/or.
(rws_update): Set them.
(rws_access_regno): Test them to allow parallel comparisons.
(rtx_needs_barrier): Recognize parallel comparisons.
(emit_insn_group_barriers): Set prev_insn after a call stop bit.
Call recog_memoized; ignore pred_rel_mutex.
(emit_predicate_relation_info): Don't call find_basic_blocks here.
(ia64_reorg): Do it here instead.
* config/ia64/ia64.h: s/CCmode/BImode/g
(MODES_TIEABLE_P): Don't tie BImode.
(PREFERRED_RELOAD_CLASS): Do not reload operations into AR regs.
(CONST_COSTS): Pick sensible values for CONST_INT based on context.
(RTX_COSTS): Make multiply 4 insns.
(MEMORY_MOVE_COST): New.
(PREDICATE_CODES): Update.
* config/ia64/ia64.md: s/CCmode/BImode/g
(movcci, movbi): New.
(andbi3, andcmbi3, iorbi3, iorcmbi3, one_cmplbi2): New.
(cmpsi_and_0, cmpsi_and_1, cmpsi_andnot_0, cmpsi_andnot_1): New.
(cmpdi_and_0, cmpdi_and_1, cmpdi_andnot_0, cmpdi_andnot_1): New.
(tbit_and_0, tbit_and_1, tbit_and_2, tbit_and_3): New.
(cmpsi_or_0, cmpsi_or_1, cmpsi_orcm_0, cmpsi_orcm_1): New.
(cmpdi_or_0, cmpdi_or_1, cmpdi_orcm_0, cmpdi_orcm_1): New.
(tbit_or_0, tbit_or_1, tbit_or_2, tbit_or_3): New.
(mulsi, muldi): Use xmpy not xma.
(cmpbi): New.
(movcc, movcc_internal): Remove.
(branch expanders): Use ia64_expand_compare.
(setcc expanders): Likewise.
(cmov insns): Use move_operand and ia64_move_ok.
(pred_rel_mutex): Use unspec not unspec_volatile. Prevent the
scheduler from moving it past a use.
* config/ia64/build.hacks: Remove.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36510 138bc75d-0d04-0410-961f-82ee72b054a4
neil [Mon, 18 Sep 2000 18:43:05 +0000 (18 18:43 +0000)]
* cpphash.h (HASHSTEP): Take character rather than pointer
to character.
(_cpp_check_directive, _cpp_check_linemarker): Update prototypes.
* cpphash.c (cpp_loookup): Update for new HASHSTEP.
* cpplex.c (auto_expand_name_space, trigraph_replace,
backslash_start, handle_newline, parse_name, INIT_TOKEN_STR,
IMMED_TOKEN, PREV_TOKEN_TYPE, PUSH_TOKEN, REVISE_TOKEN,
BACKUP_TOKEN, BACKUP_TRIGRAPH, MIGHT_BE_DIRECTIVE,
KNOWN_DIRECTIVE): Delete.
(handle_newline, check_long_token, skip_escaped_newlines,
unterminated): New functions.
(ACCEPT_CHAR, SAVE_STATE, RESTORE_STATE): New macros.
(parse_identifier): Was parse_name, new implementation.
(skip_line_comment, skip_block_comment, skip_whitespace,
parse_number, parse_string, trigraph_ok, save_comment,
adjust_column, _cpp_get_line): New implementations.
(lex_token): New function. Lexes a token at a time, looking
forwards. Contains most of the guts of the old lex_line.
(lex_line): New implementation, using lex_token to obtain
individual tokens.
(cpp_scan_buffer): Use the token's line, not the list's line.
* cpplib.c (_cpp_check_directive, _cpp_check_linemarker):
New implementations.
(do_assert): Don't bother setting the answer's list's line.
(cpp_push_buffer): Initialise new pfile and read_ahead members
of struct cpp_buffer.
* cpplib.h (cppchar_t): New typedef.
(struct cpp_buffer): read_ahead, pfile and col_adjust are
new members.
(struct lexer_state): New structure that determines the state
and behaviour of the lexer.
(IN_DIRECTIVE, KNOWN_DIRECTIVE): New macros.
(struct cpp_reader): New member "state". Rename
multiline_string_line and multiline_string_column. Delete
col_adjust, in_lex_line members.
(CPP_BUF_COLUMN): Update.
* gcc.dg/cpp/cmdlne-C.c: Remove bogus warning test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36509 138bc75d-0d04-0410-961f-82ee72b054a4
rth [Mon, 18 Sep 2000 18:39:03 +0000 (18 18:39 +0000)]
* combine.c (simplify_comparison): Shift a NOT out of a single
bit test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36508 138bc75d-0d04-0410-961f-82ee72b054a4
rth [Mon, 18 Sep 2000 18:30:24 +0000 (18 18:30 +0000)]
* combine.c (if_then_else_cond): Canonicalize BImode true to
STORE_FLAG_VALUE.
* explow.c (trunc_int_for_mode): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36507 138bc75d-0d04-0410-961f-82ee72b054a4
rth [Mon, 18 Sep 2000 18:24:32 +0000 (18 18:24 +0000)]
* combine.c (combine_simplify_rtx): Use gen_unary to distribute
the NOT for De Morgan's rule.
* simplify-rtx.c (simplify_unary_operation): Simplify a BImode NOT
of a comparison to the reverse comparison.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36506 138bc75d-0d04-0410-961f-82ee72b054a4
bkoz [Mon, 18 Sep 2000 18:08:46 +0000 (18 18:08 +0000)]
2000-09-18 Yuri V. Baskakov <yuribsk@lab.sun.mcst.ru>
* bits/std_bitset.h (operator>>): Change to char_type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36505 138bc75d-0d04-0410-961f-82ee72b054a4
rth [Mon, 18 Sep 2000 18:08:19 +0000 (18 18:08 +0000)]
* combine.c (try_combine): Allow split to create a single insn.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36504 138bc75d-0d04-0410-961f-82ee72b054a4
rth [Mon, 18 Sep 2000 17:55:38 +0000 (18 17:55 +0000)]
* machmode.def: Add BImode. Add a column for bitsize.
* machmode.h (DEF_MACHMODE): Adjust for extra column.
(GET_MODE_BITSIZE): Use it.
* rtl.c (DEF_MACHMODE): Adjust for extra column.
(mode_bitsize): New.
(mode_mask_array): Use bitsize.
* combine.c (combine_simplify_rtx): Require inner and outer
modes to match on nonzero_bits optimizations.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36501 138bc75d-0d04-0410-961f-82ee72b054a4
crux [Mon, 18 Sep 2000 17:21:25 +0000 (18 17:21 +0000)]
Fix for sh minipool generation
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36500 138bc75d-0d04-0410-961f-82ee72b054a4
crux [Mon, 18 Sep 2000 17:12:32 +0000 (18 17:12 +0000)]
Avoid problems with reloading fpul in HImode
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36499 138bc75d-0d04-0410-961f-82ee72b054a4
crux [Mon, 18 Sep 2000 17:01:32 +0000 (18 17:01 +0000)]
Proper fix for -m4-nofpu multilib problem
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36498 138bc75d-0d04-0410-961f-82ee72b054a4
crux [Mon, 18 Sep 2000 17:00:07 +0000 (18 17:00 +0000)]
Fix a reload inheritance problem
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36497 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Mon, 18 Sep 2000 16:45:48 +0000 (18 16:45 +0000)]
* config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as
MAYBE_DEAD.
(sh_expand_epilogue): Take the PIC register into account when
computing the frame size.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36496 138bc75d-0d04-0410-961f-82ee72b054a4
aoliva [Mon, 18 Sep 2000 16:41:22 +0000 (18 16:41 +0000)]
* config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.
* config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect
LABEL_REFs with a PIC-safe unspec.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36495 138bc75d-0d04-0410-961f-82ee72b054a4
wcohen [Mon, 18 Sep 2000 16:36:32 +0000 (18 16:36 +0000)]
Describe changes to warn about initializers on zero length arrays.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36494 138bc75d-0d04-0410-961f-82ee72b054a4
jsm28 [Mon, 18 Sep 2000 16:34:35 +0000 (18 16:34 +0000)]
* c-common.c (check_format_info): Properly save the argument
number and parameter for $ operand number formats in case width
and precision arguments are also used. Allow printf width and
precision arguments to have operand numbers even if none was
specified for the main format, since this is OK for %*.*m. Only
object to missing $ operand number if the format used requires an
argument.
testsuite:
* gcc.dg/format-ext-1.c: Add tests for mixing %m with $ formats.
* gcc.dg/format-xopen-1.c: Fix error in one $ format test. Add
more $ format tests.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36493 138bc75d-0d04-0410-961f-82ee72b054a4