eurecom-s3/symqemu

Support of TCG variables of type i128

Closed this issue · 3 comments

I'm merging to QEMU 8.2.1, and now i128 seems to be a real-world problem, which makes the statement in Damien's thesis page 111 invalid now.
Now it's used even for very simple test cases like printf and simple, because instructions like MOVDQ use i128 directly.
I'm not sure how much work is required to make the change to support wider tcg_temp, I started working on it.
If I can make it work, I'll include it with the PR for the merge mentioned above.

@damienmaier @sebastianpoeplau it would be nice to have your opinion on the options there.

What about simply modifying the function temp_expr such that, if *ts is an i128, we return ts+2 instead of ts+1 ?

When I was working on this subject I though that support of i128 required significant changes on how symbolic TCGTemps are handled, but now that I think about it again I am under the impression that the solution above may just work.

I think it's not too much work in theory; it's more about making sure nothing breaks and potential edge cases.
I'll check and see what it gives