Commit Graph

307 Commits

Author SHA1 Message Date
Uros Bizjak
02ac9503fd i386-c.c (ix86_target_macros): Define _SOFT_FLOAT for !TARGET_80387.
gcc/

	* config/i386/i386-c.c (ix86_target_macros): Define _SOFT_FLOAT
	for !TARGET_80387.
	* config/i386/rtemself.h (TARGET_OS_CPP_BUILTINS): Do not define
	_SOFT_FLOAT here.
	(LONG_DOUBLE_TYPE_SIZE): New define.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Ditto.

libgcc/

	* config/i386/32/sfp-machine.h (_FP_MUL_MEAT_S): Define.
	(_FP_MUL_MEAT_D): Ditto.
	(_FP_DIV_MEAT_S): Ditto.
	(_FP_DIV_MEAT_D): Ditto.
	* config.host (i[34567]86-*-rtems*): Remove i386/t-softfp, add
	t-softfp-sfdf and t-softfp to tmake_file.

M    gcc/config/i386/i386-c.c
M    gcc/config/i386/rtemself.h
M    gcc/ChangeLog
M    libgcc/ChangeLog
M    libgcc/config.host
M    libgcc/config/i386/32/sfp-machine.h

From-SVN: r204404
2013-11-05 17:08:30 +01:00
Uros Bizjak
612211412c crtfastmath.c: Compile only for !_SOFT_FLOAT.
* config/i386/crtfastmath.c: Compile only for !_SOFT_FLOAT.
	* config/i386/crtprec.c: Ditto.

From-SVN: r204327
2013-11-03 11:12:12 +01:00
Chung-Ju Wu
9304f87611 Add new nds32 port, including machine description, libgcc, and documentation.
[gcc/ChangeLog]
	* config.gcc (nds32*-*-*): Add nds32 target.
	* config/nds32/nds32.c: New file.
	* config/nds32/nds32.h: New file.
	* config/nds32/nds32.md: New file.
	* config/nds32/constants.md: New file.
	* config/nds32/constraints.md: New file.
	* config/nds32/iterators.md: New file.
	* config/nds32/nds32-doubleword.md: New file.
	* config/nds32/nds32-intrinsic.md: New file.
	* config/nds32/nds32_intrinsic.h: New file.
	* config/nds32/nds32-modes.def: New file.
	* config/nds32/nds32-multiple.md: New file.
	* config/nds32/nds32.opt: New file.
	* config/nds32/nds32-opts.h: New file.
	* config/nds32/nds32-protos.h: New file.
	* config/nds32/nds32-peephole2.md: New file.
	* config/nds32/pipelines.md: New file.
	* config/nds32/predicates.md: New file.
	* config/nds32/t-mlibs: New file.
	* common/config/nds32: New directory and files.

	* doc/invoke.texi (NDS32 options): Document nds32 specific options.
	* doc/md.texi (NDS32 family): Document nds32 specific constraints.
	* doc/install.texi (Cross-Compiler-Specific Options): Document
	--with-nds32-lib for nds32 target.
	* doc/extend.texi (Function Attributes, Target Builtins): Document
	nds32 specific attributes.
	
[libgcc/ChangeLog]
	* config.host (nds32*-elf*): Add nds32 target.
	* config/nds32 : New directory and files.
	
[contrib/ChangeLog]
	* config-list.mk (nds32le-elf, nds32be-elf): Add nds32 target.

Co-Authored-By: Shiva Chen <shiva0217@gmail.com>

From-SVN: r204269
2013-10-31 17:08:16 +00:00
Hans-Peter Nilsson
0e499e759c For CRIS ports, switch to soft-fp. Improve arit.c and longlong.h.
* config.host (cpu_type) <Setting default>: Add entry for
	crisv32-*-*.
	(tmake_file) <crisv32-*-elf, cris-*-elf, cris-*-linux*>
	<crisv32-*-linux*>: Adjust.
	* longlong.h: Wrap the whole CRIS section in a single
	defined(__CRIS__) conditional.  Add comment about add_ssaaaa
	and sub_ddmmss.
	(COUNT_LEADING_ZEROS_0): Define when count_leading_zeros is
	defined.
	[__CRIS__] (__umulsidi3): Define.
	[__CRIS__] (umul_ppmm): Define in terms of __umulsidi3.
	* config/cris/sfp-machine.h: New file.
	* config/cris/umulsidi3.S: New file.
	* config/cris/t-elfmulti (LIB2ADD_ST): Add umulsidi3.S.
	* config/cris/arit.c (SIGNMULT): New macro.
	(__Div, __Mod): Use SIGNMULT instead of naked multiplication.
	* config/cris/mulsi3.S: Tweak to avoid redundant register-copying;
	saving 3 out of originally 33 cycles from the fastest
	path, 3 out of 54 from the medium path and one from the longest
	path.  Improve comments.

From-SVN: r203640
2013-10-16 01:43:14 +00:00
Joern Rennecke
2deaf8b0d6 In accordance with http://gcc.gnu.org/ml/gcc-patches/2013-10/msg00131.html :
gcc:
        * config/arc/arc-opts.h: Add 2013 to Copyright years.
        * config/arc/arc700.md: Likewise.
        * config/arc/arc-modes.def: Likewise.
        * config/arc/arc-simd.h: Likewise.
        * config/arc/t-arc-uClibc: Likewise.
        * config/arc/t-arc-newlib: Likewise.
