This is the mail archive of the
binutils@sourceware.cygnus.com
mailing list for the binutils project.
RE: Patch H8300/S Bit Instruction Relaxing
- To: "'law at cygnus dot com'" <law at cygnus dot com>, "'Binutils (E-mail)" <binutils at sourceware dot cygnus dot com>
- Subject: RE: Patch H8300/S Bit Instruction Relaxing
- From: Paul Clarke <paulc at hydraelectronics dot com dot au>
- Date: Tue, 30 May 2000 09:58:22 +0930
-----Original Message-----
In message <A191B1036355D3119ABC0000E8E3B2F16A50@SERVER01>you write:
> Regarding the concern that a :8 memory reference at 'FF02 could as a
result
> of the text segment relaxing move outside of the 'FF00-'FFFF (eight bit
> area),
> I offer these reasons why it is unlikely to occur.
Unlikely is not good enough. It must not ever happen, you must be able to
prove it can not happen. And my recollection is that it can happen (i wrote
the code in question).
jeff
Jeff,
I an unfamiliar with the inner workings of the linker, can you help with the
following.
The trivial case when a memory reference is defined for the linker
eg _FirstEightbitAddr = 0xFFFF00
can always be relaxed, as the memory reference is unaffected by the
relaxing.
Question Does the linker know that the memory reference is fixed?
A memory reference in a non code section, with a fixed starting address
is also unaffected by relaxing. Question Can the linker determine this for a
memory reference?
A memory reference in a section totally contained within the 16 bit area
0000 - 7FFF can be relaxed. After relaxing the reference will still be
inside the 0000-7fff area. H8300 8 bit addressing not possible in this area.
A memory reference in a code section or with a starting address
dependant on a code section could cause problems. Save this one for later.
Paul