Fixes #23576 (closed)
The status quo is that we use callish ops for almost every 64-bit operation on i386. This MR changes that to only the "quottish" (signed / unsigned quot & rem) use callish ops. All other operations are now implemented directly in assembly instructions. For this purpose I've also added two new instructions
These changes improve performance and allow us to remove the workarounds in GHC.Utils.Unique and in the test for T22871.