On 8/4/15 00:40, Richard Henderson wrote:
> On 08/01/2015 02:47 AM, Chen Gang wrote:
>> I am just adding floating point instructions (e.g. fsingle_add1),
>> but for me, I can not find any details about them (the ISA
>> documents only give a summary description, but not details), e.g.
> 
> The tilegx splits the four/six cycle arithmetic into multiple
> black-box instructions.  You need only really implement one of the
> four, with the rest of them being implemented as nops or moves.
> 
> Looking at what gcc produces gives the hints:
> 
> fdouble_unpack_min    min, srca, srcb fdouble_unpack_max      max, srca,
> srcb fdouble_add_flags        flg, srca, srcb fdouble_addsub          max, 
> min, flg 
> fdouble_pack1         dst, max, flg fdouble_pack2             dst, max, zero
> 
> The unpack, addsub, and pack2 insns can be ignored, the add_flags
> insn can perform the whole operation, the pack1 insn performs a move
> from "flg" to "dst".
> 
> Similarly for the single-precision:
> 
> fsingle_add1          tmp, srca, srcb fsingle_addsub2         tmp, srca, srcb 
> fsingle_pack1         flg, tmp fsingle_pack2          dst, tmp, flg
> 
> The add1 insn performs the whole operation, the addsub2 and pack1
> insns are ignored, and the pack2 insn is a move from tmp to dst.
> 

Thank you very much. I am just analyzing the template file (tilegx.md)
and testsuite executable file (20000603-1.exe) for it. Your information
is really valuable to me! :-)

And still welcome any additional information for it: especially related
details documentations which should be more 'standard' than the third-
party's implementation (e.g. gcc implementation).


I shall try to let qemu tilegx support gcc testsuite successfully within
this month.


Thanks.
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed

Reply via email to