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.
From-SVN: r36546
* config/i386/i386.h (CPP_CPU_SPEC): Define i586 and i686 symbols
in addition to pentium and pentiumpro symbols.
(CPP_CPU_DEFAULT_SPEC): Likewise.
From-SVN: r36534
* 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.
From-SVN: r36532
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.
From-SVN: r36517
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.
From-SVN: r36516
* function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a
paradoxical subreg, then directly substitute the replacement and
return.
From-SVN: r36515
* cpp.texi: Update documentation, including some clarifications,
the treatment of various newline combinations, and space
between backslash and newline.
From-SVN: r36514
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.
From-SVN: r36511
* 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.
From-SVN: r36510
* 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.
From-SVN: r36509
* 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.
From-SVN: r36506
* 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.
From-SVN: r36501
* 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.
From-SVN: r36496