libgcc:
        * config/arc/crtgend.S: Add 2013 to Copyright years.
        * config/arc/gmon/atomic.h: Likewise. 
        * config/arc/gmon/auxreg.h: Likewise. 
        * config/arc/gmon/sys/gmon_out.h: Likewise. 
        * config/arc/gmon/sys/gmon.h: Likewise. 
        * config/arc/gmon/prof-freq.c: Likewise. 
        * config/arc/gmon/mcount.c: Likewise. 
        * config/arc/gmon/prof-freq-stub.S: Likewise. 
        * config/arc/gmon/gmon.c: Likewise. 
        * config/arc/gmon/machine-gmon.h: Likewise. 
        * config/arc/gmon/profil.S: Likewise. 
        * config/arc/gmon/dcache_linesz.S: Likewise. 
        * config/arc/crtg.S: Likewise. 
        * config/arc/ieee-754/arc600-mul64/divsf3.S: Likewise. 
        * config/arc/ieee-754/arc600-mul64/divdf3.S: Likewise. 
        * config/arc/ieee-754/adddf3.S: Likewise. 
        * config/arc/ieee-754/truncdfsf2.S: Likewise. 
        * config/arc/ieee-754/fixsfsi.S: Likewise. 
        * config/arc/ieee-754/gtsf2.S: Likewise. 
        * config/arc/ieee-754/floatsisf.S: Likewise. 
        * config/arc/ieee-754/arc600-dsp/divsf3.S: Likewise. 
        * config/arc/ieee-754/arc600-dsp/divdf3.S: Likewise. 
        * config/arc/ieee-754/arc600-dsp/mulsf3.S: Likewise. 
        * config/arc/ieee-754/fixdfsi.S: Likewise. 
        * config/arc/ieee-754/addsf3.S: Likewise. 
        * config/arc/ieee-754/gesf2.S: Likewise. 
        * config/arc/ieee-754/floatsidf.S: Likewise. 
        * config/arc/ieee-754/extendsfdf2.S: Likewise. 
        * config/arc/ieee-754/divtab-arc-df.c: Likewise. 
        * config/arc/ieee-754/gtdf2.S: Likewise. 
        * config/arc/ieee-754/fixunsdfsi.S: Likewise. 
        * config/arc/ieee-754/uneqdf2.S: Likewise. 
        * config/arc/ieee-754/divsf3-stdmul.S: Likewise. 
        * config/arc/ieee-754/uneqsf2.S: Likewise. 
        * config/arc/ieee-754/arc-ieee-754.h: Likewise. 
        * config/arc/ieee-754/divtab-arc-sf.c: Likewise. 
        * config/arc/ieee-754/eqdf2.S: Likewise. 
        * config/arc/ieee-754/ordsf2.S: Likewise. 
        * config/arc/ieee-754/divsf3.S: Likewise. 
        * config/arc/ieee-754/divdf3.S: Likewise. 
        * config/arc/ieee-754/floatunsidf.S: Likewise. 
        * config/arc/ieee-754/orddf2.S: Likewise. 
        * config/arc/ieee-754/eqsf2.S: Likewise. 
        * config/arc/ieee-754/gedf2.S: Likewise. 
        * config/arc/crtn.S: Likewise. 
        * config/arc/crti.S: Likewise. 
        * config/arc/t-arc700-uClibc: Likewise. 
        * config/arc/asm.h: Likewise. 
        * config/arc/libgcc-excl.ver: Likewise. 
        * config/arc/t-arc-newlib: Likewise. 
        * config/arc/divtab-arc700.c: Likewise. 
        * config/arc/initfini.c: Likewise. 
        * config/arc/fp-hack.h: Likewise.

From-SVN: r203110
2013-10-02 12:18:24 +01:00
Joern Rennecke
dd9480ef3e simdext.md: Update copyright years.
gcc:
        * config/arc/simdext.md: Update copyright years.
libgcc:
        * config/arc/ieee-754/arc600-dsp/muldf3.S: Update copyright years
        * config/arc/ieee-754/arc600-mul64/muldf3.S: Likewise.
        * config/arc/ieee-754/muldf3.S: Likewise.

From-SVN: r203094
2013-10-01 23:34:07 +01:00
Joern Rennecke
a07c5b47b7 muldf3.S (.Linf_denorm): Likewise.
* config/arc/ieee-754/arc600-dsp/muldf3.S (.Linf_denorm): Likewise.
        * config/arc/ieee-754/arc600-mul64/muldf3.S (.Linf_denorm): Likewise.
        * config/arc/ieee-754/muldf3.S (.Linf_denorm): Likewise.

Co-Authored-By: Diego Novillo <dnovillo@google.com>

From-SVN: r203083
2013-10-01 20:44:23 +01:00
Joern Rennecke
c8e318b042 mcount.c (_MCOUNT_DECL): Comment typo fix.
2013-10-01  Joern Rennecke  <joern.rennecke@embecosm.com>
            Diego Novillo  <dnovillo@google.com>

        * config/arc/gmon/mcount.c (_MCOUNT_DECL): Comment typo fix.

Co-Authored-By: Diego Novillo <dnovillo@google.com>

