"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

Reply via email to