On Mon, Jan 12, 2026 at 11:34 AM Pranith Kumar <[email protected]> wrote:
>
> Hello,
>
> I am trying to run spec intrate with qemu-x86_64 and it seems to fail
> with an 'Illegal Instruction' error. I tried compiling with an ancient
> architecture (-march=core2/athlon64) and this error persists.
>
> Is this a known issue? Are there any workarounds?
>
> Trace 0: 0x7fffe806fd40 [00000000/000000000050d8d6/1040c0b3/00000000]
> Perl_sv_upgrade
> ----------------
> IN: Perl_sv_upgrade
> 0x0050d8dc:  c5 f9 ef c0              vpxor    %xmm0, %xmm0, %xmm0
> 0x0050d8e0:  48 83 c2 10              addq     $0x10, %rdx
> 0x0050d8e4:  62                       .byte    0x62
> 0x0050d8e5:  f1                       int1
>


This is being caused by the instruction 'vmovdqu8'. Disassembly of the
binary shows:

11e69c:       c5 f9 ef c0             vpxor  %xmm0,%xmm0,%xmm0
11e6a0:       48 83 c2 10             add    $0x10,%rdx
11e6a4:       62 f1 7f 08 7f 42 ff    vmovdqu8 %xmm0,-0x10(%rdx)

However, tcg is unable to decode this last instruction and traps.

I wonder why the 'march=core2' flag is not forcing gcc to disable this
instruction sequence.


--
Pranith

Reply via email to