This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [Patch, avr] Relax LDS/STS to IN/OUT if symbol is in I/O address range
- From: Denis Chertykov <chertykov at gmail dot com>
- To: Senthil Kumar Selvaraj <senthil_kumar dot selvaraj at atmel dot com>
- Cc: Georg-Johann Lay <avr at gjlay dot de>, "binutils at sourceware dot org" <binutils at sourceware dot org>, Nick Clifton <nickc at redhat dot com>
- Date: Thu, 9 Oct 2014 18:26:06 +0400
- Subject: Re: [Patch, avr] Relax LDS/STS to IN/OUT if symbol is in I/O address range
- Authentication-results: sourceware.org; auth=none
- References: <20140929104545 dot GA984 at atmel dot com> <CADOs=zaSvw-8Lpg5Te1v0YE19KBh6uN8udCpsNAWuvfpL7YHbA at mail dot gmail dot com> <20140930021023 dot GA14314 at atmel dot com> <5431C74C dot 5030500 at gjlay dot de> <20141006042945 dot GA1261 at atmel dot com> <20141009103449 dot GF3842 at atmel dot com>
2014-10-09 14:34 GMT+04:00 Senthil Kumar Selvaraj
<senthil_kumar.selvaraj@atmel.com>:
> That worked, and I've sent a patch to the avr-libc mailing list.
>
> That said, this patch will still help if the address read from/written
> to is not a compile time constant and happens to fall in IO address
> range (extern variables, library code etc..).
>
> According to the binutils documentation
> (https://sourceware.org/binutils/docs/ld/M68HC11_002f68HC12.html#M68HC11_002f68HC12)
> the linker even transforms addressing modes. This patch does something
> similar.
1. M68HC1x is not a one of the most popular GCC target. (It's not a
good example to follow)
2. You poin to a place where the linker change one jump instruction to
another. IMHO it's predictable from the linker.
3. Your patch change loading/storing from memory to input/output -
it's not so predictable from the linker.
4. I worry only on compatibility issues.
5. It's not a strong objection.
6. Look at this (already approved) patch:
https://gcc.gnu.org/ml/gcc-patches/2014-10/msg00683.html
6. If somebody else will vote for your patch then it will be approved.
Denis.