"Eric Fisher" <[EMAIL PROTECTED]> writes: > While I read the mips.md, I find there are some constraints used in > function call templates, such as 'c' and 'j'. But these two > constraints seem not be defined and I can't find their explanation > both in source files and gcc internal. Well, aren't there anywhere I > missed? Otherwise, how can they work?
'c' and 'j' are register classes. They are defined by REG_CLASS_FROM_LETTER, is defined to use the array mips_char_to_class, which is initialized in override_options in mips.c. 'c' is the register class used to hold the address of a function when calling a function via a register. 'j' is the register class used to hold the address of a function when calling a function using the SVR4 calling convention, aka -mabicalls. In fact 'c' and 'j' are the same register class if -mabicalls is in effect, the class PIC_FN_ADDR_REG, which contains one register, $25. Ian