Hi,
This series implements DIVIDE TO INTEGER instruction, which is
required to run LuaJIT.
Patch 1 is a debugging helper. Patch 2 is the implementation.
Since the instruction is quite complex, I've extensively tested it
using a libFuzzer-based harness [1] that compares emulation with native
execution at ~15k exec/s. The tests (patch 3) use data generated
this way.
Best regards,
Ilya
[1] https://github.com/iii-i/qemu/commits/iii/wip/fuzz-tcg-v1/
Ilya Leoshkevich (3):
target/s390x: Dump Floating-Point-Control Register
target/s390x: Implement DIVIDE TO INTEGER
tests/tcg/s390x: Test DIVIDE TO INTEGER
target/s390x/cpu-dump.c | 1 +
target/s390x/helper.h | 2 +
target/s390x/tcg/fpu_helper.c | 199 +++++++++++++++++++++++++
target/s390x/tcg/insn-data.h.inc | 5 +-
target/s390x/tcg/translate.c | 26 ++++
tests/tcg/s390x/Makefile.target | 3 +
tests/tcg/s390x/divide-to-integer.c | 215 ++++++++++++++++++++++++++++
7 files changed, 450 insertions(+), 1 deletion(-)
create mode 100644 tests/tcg/s390x/divide-to-integer.c
--
2.52.0