Different addressing modes?

Fred Cook fcook377@hotmail.com
Wed May 21 16:32:00 GMT 2003


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



More information about the Gcc mailing list