From-SVN: r203081
2013-10-01 20:21:40 +01:00
Joern Rennecke
d38a64b4e0 config.host (arc*-*-elf*, [...]): New configurations.
2013-10-01  Joern Rennecke  <joern.rennecke@embecosm.com>
            Brendan Kehoe  <brendan@zen.org>
            Simon Cook  <simon.cook@embecosm.com>

        * config.host (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.
        * config/arc: New directory.
        * longlong.h [__arc__] (umul_ppmm): Remove.
        [__arc__] (__umulsidi3): Define.
        [__arc__ && __ARC_NORM__] (count_leading_zeroes): Define.
        [__arc__ && __ARC_NORM__] (COUNT_LEADING_ZEROS_0): Likewise.

Co-Authored-By: Brendan Kehoe <brendan@zen.org>
Co-Authored-By: Simon Cook <simon.cook@embecosm.com>

From-SVN: r203073
2013-10-01 18:12:59 +01:00
Jacek Caban
dff717d29b gthr-win32.c: CreateSemaphoreW instead of CreateSemaphoreA.
2013-09-17  Jacek Caban  <jacek@codeweavers.com>

	* config/i386/gthr-win32.c: CreateSemaphoreW instead of
	CreateSemaphoreA.
	* config/i386/gthr-win32.h: Likewise.

From-SVN: r202648
2013-09-17 13:46:47 +02:00
DJ Delorie
844ad6c640 * config/rl78/vregs.h: Add G10 register definitions.
From-SVN: r202638
2013-09-16 17:58:05 -04:00
DJ Delorie
5c0029ded7 rl78.c (rl78_asm_file_start): Specify alternate vregs location for RL78/G10.
* config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
vregs location for RL78/G10.
(rl78_expand_prologue): Avoid SEL on G10.
(rl78_expand_epilogue): Likewise.
(rl78_peep_movhi_p): Can't move a constant to memory in HImode.
* config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
__RL78_G10__ when appropriate.
(ASM_SPEC): Pass -mg10 along to the assembler.
* config/rl78/rl78.md (sel_rb): Disable for G10.
* config/rl78/rl78.opt: Add -mg10 option.
* config/rl78/t-rl78: Add -mg10 multilib.

* config/rl78/lib2mul.c: Enable for RL78/G10.
* config/rl78/lib2div.c: Likewise.
* config/rl78/lshrsi3.S: Use vregs.h.
* config/rl78/cmpsi2.S: Likewise.
* config/rl78/trampoline.S: Likewise.
* config/rl78/mulsi2.S: Likewise.  Disable for RL78/G10.

From-SVN: r202637
2013-09-16 17:15:46 -04:00
DJ Delorie
ceb2fc49ce mulsi3.S: Remove a few unneeded moves and branches.
* config/rl78/mulsi3.S: Remove a few unneeded moves and branches.
* config/rl78/vregs.h: New.
* config/rl78/signbit.S: New file.  Implements signbit function.
* config/rl78/divmodsi.S: New.
* config/rl78/divmodhi.S: New.
* config/rl78/divmodqi.S: New.
* config/rl78/t-rl78: Build them here...
* config/rl78/lib2div.c: ...but not here.

Co-Authored-By: Nick Clifton <nickc@redhat.com>

From-SVN: r202588
2013-09-14 02:13:18 -04:00
DJ Delorie
f6a83b4a9f MAINTAINERS: Add Nick Clifton and DJ Delorie as msp430 maintainers.
* MAINTAINERS: Add Nick Clifton and DJ Delorie as msp430
maintainers.

[gcc]
* config/msp430/: New port.
* config.gcc (msp430): Added.
* doc/invoke.texi: Document MSP430 options.
* doc/install.texi: Document msp430-elf
* doc/md.texi: Document msp430-elf
* doc/contrib.texi: Document msp430-elf

[libgcc]
* config.host (msp*-*-elf): New.
* config/msp430/: New port.

[contrib]
* config-list.mk: Add msp430-elf.

From-SVN: r202535
2013-09-12 13:52:41 -04:00
Maciej W. Rozycki
0f9bde1fac mips16.S (CE_STARTFN, CE_ENDFN): New macros.
* config/mips/mips16.S (CE_STARTFN, CE_ENDFN): New macros.
	(RET_FUNCTION): Use them in place of STARTFN and ENDFN.
	(CALL_STUB_NO_RET): Likewise.
	(CALL_STUB_RET): Likewise.
	* config/mips/libgcc-mips16.ver: Remove __mips16_call_stub and
	__mips16_ret call/return stub symbols.
	* config.host <mips*-*-linux>: For non-R5900 add t-slibgcc-libgcc
	to tmake_file.

Co-Authored-By: Catherine Moore <clm@codesourcery.com>
Co-Authored-By: Richard Sandiford <rdsandiford@googlemail.com>

From-SVN: r201805
2013-08-16 22:23:29 +00:00
Maxim Kuvyrkov
46549c206e Fix licenses on several libgcc files.
* config/aarch64/sfp-machine.h, config/aarch64/sync-cache.c,
	* config/i386/cpuinfo.c, config/ia64/unwind-ia64.h,
	* config/mips/vr4120-div.S: Fix license from GPL-3.0+ to
	GPL-3.0-with-GCC-exception.

From-SVN: r201417
2013-08-01 21:09:10 +00:00
Maciej W. Rozycki
72be589b8c mips16.S (DELAYf): Alias to DELAYt for the MIPS IV ISA and up.
* config/mips/mips16.S (DELAYf): Alias to DELAYt for the MIPS IV
	ISA and up.

From-SVN: r201350
2013-07-30 18:34:43 +00:00
Andreas Krebbel
902a3fafbe linux-unwind.h: Use the proper dwarf to hard reg mapping for FPRs when...
2013-07-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/linux-unwind.h: Use the proper dwarf to hard reg
	mapping for FPRs when creating the fallback framestate.

From-SVN: r201156
2013-07-23 07:20:52 +00:00
Georg-Johann Lay
0237179843 re PR target/57516 ([avr] Incorrect fixed-point rounding result in the overflow case)
gcc/
	PR target/57516
	* config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
	* config/avr/avr.md (adjust_len): Add `round'.
	* config/avr/avr-protos.h (avr_out_round): New prototype.
	(avr_out_plus): Add `out_label' argument.
	* config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
	(avr_out_plus): Pass down `out_label' to avr_out_plus_1.
	Handle the case where `insn' is just a pattern.
	(avr_out_bitop): Handle the case where `insn' is just a pattern.
	(avr_out_round): New function.
	(avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.

libgcc/
	PR target/57516
	* config/avr/lib1funcs-fixed.S (__roundqq3, __rounduqq3)
	(__round_s2_const, __round_u2_const)
	(__round_s4_const, __round_u4_const, __round_x8):
	Saturate result if addition result cannot be represented.

gcc/testsuite/
	PR target/57516
	* gcc.target/avr/torture/builtins-4-roundfx.c (test2hr, test2k):
	Adjust to corrected rounding.

From-SVN: r201051
2013-07-19 11:10:08 +00:00
Joseph Myers
fa1e55b0a0 re PR other/53317 (Conversion from __int128 to __float128)
PR other/53317

gcc/testsuite:
	* gcc.dg/torture/fp-int-convert-float128-timode-2.c: New test.

libgcc:
	* soft-fp/adddf3.c: Update from glibc.
	* soft-fp/addsf3.c: Likewise.
	* soft-fp/addtf3.c: Likewise.
	* soft-fp/divdf3.c: Likewise.
	* soft-fp/divsf3.c: Likewise.
	* soft-fp/divtf3.c: Likewise.
	* soft-fp/double.h: Likewise.
	* soft-fp/eqdf2.c: Likewise.
	* soft-fp/eqsf2.c: Likewise.
	* soft-fp/eqtf2.c: Likewise.
	* soft-fp/extenddftf2.c: Likewise.
	* soft-fp/extended.h: Likewise.
	* soft-fp/extendsfdf2.c: Likewise.
	* soft-fp/extendsftf2.c: Likewise.
	* soft-fp/fixdfdi.c: Likewise.
	* soft-fp/fixdfsi.c: Likewise.
	* soft-fp/fixsfdi.c: Likewise.
	* soft-fp/fixsfsi.c: Likewise.
	* soft-fp/fixtfdi.c: Likewise.
	* soft-fp/fixtfsi.c: Likewise.
	* soft-fp/fixunsdfdi.c: Likewise.
	* soft-fp/fixunsdfsi.c: Likewise.
	* soft-fp/fixunssfdi.c: Likewise.
	* soft-fp/fixunssfsi.c: Likewise.
	* soft-fp/fixunstfdi.c: Likewise.
	* soft-fp/fixunstfsi.c: Likewise.
	* soft-fp/floatdidf.c: Likewise.
	* soft-fp/floatdisf.c: Likewise.
	* soft-fp/floatditf.c: Likewise.
	* soft-fp/floatsidf.c: Likewise.
	* soft-fp/floatsisf.c: Likewise.
	* soft-fp/floatsitf.c: Likewise.
	* soft-fp/floatundidf.c: Likewise.
	* soft-fp/floatundisf.c: Likewise.
	* soft-fp/floatunditf.c: Likewise.
	* soft-fp/floatunsidf.c: Likewise.
	* soft-fp/floatunsisf.c: Likewise.
	* soft-fp/floatunsitf.c: Likewise.
	* soft-fp/gedf2.c: Likewise.
	* soft-fp/gesf2.c: Likewise.
	* soft-fp/getf2.c: Likewise.
	* soft-fp/ledf2.c: Likewise.
	* soft-fp/lesf2.c: Likewise.
	* soft-fp/letf2.c: Likewise.
	* soft-fp/muldf3.c: Likewise.
	* soft-fp/mulsf3.c: Likewise.
	* soft-fp/multf3.c: Likewise.
	* soft-fp/negdf2.c: Likewise.
	* soft-fp/negsf2.c: Likewise.
	* soft-fp/negtf2.c: Likewise.
	* soft-fp/op-1.h: Likewise.
	* soft-fp/op-2.h: Likewise.
	* soft-fp/op-4.h: Likewise.
	* soft-fp/op-8.h: Likewise.
	* soft-fp/op-common.h: Likewise.
	* soft-fp/quad.h: Likewise.
	* soft-fp/single.h: Likewise.
	* soft-fp/soft-fp.h: Likewise.
	* soft-fp/subdf3.c: Likewise.
	* soft-fp/subsf3.c: Likewise.
	* soft-fp/subtf3.c: Likewise.
	* soft-fp/truncdfsf2.c: Likewise.
	* soft-fp/trunctfdf2.c: Likewise.
	* soft-fp/trunctfsf2.c: Likewise.
	* soft-fp/unorddf2.c: Likewise.
	* soft-fp/unordsf2.c: Likewise.
	* soft-fp/unordtf2.c: Likewise.
	* config/aarch64/sfp-machine.h (_FP_QNANNEGATEDP): Define to 0.
	* config/arm/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
	* config/c6x/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
	* config/i386/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
	* config/ia64/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
	* config/lm32/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
	* config/moxie/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
	* config/rs6000/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
	* config/score/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.
	* config/tilegx/sfp-machine32.h (_FP_QNANNEGATEDP): Likewise.
	* config/tilegx/sfp-machine64.h (_FP_QNANNEGATEDP): Likewise.
	* config/tilepro/sfp-machine.h (_FP_QNANNEGATEDP): Likewise.

From-SVN: r200318
2013-06-21 20:08:01 +01:00
Jürgen Urban
0de86a9228 mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
gcc/
2013-06-16  Jürgen Urban  <JuergenUrban@gmx.de>

	* config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
	(ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
	* config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
	(mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
	(mul<mode>3_mul3): Handle TARGET_MIPS5900.
	(mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
	(<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
	(<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
	instead of TARGET_64BIT.
	(divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
	Require ISA_HAS_<D>DIV.

libgcc/
2013-06-16  Jürgen Urban  <JuergenUrban@gmx.de>

	* config/mips/lib2funcs.c: New file.
	* config/mips/t-mips (LIB2ADD_ST): Add it.

From-SVN: r200140
2013-06-16 19:31:24 +00:00
Oleg Endo
0d00888247 re PR target/6526 ([SH4] sdivsi3_i4 can clobber xd0/xd2)
PR target/6526
	* config/sh/lib1funcs.S (sdivsi3_i4, udivsi3_i4): Do not change bits
	other than FPSCR.PR and FPSCR.SZ.  Add SH4A implementation.

	PR target/6526
	* gcc.target/sh/pr6526.c: New.

From-SVN: r199873
2013-06-09 21:32:37 +00:00
Walter Lee
776434d183 atomic.h: Don't include stdint.h or features.h.
* config/tilepro/atomic.h: Don't include stdint.h or features.h.
	Replace int64_t with long long.  Add __extension__ where
	appropriate.
	* config/tilepro/atomic.c: Include config.h.

From-SVN: r199855
2013-06-08 16:26:32 +00:00
Alan Modra
5cc19c6246 ibm-ldouble.c: Enable for little-endian.
* config/rs6000/ibm-ldouble.c: Enable for little-endian.

From-SVN: r199650
2013-06-04 23:41:28 +09:30
Yuri Rumyantsev
0f1d3965bd i386.c (ix86_lea_outperforms): Fix formatting.
* config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
	(ix86_avoid_lea_for_addr): Likewise.
	(exact_dependency_1): Likewise.
	(ix86_adjust_cost): Likewise.
	(swap_top_of_ready_list): Fix formatting and !reload_completed check
	removed.
	(do_reorder_for_imul): Fix typo, formatting and
	!reload_completed check removed.
	(ix86_sched_reorder): Fix typo and formatting.
	(fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
	list.

	* config/i386/cpuinfo.c (INTEL_SLM): New enum value.

From-SVN: r199611
2013-06-03 19:20:02 +02:00
Yuri Rumyantsev
0b871ccfce Silvermont (SLM) architecture pipeline model, tuning and insn selection.
Silvermont (SLM) architecture pipeline model, tuning and
        insn selection.
        * config.gcc: Add slm config options and target.

        * config/i386/slm.md: New.

        * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.

        * gcc/config/i386/i386-c.c (ix86_target_macros_internal):  New case
        PROCESSOR_SLM.
        (ix86_target_macros_internal): Likewise.

        * gcc/config/i386/i386.c (slm_cost): New cost.
        (m_SLM): New macro flag.
        (initial_ix86_tune_features): Set m_SLM.
        (x86_accumulate_outgoing_args): Likewise.
        (x86_arch_always_fancy_math_387): Likewise.
        (processor_target_table): Add slm cost.
        (cpu_names): Add slm cpu name.
        (x86_option_override_internal): Set SLM ISA.
        (ix86_issue_rate): New case PROCESSOR_SLM.
        (ia32_multipass_dfa_lookahead): Likewise.
        (fold_builtin_cpu): Add slm.

        * config/i386/i386.h (TARGET_SLM): New target macro.
        (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
        (processor_type): Add PROCESSOR_SLM.

        * config/i386/i386.md (cpu): Add new value "slm".
        (slm.md): Include slm.md.

        * libgcc/config/i386/cpuinfo.c (INTEL_SLM): New enum value.


Co-Authored-By: Igor Zamyatin <igor.zamyatin@intel.com>

From-SVN: r199444
2013-05-30 10:10:21 +00:00
Eric Botcazou
0ba045df8f sol2-unwind.h (MD_FALLBACK_FRAME_STATE_FOR): Do not set fs->signal_frame for SIGFPE raised for IEEE-754 exceptions.
* config/sparc/sol2-unwind.h (MD_FALLBACK_FRAME_STATE_FOR): Do not set
	fs->signal_frame for SIGFPE raised for IEEE-754 exceptions.
	* config/i386/sol2-unwind.h (x86_fallback_frame_state): Likewise.

From-SVN: r199381
2013-05-28 13:52:50 +00:00
Eric Botcazou
4fcb5d87d4 sol2-unwind.h (sparc64_frob_update_context): Do it for signal frames as well.
* config/sparc/sol2-unwind.h (sparc64_frob_update_context): Do it for
	signal frames as well.
	(MD_FALLBACK_FRAME_STATE_FOR): Do minor cleanups throughout and add the
	STACK_BIAS to the CFA offset.

From-SVN: r199191
2013-05-22 10:39:03 +00:00
Kai Tietz
492a80292b cygming-crtbegin.c (__register_frame_info): Make weak.
* config/i386/cygming-crtbegin.c (__register_frame_info): Make weak.
	(__deregister_frame_info): Likewise.

From-SVN: r198719
2013-05-08 20:33:52 +02:00
Yufeng Zhang
dfe192f58f sfp-machine.h (_FP_W_TYPE): Change to define as 'unsigned long long' instead of 'unsigned long'.
libgcc/

	* config/aarch64/sfp-machine.h (_FP_W_TYPE): Change to define
	as 'unsigned long long' instead of 'unsigned long'.
	(_FP_WS_TYPE): Change to define as 'signed long long' instead of
	'signed long'.

From-SVN: r198090
2013-04-19 12:17:26 +00:00
Julian Brown
b6b9af2f11 libgcc/
* config/arm/linux-atomic.c (SUBWORD_SYNC_OP, SUBWORD_VAL_CAS)
	(SUBWORD_TEST_AND_SET): Use signed char/short types instead of
	unsigned char/unsigned short.
	(__sync_val_compare_and_swap_{1,2}): Handle signed argument.

From-SVN: r197806
2013-04-11 14:22:54 +00:00
John David Anglin
ecabdd0007 re PR other/55274 (gcc build hangs on HP-UX 11.11)
PR other/55274
	* config/t-slibgcc-hpux (SHLIB_MAPFILES): Define.

From-SVN: r197544
2013-04-06 18:22:09 +00:00
Meador Inge
3465257612 bpabi.S (aeabi_ldivmod): Add DWARF information for computing the location of the link register.
libgcc/

2013-04-04  Meador Inge  <meadori@codesourcery.com>

	* config/arm/bpabi.S (aeabi_ldivmod): Add DWARF information for
	computing the location of the link register.
	(aeabi_uldivmod): Ditto.

From-SVN: r197493
2013-04-04 18:42:19 +00:00
Walter Lee
a6406324ae t-crtstuff: Add -fno-asynchronous-unwind-tables -mcmodel=large to CRTSTUFF_T_CFLAGS_S variable.
* config/tilegx/t-crtstuff: Add -fno-asynchronous-unwind-tables
	-mcmodel=large to CRTSTUFF_T_CFLAGS_S variable.

From-SVN: r197083
2013-03-26 04:34:45 +00:00
Kai Tietz
55446c7e55 * config/i386/cygwin.S: Replace use of _WIN64 by __x86_64__.
From-SVN: r197050
2013-03-25 15:54:30 +01:00
Robert Mason
d2ae19d976 2013-03-20 Robert Mason <rbmj@verizon.net>
* config/vxlib-tls.c (__gthread_get_tsd_data,)
	(__gthread_set_tsd_data, __gthread_enter_tsd_dtor_context,)
	(__gthread_leave_tsd_dtor_context): Add prototypes.
	(tls_delete_hook): Update.

From-SVN: r196842
2013-03-20 22:01:25 +00:00
Catherine Moore
22c4c86949 extend.texi: (micromips, nomicromips, nocompression): Document new function attributes.
gcc/
2013-03-20  Catherine Moore  <clm@codesourcery.com>
	    Maciej W. Rozycki  <macro@codesourcery.com>
	    Tom de Vries  <tom@codesourcery.com>
	    Nathan Sidwell <nathan@codesourcery.com>
	    Iain Sandoe  <iain@codesourcery.com>
	    Nathan Froyd  <froydnj@codesourcery.com>
	    Chao-ying Fu <fu@mips.com>

	* doc/extend.texi: (micromips, nomicromips, nocompression):
	Document new function attributes. 
	* doc/invoke.texi (minterlink-compressed, mmicromips,
	m14k, m14ke, m14kec): Document new options.
	(minterlink-mips16): Update documentation.
	* doc/md.texi (ZC, ZD): Document new constraints.
	* configure.ac (gcc_cv_as_micromips): Check if linker
	supports the .set micromips directive.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/mips/mips-tables.opt: Regenerate.
	* config/mips/micromips.md: New file.
	* constraints.md (ZC, ZD): New constraints.
	* config/mips/predicates.md (movep_src_register): New predicate.
	(movep_src_operand): New predicate.
	(non_volatile_mem_operand): New predicate.
	* config/mips/mips.md (multimem): New type.
	(length): Differentiate between 17-bit and 18-bit branch offsets.
	(MOVEP1, MOVEP2): New mode iterator.
 	(mov_<load>l): Use ZC constraint.
	(mov_<load>r): Likewise.
	(mov_<store>l): Likewise.
	(mov_<store>r): Likewise.
	(*branch_equality<mode>_inverted): Add microMIPS support.
	(*branch_equality<mode>): Likewise.
	(*jump_absolute): Likewise.
	(indirect_jump_<mode>): Likewise.
	(tablejump_<mode>): Likewise.
	(<optab>_internal): Likewise.
	(sibcall_internal): Likewise.
	(sibcall_value_internal): Likewise.
	(prefetch): Use constraint ZD.
	* config/mips/mips.opt (minterlink-compressed): New option.
	(minterlink-mips16): Now an alias for minterlink-compressed.
	(mmicromips): New option.
	* config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
	(compare_and_swap_12): Likewise.
	(sync_add<mode>): Likewise.
	(sync_<optab>_12): Likewise.
	(sync_old_<optab>_12): Likewise.
	(sync_new_<optab>_12): Likewise.
	(sync_nand_12): Likewise.
	(sync_old_nand_12): Likewise.
	(sync_new_nand_12): Likewise.
	(sync_sub<mode>): Likewise.
	(sync_old_add<mode>): Likewise.
	(sync_old_sub<mode>): Likewise.
	(sync_new_add<mode>): Likewise.
	(sync_new_sub<mode>): Likewise.
	(sync_<optab><mode>): Likewise.
	(sync_old_<optab><mode>): Likewise.
	(sync_new_<optab><mode>): Likewise.
	(sync_nand<mode>): Likewise.
	(sync_old_nand<mode>): Likewise.
	(sync_new_nand<mode>): Likewise.
	(sync_lock_test_and_set<mode>): Likewise.
	(test_and_set_12): Likewise.
	(atomic_compare_and_swap<mode>): Likewise.
	(atomic_exchange<mode>_llsc): Likewise.
	(atomic_fetch_add<mode>_llsc): Likewise.
	* config/mips/mips-cpus.def (m14kc, m14k): New processors.
	* config/mips/mips-protos.h (umips_output_save_restore): New prototype.
	(umips_save_restore_pattern_p): Likewise.
	(umips_load_store_pair_p): Likewise.
	(umips_output_load_store_pair): Likewise.
	(umips_movep_target_p): Likewise.
	(umips_12bit_offset_address_p): Likewise.
	* config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
	(mips_base_mips16): Rename this...
	(mips_base_compression_flags): ...to this. Update all uses.
	(mips_attribute_table): Add micromips, nomicromips and nocompression.
	(mips_mips16_decl_p): Delete.
	(mips_nomips16_decl_p): Delete.
 	(mips_get_compress_on_flags): New function.
	(mips_get_compress_off_flags): New function.
	(mips_get_compress_mode): New function.
	(mips_get_compress_on_name): New function.
	(mips_get_compress_off_name): New function.
	(mips_insert_attributes): Support multiple compression types.
	(mips_merge_decl_attributes): Likewise.
	(umips_12bit_offset_address_p): New function.
	(mips_start_function_definition): Emit .set micromips directive.
	(mips_call_may_need_jalx_p): New function.
	(mips_function_ok_for_sibcall): Add microMIPS support.
	(mips_print_operand_punctuation): Support short delay slots and
	compact jumps.
	(umips_swm_mask, umips_swm_encoding): New.
	(umips_build_save_restore): New function.
	(mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
	(was_mips16_p): Remove.
	(old_compression_mode): New.
	(mips_set_compression_mode): New function.
	(mips_set_current_function): Add microMIPS support.
	(mips_option_override): Likewise.
	(umips_save_restore_pattern_p): New function.
	(umips_output_save_restore): New function.
	(umips_load_store_pair_p_1): New function.
	(umips_load_store_pair_p): New function.
	(umips_output_load_store_pair_1): New function.
	(umips_output_load_store_pair): New function.
	(umips_movep_target_p) New function.
	(mips_prepare_pch_save): Add microMIPS support.
	* config/mips/mips.h (TARGET_COMPRESSION): New.
	(TARGET_CPU_CPP_BUILTINS): Update macro
	to use new compression flags and to support microMIPS.
	(MIPS_ISA_LEVEL_SPEC): Add m14k processors.
	(MIPS_ARCH_FLOAT_SPEC): Likewise.
	(ISA_HAS_LWXS): Include TARGET_MICROMIPS.
	(ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
	(ASM_SPEC): Support mmicromips and mno-micromips.
	(M16STORE_REG_P): New macro.
	(MIPS_CALL): Support TARGET_MICROMIPS.
	(MICROMIPS_J): New macro.
	(mips_base_mips16): Rename this...
	(mips_base_compression_flags): ...to this.
	(UMIPS_12BIT_OFFSET_P): New macro.
	* config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
	(MULTILIB_DIRNAMES): Likewise.
libgcc/
2013-03-20  Catherine Moore  <clm@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>
	    Chao-ying Fu  <fu@mips.com>

	* config/mips/mips16.S:  Don't build for microMIPS.
	* config/mips/linux-unwind.h: Handle microMIPS frame.
	* config/mips/crtn.S (fini, init): New labels.
gcc/testsuite/
2013-03-20  Catherine Moore  <clm@codesourcery.com>
	    Richard Sandiford <rdsandiford@googlemail.com>

	* gcc.target/mips/mips.exp: Add microMIPS support.
	* gcc.target/mips/umips-movep-2.c: New test.
	* gcc.target/mips/umips-lwp-2.c: New test.
	* gcc.target/mips/umips-swp-5.c: New test.
	* gcc.target/mips/umips-constraints-1.c: New test.
	* gcc.target/mips/umips-lwp-3.c: New test.
	* gcc.target/mips/umips-swp-6.c: New test.
	* gcc.target/mips/umips-constraints-2.c: New test.
	* gcc.target/mips/umips-save-restore-1.c: New test.
	* gcc.target/mips/umips-lwp-4.c: New test.
	* gcc.target/mips/umips-swp-7.c: New test.
	* gcc.target/mips/umips-save-restore-2.c: New test.
	* gcc.target/mips/umips-lwp-swp-volatile.c: New test.
	* gcc.target/mips/umips-lwp-5.c: New test.
	* gcc.target/mips/umips-save-restore-3.c: New test.
	* gcc.target/mips/umips-lwp-6.c: New test.
	* gcc.target/mips/umips-swp-1.c: New test.
	* gcc.target/mips/umips-lwp-7.c: New test.
	* gcc.target/mips/umips-swp-2.c: New test.
	* gcc.target/mips/umips-lwp-8.c: New test.
	* gcc.target/mips/umips-swp-3.c: New test.
	* gcc.target/mips/umips-movep-1.c: New test.
	* gcc.target/mips/umips-lwp-1.c: New test.
	* gcc.target/mips/umips-swp-4.c: New test.


Co-Authored-By: Chao-ying Fu <fu@mips.com>
Co-Authored-By: Iain Sandoe <iain@codesourcery.com>
Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
Co-Authored-By: Maciej W. Rozycki <macro@codesourcery.com>
Co-Authored-By: Nathan Froyd <froydnj@codesourcery.com>
Co-Authored-By: Nathan Sidwell <nathan@codesourcery.com>
Co-Authored-By: Richard Sandiford <rdsandiford@googlemail.com>
Co-Authored-By: Tom de Vries <tom@codesourcery.com>

From-SVN: r196828
2013-03-20 10:37:52 -04:00
Oleg Endo
decc676eb5 re PR target/49880 (SuperH: ICE when -m4 is used with -mdiv=call-div1)
PR target/49880
	* config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
	(musermode): Convert to Var(TARGET_USERMODE).
	* config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
	MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
	* config/sh/sh.c (sh_option_override): Use
	TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
	* config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
	condition.
	(udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
	TARGET_SH4.
	(udivsi3_i4_single, divsi3_i4_single): Use
	TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.

	PR target/49880
	* config/sh/lib1funcs.S (sdivsi3_i4, udivsi3_i4): Enable for SH2A.
	(sdivsi3, udivsi3): Remove SH4 check and always compile these functions.

	PR target/49880
	* gcc.target/sh/pr49880-1.c: New.
	* gcc.target/sh/pr49880-2.c: New.
	* gcc.target/sh/pr49880-3.c: New.
	* gcc.target/sh/pr49880-4.c: New.
	* gcc.target/sh/pr49880-5.c: New.

From-SVN: r196636
2013-03-13 18:09:10 +00:00
Sriraman Tallam
84ea618acd cpuinfo.c (get_intel_cpu): Fix cpuid codes for sandybridge processors.
2013-03-07  Sriraman Tallam  <tmsriram@google.com>

	* config/i386/cpuinfo.c (get_intel_cpu): Fix cpuid codes for
	sandybridge processors.

From-SVN: r196532
2013-03-08 01:02:29 +00:00
Oleg Endo
8f6d1c8601 re PR target/56529 ([SH] Calls to __sdivsi3_i4i and __udivsi3_i4i are generated on SH2)
PR target/56529
	* config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
	instead of TARGET_SH2 for call-table case.  Do not set sh_div_strategy
	to SH_DIV_CALL_TABLE for TARGET_SH2.
	* config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
	list.
	* doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
	call-table options.

	PR target/56529
	* config/sh/lib1funcs.S (udivsi3_i4i, sdivsi3_i4i): Add __SH2A__ to
	inclusion list.

From-SVN: r196484
2013-03-06 00:41:25 +00:00
Edgar E. Iglesias
409b1de4e1 Setup stack protection at entry.
* config/microblaze/crti.S: Setup stack protection at entry

From-SVN: r196432
2013-03-04 15:23:05 +00:00
Georg-Johann Lay
0b4ce21bcb * config/avr/lib1funcs.S (__ashrdi3, __lshrdi3, __ashldi3)
(__rotldi3): Shift bytewise if applicable.

From-SVN: r196431
2013-03-04 14:01:24 +00:00
James Greenhalgh
b7c3f1ca31 [AArch64/AArch64-4.7][libgcc] Silence warnings in sync-cache.c
libgcc/
	* config/aarch64/sync-cache.c
	(__aarch64_sync_cache_range): Silence warnings.

From-SVN: r196380
2013-03-01 14:01:58 +00:00
Catherine Moore
6d65e8f1fc 2012-02-25 Catherine Moore <clm@codesourcery.com>
Revert microMIPS patch.

From-SVN: r196259
2013-02-25 08:53:16 -05:00
Catherine Moore
6941b508c9 mips16.S: Don't build for microMIPS.
libgcc/
2013-02-24  Catherine Moore  <clm@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>
	    Chao-ying Fu  <fu@mips.com>

	* config/mips/mips16.S:  Don't build for microMIPS.
	* config/mips/linux-unwind.h: Handle microMIPS frame.
	* config/mips/crtn.S (fini, init): New labels.

gcc/
2013-02-24  Catherine Moore  <clm@codesourcery.com>
	    Maciej W. Rozycki  <macro@codesourcery.com>
	    Tom de Vries  <tom@codesourcery.com>
	    Nathan Sidwell <nathan@codesourcery.com>
	    Iain Sandoe  <iain@codesourcery.com>
	    Nathan Froyd  <froydnj@codesourcery.com>
	    Chao-ying Fu <fu@mips.com>

	* doc/extend.texi: (micromips, nomicromips, nocompression):
	Document new function attributes. 
	* doc/invoke.texi (minterlink-compressed, mmicromips,
	m14k, m14ke, m14kec): Document new options.
	(minterlink-mips16): Update documentation.
	* doc/md.texi (ZC, ZD): Document new constraints.
	* configure.ac (gcc_cv_as_micromips): Check if linker
	supports the .set micromips directive.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/mips/mips-tables.opt: Regenerate.
	* config/mips/micromips.md: New file.
	* constraints.md (ZC, AD): New constraints.
	* config/mips/predicates.md (movep_src_register): New predicate.
	(movep_src_operand): New predicate.
	(non_volatile_mem_operand): New predicate.
	* config/mips/mips.md (multimem): New type.
	(length): Differentiate between 17-bit and 18-bit branch offsets.
	(MOVEP1, MOVEP2): New mode iterator.
 	(mov_<load>l): Use ZC constraint.
	(mov_<load>r): Likewise.
	(mov_<store>l): Likewise.
	(mov_<store>r): Likewise.
	(*branch_equality<mode>_inverted): Add microMIPS support.
	(*branch_equality<mode>): Likewise.
	(*jump_absolute): Likewise.
	(indirect_jump_<mode>): Likewise.
	(tablejump_<mode>): Likewise.
	(<optab>_internal): Likewise.
	(sibcall_internal): Likewise.
	(sibcall_value_internal): Likewise.
	(prefetch): Use constraint ZD.
	* config/mips/mips.opt (minterlink-compressed): New option.
	(minterlink-mips16): Now an alias for minterlink-compressed.
	(mmicromips): New option.
	* config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
	(compare_and_swap_12): Likewise.
	(sync_add<mode>): Likewise.
	(sync_<optab>_12): Likewise.
	(sync_old_<optab>_12): Likewise.
	(sync_new_<optab>_12): Likewise.
	(sync_nand_12): Likewise.
	(sync_old_nand_12): Likewise.
	(sync_new_nand_12): Likewise.
	(sync_sub<mode>): Likewise.
	(sync_old_add<mode>): Likewise.
	(sync_old_sub<mode>): Likewise.
	(sync_new_add<mode>): Likewise.
	(sync_new_sub<mode>): Likewise.
	(sync_<optab><mode>): Likewise.
	(sync_old_<optab><mode>): Likewise.
	(sync_new_<optab><mode>): Likewise.
	(sync_nand<mode>): Likewise.
	(sync_old_nand<mode>): Likewise.
	(sync_new_nand<mode>): Likewise.
	(sync_lock_test_and_set<mode>): Likewise.
	(test_and_set_12): Likewise.
	(atomic_compare_and_swap<mode>): Likewise.
	(atomic_exchange<mode>_llsc): Likewise.
	(atomic_fetch_add<mode>_llsc): Likewise.
	* config/mips/mips-cpus.def (m14kc, m14k): New processors.
	* config/mips/mips-protos.h (umips_output_save_restore): New prototype.
	(umips_save_restore_pattern_p): Likewise.
	(umips_load_store_pair_p): Likewise.
	(umips_output_load_store_pair): Likewise.
	(umips_movep_target_p): Likewise.
	(umips_12bit_offset_address_p): Likewise.
	* config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
	(mips_base_mips16): Rename this...
	(mips_base_compression_flags): ...to this. Update all uses.
	(mips_attribute_table): Add micromips, nomicromips and nocompression.
	(mips_mips16_decl_p): Delete.
	(mips_nomips16_decl_p): Delete.
 	(mips_get_compress_on_flags): New function.
	(mips_get_compress_off_flags): New function.
	(mips_get_compress_mode): New function.
	(mips_get_compress_on_name): New function.
	(mips_get_compress_off_name): New function.
	(mips_insert_attributes): Support multiple compression types.
	(mips_merge_decl_attributes): Likewise.
	(umips_12bit_offset_address_p): New function.
	(mips_start_function_definition): Emit .set micromips directive.
	(mips_call_may_need_jalx_p): New function.
	(mips_function_ok_for_sibcall): Add microMIPS support.
	(mips_print_operand_punctuation): Support short delay slots and
	compact jumps.
	(umips_swm_mask, umips_swm_encoding): New.
	(umips_build_save_restore): New function.
	(mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
	(was_mips16_p): Remove.
	(old_compression_mode): New.
	(mips_set_compression_mode): New function.
	(mips_set_current_function): Add microMIPS support.
	(mips_option_override): Likewise.
	(umips_save_restore_pattern_p): New function.
	(umips_output_save_restore): New function.
	(umips_load_store_pair_p_1): New function.
	(umips_load_store_pair_p): New function.
	(umips_output_load_store_pair_1): New function.
	(umips_output_load_store_pair): New function.
	(umips_movep_target_p) New function.
	(mips_prepare_pch_save): Add microMIPS support.
	* config/mips/mips.h (TARGET_COMPRESSION): New.
	(TARGET_CPU_CPP_BUILTINS): Update macro
	to use new compression flags and to support microMIPS.
	(MIPS_ISA_LEVEL_SPEC): Add m14k processors.
	(MIPS_ARCH_FLOAT_SPEC): Likewise.
	(ISA_HAS_LWXS): Include TARGET_MICROMIPS.
	(ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
	(ASM_SPEC): Support mmicromips and mno-micromips.
	(M16STORE_REG_P): New macro.
	(MIPS_CALL): Support TARGET_MICROMIPS.
	(MICROMIPS_J): New macro.
	(mips_base_mips16): Rename this...
	(mips_base_compression_flags): ...to this.
	(UMIPS_12BIT_OFFSET_P): New macro.
	* config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
	(MULTILIB_DIRNAMES): Likewise.

gcc/testsuite/
2013-02-24  Catherine Moore  <clm@codesourcery.com>
	    Richard Sandiford <rdsandiford@googlemail.com>

	* gcc.target/mips/mips.exp: Add microMIPS support.
	* gcc.target/mips/umips-movep-2.c: New test.
	* gcc.target/mips/umips-lwp-2.c: New test.
	* gcc.target/mips/umips-swp-5.c: New test.
	* gcc.target/mips/umips-constraints-1.c: New test.
	* gcc.target/mips/umips-lwp-3.c: New test.
	* gcc.target/mips/umips-swp-6.c: New test.
	* gcc.target/mips/umips-constraints-2.c: New test.
	* gcc.target/mips/umips-save-restore-1.c: New test.
	* gcc.target/mips/umips-lwp-4.c: New test.
	* gcc.target/mips/umips-swp-7.c: New test.
	* gcc.target/mips/umips-save-restore-2.c: New test.
	* gcc.target/mips/umips-lwp-swp-volatile.c: New test.
	* gcc.target/mips/umips-lwp-5.c: New test.
	* gcc.target/mips/umips-save-restore-3.c: New test.
	* gcc.target/mips/umips-lwp-6.c: New test.
	* gcc.target/mips/umips-swp-1.c: New test.
	* gcc.target/mips/umips-lwp-7.c: New test.
	* gcc.target/mips/umips-swp-2.c: New test.
	* gcc.target/mips/umips-lwp-8.c: New test.
	* gcc.target/mips/umips-swp-3.c: New test.
	* gcc.target/mips/umips-movep-1.c: New test.
	* gcc.target/mips/umips-lwp-1.c: New test.
	* gcc.target/mips/umips-swp-4.c: New test.


Co-Authored-By: Chao-ying Fu <fu@mips.com>
Co-Authored-By: Iain Sandoe <iain@codesourcery.com>
Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
Co-Authored-By: Maciej W. Rozycki <macro@codesourcery.com>
Co-Authored-By: Nathan Froyd <froydnj@codesourcery.com>
Co-Authored-By: Nathan Sidwell <nathan@codesourcery.com>
Co-Authored-By: Richard Sandiford <rdsandiford@googlemail.com>
Co-Authored-By: Tom de Vries <tom@codesourcery.com>

From-SVN: r196246
2013-02-24 18:46:44 -05:00
Edgar E. Iglesias
7c422dbbc7 modsi3.S (modsi3): Fix case with 0x80000000 as dividend.
* config/microblaze/modsi3.S (modsi3): Fix case with 0x80000000 
as dividend.

From-SVN: r196156
2013-02-19 23:00:50 +00:00
Alan Modra
110207ad17 re PR target/55431 (Invalid auxv search in ppc linux-unwind code.)
PR target/55431
	* config/rs6000/linux-unwind.h (ppc_linux_aux_vector): Delete.
	(ppc_fallback_frame_state): Always set up save locations for fp
	and altivec.  Don't bother with non-callee-saved regs, r0-r13
	except for r2 on ppc64, fr0-fr13, v0-v19, vscr.

From-SVN: r196077
2013-02-16 00:23:40 +10:30
Georg-Johann Lay
e68a4ef6ea re PR target/54222 ([avr] Implement fixed-point support)
gcc/
	PR target/54222
	* config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
	(umulsidi3_insn, mulsidi3_insn): New insns.

libgcc/
	PR target/54222
	* config/avr/t-avr (LIB2FUNCS_EXCLUDE): Add: _usmulUHA, _usmulUSA,
	_ssmulHA, _ssmulSA.
	(LIB1ASMFUNCS): Add: _muldi3_6, _mulsidi3, _umulsidi3, _usmuluha3,
	_ssmulha3, _usmulusa3, _ssmulsa3.
	* config/avr/lib1funcs.S (__muldi3_6): Break out of __muldi3.
	(__muldi3): XCALL __muldi3_6 instead of rcall.
	(__umulsidi3, __mulsidi3): New functions.
	(do_prologue_saves, do_epilogue_restores): New .macros.
	(__divdi3_moddi3): Use them.
	* config/avr/lib1funcs-fixed.S (__usmuluha3, __ssmulha3)
	(__usmulusa3, __ssmulsa3): New functions.

From-SVN: r195978
2013-02-12 14:55:16 +00:00
Iain Sandoe
6c59ffd1ac re PR libitm/55693 (libitm.c++/eh-1.C execution test fails on darwin from r193271)
/libgcc
2013-02-11  Iain Sandoe  <iain@codesourcery.com>
	    Jack Howarth  <howarth@bromo.med.uc.edu>
	    Patrick Marlier  <patrick.marlier@gmail.com>

	PR libitm/55693
	* config/darwin-crt-tm.c: Remove dummy functions hack.

/gcc
2013-02-11  Iain Sandoe  <iain@codesourcery.com>
	    Jack Howarth  <howarth@bromo.med.uc.edu>
	    Patrick Marlier  <patrick.marlier@gmail.com>

	PR libitm/55693
	* config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
	define ENDFILE_SPEC as TM_DESTRUCTOR.
	* config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.

/libitm
2013-02-11  Iain Sandoe  <iain@codesourcery.com>
	    Jack Howarth  <howarth@bromo.med.uc.edu>
	    Patrick Marlier  <patrick.marlier@gmail.com>

	PR libitm/55693
	* alloc_cpp.cc: Enable function declarations on darwin.
	* eh_cpp.cc: Likewise.

Co-Authored-By: Jack Howarth <howarth@bromo.med.uc.edu>
Co-Authored-By: Patrick Marlier <patrick.marlier@gmail.com>

From-SVN: r195960
2013-02-11 23:30:10 +00:00
Georg-Johann Lay
85d768f349 re PR target/54222 ([avr] Implement fixed-point support)
gcc/
	PR target/54222
	* config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
	* config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
	(round<mode>3, round<mode>3_const): New expanders for fixed-mode.
	(*round<mode>3.libgcc): New insns for fixed-modes.
	* config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
	(ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
	(ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
	* config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
	implementations.  Define to __builtin_avr_absFX,
	__builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
	(roundFX, countlsFX): Define to __builtin_avr_roundFX,
	__builtin_avr_countlsFX, respectively.
	* config/avr/avr-c.c (target.h): Include it.
	(enum avr_builtin_id): New enum.
	(avr_resolve_overloaded_builtin): New static function.
	(avr_register_target_pragmas): Use it to set
	targetm.resolve_overloaded_builtin.
	* config/avr/avr.c (avr_init_builtins): Supply myriads of local
	tree nodes used by DEF_BUILTIN.
	(avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
	(avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
	<AVR_BUILTIN_xxBITS>: Same.
	
libgcc/
	PR target/54222
	* config/avr/lib2funcs.c: New C sources for modules for libgcc.a.
	* config/avr/lib2-object.mk: New iterator to build objects from it.
	* config/avr/t-avr: Iterate lib2-object.mk to build objects from
	lib2funcs.c.
	(LIB2FUNCS_EXCLUDE): Add _clrsbdi2.
	(LIB1ASMFUNCS): Add: _ssabs_1, _mask1, _ret, _roundqq3, _rounduqq3,
	_round_s2, _round_u2, _round_2_const, _addmask_2, _round_s4,
	_round_u4, _round_4_const, _addmask_4, _round_x8, _rounddq3
	_roundudq3, _roundda3 _rounduda3, _roundta3 _rounduta3.
	* config/avr/lib1funcs-fixed.S: Implement them.

gcc/testsuite/
	PR target/54222
	* gcc.target/avr/torture/builtins-4-roundfx.c: New test.
	* gcc.target/avr/torture/builtins-5-countlsfx.c: New test.

From-SVN: r195878
2013-02-08 10:13:37 +00:00