From: Joseph Myers <joseph@codesourcery.com>
To: Matthias Gehre <matthias.gehre@amd.com>
Cc: "gcc@gcc.gnu.org" <gcc@gcc.gnu.org>
Subject: Re: [RFC] Adding division/modulo on arbitrary precision integers to libgcc
Date: Fri, 6 May 2022 14:36:43 +0000 [thread overview]
Message-ID: <alpine.DEB.2.22.394.2205061432140.928112@digraph.polyomino.org.uk> (raw)
In-Reply-To: <SA1PR02MB857379606D84DDC929D69D32A7C59@SA1PR02MB8573.namprd02.prod.outlook.com>
On Fri, 6 May 2022, Matthias Gehre via Gcc wrote:
> We would like to add support for division/modulo on large arbitrary
> precision integers to libgcc/compiler-rt as required by C23's _BitInt
> type [0].
Note that each architecture also needs to specify its _BitInt ABI
(including such things as whether the values of padding bits inside the
size of the _BitInt type, or outside that size but within a register used
for argument passing or return, have specified values or are arbitrary).
HJ has a proposal for x86_64 on a branch of the ABI, but it hasn't been
merged to master yet.
> /// Computes the unsigned division of a / b for two large integers
> /// composed of n significant words.
> /// Writes the quotient to quo and the remainder to rem.
> ///
> /// \param quo The quotient represented by n words. Must be non-null.
> /// \param rem The remainder represented by n words. Must be non-null.
> /// \param a The dividend represented by n + 1 words. Must be non-null.
> /// \param b The divisor represented by n words. Must be non-null.
>
> /// \note The word order is in host endianness.
> /// \note Might modify a and b.
> /// \note The storage of 'a' needs to hold n + 1 elements because some
> /// implementations need extra scratch space in the most significant word.
> /// The value of that word is ignored.
This proposed interface doesn't say anything about what aliasing is or
isn't permitted among the four arrays pointed to.
--
Joseph S. Myers
joseph@codesourcery.com
next prev parent reply other threads:[~2022-05-06 14:36 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-06 14:09 Matthias Gehre
2022-05-06 14:36 ` Joseph Myers [this message]
2022-05-06 15:57 ` AW: " Matthias Gehre
2022-05-06 16:02 ` Joseph Myers
2022-05-06 14:47 ` Jakub Jelinek
2022-05-06 15:23 ` Joseph Myers
2022-05-06 15:42 ` AW: " Matthias Gehre
2022-05-06 16:39 ` Jonathan Lennox
2022-05-06 18:05 ` Segher Boessenkool
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=alpine.DEB.2.22.394.2205061432140.928112@digraph.polyomino.org.uk \
--to=joseph@codesourcery.com \
--cc=gcc@gcc.gnu.org \
--cc=matthias.gehre@amd.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).