← Back to the archive
Bitcoin.onl > Archive > Bitcoin Forum > Re: 4 hashes parallel on SSE2 CPUs for 0.3.6
AuthorTopic: Re: 4 hashes parallel on SSE2 CPUs for 0.3.6
satoshiFounderSr. Member★★★★
Re: 4 hashes parallel on SSE2 CPUs for 0.3.6
« on: August 15, 2010, 03:40:29 AM UTC »

On both MinGW GCC 4.4.1 and 4.5.0 I have it working with test.cpp but SIGSEGV when called by BitcoinMiner.  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.  Here's the patch for that:
Code:
--- \old\sha.cpp Mon Jul 26 13:31:11 2010
+++ ew\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)
Original: view the exact post on bitcointalk.org ↗Text compiled by the Satoshi Nakamoto Institute, used under CC BY-SA 4.0. Formatting by Bitcoin.onl.
© Bitcoin.onl · Home