I can agree that binary compiled for i486 doesn't contain cmpxchg8b and works OK with exception of setjmp bug I described in another thread [1]. glxgears which doesn't use signals works without problem. 64bit atomic operations seems to be emulated in util/atomic64.c.
However I've found out the compilation for i386 seems to fail during configure due to the lack of i386 atomic instructions in my GCC 13.2.0 version. If this is normal behavior, I guess __tune_i386__ check doesn't make sense to add. [1] [BUG] accel/tcg: cpu_exec_longjmp_cleanup: assertion failed: (cpu == current_cpu) Petr Dne 28. 11. 23 v 16:52 Richard Henderson napsal(a): > On 11/26/23 09:56, Paolo Bonzini wrote: >> >> >> Il sab 25 nov 2023, 13:23 Petr Cvek <petrcve...@gmail.com >> <mailto:petrcve...@gmail.com>> ha scritto: >> >> GCC defines __i386__ for i386 and i486, which both lack RDTSC >> instruction. >> The i386 seems to be impossible to distinguish, but i486 can be >> identified >> by checking for undefined __i486__. >> >> >> As far as I know QEMU cannot be run on i486 anyway since TCG assumes the >> presence of CPUID. Have you actually tried? > > TCG does not assume CPUID. > > We might have problems without cmpxchg8b, but if so that's in accel/tcg/ not > tcg/. > > > r~