Since top-posting seems to make sense, ... looks good, Jeff - at least it is spot-on WRT my comments - thanks.
On Thursday, July 16, 2015 at 2:32:15 PM UTC-7, Jeffrey Walton wrote: > > Hi Everyone, > > Attached is the update patch for misc.h and rotate. It does a few things: > > (1) it documents rotFixed, rotVariable and rotMod > (2) it documents rough timings and potential undefined behavior > (3) if UB is possible, it asserts > (4) it silences warnings > (5) it adds native GCC support of x86 and x86_64 > > A corollary of (3) is if the underlying instruction does suffer undefined > behavior (by using a compiler intrinsic or inline assembly), then the > assert is not present because UB is a C/C++ constraint, and not an ASM > constraint. > > The shift by a value represented in a byte are always OK. More correctly, > the underlying operand is a register, memory or immediate-8. Shifting a > 64-bit value means 'y' only needs to be [0,63] inclusive. So anything at or > above 64 is just in an equivalence class, and can always be safely reduced. > Because it can always be reduced, all the Microsoft warnings were squashed. > (I think this is point Robert was trying to make). > > If all goes well, we'll hand craft some GCC assembly for ARM. That will > get us support for Android, iOS, Windows Phone and embedded. At the moment, > we just fall back to the slower C/C++. > > I'll commit it later today or tonight after testing if there are no > comments or objections. If the testing reveals issues, like degraded > performance, then I'll defer the commit. > > <elided patch details> -- -- You received this message because you are subscribed to the "Crypto++ Users" Google Group. To unsubscribe, send an email to [email protected]. More information about Crypto++ and this group is available at http://www.cryptopp.com. --- You received this message because you are subscribed to the Google Groups "Crypto++ Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
