Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 6 Aug 2021 12:17:12 +0200
From: "Stefan Kanthak" <>
To: "Alexander Monakov" <>
Cc: "Szabolcs Nagy" <>,
Subject: Re: [Patch] src/math/i386/remquo.s: remove conditional branch, shorter bit twiddling

Alexander Monakov <> wrote:

> On Wed, 4 Aug 2021, Stefan Kanthak wrote:
>> The change just follows by removing 6 LOC/instructions.-)
> Have you considered collecting the three bits in one go via a multiplication?

No. My mind is not that twisted;-)

> You can first isolate the necessary bits with 'and $0x4300, %eax', then do
> 'imul $0x910000, %eax, %eax' to put the required bits in EAX[31:29] in the
> right order, then shift right by 29. Three instructions, 14 bytes.

Thanks, VERY NICE! How did you come up to it?

Revised patch with shorter bit twiddling attached.

Download attachment "remquo.patch" of type "application/octet-stream" (1006 bytes)

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.