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
