* configure.in (powerpc64*-*-linux*): Remove.
* configure: Rebuilt.
libffi/
* include/ffi.h.in (POWERPC64): Define if 64-bit.
(enum ffi_abi): Add FFI_LINUX64 on POWERPC.
Make it the default on POWERPC64.
(FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
* configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
* configure: Rebuilt.
* src/powerpc/ffi.c (hidden): Define.
(ffi_prep_args_SYSV): Renamed from
ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
(NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
ASM_NEEDS_REGISTERS64): New.
(ffi_prep_args64): New function.
(ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
(ffi_call): Likewise.
(ffi_prep_closure): Likewise.
(flush_icache): Surround by #ifndef POWERPC64.
(ffi_dblfl): New union type.
(ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
(ffi_closure_helper_LINUX64): New function.
* src/powerpc/ppc_closure.S: Surround whole file by #ifndef
__powerpc64__.
* src/powerpc/sysv.S: Likewise.
(ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
* src/powerpc/linux64.S: New file.
* src/powerpc/linux64_closure.S: New file.
* Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
src/powerpc/linux64_closure.S.
(TARGET_SRC_POWERPC): Likewise.
* src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
closure_test_fn3): Fix result printing on big-endian 64-bit
machines.
(main): Print tst2_arg instead of uninitialized tst2_result.
* src/ffitest.c (main): Hide what closure pointer really points to
from the compiler.
From-SVN: r65781
* docs/html/17_intro/porting.texi (_GLIBCPP_USE_C99_CHECK): New macro.
(_GLIBCPP_USE_C99_DYNAMIC): New macro.
(_GLIBCPP_USE_C99_LONG_LONG_CHECK): New macro.
(_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC): New macro.
* config/os/bsd/freebsd/os_defines.h (_GLIBCPP_USE_C99_CHECK):
New macro.
(_GLIBCPP_USE_C99_DYNAMIC): New macro.
(_GLIBCPP_USE_C99_LONG_LONG_CHECK): New macro.
(_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC): New macro.
* include/c_std/std_cstdlib.h: Use new macros.
* include/c_std/std_cstdio.h: Use new macros.
* include/c_std/std_cwchar.h: Use new macros.
From-SVN: r65778
PR optimization/7675
* c-typeck.c (build_external_ref): Set the DECL_NONLOCAL flag
on VAR_DECL, PARM_DECL and FUNCTION_DECL from within
nested functions if they refer to declarations from parent functions.
* stmt.c (expand_decl): Don't put automatic variables in registers
if the DECL_NONLOCAL flag is set.
From-SVN: r65774
* gcse.c (compute_ld_motion_mems): For MEM destinations, only
consider those to be movable where the source matches
want_to_gcse_p.
(update_ld_motion_stores): In comment, refer to
compute_ld_motion_mems for validity of replacement.
From-SVN: r65766
* gcov-dump.c (tag_summary): Remove max_sum
* gcov-io.h (gcov_summary, gcov_write_summary, gcov_read_summary): Kill
max_sum.
* libgcov.c (gcov_exit): Do one pass over the data. Make error message
more verbose.
From-SVN: r65758
* emit-rtl.c (subreg_hard_regno): Check that register is representable.
* reload.c (reload_inner_reg_of_subreg): When register is not
representable, reload the whole thing.
(find_reloads): Likewsie.
* rtlanal.c (subreg_representable_p): New function.
* profile.c (compute_branch_probabilities): Cleanup sanity checking;
allow negative probabilities for edges from the call to exit.
(branch_prob): Do not add fake edges for functions that may return twice
From-SVN: r65757
2003-04-17 Phil Edwards <pme@gcc.gnu.org>
* Makefile.tpl (GCC_STRAP_TARGETS): New variable containing all the
previous bootstrap targets, plus bubblestrap, quickstrap, cleanstrap,
and restrap.
* Makefile.in: Regenerate.
From-SVN: r65752
2003-04-17 Janis Johnson <janis187@us.ibm.com>
* doc/sourcebuild.texi (Test Suites): Document support for testing
binary compatibility (moved from testsuite/README.compat).
* testsuite/README.compat: Remove; content now in doc/sourcebuild.texi.
From-SVN: r65748
2003-04-17 Paolo Carlini <pcarlini@unitus.it>
* include/std/std_streambuf.h (setp): _M_out_lim, being
the end limit of used put area, is set equal to _M_out_beg.
From-SVN: r65740
* config/s390/s390.c (SYMBOL_FLAG_ALIGN1): New.
(tls_model_chars): Remove.
(larl_operand): Use SYMBOL_REF_FLAGS.
(tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
(legitimize_pic_address): Use SYMBOL_REF_LOCAL_P.
(s390_output_mi_thunk): Likewise.
(s390_emit_prologue): Set SYMBOL_FLAG_LOCAL as needed.
(s390_function_profiler): Likewise.
(s390_encode_section_info): Use default_encode_section_info
and SYMBOL_FLAG_ALIGN1.
(s390_strip_name_encoding): Remove.
* config/s390/s390.h (ASM_OUTPUT_LABELREF): Remove.
* config/s390/s390.md (call, call_value): Use SYMBOL_REF_LOCAL_P.
(builtin_setjmp_receiver): Set SYMBOL_FLAG_LOCAL as needed.
From-SVN: r65734
* config/h8300/h8300.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): New.
(small_call_insn_operand): Use it.
(SYMBOL_FLAG_EIGHTBIT_DATA): New.
(h8300_eightbit_constant_address_p): Use it.
(SYMBOL_FLAG_TINY_DATA): New.
(h8300_tiny_constant_address_p): Use it.
(h8300_encode_label, h8300_strip_name_encoding): Remove.
(h8300_encode_section_info): Set SYMBOL_REF_FLAGS.
* config/h8300/h8300.h (TINY_DATA_NAME_P): Remove.
(ASM_OUTPUT_LABELREF): Remove.
From-SVN: r65726
* config/frv/frv.c (symbol_ref_small_data_p): Remove. Replace
all users with SYMBOL_REF_SMALL_P.
(const_small_data_p): Use SYMBOL_REF_SMALL_P.
(frv_encode_section_info): Remove.
(frv_strip_name_encoding): Remove.
(frv_in_small_data_p): Merge tests from encode_section_info.
(frv_print_operand): Use '@' not SDATA_FLAG_CHAR.
* config/frv/frv.h (SDATA_FLAG_CHAR): Remove.
(SDATA_NAME_P): Remove.
(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use SIZE not SDATA_NAME_P.
(ASM_OUTPUT_LABELREF): Remove.
(PRINT_OPERAND_PUNCT_VALID_P): Use '@' not SDATA_FLAG_CHAR.
From-SVN: r65725
* config/cris/cris.c (cris_gotless_symbol, cris_got_symbol): Use
SYMBOL_REF_LOCAL_P; abort if not pic.
(cris_encode_section_info): Remove.
From-SVN: r65721
2003-04-16 Roger Sayle <roger@eyesopen.com>
* c-semantics.c (find_reachable_label): New function to find a
potentially reachable label in an expression.
(expand_unreachable_if_stmt): Similar to expand_if_stmt but
assumes the start of the IF_STMT is unreachable (dead) code.
(expand_unreachable_stmt): Similar to expand_stmt but assumes
the start of the statement list is unreachable (dead) code.
(genrtl_if_stmt): If the controlling expression of the IF
is constant, use expand_unreachable_stmt for the THEN or ELSE
clause as appropriate.
(genrtl_switch_stmt): Use expand_unreachable_stmt to expand
the body of a SWITCH statement.
(expand_stmt): The code immediately following a "return",
"break", "continue" or "goto" is unreachable.
* Makefile.in (c-semantics.o): Depend upon tree-inline.h.
* gcc.dg/Wunreachable-5.c: New test case for PR c/10175.
* gcc.c-torture/execute/medce-1.c: New test case.
* gcc.c-torture/execute/medce-2.c: New test case.
From-SVN: r65715
* reload1.c (reload_cse_noop_set_p): Return false if mode of
SET_DEST is not the same as that returned by...
* cselib.h (cselib_reg_set_mode): ... new function.
* cselib.c (cselib_reg_set_mode): Define it.
(REG_VALUES): Document semantics of first element as set mode.
(cselib_subst_to_values): Skip first element if ELT is NULL.
(cselib_lookup): Likewise. Insert past the first element.
(cselib_invalidate_regno): NULLify first element.
(cselib_record_set): Set first element.
From-SVN: r65713