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