cpphash.c (special_symbol): Represent an empty macro with "\r \r " not just "\r ".
* cpphash.c (special_symbol): Represent an empty macro with
"\r \r " not just "\r ".
(_cpp_macroexpand): Correct condition for the foo ( ) special
case.
(unsafe_chars): Handle EOF as second argument.
(push_macro_expansion): Simplify test for removing escape at
end. Do not trim both escapes if there is no text in between.
Jan Hubicka [Wed, 19 Apr 2000 10:08:22 +0000 (10:08 +0000)]
loop.c (check_insn_for_bivs, [...]): Break out from ...
* loop.c (check_insn_for_bivs, for_every_insn_in_loop,
check_insn_for_givs): Break out from ...
(strength_reduce) ... here; use for_every_insn_in_loop to call
check_insn_for_givs.
* loop.h (for_every_insn_in_loop): Declare.
(loop_insn_callback): New type.
* parse.y (java_expand_classes): Reverse the package list once.
(java_complete_lhs): PLUS_EXPR: don't try rhs and lhs at string
reduction.
(patch_binop): New temp `cn'. Call patch_string on LHS/RHS of
the `==' and `!=' operators.
* configure.in: Delete --disable-cpplib option and all
references to cpp_main.
* configure: Regenerate.
* Makefile.in: Remove all references to CCCP, CCCP_OBJS,
@cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
cccp.o, cccp, or cppmain. Link cppmain.o straight to
cpp$(exeext). Add --no-headers to makeinfo command line when
generating INSTALL. Install and uninstall cpp.1 manpage, not
cccp.1.
* install.texi: Delete all references to cexp.y/cexp.c.
Delete ancient instructions for compiling GCC on 3b1.
* INSTALL: Regenerate.
* cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c,
ch/decl.c, ch/lex.c, cp/lex.c, f/lex.c, mips/t-ecoff,
mips/t-elf, mips/t-r3900: Remove references to cccp.c.
* convex.h, fx80.h, m68k.h, pdp11.h, contrib/gcc_update,
f/g77install.texi: Remove references to cexp.c/cexp.y.
* xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
which is no longer tested anywhere.
* po/POTFILES.in: Remove cccp.c and cexp.c. Comment out
alpha/vms-tramp.asm.
Tom Tromey [Tue, 18 Apr 2000 16:13:16 +0000 (16:13 +0000)]
re GNATS gcj/211 (gcjh doesn't handle method names that are reserved C++ keywords)
PR gcj/211:
* gjavah.c (utf8_cmp): Changed return value.
(cxx_keyword_subst): Handle all C++ keywords. Allocate new return
result.
(cxx_keywords): New global.
(get_field_name): Handle new result of cxx_keyword_subst.
(print_method_info): Likewise.
Jan Hubicka [Mon, 17 Apr 2000 21:39:30 +0000 (21:39 +0000)]
i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
* i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
(x86_integer_DFmode_moves, x86_partial_reg_dependency,
x86_memory_mismatch_stall): New global variables.
(ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
alloved; fix load penalties for Athlon.
* i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
x86_memory_mismatch_stall): Declare.
(TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
TARGET_MEMORY_MISMATCH_STALL): New.
* i386.md (athlon scheduling parameters): Fix latencies according to
Athlon Optimization Manual.
(sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
vector.
(fsqrt instruction patterns): Set athlon_decode to direct.
(movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
(movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
and TARGET_PARTIAL_REGISTER_STALL machines.
(pushdf_nointeger): New pattern.
(pushdf_integer): Rename from pushdf.
(movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
(movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
* loop.c (canonicalize_condition): Add WANT_REG argument.
Stop the search if we match it.
* expr.h (canonicalize_condition): Update decl.
* predict.c (expected_value_to_br_prob): Use it. Track last
expected value note.
(find_expected_value): Remove.
* reorg.c (mostly_true_jump): Always use BR_PROB if present.
gjavah.c (print_name_for_stub_or_jni): Don't prefix method names with a newline, for CNI.
2000-04-17 Bryce McKinlay <bryce@albatross.co.nz>
* gjavah.c (print_name_for_stub_or_jni): Don't prefix method names
with a newline, for CNI.
(print_stub_or_jni): Print a space or newline before method name for
CNI as well as JNI.
(print_cxx_classname): Don't write leading "::" in CNI stub method.
(process_file): Include gcj/cni.h if generating CNI stubs.
Jakub Jelinek [Mon, 17 Apr 2000 14:49:41 +0000 (16:49 +0200)]
sparc.c (eligible_for_sibcall_delay): Cannot use leaf sibcall delay slot if flag_pic.
* config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
leaf sibcall delay slot if flag_pic.
(output_sibcall): Always emit call for leaf sibcall if flag_pic.
Dave Pitts [Mon, 17 Apr 2000 00:54:25 +0000 (17:54 -0700)]
Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole message in quotes.
* Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
message in quotes. Otherwise, IBM's make program treats the '#' as the
start of a comment and ignores the remainder of the line.
* c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
upper case.
* cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
* cexp.y (initialize_random_junk): Likewise.
* cppfiles.c (find_include_file): Cast alloca return value.
* cppinit.c (initialize_standard_includes): Likewise.
* cpplib.c (cpp_define, cpp_undef): Likewise.
* defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
* final.c (output_asm_insn): Allow for holes in EBCDIC.
* fold-const.c (CHARMASK): New.
(real_hex_to_f): Use it.
* real.c (CHARMASK): New.
(etoasc, asctoeg): Use it.
(asctoeg): EBCDIC lower case characters preceed upper case.
i370.c (mvs_add_label): Change spacing for coding conventions.
* i370.c (mvs_add_label): Change spacing for coding conventions.
* i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
outputing case vectors.
(ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
(ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
since vector in in the data CSECT.
(ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation. * i370.md (Many patterns): Put the length in the XL directives.
(movdi): Put back STM and MVC in definition.
(floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
pattern using the TCA.
* oe.h (CPP_SPEC): Added to allow trigraphs.
* xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
not support the "long long" type.
Mark Mitchell [Sun, 16 Apr 2000 21:47:17 +0000 (21:47 +0000)]
mips-protos.h (mips_legitimate_address_p): New function.
* config/mips/mips-protos.h (mips_legitimate_address_p): New
function.
(mips_reg_mode_ok_for_base_p): Likewise.
* config/mips/mips.h (REG_OK_STRICT_P): Don't define.
(REG_OK_FOR_INDEX_P): Define unconditionally.
(REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
(GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
* config/mips/mips.c (mips16_simple_memory_operand): Adjust now
that GET_MODE_SIZE is unsigned.
(mips_reg_mode_ok_for_base_p): Define.
(mips_legitimate_address_p): Likewise. Adjust now
that GET_MODE_SIZE is unsigned.
(block_move_loop): Make the number of bytes unsigned.
(expand_block_move): Likewise.
(function_arg): Make the loop counter unsigned to match the
boundary condition.
Mark Mitchell [Sun, 16 Apr 2000 19:45:32 +0000 (19:45 +0000)]
cp-tree.def (THUNK_DECL): Add to documentation.
* cp-tree.def (THUNK_DECL): Add to documentation.
* cp-tree.h (flag_huge_objects): Declare.
* class.c (modify_vtable_entry): Tidy.
(update_vtable_entry_for_fn): Split out from dfs_modify_vtables.
Calculate delta appropriately for the new ABI.
(dfs_modify_vtables): Use it.
(modify_all_vtables): Fix thinko in code to add overriding copies
of functions to primary vtables.
(build_clone): Fix typo in comment.
(clone_function_decl): Correct order of destructors in vtable.
(build_vbase_offset_vtbl_entries): Adjust comment.
(dfs_vcall_offset_queue_p): Remove.
(dfs_build_vcall_offset_vtbl_entries): Update BV_VCALL_INDEX.
(build_vcall_offset_vtbl_entries): Juse use dfs_skip_vbases.
(build_vtable_entry): Correct check for pure virtual functions.
Don't declare flag_huge_objects.
* decl.c (flag_huge_objects): Remove declaration.
* method.c (make_thunk): Tweak mangling for vcall offset thunks.
Use int_size_in_bytes.
(emit_thunk): Handle vcall offset thunks.
* cpplex.c (output_line_command): Remove debugging prints.
(cpp_output_tokens): Don't write out a zero-length buffer or
try to see if it has a newline in it.
(_cpp_expand_to_buffer): Copy the source buffer before pushing.
(_cpp_read_and_prescan): Move shift-down of pushback bytes to
the end of the loop. Use memmove. Don't read past the end of
the buffer. Remove trailing newlines from error messages.
Richard Kenner [Sat, 15 Apr 2000 19:54:26 +0000 (19:54 +0000)]
Makefile.in (ggc-page.o): Now includes toplev.h.
* Makefile.in (ggc-page.o): Now includes toplev.h.
* ggc-page.c (toplev.h): Now included.
(gc_time): Remove declaration.
(ggc_collect): TIME now long.
* toplev.c (parse_time, varasm_time, gc_time): Still global; all
others static.
* toplev.h (gc_time, parse_time, gc_time): New declarations.
* cp/decl2.c (parse_time, varconst_time): Delete declarations.
(finish_file): Delete LINENO declaration.
START_TIME and THIS_TIME now long.
Richard Kenner [Sat, 15 Apr 2000 16:59:10 +0000 (16:59 +0000)]
toplev.c: Make *_time variable long to reduce chance of overflow.
* toplev.c: Make *_time variable long to reduce chance of overflow.
(TIMEVAR): Likewise for `otime'.
(print_time): Arg is now long; compute percentage in FP and round.
* toplev.h (print_time): Arg is long.
* configure.in (alpha*-*-*): Aad config/alpha/t-alpha.
* configure: Rebuilt.
* libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
(__fixunsxfDI): Renamed from __fixunsxfdi.
(__fixunsdfDI): Renamed from __fixunsdfdi.
(__fixunssfDI): Renamed from __fixunssfdi.
(__floatdisf): Use proper type in REP_BIT macro.
(__fixunsxfSI): Renamed from __fixunsxfsi.
(__fixunsdfSI): Renamed from __fixunsdfsi.
(__fixunssfSI): Renamed from __fixunssfsi.
* libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
Change location of macros and upper-case some names as above.
* longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
* config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.