On 10/2/19 2:10 AM, Daniel P. Berrangé wrote:
>> GCC only implements int128_t for 64-bit targets.
> 
> QEMU probes for that during configure  and sets CONFIG_INT128
> 
> If I'm reading correctly include/qemu/int128.h then provides a
> fallback type based on a struct with two int64s.
> 
> This has some inconvenience though as you have to use the the (inline)
> function calls for all the basic operands and will be less efficient
> when using the fallback.
> 
> Presumably this is not viable for TCG ?

A structure (for some ABIs) may be passed and returned by invisible reference.
 It's not impossible (nothing's impossible), but it adds previously unnecessary
complexity to allocate that storage on the jit stack.

Actually manipulating one 128-bit value consumes 4/6 of the i386 registers,
which I can well imagine could wind up causing problems.  Certainly
manipulating two values at once is out of the question.  That's less of a
problem for arm and mips.

Anyway, all of the pain points go away if we assume 64-bit.


r~

Reply via email to