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



                       [0/92921]

OUT: [size=128]
  -- guest addr 0x000000000050d8dc + tb prologue
0x7fffe806fec0:  8b 5d ec                 movl     -0x14(%rbp), %ebx
0x7fffe806fec3:  85 db                    testl    %ebx, %ebx
0x7fffe806fec5:  0f 8c 5d 00 00 00        jl       0x7fffe806ff28
0x7fffe806fecb:  c6 45 f0 00              movb     $0, -0x10(%rbp)
0x7fffe806fecf:  c5 f9 ef c0              vpxor    %xmm0, %xmm0, %xmm0
0x7fffe806fed3:  c5 f9 7f 85 60 03 00 00  vmovdqa  %xmm0, 0x360(%rbp)
0x7fffe806fedb:  c5 f9 7f 85 70 03 00 00  vmovdqa  %xmm0, 0x370(%rbp)
  -- guest addr 0x000000000050d8e0
0x7fffe806fee3:  48 8b 5d 10              movq     0x10(%rbp), %rbx
0x7fffe806fee7:  48 83 c3 10              addq     $0x10, %rbx
0x7fffe806feeb:  48 89 5d 10              movq     %rbx, 0x10(%rbp)
0x7fffe806feef:  48 89 9d 90 00 00 00     movq     %rbx, 0x90(%rbp)
0x7fffe806fef6:  48 c7 85 98 00 00 00 10  movq     $0x10, 0x98(%rbp)
0x7fffe806fefe:  00 00 00
0x7fffe806ff01:  c6 45 f0 01              movb     $1, -0x10(%rbp)
  -- guest addr 0x000000000050d8e4
0x7fffe806ff05:  c7 85 a8 00 00 00 0b 00  movl     $0xb, 0xa8(%rbp)
0x7fffe806ff0d:  00 00
0x7fffe806ff0f:  48 c7 85 80 00 00 00 e4  movq     $0x50d8e4, 0x80(%rbp)
0x7fffe806ff17:  d8 50 00
0x7fffe806ff1a:  be 06 00 00 00           movl     $6, %esi
0x7fffe806ff1f:  48 8b fd                 movq     %rbp, %rdi
0x7fffe806ff22:  ff 15 10 00 00 00        callq    *0x10(%rip)
0x7fffe806ff28:  48 8d 05 d4 fe ff ff     leaq     -0x12c(%rip), %rax
0x7fffe806ff2f:  e9 e4 00 f9 ff           jmp      0x7fffe8000018
  -- tb slow paths + alignment
0x7fffe806ff34:  90                       nop
0x7fffe806ff35:  90                       nop
0x7fffe806ff36:  90                       nop
0x7fffe806ff37:  90                       nop
  data: [size=8]
0x7fffe806ff38:  .quad  0x000055555564a472

Linking TBs 0x7fffe806fd40 index 1 -> 0x7fffe806fec0
Trace 0: 0x7fffe806fec0 [00000000/000000000050d8dc/1040c0b3/00000000]
Perl_sv_upgrade
qemu: uncaught target signal 4 (Illegal instruction) - core dumped

Thread 1 "qemu-x86_64" received signal SIGILL, Illegal instruction.
__syscall_cancel_arch () at
../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
warning: 56     ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S: No
such file or directory
(gdb) layout asm
(gdb) f 1
#1  0x00007ffff7249668 in __internal_syscall_cancel (a1=<optimized
out>, a2=a2@entry=8, a3=a3@entry=0, a4=a4@entry=0, a5=a5@entry=0,
a6=a6@entry=0, nr=130) at ./nptl/cancellation.c:49
warning: 49     ./nptl/cancellation.c: No such file or directory
(gdb) f 0
#0  __syscall_cancel_arch () at
../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
warning: 56     ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S: No
such file or directory
(gdb) bt
#0  __syscall_cancel_arch () at
../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007ffff7249668 in __internal_syscall_cancel (a1=<optimized
out>, a2=a2@entry=8, a3=a3@entry=0, a4=a4@entry=0, a5=a5@entry=0,
a6=a6@entry=0, nr=130) at ./nptl/cancellation.c:49
#2  0x00007ffff72496ad in __syscall_cancel (a1=<optimized out>,
a2=a2@entry=8, a3=a3@entry=0, a4=a4@entry=0, a5=a5@entry=0,
a6=a6@entry=0, nr=130) at ./nptl/cancellation.c:75
#3  0x00007ffff71fa07d in __GI___sigsuspend (set=<optimized out>) at
../sysdeps/unix/sysv/linux/sigsuspend.c:26
#4  0x00005555556ccef1 in die_with_signal (host_sig=4) at
../linux-user/signal.c:807
#5  0x00005555556cd065 in dump_core_and_abort (env=0x5555559466e0,
target_sig=4) at ../linux-user/signal.c:847
#6  0x00005555556ce2c4 in handle_pending_signal
(cpu_env=0x5555559466e0, sig=4, k=0x55555595e490) at
../linux-user/signal.c:1306
#7  0x00005555556ce5ed in process_pending_signals
(cpu_env=0x5555559466e0) at ../linux-user/signal.c:1386
#8  0x00005555556352c7 in cpu_loop (env=0x5555559466e0) at
../linux-user/x86_64/../i386/cpu_loop.c:323
#9  0x00005555556c72af in main (argc=15, argv=0x7fffffffdaa8,
envp=0x7fffffffdb28) at ../linux-user/main.c:1035

-- 
Pranith

Reply via email to