Explorar el Código

Fixed Visual Studio build
Moved affinity to tests
Fixed strange output from mask_to_string

tevador hace 7 años
padre
commit
e8cf27eab5

+ 3 - 2
makefile

@@ -57,8 +57,10 @@ $(OBJDIR):
 	mkdir $(OBJDIR)
 $(BINDIR):
 	mkdir $(BINDIR)
+$(OBJDIR)/affinity.o: $(TESTDIR)/affinity.cpp $(TESTDIR)/affinity.hpp
+	$(CXX) $(CXXFLAGS) -c $< -o $@
 $(OBJDIR)/benchmark.o: $(TESTDIR)/benchmark.cpp $(TESTDIR)/stopwatch.hpp \
- $(TESTDIR)/utility.hpp $(SRCDIR)/randomx.h $(SRCDIR)/blake2/endian.h $(SRCDIR)/affinity.hpp
+ $(TESTDIR)/utility.hpp $(SRCDIR)/randomx.h $(SRCDIR)/blake2/endian.h $(TESTDIR)/affinity.hpp
 	$(CXX) $(CXXFLAGS) -pthread -c $< -o $@
 $(BINDIR)/benchmark: $(OBJDIR)/benchmark.o $(OBJDIR)/affinity.o $(RXA)
 	$(CXX) $(LDFLAGS) -pthread $< $(OBJDIR)/affinity.o $(RXA) -o $@
@@ -109,7 +111,6 @@ $(OBJDIR)/vm_interpreted.o: $(SRCDIR)/vm_interpreted.cpp $(SRCDIR)/vm_interprete
  $(SRCDIR)/intrin_portable.h $(SRCDIR)/allocator.hpp $(SRCDIR)/dataset.hpp \
  $(SRCDIR)/superscalar_program.hpp $(SRCDIR)/jit_compiler_x86.hpp $(SRCDIR)/reciprocal.h \
  $(SRCDIR)/instruction_weights.hpp
-$(OBJDIR/affinity.o: $(SRCDIR)/affinity.cpp $(SRCDIR)/affinity.hpp
 $(OBJDIR)/allocator.o: $(SRCDIR)/allocator.cpp $(SRCDIR)/allocator.hpp $(SRCDIR)/intrin_portable.h \
  $(SRCDIR)/virtual_memory.hpp $(SRCDIR)/common.hpp $(SRCDIR)/blake2/endian.h \
  $(SRCDIR)/configuration.h $(SRCDIR)/randomx.h

+ 12 - 9
src/affinity.cpp → src/tests/affinity.cpp

@@ -1,5 +1,6 @@
 /*
 Copyright (c) 2019, jtgrassie
+Copyright (c) 2019, tevador <tevador@gmail.com>
 
 All rights reserved.
 
@@ -26,6 +27,8 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
+#include <sstream>
+
 #if defined(_WIN32) || defined(__CYGWIN__)
   #include <windows.h>
 #else
@@ -95,20 +98,20 @@ cpuid_from_mask(uint64_t mask, const unsigned &thread_index)
 std::string
 mask_to_string(uint64_t mask)
 {
-    std::string r(65, '\0');
+	std::ostringstream ss;
     unsigned len = 0;
     unsigned v = 0;
     unsigned i = 64;
     while (i--)
     {
         v = mask >> i;
-        if (1ULL & v)
-        {
-            if (len == 0) len = i+1;
-            r[len-i] = '1';
-        }
-        else
-            if (len > 0) r[len-i] = '0';
+		if (1ULL & v)
+		{
+			if (len == 0) len = i + 1;
+			ss << '1';
+		}
+		else
+			if (len > 0) ss << '0';
     }
-    return r;
+    return ss.str();
 }

+ 0 - 0
src/affinity.hpp → src/tests/affinity.hpp


+ 1 - 1
src/tests/benchmark.cpp

@@ -38,7 +38,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include "utility.hpp"
 #include "../randomx.h"
 #include "../blake2/endian.h"
-#include "../affinity.hpp"
+#include "affinity.hpp"
 
 const uint8_t blockTemplate_[] = {
 		0x07, 0x07, 0xf7, 0xa4, 0xf0, 0xd6, 0x05, 0xb3, 0x03, 0x26, 0x08, 0x16, 0xba, 0x3f, 0x10, 0x90, 0x2e, 0x1a, 0x14,

+ 1 - 0
vcxproj/benchmark.vcxproj

@@ -115,6 +115,7 @@
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
+    <ClCompile Include="..\src\tests\affinity.cpp" />
     <ClCompile Include="..\src\tests\benchmark.cpp" />
   </ItemGroup>
   <ItemGroup>

+ 3 - 0
vcxproj/benchmark.vcxproj.filters

@@ -18,6 +18,9 @@
     <ClCompile Include="..\src\tests\benchmark.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
+    <ClCompile Include="..\src\tests\affinity.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\src\tests\utility.hpp">