>From: "Chan, Sun C" <sun.c.chan@xxxxxxxxx>
>I really don't have a good answer to your question. My guess would be that
>add_1, mix1_1,... (Instruction_Group: O_40) does not get generated by the
>and TOP_add, TOP_andcm,... do. So they are grouped slightly different.
>Its not immediately clear the comment:
>/* ==== (<%pr%p6>) <r7>=<%o1%r7>,<%o2%r7> ==== */
>what exactly %o1 and %o2 means.
>Perhaps Mike or Ken can help you.
>From: llx [mailto:llx@xxxxxxxxx]
> I have some question about the part of Machine description:
> 1)Why the operands between operate code "add" and "add_1" are
>different. In the files (targ_isa_operands.c,h) of PRO64,"add"
>belongs to Operands type :O63,but the opcode "add_1" belongs to O40. Two
>operands types have different operands use. I also want to know the
>usage of operand use
I think I answered this question in a seperate message.
Anyway, the difference is in the 'operand usage' for the different ops
(that's the %o1 %o2 above).
The target independent parts of the compiler use the operand usage
identifiers to fold things like simple adds and subtracts. It allows
the code to find the addends, etc, without having to have target
add_1, mix1, etc are fairly unique to ia64, so there is no target
idenpendent handling for them and hence they don't need operand usage
Fairly arbitrary, but that's what we did.