CE C Toolchain Unimplemented Opcode
Hi, I have an error when trying to use CE C Toolchain to compile. Platform : Raspberry Pi 400 Error : Unimplemented Opcode (04) 67 C7 00 09 00 00 00 58 67 8B 08 67 83 08 01
Log : Dynarec for ARM64, with extension: ASIMD CRC32 PageSize:4096 Box64 with Dynarec v0.1.9 c8d4d3b built on May 15 2022 12:50:52 Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/ Using default BOX64_PATH: ./:bin/ Counted 58 Env var Looking for /usr/bin/fasmg argv[1]="-n" argv[2]="/usr/meta/ld.alm" argv[3]="-i" argv[4]="DEBUG := 0" argv[5]="-i" argv[6]="HAS_PRINTF := 1" argv[7]="-i" argv[8]="HAS_LIBC := 1" argv[9]="-i" argv[10]="HAS_LIBCXX := 1" argv[11]="-i" argv[12]="PREFER_OS_CRT := 0" argv[13]="-i" argv[14]="PREFER_OS_LIBC := 1" argv[15]="-i" argv[16]="include "/usr/meta/linker_script"" argv[17]="-i" argv[18]="range .bss $D052C6 : $D13FD8" argv[19]="-i" argv[20]="provide __stack = $D1A87E" argv[21]="-i" argv[22]="locate .header at $D1A87F" argv[23]="-i" argv[24]="map" argv[25]="-i" argv[26]="source "obj/icon.src", "/usr/lib/crt/crt0.src", "obj/lto.src"" argv[27]="-i" argv[28]="library "/usr/lib/libload/fileioc.lib", "/usr/lib/libload/fontlibc.lib", "/usr/lib/libload/graphx.lib", "/usr/lib/libload/keypadc.lib"" argv[29]="bin/DEMO.bin" 13783|0x400992: Unimplemented Opcode (04) 67 C7 00 09 00 00 00 58 67 8B 08 67 83 08 01
I have added to opcode, you can update and try again.
I have another Unimplemented Opcode at the same place Unimplemented Opcode (08) 67 83 08 01 83 C0 08 83 E9 08 C3 67 8B 10 29
Log: Dynarec for ARM64, with extension: ASIMD CRC32 PageSize:4096 Box64 with Dynarec v0.1.9 7ac8d7d built on Jun 11 2022 14:42:45 Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/ Using default BOX64_PATH: ./:bin/ Counted 58 Env var Looking for /home/pi/Documents/CEdev-Linux/CEdev/bin/fasmg argv[1]="-n" argv[2]="/home/pi/Documents/CEdev-Linux/CEdev/meta/ld.alm" argv[3]="-i" argv[4]="DEBUG := 0" argv[5]="-i" argv[6]="HAS_PRINTF := 1" argv[7]="-i" argv[8]="HAS_LIBC := 1" argv[9]="-i" argv[10]="HAS_LIBCXX := 1" argv[11]="-i" argv[12]="PREFER_OS_CRT := 0" argv[13]="-i" argv[14]="PREFER_OS_LIBC := 1" argv[15]="-i" argv[16]="include "/home/pi/Documents/CEdev-Linux/CEdev/meta/linker_script"" argv[17]="-i" argv[18]="range .bss $D052C6 : $D13FD8" argv[19]="-i" argv[20]="provide __stack = $D1A87E" argv[21]="-i" argv[22]="locate .header at $D1A87F" argv[23]="-i" argv[24]="map" argv[25]="-i" argv[26]="source "obj/icon.src", "/home/pi/Documents/CEdev-Linux/CEdev/lib/crt/crt0.src", "obj/lto.src"" argv[27]="-i" argv[28]="library "/home/pi/Documents/CEdev-Linux/CEdev/lib/libload/fileioc.lib", "/home/pi/Documents/CEdev-Linux/CEdev/lib/libload/fontlibc.lib", "/home/pi/Documents/CEdev-Linux/CEdev/lib/libload/graphx.lib", "/home/pi/Documents/CEdev-Linux/CEdev/lib/libload/keypadc.lib"" argv[29]="bin/DEMO.bin" 4383|0x40099d: Unimplemented Opcode (08) 67 83 08 01 83 C0 08 83 E9 08 C3 67 8B 10 29
Ok, I have added this one too.
I have this one now : Unimplemented Opcode (15) 67 3B 08 0F 86 9F 00 00 00 67 8B 40 0C 3B 05
The problematic executable in question is fasmg, an assembler engine that is used as an eZ80 assembler&linker, itself written in x86 assembly (the rest of the toolchain can be compiled for arm just fine, but well, this one program is written in assembly).
A download link for fasmg is at the bottom of https://flatassembler.net/download.php (note you need fasmg, not fasm or fasmarm).
For faster feedback & testing, an example of a program that builds with just fasmg, without the rest of the toolchain, is MateoC's Cesium (make sure to clone with --recurse-submodules).
Right now, the unimplemented opcode error on this build is (67 8D 3C 08) 67 87 08 83 E1 FE 67 8D 34 08 67 8B 4E 0C 67.
EDIT: by the way, if anyone wants to get fasmg working right now, it seems to work fine on FEX (even without a rootfs), and I got jacobly (CE C toolchain developer) to somehow create a native aarch64 binary (that is slightly slower than FEX, though, but it seems he's still working on it).