Integer overflow checking
deadalnix via Digitalmars-d
digitalmars-d at puremagic.com
Wed Apr 13 19:55:01 PDT 2016
On Wednesday, 13 April 2016 at 22:13:27 UTC, Walter Bright wrote:
> On 4/12/2016 5:06 AM, Andrei Alexandrescu wrote:
>> Interesting: http://blog.regehr.org/archives/1384 -- Andrei
>
> Curiously never mentioned is the following optimization:
>
> return a+b*2+27;
>
> becomes:
>
> LEA EAX,27[ESI][EDI*2]
>
> To overflow check:
>
> ADD EDI,EDI
> JO overflow
> ADD EDI,27
> JO overflow
> MOV EAX,ESI
> ADD EAX,EDI
> JO overflow
>
> I don't see efficiency there, even with the JO's being free.
It is clearly not as optimal, but still pretty good. The article
doesn't pretend it all come for free, just that it comes for much
cheaper than before.
More information about the Digitalmars-d
mailing list