Hi Everyone,

I thought someone brought this up previously but I cannot find it at the 
moment.

I was able to duplicate the issue under Visual Studio 2013. Also see 
https://github.com/weidai11/cryptopp/issues/321 .

It looks like VS2013's Assembler (MASM) was generating bad code. The ASM 
procedure's arguments were not where MASM expected them. I believe it had 
something to do with omitting the prologue and epilogue because adding 
standard prologue and epilogue was one way to clear it.

It was cleared at Commit bd2b022d305d12bf by accessing the arguments 
relative to ESP. We avoided the standard prologue and epilogue because its 
a leaf function, it slowed things down and we did not need the extra 
registers. Effectively, the ASM was an "omit frame pointer" function.

Its not clear to me why the issue did not surface sooner. I use this 
particular machine regularly for testing. Painting with a broad brush, it 
points to gaps in our testing environment for Windows. The next step is to 
improve testing so bugs like this cannot fly under the radar for so long.

Jeff

-- 
-- 
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to cryptopp-users-unsubscr...@googlegroups.com.
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 cryptopp-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to