How to determine aligned/unaligned loads in RTL?
Igor Shevlyakov
igor@microunity.com
Fri Jun 20 01:10:00 GMT 2003
Hi,
I'm having a problem describing architecture I'm currently working on in
my .md file.
I have full set of aligned and unaligned loads in instruction set. And
depending op pragma/command line option regular "load" pattern should be
generated in aligned or unaligned loads. At the same time I want to use
unaligned loads in "extv" pattern when extracting bit fields from
memory. Another sad part is that unaligned part of address could be only
in base register but immediate offset should always be multiple of load
size. So when define_expand "extv" from memory operand and need generate
something like
for
r = (extract (mem (EA)) W O)
rT = (add (EA) (O/8))
r = ( <RTL for unal-load> (RT))
where <RTL for unal-load> couldn't just mem:M because this one could be
aligned/unaligned depending on the options.
Could anybody helpme choose that RTL should be in <RTL for unal-load>.
Thanks
Igor
More information about the Gcc
mailing list