ptitSeb / box64

Box64 - Linux Userspace x86_64 Emulator with a twist, targeted at ARM64 Linux devices
https://box86.org
MIT License
3.73k stars 267 forks source link

compile error: no match insn: ret #1373

Open iamsonderr opened 6 months ago

iamsonderr commented 6 months ago

I got the following error when compiling box64 in the main branch on the loongarch platform:

[ 12%] Built target native_pass0
make[2]: 进入目录“/root/software/box64-main.src/build”
make[2]: 离开目录“/root/software/box64-main.src/build”
make[2]: 进入目录“/root/software/box64-main.src/build”
[ 12%] Building ASM object CMakeFiles/dynarec_native.dir/src/dynarec/la64/la64_epilog.S.o
/root/software/box64-main.src/src/dynarec/la64/la64_epilog.S: Assembler messages:
/root/software/box64-main.src/src/dynarec/la64/la64_epilog.S:66: 致命错误:no match insn: ret    
make[2]: *** [CMakeFiles/dynarec_native.dir/build.make:159:CMakeFiles/dynarec_native.dir/src/dynarec/la64/la64_epilog.S.o] 错误 1
make[2]: 离开目录“/root/software/box64-main.src/build”
make[1]: *** [CMakeFiles/Makefile2:229:CMakeFiles/dynarec_native.dir/all] 错误 2
make[1]: 离开目录“/root/software/box64-main.src/build”
make: *** [Makefile:163:all] 错误 2

My compilation command is as follows:

cmake .. -D LARCH64=1 -D CMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/root/software/box64-main
make

My cpu information is as follows:

架构:           loongarch64
字节序:         Little Endian
CPU:             32
在线 CPU 列表:  0-31
每个核的线程数: 1
每个座的核数:   16
座:             2
NUMA 节点:      2
CPU 系列:       Loongson-64bit
型号名称:       Loongson-3C5000
CPU MHz:        2200.00
BogoMIPS:       4400.00
L1d 缓存:       2 MiB
L1i 缓存:       2 MiB
L2 缓存:        8 MiB
L3 缓存:        16 MiB
NUMA 节点0 CPU: 0-15
NUMA 节点1 CPU: 16-31
标记:           cpucfg lam ual fpu lsx lasx complex crypto lvz lbt_x86 lbt_arm lbt_mips

my os info is as follows:Kylin Linux Advanced Server V10 (Lance) 4.19.90-52.14.v2207.a.ky10.loongarch64 gcc version is gcc (GCC) 8.3.0 20190222 (Loongson 8.3.0-24 vec)

iamsonderr commented 6 months ago

can u help me sir ? @ksco

ksco commented 6 months ago

Consider upgrading your gcc. By the way, unless you want to get involved in the development, the loongarch64 backend is not usable right now.