On 05/22/2018 09:19 AM, Peter Maydell wrote:
> But what we actually have is
> target/arm/helper.c:float16 HELPER(recpe_f16)(float16 input, void *fpstp)
> target/arm/helper.c:float16 HELPER(vfp_sltoh)(uint32_t x, uint32_t
> shift, void *fpst)
> 
> (and others that you can find by grepping for "float16 HELPER") --
> the helpers don't return a uint32_t, they return float16.
> In fact if you try to make them return uint32_t then you get
> a compile error, because the DEF_HELPER_* macros prototype them
> as returning float16 when you say the return type is 'f16'.

Grr.  That is definitely not what I thought we were wiring up.

So, do you think it is sufficiently less confusing for developers within
target/* to have "f16" expand to "float16" as opposed to uint32_t?

It would be significant surgery within tcg to allow such types to be passed
down.  Although I've been wondering for some time if we might be able to handle
int128_t as a native tcg type, and that would require similar changes.


r~


Reply via email to