This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]