pro64-support
[Top] [All Lists]

RE: question of Md

To: "'llx'" <llx@xxxxxxxxx>, "Chan, Sun C" <sun.c.chan@xxxxxxxxx>
Subject: RE: question of Md
From: lesniak@xxxxxxxxxxxxxxxxxxxxx (Ken Lesniak)
Date: Fri, 29 Dec 2000 09:50:29 -0500 (EST)
Cc: "'pro64-support@xxxxxxxxxxx'" <pro64-support@xxxxxxxxxxx>
Reply-to: lesniak@xxxxxxxxxxxxxxxxxxxxx
Sender: owner-pro64-support@xxxxxxxxxxx
>From: "Chan, Sun C" <sun.c.chan@xxxxxxxxx>
>
>I really don't have a good answer to your question. My guess would be that
>TOP's like
>add_1, mix1_1,... (Instruction_Group: O_40) does not get generated by the
>compiler
>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.
> 
>Sun
>
>-----Original Message-----
>From: llx [mailto:llx@xxxxxxxxx]
>
>Hi,sun:
>   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
specific knowledge.

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
ids.

Fairly arbitrary, but that's what we did.


Ken

<Prev in Thread] Current Thread [Next in Thread>