This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Baseless address space
- From: Amir Gonnen <amirgonnen at gmail dot com>
- To: gcc at gcc dot gnu dot org
- Date: Sun, 12 May 2013 09:58:21 +0300
- Subject: Baseless address space
Hi,
I'm considering adding a named address space to our private gcc port.
This address space is accessed using special instructions with a very
limited addressing mode "[index*8 + imm]" : it only supports an
index scaled by 64bit + an immediate. The issue here is that there is
no base register. (access to this address space is always aligned to
64 bits)
Up until now we were using inline assembly to access this address space.
I've tried adding a named address space and defining the relevant insn
patterns and macors (such as TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P
and adjusting TARGET_ADDRESS_COST) but without success so far. It
looks like the expander assumes there is always a base and it could
always fall-back to "[base]" addressing mode.
I'll appreciate any hints regarding whether there is already a target
with such addressing mode, and how hard would it be to modify gcc to
support it.
Thanks,
Amir