You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While talking about #142, I did some testing on master here, and found:
i686 jit true -> boots to desktop ok
i686 jit false -> boots to desktop ok
x86_64 jit true -> boots to desktop ok
x86_64 jit false -> segfault on the boot screen before the first extension icon appears, no PPC stack trace
The x86_64 test there was on Debian 9:
Linux debcdehax 4.9.0-14-amd64 #1 SMP Debian 4.9.240-2 (2020-10-30) x86_64 GNU/Linux
Built with its:
$ gcc --version
gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
The backtrace:
Thread 1 "SheepShaver" received signal SIGSEGV, Segmentation fault.
powerpc_cpu::execute_loadstore<op_template_nop<unsigned int>, input_gpr_except<bit_field<11, 15>, 0>, gpr_operand<bit_field<16, 20> >, false, 4, false, false> (this=0x79bfbfc0, opcode=<optimized out>) at ../kpx_cpu/src/cpu/ppc/ppc-execute.cpp:576
576 memory_helper<SZ, RX>::store(ea, operand_RS::get(this, opcode));
(gdb) bt
#0 powerpc_cpu::execute_loadstore<op_template_nop<unsigned int>, input_gpr_except<bit_field<11, 15>, 0>, gpr_operand<bit_field<16, 20> >, false, 4, false, false> (this=0x79bfbfc0, opcode=<optimized out>) at ../kpx_cpu/src/cpu/ppc/ppc-execute.cpp:576
#1 0x00000000780b6518 in nv_mem_fun1_t<void, powerpc_cpu, unsigned int>::operator() (x=<optimized out>, p=0x79bfbfc0, this=0x1038f960)
at ../kpx_cpu/include/nvmemfun.hpp:108
#2 powerpc_cpu::execute (this=0x79bfbfc0, entry=entry@entry=1085341696) at ../kpx_cpu/src/cpu/ppc/ppc-cpu.cpp:697
#3 0x00000000780cd69e in emul_ppc (entry=entry@entry=1085341696) at ../kpx_cpu/sheepshaver_glue.cpp:938
#4 0x0000000078065707 in jump_to_rom (entry=1085341696) at main_unix.cpp:1271
#5 emul_func (arg=0x0) at main_unix.cpp:1291
#6 main (argc=<optimized out>, argv=<optimized out>) at main_unix.cpp:1112
Disassembling at the point where the segfault happens:
The problem is that sigsegv.cpp's ix86_skip_instruction() doesn't know what to make of the 0x67 x86_64 32-bit address mode prefix on that instruction there.
The text was updated successfully, but these errors were encountered:
While talking about #142, I did some testing on master here, and found:
i686 jit true -> boots to desktop ok
i686 jit false -> boots to desktop ok
x86_64 jit true -> boots to desktop ok
x86_64 jit false -> segfault on the boot screen before the first extension icon appears, no PPC stack trace
The x86_64 test there was on Debian 9:
Built with its:
The backtrace:
Disassembling at the point where the segfault happens:
etc...
The problem is that
sigsegv.cpp
'six86_skip_instruction()
doesn't know what to make of the0x67
x86_64 32-bit address mode prefix on that instruction there.The text was updated successfully, but these errors were encountered: