* config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
(mips_regno_mode_ok_for_base_p): Declare.
* config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
(FRAME_POINTER_REGNUM): Renumber to 78.
(FIRST_PSEUDO_REGISTER): Update comment accordingly.
(BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
(GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
(REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
(REG_MODE_OK_FOR_BASE_P): Likewise.
* config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
entry for 77 to "$arg" and entry for 78 to "$frame".
(mips_regno_to_class): Map 77 and 78 to ALL_REGS.
(mips_reg_mode_ok_for_base_p): Remove.
(mips_regno_mode_ok_for_base_p): New function, derived from old
BASE_REG_P macro. Don't enforce the mips16 stack pointer
restrictions unless we're being strict.
(mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
testsuite/
* gcc.dg/torture/mips-clobber-at.c: New test.
From-SVN: r76547
* src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
when the structure return address is passed in %o0.
(ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
(ffi_v9_layout_struct): Align the field following a nested structure
on a word boundary. Use memmove instead of memcpy.
(ffi_call): Update call to ffi_V9_return_struct.
(ffi_prep_closure): Define 'ctx' only for V8.
(ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
and ffi_closure_sparc_inner_v9.
(ffi_closure_sparc_inner_v8): Return long doubles by reference.
Always skip the structure return address. For structures and long
doubles, copy the argument directly.
(ffi_closure_sparc_inner_v9): Skip the structure return address only
if required. Shift the maximum floating-point slot accordingly. For
big structures, copy the argument directly; otherwise, left-justify the
argument and call ffi_v9_layout_struct to lay out the structure on
the stack.
* src/sparc/v8.S: Undef STACKFRAME before defining it.
(ffi_closure_v8): Pass the structure return address. Update call to
ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
Skip the 'unimp' insn when returning long doubles and structures.
* src/sparc/v9.S: Undef STACKFRAME before defining it.
(ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
FFI_TYPE_INT handling. Load structures both in integers and
floating-point registers on return.
* README: Update status of the SPARC port.
From-SVN: r76543
2004-01-24 Herman A.J. ten Brugge <hermantenbrugge@home.nl>
PR target/12978
* c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
Remove movstrqi_small because it conflicts with movstrqi_large.
From-SVN: r76534
PR bootstrap/13848
* cse.c (cse_cc_succs): Change the mode of the source expression
as soon as decide we need a new mode. Don't permit changing modes
if we found a match in a successor block.
(cse_condition_code_reg): Save original mode of source expression
so that we know whether we have to change the mode in other
insns.
* gcc.dg/20040124-1.c: New test.
From-SVN: r76522
2004-01-24 Paolo Carlini <pcarlini@suse.de>
* include/bits/basic_string.tcc (operator+(const _CharT*,
const basic_string&)): No need to go through the append
taking two iterators.
From-SVN: r76517
2004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
* testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
as of type ffi_arg.
* testsuite/libffi.call/struct3.c (main): Fix CHECK.
From-SVN: r76513
2004-01-23 Andrew Pinski <pinskia@physics.uc.edu>
PR c++/13701
* decl.c (finish_function): Move the call to
finish_fname_decls below the call to
finish_eh_spec_block.
From-SVN: r76464
* config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
separate real and imaginary parts.
* config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
From-SVN: r76459
2004-01-23 Zack Weinberg <zack@codesourcery.com>
PR c/13814
* c-decl.c (diagnose_mismatched_decls): Also discard a
built-in if we encounter an old-style definition with the
same name.
From-SVN: r76445
PR 18314
* c-decl.c (diagnose_mismatched_decls): Also discard a
built-in if we encounter an old-style definition with the
same name.
testsuite:
* gcc.dg/builtins-30.c: New testcase.
From-SVN: r76441
* config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
[!__powerpc64__]: Corrected to handle kernels with changed ucontext.
* include/powerpc-signal.h: Add #ifndef __powerpc64__ around the
header. For __powerpc64__ provide the default-signal.h definitions
for now.
* include/x86_64-signal.h [!__x86_64__]: Include java-signal-aux.h
instead of the dummy definitions.
* configure.host (x86_64-*): Remove CHECKREFSPEC, add DIVIDESPEC.
(powerpc64*-*): Remove with_libffi_default.
Only add -mminimal-toc for 64-bit compilations.
* configure.in: Use powerpc-signal.h on powerpc64 as well.
(x86_64-*-linux*): Set SIGNAL_HANDLER_AUX.
Link SIGNAL_HANDLER_AUX to include/java-signal-aux.h.
* configure: Rebuilt.
From-SVN: r76437
* fold-const.c (fold_binary_op_with_conditional_arg): Only
build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
Co-Authored-By: Olivier Hainque <hainque@act-europe.fr>
From-SVN: r76434