diff options
author | Georg-Johann Lay <avr@gjlay.de> | 2013-07-19 11:10:08 +0000 |
---|---|---|
committer | Georg-Johann Lay <gjl@gcc.gnu.org> | 2013-07-19 11:10:08 +0000 |
commit | 0237179843a59b84cc1ae9a14bdf66a308ebd289 (patch) | |
tree | aec31c0be57cb1d48958052153b5c54d7e94476e /gcc/combine-stack-adj.c | |
parent | 1545921d63fe20ebe99a3280728ec33c99f8af78 (diff) | |
download | gcc-0237179843a59b84cc1ae9a14bdf66a308ebd289.zip gcc-0237179843a59b84cc1ae9a14bdf66a308ebd289.tar.gz gcc-0237179843a59b84cc1ae9a14bdf66a308ebd289.tar.bz2 |
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
Diffstat (limited to 'gcc/combine-stack-adj.c')
0 files changed, 0 insertions, 0 deletions