* config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
mulv2sf3, divv2sf3): New expanders.
* config/rs6000/spe.md (spe_evabs, spe_evand, spe_evaddw, spe_evsubfw,
spe_evdivws): Rename to use standard GCC names.
* config/rs6000/paired.md (negv2sf, absv2sf2, addv2sf3, subv2sf3,
mulv2sf3, divv2sf3): Rename to avoid conflict with the new expanders.
* config/rs6000/rs6000.c (bdesc_2arg, bdesc_1arg): Use new CODE_FOR_
names for renamed patterns.
From-SVN: r155110
Fix PR42285.
2009-12-08 Sebastian Pop <sebpop@gmail.com>
PR middle-end/42285
* graphite-scop-detection.c (graphite_can_represent_init): Also
handle more complex MULT_EXPRs containing parameters by recursion
on the structure.
* testsuite/gfortran.dg/graphite/pr42285.f90: New.
From-SVN: r155108
* configure.host (sparc*-sun-solaris2.*): New case.
* include/dwarf2-signal.h (MAKE_THROW_FRAME, SPARC case): Make dummy.
* include/sparc-signal.h: Do not include ucontext.h.
(SIGNAL_HANDLER): Rename symbol.
(FLUSH_REGISTER_WINDOWS): Delete.
(MAKE_THROW_FRAME): Make dummy.
(INIT_SEGV): Adjust for above renaming.
(INIT_FPE): Likewise.
From-SVN: r155092
PR middle-end/38474
* function.c (free_temp_slots): Only walk the temp slot
addresses and combine slots if we actually changes something.
(pop_temp_slots): Ditto.
From-SVN: r155087
2008-12-08 Daniel Kraft <d@domob.eu>
PR fortran/41177
* gfortran.dg/typebound_proc_4.f03: Remove check for wrong error.
* gfortran.dg/typebound_proc_13.f03: New test.
2008-12-08 Daniel Kraft <d@domob.eu>
PR fortran/41177
* gfortran.h (struct symbol_attribute): New flag `class_pointer'.
* symbol.c (gfc_build_class_symbol): Set the new flag.
* resolve.c (update_compcall_arglist): Remove wrong check for
non-scalar base-object.
(check_typebound_baseobject): Add the correct version here as well
as some 'not implemented' message check in the old case.
(resolve_typebound_procedure): Check that the passed-object dummy
argument is scalar, non-pointer and non-allocatable as it should be.
From-SVN: r155086
* config/i386/cpuid.h (bit_ABM): New.
* config/i386/driver-i386.c (host_detect_local_cpu): Add -mabm to the
options when bit_ABM is set.
From-SVN: r155060
* config/i386/i386-protos.h (ix86_expand_fma4_multiple_memory):
Removed.
* config/i386/i386.c (ix86_expand_fma4_multiple_memory): Removed.
* config/i386/sse.md: Remove all XOP splitters.
Allow the second and fourth operands of XOP multiply-add insns
to be nonimmediate.
From-SVN: r155057
* config/i386/sse.md: Remove all FMA4 splitters.
Allow the second operand of FMA4 insns to be a nonimmediate.
Fix comments punctuation.
From-SVN: r155056
gcc/fortran:
2009-12-07 Daniel Franke <franke.daniel@gmail.com>
PR fortran/41940
* match.c (gfc_match_allocate): Improved error message for
allocatable scalars that are allocated with a shape.
gcc/testsuite:
2009-12-07 Daniel Franke <franke.daniel@gmail.com>
PR fortran/41940
* gfortran.dg/allocate_scalar_with_shape.f90: New.
From-SVN: r155049
2009-12-07 Edmar Wienskoski <edmar@freescale.com>
* config.gcc (cpu_is_64bit): Add new core e500mc64.
(powerpc*-*-*): Add new core e500mc64.
* config/rs6000/e500mc64.md: New file.
* config/rs6000/rs6000.c (processor_costs): Add new costs for
e500mc64.
(rs6000_override_options): Add e500mc64 case to
processor_target_table. Altivec and Spe options not allowed with
e500mc64. Disable string instructions for e500mc64. Enable branch
targets alignment for both e500mc and e500mc64. Initialize
rs6000_cost for e500mc64.
(rs6000_emit_sISEL): New function.
(rs6000_emit_sCOND): Call rs6000_emit_sISEL for isel targets.
(rs6000_emit_int_cmove): Fix mode of 64 bit isel pattern
generation.
(rs6000_issue_rate): Set issue rate for e500mc64.
(rs6000_rtx_costs): Set more accurate cost for mfcr instruction
on architectures with isel.
* config/rs6000/rs6000-protos.h (rs6000_emit_sISEL): Declare.
* config/rs6000/rs6000.h (processor_type): Add
PROCESSOR_PPCE500MC64.
(ASM_CPU_SPEC): Add e500mc64.
* config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc64.
Include e500mc64.md.
(abssi2_isel): Expand pattern to handle DImode.
(nabs<mode>2_isel): New pattern.
(absdi2): Change pattern to handle 64 bit isel targets.
(absdi2_internal): Exclude ISEL targets.
(nabsdi2): Exclude ISEL targets.
* doc/invoke.texi: Add e500mc64 to list of cpus.
From-SVN: r155044
libgfortran/
2009-12-06 Janus Weil <janus@gcc.gnu.org>
PR fortran/41478
PR fortran/42268
* intrinsics/pack_generic.c (pack): Add safety checks for the case that
'vector' is NULL.
gcc/testsuite/
2009-12-06 Janus Weil <janus@gcc.gnu.org>
PR fortran/41478
PR fortran/42268
* gfortran.dg/intrinsic_pack_5.f90: New test.
From-SVN: r155024
* config/i386/i386-md (g): Add HImode and QImode.
(general_szext_operand): New mode attribute.
(*test<mode>_1): Macroize insn from *test{qi,hi,si}_1 using
SWI124 mode iterator.
(and<mode>3): Macroize expander from and{qi,hi,si,di}3 using
SWIM mode iterator.
(*and<mode>_2): Macroize insn from *and{qi,hi,si}_2 using
SWI124 mode iterator.
(ior<mode>3): Macroize expander from ior{qi,hi,si,di}3 using
SWIM mode iterator.
(*ior<mode>_1): Macroize insn from *ior{hi,si,di}_1 using
SWI248 mode iterator.
(*ior<mode>_2): Macroize insn from *ior{qi,hi,si,di}_2 using
SWI mode iterator.
(*ior<mode>_3): Macroize insn from *ior{qi,hi,si,di}_3 using
SWI mode iterator.
(xor<mode>3): Macroize expander from xor{qi,hi,si,di}3 using
SWIM mode iterator.
(*xor<mode>_1): Macroize insn from *xor{hi,si,di}_1 using
SWI248 mode iterator.
(*xor<mode>_2): Macroize insn from *xor{qi,hi,si,di}_2 using
SWI mode iterator.
(*xor<mode>_3): Macroize insn from *xor{qi,hi,si,di}_3 using
SWI mode iterator.
From-SVN: r155021