On 3/2/07, Naveen Neelakantam <[EMAIL PROTECTED]> wrote:
Is anyone planning on writing a document describing how tau operands
are used?  It has taken me a lot of time digging through the code to
try to understand it (and my understanding is probably still
incomplete).

Here is a paper by the ORP starjit developers on design philosophy.

http://www.cs.cmu.edu/~leaf/publications/starjit/menon-starjit.pdf

Thanks,
xiaofeng

It would be good to save other people from some of the pain.  :-)

Naveen

On Mar 1, 2007, at 5:46 AM, Egor Pasko wrote:

> On the 0x28C day of Apache Harmony Estelle Liu wrote:
>> hi,
>> there are some tau instructions of HIR such as Op_TauDiv and
>> Op_TauLdInd,
>> what do they stand for?
>> How can I get descriptions about HIR instructions?
>
> Estelle,
>
> there is no complete reference guide for HIR instructions yet. How do
> we tell what operations' semantics are?  The
> jitrino/src/optimizer/Opcode.cpp file helps. For example:
>
> description:
>     { Op_TauDiv,                false, MB::Movable,
> MK::Signed_and_Strict,                     "div   ",        "div%
> m   %0,%1 ((%2)) -) %l",             }, // (opnds must already be
> checked for 0/overflow)
>
> "div" says it is division. On printing it tells about 3 source
> operands (%0, %1, %2) and one destination operand (%l). Operand ((%2))
> is a "tau-operand" (because in double-brachets) that comes from
> instruction performing a zero-check (with this tau-operand we ensure
> that zero-check is performed before the actual division).
>
> description2:
>     { Op_TauLdInd,              false, MB::Load,
> MK::AutoCompress_Speculative,              "ldind",         "ldind%
> m:%t [%0] ((%1,%2)) -) %l",          },
>
> This is an indirect load from memory :)
> Checked with two tau operands (null-check and bounds-check, AFAIR)
>
> --
> Egor Pasko
>


Reply via email to