This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Ping #2: [Patch,AVR] Light-weight DImode implementation.
- From: Denis Chertykov <chertykov at gmail dot com>
- To: Georg-Johann Lay <avr at gjlay dot de>
- Cc: gcc-patches at gcc dot gnu dot org, "Weddington, Eric" <Eric dot Weddington at atmel dot com>, Richard Henderson <rth at redhat dot com>, Anatoly Sokolov <aesok at post dot ru>
- Date: Sun, 25 Dec 2011 23:27:22 +0400
- Subject: Re: Ping #2: [Patch,AVR] Light-weight DImode implementation.
- References: <4ECAA70E.5050205@gjlay.de> <4ECAD332.9020101@redhat.com> <4ED5206D.8070408@gjlay.de> <4ED524BF.2040000@redhat.com> <8D64F155F1C88743BFDC71288E8E2DA8059850A5@csomb01.corp.atmel.com> <CADOs=zY1rshPi14t-HU53yL_kuUiS4Cad2ODMt+XHT5ASYsd+A@mail.gmail.com> <4ED76383.8010306@gjlay.de> <4EDF4763.90700@gjlay.de> <4EEA0921.1080606@gjlay.de>
2011/12/15 Georg-Johann Lay <avr@gjlay.de>:
> http://gcc.gnu.org/ml/gcc-patches/2011-12/msg00471.html
>
> Georg-Johann Lay wrote:
>> Georg-Johann Lay wrote:
>>> Denis Chertykov wrote:
>>>
>>>>>>> The only question that remains is what the -m64 option should be like?
>>>>>>>
>>>>>>> [ ] Omit it altogether
>>>>>>> [ ] Leave it as is (off per default)
>>>>>>> [ ] Set it on per default
>>>>>>>
>>>>>>> As soon as the direction is clear, I'll post a follow-up patch to
>>>>>>> add the missing bits like, e.g., documentation for the new switch.
>>>>>> I'll leave the decision to Denis, but I'm for omitting it.
>>>>> I will also defer to Denis, but I'd rather avoid having another option,
>>>>> if we can. Keep it simple for the users.
>>> It might also be a hidden option like -morder2 and on per default.
>>> Such thing is nice for developers to play :-)
>>>
>>>> I'm agree with Richard. I'm for omitting it.
>>>> Denis.
>>
>> Here is a combined patch if that is more convenient for review.
>>
>> The variable avr_have_dimode that was originally set in avr.opt is still there
>> but always set to true in avr.c. Option -m64 is omitted and thus avr.opt is
>> unchanged.
>>
>> Passed without regressions.
>>
>> Ok?
>>
>> Johann
>>
>> gcc/
>> Â Â Â * config/avr/avr-dimode.md: New file.
>> Â Â Â * config/avr/avr.md: Include it.
>> Â Â Â (adjust_len): Add alternatives: plus64, compare64.
>> Â Â Â (HIDI): Remove code iterator.
>> Â Â Â (code_stdname): New code attribute.
>> Â Â Â (rotx, rotsmode): Remove DI from interators.
>> Â Â Â (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/
>> Â Â Â * 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.
>>
>
Approved.
Denis.