{
"subject": "Re: Bitcoin x86 for Windows",
"content": {
"format": "html",
"body": "<div class=\"post\"><div class=\"quoteheader\"><a href=\"https://bitcointalk.org/index.php?topic=453.msg5774#msg5774\">Quote from: BlackEye on July 25, 2010, 10:12:23 PM</a></div><div class=\"quote\">I was able to integrate the SHA256 functionality from Crypto++ 5.6.0 into Bitcoin. This is the fastest SHA256 yet using the SSE2 assembly code. Since Bitcoin was sending unaligned data to the block hash function, I had to change the MOVDQA instruction to MOVDQU.<br/><br/>I think using the SHA256 functionality from Crypto++ 5.6.0 is the way forward right now.<br/></div>I added a subset of the Crypto++ 5.6.0 library to the SVN. I stripped it down to just SHA and 11 general dependency files. There shouldn't be any other crypto in there other than SHA.<br/><br/>I aligned the data fields and it worked. The ASM SHA-256 is about 48% faster. The combined speedup is about 2.5x faster than version 0.3.3.<br/><br/>I guess it's using SSE2. It automatically sets its build configuration at compile time based on the compiler environment.<br/><br/>It looks like it has some SSE2 detection at runtime, but it's hard to tell if it actually uses it to fall back if it's not available. I want the release builds to have SSE2. SSE2 has been around since the first Pentium 4. A Pentium 3 or older would be so slow, you'd be wasting your electricity trying to generate on it anyway.<br/><br/>This is SVN rev 114.</div>"
},
"source": {
"name": "Bitcoin Forum",
"url": "https://bitcointalk.org/index.php?topic=572.msg6069#msg6069"
},
"date": "2010-07-27T18:27:30Z"
}