instruction: 0.359 runtime: 0.345 syscall: 0.295 8.1.0 regression: abnormal segfault in qemu-riscv64-static Description of problem: loading_from_clipboard_test of Cockatrice segfaults in qemu-riscv64-static. Steps to reproduce: 1. Setup an Arch Linux riscv64 qemu-user container: https://github.com/felixonmars/archriscv-packages/wiki/Setup-Arch-Linux-RISC-V-Development-Environment 2. Start the container: `sudo systemd-nspawn -D ./archriscv -a -U` 3. Build cockatrice 2.9.0 with tests in the container: https://github.com/Cockatrice/Cockatrice/releases/tag/2023-09-14-Release-2.9.0 4. Run tests/loading_from_clipboard/loading_from_clipboard_test in the container Additional information: I have done bisection and find out that this commit caused the regression: 2d708164e0475064e0e2167bd73e8570e22df1e0 qemu built from HEAD(494a6a2) is still affected by this bug. Backtrace: ``` #0 0x00007fffe849f133 in code_gen_buffer () #1 0x00007ffff7b3a433 in cpu_tb_exec (cpu=0x7ffff7f71010, itb=0x7fffe849f040 , tb_exit=0x7fffffffde20) at ../qemu/accel/tcg/cpu-exec.c:457 #2 0x00007ffff7b3aeac in cpu_loop_exec_tb (cpu=0x7ffff7f71010, tb=0x7fffe849f040 , pc=46912625654024, last_tb=0x7fffffffde30, tb_exit=0x7fffffffde20) at ../qemu/accel/tcg/cpu-exec.c:919 #3 0x00007ffff7b3b0e0 in cpu_exec_loop (cpu=0x7ffff7f71010, sc=0x7fffffffdeb0) at ../qemu/accel/tcg/cpu-exec.c:1040 #4 0x00007ffff7b3b19e in cpu_exec_setjmp (cpu=0x7ffff7f71010, sc=0x7fffffffdeb0) at ../qemu/accel/tcg/cpu-exec.c:1057 #5 0x00007ffff7b3b225 in cpu_exec (cpu=0x7ffff7f71010) at ../qemu/accel/tcg/cpu-exec.c:1083 #6 0x00007ffff7a53707 in cpu_loop (env=0x7ffff7f71330) at ../qemu/linux-user/riscv/cpu_loop.c:37 #7 0x00007ffff7b5d0e0 in main (argc=4, argv=0x7fffffffe768, envp=0x7fffffffe790) at ../qemu/linux-user/main.c:999 ``` ``` 0x7fffe849f105 jl 0x7fffe849f265 │ │ 0x7fffe849f10b mov 0x50(%rbp),%rbx │ │ 0x7fffe849f10f mov %rbx,%r12 │ │ 0x7fffe849f112 mov %r12,0x70(%rbp) │ │ 0x7fffe849f116 movabs $0x2aaaaf9bb000,%r13 │ │ 0x7fffe849f120 mov %r13,0x38(%rbp) │ │ 0x7fffe849f124 movq $0xffffffffaf9bb000,0x60(%rbp) │ │ 0x7fffe849f12c mov $0xffffffffaf9bb4e0,%r13 │ │ > 0x7fffe849f133 movzwl 0x0(%r13),%r13d │ │ 0x7fffe849f138 and $0x7f,%ebx │ │ 0x7fffe849f13b shl $0x7,%r13 │ │ 0x7fffe849f13f add %r13,%rbx │ │ 0x7fffe849f142 mov %rbx,0x50(%rbp) │ │ 0x7fffe849f146 shl %rbx │ │ 0x7fffe849f149 mov %rbx,0x38(%rbp) │ │ 0x7fffe849f14d movabs $0x2aaaaf9a88e0,%r13 │ │ 0x7fffe849f157 add %r13,%rbx │ │ 0x7fffe849f15a mov %rbx,0x60(%rbp) ```