From: Ilya Leoshkevich <iii@linux.ibm.com>
To: Thomas Huth <thuth@redhat.com>,
Richard Henderson <richard.henderson@linaro.org>
Cc: David Hildenbrand <david@kernel.org>,
qemu-s390x@nongnu.org, qemu-devel@nongnu.org,
Ilya Leoshkevich <iii@linux.ibm.com>
Subject: [PATCH v3 0/5] target/s390x: Implement DIVIDE TO INTEGER
Date: Thu, 29 Jan 2026 19:57:20 +0100 [thread overview]
Message-ID: <20260129190902.196262-1-iii@linux.ibm.com> (raw)
v2: https://lore.kernel.org/qemu-devel/20260127153736.62730-1-iii@linux.ibm.com/
v2 -> v3: Use FloatParts64 (Richard).
Improve "smallish" comment (Richard).
Use parts_muladd_scalbn (Richard).
Get rid of manual precision rounding (Richard).
New patch: parts_round_to_int_normal() improvement.
New 64-bit testcase for a fuzzer finding on one of the
intermediate versions. I have to admit I did not put down and
then forgot what exactly it was about, but it must be
interesting, so I decided to keep it.
v1: https://lore.kernel.org/qemu-devel/20260121222116.713325-1-iii@linux.ibm.com/
v1 -> v2: Move the implementatation to fpu/ and rewrite using
FloatParts (Richard). I can't say I particularly like the way
it looks, but at least most macros are gone and it survives
fuzzing.
Explain why we need -O0 for the test (Alex).
New patch: s390_get_bfp_rounding_mode().
Add a few comments with calculation examples to the test.
Hi,
This series implements DIVIDE TO INTEGER instruction, which is
required to run LuaJIT.
Patch 1 is a debugging helper, patch 2 is a small refactoring, patch 3
is an improvement for an FPU rounding helper, patch 4 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 5) use data generated
this way.
Best regards,
Ilya
[1] https://github.com/iii-i/qemu/commits/iii/wip/fuzz-tcg-v1/
Ilya Leoshkevich (5):
target/s390x: Dump Floating-Point-Control Register
target/s390x: Extract s390_get_bfp_rounding_mode()
fpu: Restrict parts_round_to_int_normal to target precision
target/s390x: Implement DIVIDE TO INTEGER
tests/tcg/s390x: Test DIVIDE TO INTEGER
fpu/softfloat-parts.c.inc | 7 +-
fpu/softfloat.c | 144 +++++++++++++++
include/fpu/softfloat.h | 11 ++
target/s390x/cpu-dump.c | 1 +
target/s390x/helper.h | 1 +
target/s390x/tcg/fpu_helper.c | 118 +++++++++----
target/s390x/tcg/insn-data.h.inc | 5 +-
target/s390x/tcg/translate.c | 26 +++
tests/tcg/s390x/Makefile.target | 5 +
tests/tcg/s390x/divide-to-integer.c | 265 ++++++++++++++++++++++++++++
10 files changed, 545 insertions(+), 38 deletions(-)
create mode 100644 tests/tcg/s390x/divide-to-integer.c
--
2.52.0
next reply other threads:[~2026-01-29 19:09 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-29 18:57 Ilya Leoshkevich [this message]
2026-01-29 18:57 ` [PATCH v3 1/5] target/s390x: Dump Floating-Point-Control Register Ilya Leoshkevich
2026-01-30 7:27 ` Thomas Huth
2026-01-29 18:57 ` [PATCH v3 2/5] target/s390x: Extract s390_get_bfp_rounding_mode() Ilya Leoshkevich
2026-01-30 7:30 ` Thomas Huth
2026-01-29 18:57 ` [PATCH v3 3/5] fpu: Restrict parts_round_to_int_normal to target precision Ilya Leoshkevich
2026-02-02 6:16 ` Richard Henderson
2026-01-29 18:57 ` [PATCH v3 4/5] target/s390x: Implement DIVIDE TO INTEGER Ilya Leoshkevich
2026-01-29 23:28 ` Ilya Leoshkevich
2026-02-04 6:01 ` Richard Henderson
2026-01-29 18:57 ` [PATCH v3 5/5] tests/tcg/s390x: Test " Ilya Leoshkevich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260129190902.196262-1-iii@linux.ibm.com \
--to=iii@linux.ibm.com \
--cc=david@kernel.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.