evmar / retrowin32

windows emulator
https://evmar.github.io/retrowin32/
Apache License 2.0
539 stars 23 forks source link

x86-emu: Support fbld #25

Open encounter opened 1 month ago

encounter commented 1 month ago

Test case: fbld_testcase.zip

Command:

retrowin32 mwcceppc.exe -nodefaults -proc gekko -align powerpc -enum int -fp hardware -Cpp_exceptions off -O4,p -inline auto -pragma "cats off" -pragma "warn_notinlined off" -pragma "cpp_extensions on" -maxerrors 1 -nosyspath -RTTI off -fp_contract on -str reuse -multibyte -use_lmw_stmw on -str reuse,pool,readonly -gccinc -inline deferred,noauto -common on -c CScriptWaypoint.cpp -o CScriptWaypoint.o

Output:

INFO win32/src/winapi/kernel32/init.rs:506 invoking dllmain 5400
thread 'main' panicked at x86/src/icache.rs:64:62:
not yet implemented: fbld tbyte ptr [edx] (Fbld_m80bcd)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
evmar commented 1 month ago

If you wanted to try you could look at a change like https://github.com/evmar/retrowin32/commit/787a7fee7fbb5b5161f110278f2d1f8523b0d968 for inspiration, it's typically just adding a fn and an entry in the table.

This is the best x86 doc: https://www.felixcloutier.com/x86/fbld

evmar commented 1 month ago

Also, who is using BCD in the real world haha