This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Different addressing modes?
- From: "Fred Cook" <fcook377 at hotmail dot com>
- To: gcc at gcc dot gnu dot org
- Cc: Ulrich dot Weigand at de dot ibm dot com
- Date: Wed, 21 May 2003 16:23:51 +0000
- Subject: Different addressing modes?
- Bcc:
I am still trying to get addressing modes correctly in my port. Basically my
architecture has the following addressing modes:
1) absolute
2) register indirect
3) register + offset
4) register + register
I want to specify in my define_insn for "call" that 1+2 are allowed and in
my define_insn for "movsi" that 2, 3, and 4 are allowed for loads and 2 and
3 for stores.
Which macros should I define?
What should I accept in GO_IF_LEGITIMATE? All four?
Which constraint letters should I introduce? Four letters for the four
modes? Which letters are free to use?
How to specify extra constraint in the define_insn pattern? Something
like...
(define_insn "movsi"
[(set (match_operand:SI 0 "nonimmediate_operand" "=r,S")
(match_operand:SI 1 "general_operand" "L,r"))]
""
"@
ld %1 -> %0
st %0 %1"
)
Where S accepts a store address and L accepts a load address. Or should it
be mS and mL? Or Sm or Lm?
Thanks,
Fred
_________________________________________________________________
Tired of spam? Get advanced junk mail protection with MSN 8.
http://join.msn.com/?page=features/junkmail