gcc/libgcc
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
..
config re PR target/57516 ([avr] Incorrect fixed-point rounding result in the overflow case) 2013-07-19 11:10:08 +00:00
soft-fp re PR other/53317 (Conversion from __int128 to __float128) 2013-06-21 20:08:01 +01:00
ChangeLog re PR target/57516 ([avr] Incorrect fixed-point rounding result in the overflow case) 2013-07-19 11:10:08 +00:00
config.host * config.host (powerpc-*-eabispe*): Add t-fdpbit to tmake_file. 2013-07-09 21:31:09 +00:00
config.in
configure config.host: Add support for cygwin x64 target. 2013-03-27 22:59:10 +01:00
configure.ac
crtstuff.c
dfp-bit.c
dfp-bit.h
divmod.c
empty.mk
emutls.c
enable-execute-stack-empty.c
enable-execute-stack-mprotect.c
fixed-bit.c
fixed-bit.h
fixed-obj.mk
floatunsidf.c
floatunsisf.c
floatunsitf.c
floatunsixf.c
fp-bit.c fp-bit.c (unpack_d, pack_d): Properly preserve and restore a NaN's payload. 2013-05-06 10:23:02 +02:00
fp-bit.h fp-bit.c (unpack_d, pack_d): Properly preserve and restore a NaN's payload. 2013-05-06 10:23:02 +02:00
gbl-ctors.h
gen-fixed.sh
generic-morestack-thread.c
generic-morestack.c
generic-morestack.h
gstdint.h
gthr-posix.h
gthr-single.h
gthr.h
libgcc2.c libgcc2.c: Don't include <limits.h>. 2013-07-15 18:33:06 +00:00
libgcc2.h
libgcc-std.ver.in
libgcov.c
longlong.h
Makefile.in Makefile.in (clean, distclean): Remove auto-target.h and stamp-h correctly. 2013-06-25 08:02:11 +00:00
memcmp.c
memcpy.c
memmove.c
memset.c
mkheader.sh
mkmap-flat.awk
mkmap-symver.awk
shared-object.mk
siditi-object.mk
static-object.mk
sync.c
udivmod.c
udivmodsi4.c
unwind-arm-common.inc
unwind-c.c
unwind-compat.c
unwind-compat.h
unwind-dw2-fde-compat.c
unwind-dw2-fde-dip.c
unwind-dw2-fde.c
unwind-dw2-fde.h
unwind-dw2.c re PR target/49146 (segv from libgcc_s when raising an exception, or unwinding stack with backtrace with ms_abi) 2013-05-17 08:27:37 -07:00
unwind-dw2.h
unwind-generic.h
unwind-pe.h
unwind-seh.c
unwind-sjlj.c
unwind.inc