2003-03-21 Jerry Quinn <jlquinn@optonline.net>
PR libstdc++/5730
* include/bits/c++config (_GLIBCPP_FAST_MATH): Define.
* include/std/std_complex.h (norm): Use faster,
less accurate computation for builtin float types under --fast-math.
From-SVN: r64701
* config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Fix typo in
writing .interrupt command.
* config/m68hc11/m68hc11.md ("call"): Look at the symbol to see
if it's a far or near function.
("call_value"): Likewise.
* config/m68hc11/m68hc11.c (m68hc11_attribute_table): Add far and
near attributes.
(m68hc11_handle_fntype_attribute): Accept attributes on methods.
(m68hc11_override_options): Ignore -mlong-calls for 68HC11.
(m68hc11_initial_elimination_offset): Set current_function_far
according to attributes.
(expand_prologue): Likewise.
(trap_handler_symbol): New global to keep track of trap handlers.
(m68hc11_encode_section_info): Mark symbol as far if needed; set
trap symbol.
(m68hc11_is_far_symbol): New function.
(m68hc11_is_trap_symbol): New function.
* config/m68hc11/m68hc11-protos.h (m68hc11_is_far_symbol): Declare.
(m68hc11_is_trap_symbol): Declare.
From-SVN: r64685
* i386.c (ix86_compute_frame_layout): Recompute fast prologues
only when amount of saved regs changed.
(ix86_init_machine_status): Initialize use_fast_prologue_epilgoue_nregs.
* i386.h (machine_function): New fields use_fast_prologue_epilgoue_nregs.
From-SVN: r64682
PR inline-asm/7916
* function.c (instantiate_virtual_regs_lossage): New function.
(instantiate_virtual_regs_1): Use it.
(instantiate_virtual_regs): Do not continue in substition when insn has
been deleted.
From-SVN: r64681
* javaop.h (jfloat, jdouble): Make them structures mirroring
the bit fields of IEEE float and double respectively.
(JFLOAT_FINITE, JFLOAT_QNAN_MASK, JFLOAT_EXP_BIAS,
JDOUBLE_FINITE, JDOUBLE_QNAN_MASK, JDOUBLE_EXP_BIAS): New.
(union Word, union DWord): Delete.
(WORD_TO_FLOAT, WORDS_TO_DOUBLE): Update to match.
* gjavah.c (java_float_finite, java_double_finite, F_NAN_MASK,
D_NAN_MASK): Delete.
(jni_print_float, jni_print_double): New. Generate
hexadecimal floating constants.
(print_field_info): Use jni_print_float/double.
* jcf-dump.c: Include math.h. Use ldexp/frexp to assemble
finite floating point numbers for output; special case
non-finite floats.
From-SVN: r64671
* config/s390/s390.h: Do not include fixdfdi.h on s390x.
(TARGET_64BIT): Define as compile-time constant when IN_LIBGCC2.
(MIN_UNITS_PER_WORD): Do not define when IN_LIBGCC2.
From-SVN: r64669
* libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
bit mode.
* libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
Receive closure pointer through parameter, read args using
__builtin_dwarf_cfa.
(FFI_INIT_TRAMPOLINE): Send closure reference through eax.
From-SVN: r64663
PR optimization/8366
* config/sparc/sparc.h: (SYMBOLIC_CONST): New macro.
(GO_IF_LEGITIMATE_ADDRESS): Use it. Reject the form
PIC+SYMBOLIC_CONST in other modes than Pmode.
(GO_IF_MODE_DEPENDENT_ADDRESS): Use it. Mark
the form PIC+SYMBOLIC_CONST as mode dependent.
Co-Authored-By: Richard Henderson <rth@redhat.com>
From-SVN: r64657
2003-03-21 Christopher Faylor <cgf@redhat.com>
* config.gcc (i[34567]86-*-cygwin*): Use new common makefile
stub t-cygming. Use common target header cygming.h. Add extra
c_target_obj and cxx_target_obj file. Default cygwin to posix
threading. Enforce i386 as float format.
(i[34567]86-*-mingw*): Use new common makefile stub t-cygming.
Remove cygwin.h as target header. Use common target header
cygming.h Enforce i386 as float format. Correct typo.
* config/i386/cygming.h: New file, containing definitions
common to mingw32 and cygwin.
* config/i386/cygwin.h: Remove definitions common to cygwin and
mingw. Simplify special spec logic. Define "wrappers" around
certain include path defines to accommodate -mno-cygwin.
Remove some #if 0'ed code.
(STANDARD_INCLUDE_DIR) Always define when not cross-compiling.
(LINK_SPEC): Don't use cyg search prefix when -mno-cygwin.
(GCC_DRIVER_HOST_INITIALIZATION): Define as call to mingw_scan.
* config/i386/mingw32.h: Remove definitions common to cygwin and
mingw.
(EXTRA_OS_CPP_BUILTINS): Adjust.
(TARGET_VERSION): Define.
* config/i386/crtdll.h (EXTRA_OS_CPP_BUILTINS): Override
mingw32.h definitions.
(LIBGCC_SPEC): Add libmingwex.a as in mingw32.h.
* config/i386/t-cygwin (EXTRA_GCC_OBJS): Define as cygwin1.o.
Add compilation rules for cygwin1.o cygwin2.o.
* config/i386/cygwin1.c: New file.
* config/i386/cygwin2.c: New file.
* config/i386/t-cygming: New makefile stub.
From-SVN: r64643
Merge changes from new-regalloc-branch
From Michael Matz <matz@suse.de>
* df.c (df_ref_record_1): Move init of loc to safe point.
Only recurse on interesting things in parallels.
Handle CLASS_CANNOT_CHANGE_MODE smarter.
(df_uses_record): Ditto.
* df.h (DF_REF_MEM_OK): New enum member, used to mark ref's which
it's already okay to use memory operands in (IE doesn't require
adding another insn or anything).
From-SVN: r64629
* cp-tree.h (unemitted_tinfo_decls): Declaration of a new varray.
(unemitted_tinfo_decl_p): Remove.
(emit_tinfo_decl): Change declaration to remove unused parameter.
* decl2.c (finish_file): Change tinfo emission to loop through
unemitted_tinfo_decls array instead of looping through all decls.
* rtti.c (unemitted_tinfo_decl_p): Declare as static, remove
unused second parameter.
(init_rtti_processing): initialize unemitted_tinfo_decls varray.
(get_tinfo_decls): push new tinfo decl on unemitted_tinfo_decls.
(emit_tinfo_decl): remove unused second parameter, add assertion
that decl hasn't already been emitted.
From-SVN: r64621
* fold-const.c (fold_mathfn_compare): New function to simplify
comparisons against built-in math functions. Fold comparisons
of sqrt against constants.
(fold): Call fold_mathfn_compare when appropriate.
* gcc.dg/builtins-6.c: New test case.
From-SVN: r64619
* cppinit.c (cpp_create_reader): Take extra hash_table* argument,
and pass that to _cpp_init_hashtable.
(cpp_read_main_file): Drop hash_table* argument; don't call
_cpp_init_hashtable.
* cpplib.h: Update declarations to match.
* c-opts.c (c_common_init_options): Pass ident_hash to
cpp_create_reader.
(c_common_post_options): Don't pass ident_hash to cpp_read_main_file.
* fix-header.c (read_scan_file): Likewise pass NULL table to
cpp_create_reader rather than cpp_read_main_file.
* cppfiles.c (cpp_rename_file): Generalized and renamed
to cpp_change_file.
* cpplib.h: Update declaration to match.
* c-opts.c (push_command_line_line, finish_options): Change
cpp_rename_file calls to cpp_change_file.
From-SVN: r64617