Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 16 May 2012 16:21:22 +0800
From: myrice <qqlddg@...il.com>
To: john-dev@...ts.openwall.com
Subject: Re: Myrice: Weekly Report #5

On Wed, May 16, 2012 at 3:28 PM, magnum <john.magnum@...hmail.com> wrote:
>
> Are you having problems with swap64 only, or other things too?

Now I think it is only the SWAP64. Maybe I have to change it into
other forms. But from my experiment, if followings are true, I think
the problem is complex and all 64bit operation will be influenced.

I find problems with bit operation like: &, | and <<.
I think compiler optimization does something strange. If I use two of
bit operations in a sentence like: n = (a & 0xff) << 32, the result
will be 0 when the operation on high 32bit of a 64bit variable.
I have tried using violate variables to avoid this. Such as: violate
ulong a; a &= 0xff; n = a << 32; This would be correct. If I use a for
next sentence, the a will be 0 also.

I suspect the AMD OpenCL compiler has some bugs with 64bit bit operation.

Thanks
myrice

Powered by blists - more mailing lists

Your e-mail address:

Powered by Openwall GNU/*/Linux - Powered by OpenVZ