# Re: 4 hashes parallel on SSE2 CPUs for 0.3.6

Post by: satoshi on August 15, 2010, 03:40:29 AM

On both MinGW GCC 4.4.1 and 4.5.0 I have it working with test.cpp but SIGSEGV when called by BitcoinMiner. &nbsp;So now it doesn't look like it's the version of GCC, it's something else, maybe just the luck of how the stack is aligned.

I have it working fine on GCC 4.3.3 on Ubuntu 32-bit.

I found the problem with Crypto++ on MinGW 4.5.0. &nbsp;Here's the patch for that:

Code:

```
--- \old\sha.cpp	Mon Jul 26 13:31:11 2010
+++ \new\sha.cpp	Sat Aug 14 20:21:08 2010
@@ -336,7 +336,7 @@
 	ROUND(14, 0, eax, ecx, edi, edx)
 	ROUND(15, 0, ecx, eax, edx, edi)

-	ASL(1)
+    ASL(label1)   // Bitcoin: fix for MinGW GCC 4.5
 	AS2(add WORD_REG(si), 4*16)
 	ROUND(0, 1, eax, ecx, edi, edx)
 	ROUND(1, 1, ecx, eax, edx, edi)
@@ -355,7 +355,7 @@
 	ROUND(14, 1, eax, ecx, edi, edx)
 	ROUND(15, 1, ecx, eax, edx, edi)
 	AS2(	cmp		WORD_REG(si), K_END)
-	ASJ(	jne,	1, b)
+    ASJ(    jne,    label1,  )   // Bitcoin: fix for MinGW GCC 4.5

 	AS2(	mov		WORD_REG(dx), DATA_SAVE)
 	AS2(	add		WORD_REG(dx), 64)
```

---

Source file: bitcoin-forum-satoshi-nakamoto.tgz

External link: https://bitcointalk.org/index.php?topic=648.msg9359#msg9359
