]> git.ipfire.org Git - thirdparty/gcc.git/commit - libgcc/ChangeLog
Implement light-weight DImode support.
authorGeorg-Johann Lay <avr@gjlay.de>
Mon, 2 Jan 2012 12:30:56 +0000 (12:30 +0000)
committerGeorg-Johann Lay <gjl@gcc.gnu.org>
Mon, 2 Jan 2012 12:30:56 +0000 (12:30 +0000)
commit8c57e5473e707a0def3df29d89336b96abca9388
tree3c24b38e4a5abc3d1734ad1478057a319e4036c7
parent5f595f167555e127f24d3defedf431b06209bdfc
Implement light-weight DImode support.

gcc/
Implement light-weight DImode support.
* config/avr/avr-dimode.md: New file.
* config/avr/avr.md: Include it.
(adjust_len): Add plus64, compare64.
(HIDI): Remove code iterator.
(code_stdname): New code attribute.
(rotx, rotsmode): Remove DI.
(rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
as code iterator.
* config/avr/avr-protos.h (avr_have_dimode): New.
(avr_out_plus64, avr_out_compare64): New.
* config/avr/avr.c (avr_out_compare): Handle DImode.
(avr_have_dimode): New variable definition and initialization.
(avr_out_compare64, avr_out_plus64): New functions.
(avr_out_plus_1): Use simplify_unary_operation to negate xval.
(adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
(avr_compare_pattern): Skip DImode comparisons.

libgcc/
Implement light-weight DImode support.
* config/avr/t-avr (LIB1ASMFUNCS): Add _adddi3, _adddi3_s8,
_subdi3, _cmpdi2, _cmpdi2_s8, _rotldi3.
* config/avr/lib1funcs.S (__adddi3, __adddi3_s8, __subdi3,
__cmpdi2, __cmpdi2_s8, __rotldi3): New functions.

From-SVN: r182794
gcc/ChangeLog
gcc/config/avr/avr-dimode.md [new file with mode: 0644]
gcc/config/avr/avr-protos.h
gcc/config/avr/avr.c
gcc/config/avr/avr.md
libgcc/ChangeLog
libgcc/config/avr/lib1funcs.S
libgcc/config/avr/t-avr