diff options
author | Georg-Johann Lay <avr@gjlay.de> | 2011-07-27 16:39:13 +0000 |
---|---|---|
committer | Georg-Johann Lay <gjl@gcc.gnu.org> | 2011-07-27 16:39:13 +0000 |
commit | 04c9ea12e0f579e0f974ffe6a979376ddafbc0a1 (patch) | |
tree | af7198bc3f4a1db48a883d5db8cb07f2ad68da49 /gcc/ggc.h | |
parent | 479a49210d80642aee6841df8aa3a8bd2751146f (diff) | |
download | gcc-04c9ea12e0f579e0f974ffe6a979376ddafbc0a1.zip gcc-04c9ea12e0f579e0f974ffe6a979376ddafbc0a1.tar.gz gcc-04c9ea12e0f579e0f974ffe6a979376ddafbc0a1.tar.bz2 |
re PR target/49313 (Inefficient libgcc implementations for avr)
PR target/49313
* config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
(__ctzsi2): Result for 0 may be undefined.
(__ctzhi2): Result for 0 may be undefined.
(__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
(__popcountsi2): Ditto. And don't clobber r26.
(__popcountdi2): Ditto. And don't clobber r27.
* config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
(parityhi2): New expand.
(paritysi2): New expand.
(popcounthi2): New expand.
(popcountsi2): New expand.
(clzhi2): New expand.
(clzsi2): New expand.
(ctzhi2): New expand.
(ctzsi2): New expand.
(ffshi2): New expand.
(ffssi2): New expand.
(copysignsf3): New insn.
(bswapsi2): New expand.
(*parityhi2.libgcc): New insn.
(*parityqihi2.libgcc): New insn.
(*paritysihi2.libgcc): New insn.
(*popcounthi2.libgcc): New insn.
(*popcountsi2.libgcc): New insn.
(*popcountqi2.libgcc): New insn.
(*popcountqihi2.libgcc): New insn-and-split.
(*clzhi2.libgcc): New insn.
(*clzsihi2.libgcc): New insn.
(*ctzhi2.libgcc): New insn.
(*ctzsihi2.libgcc): New insn.
(*ffshi2.libgcc): New insn.
(*ffssihi2.libgcc): New insn.
(*bswapsi2.libgcc): New insn.
From-SVN: r176835
Diffstat (limited to 'gcc/ggc.h')
0 files changed, 0 insertions, 0 deletions