mirror of
				https://git.wownero.com/wownero/RandomWOW.git
				synced 2024-08-15 00:23:14 +00:00 
			
		
		
		
	Removed capital letters from filenames
This commit is contained in:
		
							parent
							
								
									d7276d5786
								
							
						
					
					
						commit
						d7eefce583
					
				
					 44 changed files with 263 additions and 299 deletions
				
			
		|  | @ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License | |||
| along with RandomX.  If not, see<http://www.gnu.org/licenses/>.
 | ||||
| */ | ||||
| 
 | ||||
| #include "Instruction.hpp" | ||||
| #include "instruction.hpp" | ||||
| #include "common.hpp" | ||||
| 
 | ||||
| namespace randomx { | ||||
|  | @ -330,7 +330,7 @@ namespace randomx { | |||
| 		os << std::endl; | ||||
| 	} | ||||
| 
 | ||||
| #include "instructionWeights.hpp" | ||||
| #include "instruction_weights.hpp" | ||||
| #define INST_NAME(x) REPN(#x, WT(x)) | ||||
| #define INST_HANDLE(x) REPN(&Instruction::h_##x, WT(x)) | ||||
| 
 | ||||
|  | @ -380,7 +380,7 @@ namespace randomx { | |||
| 		INST_NAME(NOP) | ||||
| 	}; | ||||
| 
 | ||||
| 	InstructionVisualizer Instruction::engine[256] = { | ||||
| 	InstructionFormatter Instruction::engine[256] = { | ||||
| 		//Integer
 | ||||
| 		INST_HANDLE(IADD_RS) | ||||
| 		INST_HANDLE(IADD_M) | ||||
|  |  | |||
|  | @ -27,7 +27,7 @@ namespace randomx { | |||
| 
 | ||||
| 	class Instruction; | ||||
| 
 | ||||
| 	typedef void(Instruction::*InstructionVisualizer)(std::ostream&) const; | ||||
| 	typedef void(Instruction::*InstructionFormatter)(std::ostream&) const; | ||||
| 
 | ||||
| 	namespace InstructionType { | ||||
| 		constexpr int IADD_RS = 0; | ||||
|  | @ -71,9 +71,6 @@ namespace randomx { | |||
| 
 | ||||
| 	class Instruction { | ||||
| 	public: | ||||
| 		uint8_t opcode; | ||||
| 		uint8_t dst; | ||||
| 		uint8_t src; | ||||
| 		uint32_t getImm32() const { | ||||
| 			return load32(&imm32); | ||||
| 		} | ||||
|  | @ -102,17 +99,20 @@ namespace randomx { | |||
| 		void setMod(uint8_t val) { | ||||
| 			mod = val; | ||||
| 		} | ||||
| 
 | ||||
| 		uint8_t opcode; | ||||
| 		uint8_t dst; | ||||
| 		uint8_t src; | ||||
| 	private: | ||||
| 		uint8_t mod; | ||||
| 		uint32_t imm32; | ||||
| 
 | ||||
| 		void print(std::ostream&) const; | ||||
| 		static const char* names[256]; | ||||
| 		static InstructionVisualizer engine[256]; | ||||
| 
 | ||||
| 		static InstructionFormatter engine[256]; | ||||
| 		void genAddressReg(std::ostream& os) const; | ||||
| 		void genAddressImm(std::ostream& os) const; | ||||
| 		void genAddressRegDst(std::ostream&) const; | ||||
| 
 | ||||
| 		void  h_IADD_RS(std::ostream&) const; | ||||
| 		void  h_IADD_M(std::ostream&) const; | ||||
| 		void  h_IADD_RC(std::ostream&) const; | ||||
|  | @ -152,6 +152,6 @@ namespace randomx { | |||
| 		void  h_NOP(std::ostream&) const; | ||||
| 	}; | ||||
| 
 | ||||
| 	static_assert(sizeof(Instruction) == 8, "Invalid alignment of struct Instruction"); | ||||
| 	static_assert(sizeof(Instruction) == 8, "Invalid size of struct randomx::Instruction"); | ||||
| 
 | ||||
| } | ||||
|  | @ -1,31 +0,0 @@ | |||
| /*
 | ||||
| Copyright (c) 2018 tevador | ||||
| 
 | ||||
| This file is part of RandomX. | ||||
| 
 | ||||
| RandomX is free software: you can redistribute it and/or modify | ||||
| it under the terms of the GNU General Public License as published by | ||||
| the Free Software Foundation, either version 3 of the License, or | ||||
| (at your option) any later version. | ||||
| 
 | ||||
| RandomX is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||||
| GNU General Public License for more details. | ||||
| 
 | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with RandomX.  If not, see<http://www.gnu.org/licenses/>.
 | ||||
| */ | ||||
| 
 | ||||
| #include "Program.hpp" | ||||
| #include "hashAes1Rx4.hpp" | ||||
| 
 | ||||
| namespace RandomX { | ||||
| 	template<size_t PROGRAM_SIZE> | ||||
| 	void ProgramBase::print(std::ostream& os) const { | ||||
| 		for (int i = 0; i < RANDOMX_PROGRAM_SIZE; ++i) { | ||||
| 			auto instr = programBuffer[i]; | ||||
| 			os << instr; | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | @ -22,7 +22,7 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| #include <cstdint> | ||||
| #include <ostream> | ||||
| #include "common.hpp" | ||||
| #include "Instruction.hpp" | ||||
| #include "instruction.hpp" | ||||
| #include "blake2/endian.h" | ||||
| 
 | ||||
| namespace randomx { | ||||
|  | @ -58,5 +58,5 @@ namespace randomx { | |||
| 		Instruction programBuffer[RANDOMX_PROGRAM_SIZE]; | ||||
| 	}; | ||||
| 
 | ||||
| 	static_assert(sizeof(Program) % 64 == 0, "Invalid size of class Program"); | ||||
| 	static_assert(sizeof(Program) % 64 == 0, "Invalid size of class randomx::Program"); | ||||
| } | ||||
|  |  | |||
|  | @ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License | |||
| along with RandomX.  If not, see<http://www.gnu.org/licenses/>.
 | ||||
| */ | ||||
| 
 | ||||
| #include "softAes.h" | ||||
| #include "soft_aes.h" | ||||
| 
 | ||||
| /*
 | ||||
| 	Calculate a 512-bit hash of 'input' using 4 lanes of AES. | ||||
|  | @ -17,7 +17,9 @@ You should have received a copy of the GNU General Public License | |||
| along with RandomX.  If not, see<http://www.gnu.org/licenses/>.
 | ||||
| */ | ||||
| 
 | ||||
| #include "softAes.h" | ||||
| #pragma once | ||||
| 
 | ||||
| #include <cstddef> | ||||
| 
 | ||||
| template<bool softAes> | ||||
| void hashAes1Rx4(const void *input, size_t inputSize, void *hash); | ||||
|  | @ -20,8 +20,8 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| #pragma once | ||||
| 
 | ||||
| #include "allocator.hpp" | ||||
| #include "virtualMemory.hpp" | ||||
| #include "intrinPortable.h" | ||||
| #include "intrin_portable.h" | ||||
| #include "virtual_memory.hpp" | ||||
| #include "common.hpp" | ||||
| 
 | ||||
| namespace randomx { | ||||
|  |  | |||
|  | @ -19,11 +19,11 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| //#define TRACE
 | ||||
| 
 | ||||
| #include <climits> | ||||
| #include "AssemblyGeneratorX86.hpp" | ||||
| #include "assembly_generator_x86.hpp" | ||||
| #include "common.hpp" | ||||
| #include "reciprocal.h" | ||||
| #include "Program.hpp" | ||||
| #include "superscalarGenerator.hpp" | ||||
| #include "program.hpp" | ||||
| #include "superscalar.hpp" | ||||
| 
 | ||||
| namespace randomx { | ||||
| 
 | ||||
|  | @ -117,7 +117,7 @@ namespace randomx { | |||
| 				asmCode << "mov " << regR[instr.dst] << ", rdx" << std::endl; | ||||
| 				break; | ||||
| 			case SuperscalarInstructionType::IMUL_RCP: | ||||
| 				asmCode << "mov rax, " << (int64_t)reciprocal(instr.getImm32()) << std::endl; | ||||
| 				asmCode << "mov rax, " << (int64_t)randomx_reciprocal(instr.getImm32()) << std::endl; | ||||
| 				asmCode << "imul " << regR[instr.dst] << ", rax" << std::endl; | ||||
| 				break; | ||||
| 			default: | ||||
|  | @ -210,7 +210,7 @@ namespace randomx { | |||
| 				asmCode << regR[instr.dst] << " = smulh(" << regR[instr.dst] << ", " << regR[instr.src] << ");" << std::endl; | ||||
| 				break; | ||||
| 			case SuperscalarInstructionType::IMUL_RCP: | ||||
| 				asmCode << regR[instr.dst] << " *= " << (int64_t)reciprocal(instr.getImm32()) << ";" << std::endl; | ||||
| 				asmCode << regR[instr.dst] << " *= " << (int64_t)randomx_reciprocal(instr.getImm32()) << ";" << std::endl; | ||||
| 				break; | ||||
| 			default: | ||||
| 				UNREACHABLE; | ||||
|  | @ -477,7 +477,7 @@ namespace randomx { | |||
| 		if (instr.getImm32() != 0) { | ||||
| 			registerUsage[instr.dst] = i; | ||||
| 			uint32_t divisor = instr.getImm32(); | ||||
| 			asmCode << "\tmov rax, " << reciprocal(instr.getImm32()) << std::endl; | ||||
| 			asmCode << "\tmov rax, " << randomx_reciprocal(instr.getImm32()) << std::endl; | ||||
| 			asmCode << "\timul " << regR[instr.dst] << ", rax" << std::endl; | ||||
| 			traceint(instr); | ||||
| 		} | ||||
|  | @ -691,7 +691,7 @@ namespace randomx { | |||
| 		tracenop(instr); | ||||
| 	} | ||||
| 
 | ||||
| #include "instructionWeights.hpp" | ||||
| #include "instruction_weights.hpp" | ||||
| #define INST_HANDLE(x) REPN(&AssemblyGeneratorX86::h_##x, WT(x)) | ||||
| 
 | ||||
| 	InstructionGenerator AssemblyGeneratorX86::engine[256] = { | ||||
|  | @ -19,9 +19,6 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #include "Instruction.hpp" | ||||
| #include "configuration.h" | ||||
| #include "common.hpp" | ||||
| #include <sstream> | ||||
| 
 | ||||
| namespace randomx { | ||||
|  | @ -29,6 +26,7 @@ namespace randomx { | |||
| 	class Program; | ||||
| 	class SuperscalarProgram; | ||||
| 	class AssemblyGeneratorX86; | ||||
| 	class Instruction; | ||||
| 
 | ||||
| 	typedef void(AssemblyGeneratorX86::*InstructionGenerator)(Instruction&, int); | ||||
| 
 | ||||
|  | @ -41,22 +39,15 @@ namespace randomx { | |||
| 			os << asmCode.rdbuf(); | ||||
| 		} | ||||
| 	private: | ||||
| 		static InstructionGenerator engine[256]; | ||||
| 		std::stringstream asmCode; | ||||
| 		int registerUsage[8]; | ||||
| 
 | ||||
| 		void genAddressReg(Instruction&, const char*); | ||||
| 		void genAddressRegDst(Instruction&, int); | ||||
| 		int32_t genAddressImm(Instruction&); | ||||
| 		int getConditionRegister(); | ||||
| 		void handleCondition(Instruction&, int); | ||||
| 
 | ||||
| 		void generateCode(Instruction&, int); | ||||
| 
 | ||||
| 		void traceint(Instruction&); | ||||
| 		void traceflt(Instruction&); | ||||
| 		void tracenop(Instruction&); | ||||
| 
 | ||||
| 		void  h_IADD_RS(Instruction&, int); | ||||
| 		void  h_IADD_M(Instruction&, int); | ||||
| 		void  h_IADD_RC(Instruction&, int); | ||||
|  | @ -94,5 +85,9 @@ namespace randomx { | |||
| 		void  h_ISTORE(Instruction&, int); | ||||
| 		void  h_FSTORE(Instruction&, int); | ||||
| 		void  h_NOP(Instruction&, int); | ||||
| 
 | ||||
| 		static InstructionGenerator engine[256]; | ||||
| 		std::stringstream asmCode; | ||||
| 		int registerUsage[8]; | ||||
| 	}; | ||||
| } | ||||
|  | @ -20,15 +20,16 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| #include <stddef.h> | ||||
| #include "blake2/blake2.h" | ||||
| #include "blake2/endian.h" | ||||
| #include "Blake2Generator.hpp" | ||||
| #include "common.hpp" | ||||
| #include "blake2_generator.hpp" | ||||
| 
 | ||||
| namespace randomx { | ||||
| 
 | ||||
| 	Blake2Generator::Blake2Generator(const void* seed, int nonce) : dataIndex(sizeof(data)) { | ||||
| 	constexpr int maxSeedSize = 60; | ||||
| 
 | ||||
| 	Blake2Generator::Blake2Generator(const void* seed, size_t seedSize, int nonce) : dataIndex(sizeof(data)) { | ||||
| 		memset(data, 0, sizeof(data)); | ||||
| 		memcpy(data, seed, SeedSize); | ||||
| 		store32(&data[60], nonce); | ||||
| 		memcpy(data, seed, seedSize > maxSeedSize ? maxSeedSize : seedSize); | ||||
| 		store32(&data[maxSeedSize], nonce); | ||||
| 	} | ||||
| 
 | ||||
| 	uint8_t Blake2Generator::getByte() { | ||||
|  | @ -18,19 +18,20 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| */ | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #include <cstdint> | ||||
| 
 | ||||
| namespace randomx { | ||||
| 
 | ||||
| 	class Blake2Generator { | ||||
| 	public: | ||||
| 		Blake2Generator(const void* seed, int nonce); | ||||
| 		Blake2Generator(const void* seed, size_t seedSize, int nonce = 0); | ||||
| 		uint8_t getByte(); | ||||
| 		uint32_t getInt32(); | ||||
| 	private: | ||||
| 		void checkData(const size_t); | ||||
| 
 | ||||
| 		uint8_t data[64]; | ||||
| 		size_t dataIndex; | ||||
| 
 | ||||
| 		void checkData(const size_t); | ||||
| 	}; | ||||
| } | ||||
|  | @ -17,6 +17,12 @@ You should have received a copy of the GNU General Public License | |||
| along with RandomX.  If not, see<http://www.gnu.org/licenses/>.
 | ||||
| */ | ||||
| 
 | ||||
| /* Original code from Argon2 reference source code package used under CC0 Licence
 | ||||
|  * https://github.com/P-H-C/phc-winner-argon2
 | ||||
|  * Copyright 2015 | ||||
|  * Daniel Dinu, Dmitry Khovratovich, Jean-Philippe Aumasson, and Samuel Neves | ||||
| */ | ||||
| 
 | ||||
| #include <new> | ||||
| #include <algorithm> | ||||
| #include <stdexcept> | ||||
|  | @ -26,9 +32,9 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| 
 | ||||
| #include "common.hpp" | ||||
| #include "dataset.hpp" | ||||
| #include "virtualMemory.hpp" | ||||
| #include "superscalarGenerator.hpp" | ||||
| #include "Blake2Generator.hpp" | ||||
| #include "virtual_memory.hpp" | ||||
| #include "superscalar.hpp" | ||||
| #include "blake2_generator.hpp" | ||||
| #include "reciprocal.h" | ||||
| #include "blake2/endian.h" | ||||
| #include "argon2.h" | ||||
|  | @ -100,13 +106,13 @@ void randomx_cache::initialize(const void *seed, size_t seedSize) { | |||
| 	fill_memory_blocks(&instance); | ||||
| 
 | ||||
| 	reciprocalCache.clear(); | ||||
| 	randomx::Blake2Generator gen(seed, 1000); | ||||
| 	randomx::Blake2Generator gen(seed, seedSize, 1000); //TODO
 | ||||
| 	for (int i = 0; i < RANDOMX_CACHE_ACCESSES; ++i) { | ||||
| 		randomx::generateSuperscalar(programs[i], gen); | ||||
| 		for (unsigned j = 0; j < programs[i].getSize(); ++j) { | ||||
| 			auto& instr = programs[i](j); | ||||
| 			if (instr.opcode == randomx::SuperscalarInstructionType::IMUL_RCP) { | ||||
| 				auto rcp = reciprocal(instr.getImm32()); | ||||
| 				auto rcp = randomx_reciprocal(instr.getImm32()); | ||||
| 				instr.setImm32(reciprocalCache.size()); | ||||
| 				reciprocalCache.push_back(rcp); | ||||
| 			} | ||||
|  |  | |||
|  | @ -21,29 +21,26 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| 
 | ||||
| #include <cstdint> | ||||
| #include <vector> | ||||
| #include "intrinPortable.h" | ||||
| #include "common.hpp" | ||||
| #include "randomx.h" | ||||
| #include "Program.hpp" | ||||
| #include "superscalar_program.hpp" | ||||
| #include "JitCompilerX86.hpp" | ||||
| #include "jit_compiler_x86.hpp" | ||||
| #include "allocator.hpp" | ||||
| 
 | ||||
| /* Global scope for C binding */ | ||||
| struct randomx_dataset { | ||||
| 	virtual ~randomx_dataset() = 0; | ||||
| 	virtual bool allocate() = 0; | ||||
| 	uint8_t* memory = nullptr; | ||||
| }; | ||||
| 
 | ||||
| /* Global scope for C binding */ | ||||
| struct randomx_cache : public randomx_dataset { | ||||
| 	virtual randomx::DatasetInitFunc getInitFunc() = 0; | ||||
| 	virtual void initialize(const void *seed, size_t seedSize); //argon2
 | ||||
| 	virtual void initialize(const void *seed, size_t seedSize); | ||||
| 	randomx::SuperscalarProgram programs[RANDOMX_CACHE_ACCESSES]; | ||||
| 	std::vector<uint64_t> reciprocalCache; | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| namespace randomx { | ||||
| 
 | ||||
| 	template<class Allocator> | ||||
|  |  | |||
|  | @ -101,4 +101,4 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| #define REPCASE256(x) REPCASE128(x) REPCASE128(x) | ||||
| #define REPCASENX(x,N) REPCASE##N(x) | ||||
| #define REPCASEN(x,N) REPCASENX(x,N) | ||||
| #define CASE_REP(x) REPCASEN(x, WT(x)) | ||||
| #define CASE_REP(x) REPCASEN(x, WT(x)) | ||||
|  | @ -16,9 +16,9 @@ GNU General Public License for more details. | |||
| You should have received a copy of the GNU General Public License | ||||
| along with RandomX.  If not, see<http://www.gnu.org/licenses/>.
 | ||||
| */ | ||||
| 
 | ||||
| //#define DEBUG
 | ||||
| #include "intrinPortable.h" | ||||
| #include "blake2/endian.h" | ||||
| 
 | ||||
| #pragma STDC FENV_ACCESS on | ||||
| #include <cfenv> | ||||
| #include <cmath> | ||||
|  | @ -26,6 +26,8 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| #include <iostream> | ||||
| #endif | ||||
| #include "common.hpp" | ||||
| #include "intrin_portable.h" | ||||
| #include "blake2/endian.h" | ||||
| 
 | ||||
| #if defined(__SIZEOF_INT128__) | ||||
| 	typedef unsigned __int128 uint128_t; | ||||
|  | @ -87,14 +89,14 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| 	uint64_t rotr(uint64_t a, int b) { | ||||
| 		return (a >> b) | (a << (64 - b)); | ||||
| 	} | ||||
| 	#define HAS_ROTR | ||||
| 	#define HAVE_ROTR | ||||
| #endif | ||||
| 
 | ||||
| #ifndef HAVE_ROTL | ||||
| 	uint64_t rotl(uint64_t a, int b) { | ||||
| 		return (a << b) | (a >> (64 - b)); | ||||
| 	} | ||||
| 	#define HAS_ROTL | ||||
| 	#define HAVE_ROTL | ||||
| #endif | ||||
| 
 | ||||
| #ifndef HAVE_MULH | ||||
|  | @ -126,11 +128,6 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| 	#define HAVE_SMULH | ||||
| #endif | ||||
| 
 | ||||
| // avoid undefined behavior of signed overflow
 | ||||
| static inline int32_t safeSub(int32_t a, int32_t b) { | ||||
| 	return int32_t(uint32_t(a) - uint32_t(b)); | ||||
| } | ||||
| 
 | ||||
| #if __GNUC__ >= 5 | ||||
| #undef __has_builtin | ||||
| #define __has_builtin(x) 1 | ||||
|  | @ -330,7 +330,6 @@ __m128d ieee_set_exponent(__m128d x) { | |||
| } | ||||
| 
 | ||||
| double loadDoublePortable(const void* addr); | ||||
| 
 | ||||
| uint64_t mulh(uint64_t, uint64_t); | ||||
| int64_t smulh(int64_t, int64_t); | ||||
| uint64_t rotl(uint64_t, int); | ||||
|  | @ -17,20 +17,14 @@ You should have received a copy of the GNU General Public License | |||
| along with RandomX.  If not, see<http://www.gnu.org/licenses/>.
 | ||||
| */ | ||||
| 
 | ||||
| #include <cstring> | ||||
| #include <climits> | ||||
| #include <stdexcept> | ||||
| #include "JitCompilerX86.hpp" | ||||
| #include "Program.hpp" | ||||
| #include "reciprocal.h" | ||||
| #include "virtualMemory.hpp" | ||||
| #include "intrinPortable.h" | ||||
| #include "jit_compiler_x86.hpp" | ||||
| 
 | ||||
| #define RANDOMX_JUMP | ||||
| 
 | ||||
| #if !defined(_M_X64) && !defined(__x86_64__) | ||||
| namespace randomx { | ||||
| 
 | ||||
| #if !defined(_M_X64) && !defined(__x86_64__) | ||||
| 	JitCompilerX86::JitCompilerX86() { | ||||
| 		throw std::runtime_error("JIT compiler only supports x86-64 CPUs"); | ||||
| 	} | ||||
|  | @ -46,8 +40,19 @@ namespace randomx { | |||
| 	size_t JitCompilerX86::getCodeSize() { | ||||
| 		return 0; | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
| #else | ||||
| 
 | ||||
| #include <cstring> | ||||
| #include <climits> | ||||
| #include "jit_compiler_x86_static.hpp" | ||||
| #include "superscalar.hpp" | ||||
| #include "program.hpp" | ||||
| #include "reciprocal.h" | ||||
| #include "virtual_memory.hpp" | ||||
| 
 | ||||
| namespace randomx { | ||||
| 	/*
 | ||||
| 
 | ||||
| 	REGISTER ALLOCATION: | ||||
|  | @ -87,9 +92,6 @@ namespace randomx { | |||
| 
 | ||||
| 	*/ | ||||
| 
 | ||||
| #include "JitCompilerX86-static.hpp" | ||||
| #include "superscalarGenerator.hpp" | ||||
| 
 | ||||
| #define NOP_TEST true | ||||
| 
 | ||||
| 	const uint8_t* codePrologue = (uint8_t*)&randomx_program_prologue; | ||||
|  | @ -675,7 +677,7 @@ namespace randomx { | |||
| 			} | ||||
| 			registerUsage[instr.dst] = i; | ||||
| 			emit(MOV_RAX_I); | ||||
| 			emit64(reciprocal(instr.getImm32())); | ||||
| 			emit64(randomx_reciprocal(instr.getImm32())); | ||||
| 			emit(REX_IMUL_RM); | ||||
| 			emitByte(0xc0 + 8 * instr.dst); | ||||
| 		} | ||||
|  | @ -1017,7 +1019,7 @@ namespace randomx { | |||
| 		emitByte(0x90); | ||||
| 	} | ||||
| 
 | ||||
| #include "instructionWeights.hpp" | ||||
| #include "instruction_weights.hpp" | ||||
| #define INST_HANDLE(x) REPN(&JitCompilerX86::h_##x, WT(x)) | ||||
| 
 | ||||
| 	InstructionGeneratorX86 JitCompilerX86::engine[256] = { | ||||
|  | @ -19,11 +19,10 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #include "common.hpp" | ||||
| #include "Instruction.hpp" | ||||
| #include "superscalar_program.hpp" | ||||
| #include <cstdint> | ||||
| #include <cstring> | ||||
| #include <vector> | ||||
| #include "common.hpp" | ||||
| 
 | ||||
| namespace randomx { | ||||
| 
 | ||||
|  | @ -31,6 +30,7 @@ namespace randomx { | |||
| 	class ProgramConfiguration; | ||||
| 	class SuperscalarProgram; | ||||
| 	class JitCompilerX86; | ||||
| 	class Instruction; | ||||
| 
 | ||||
| 	typedef void(JitCompilerX86::*InstructionGeneratorX86)(Instruction&, int); | ||||
| 
 | ||||
|  | @ -17,6 +17,8 @@ You should have received a copy of the GNU General Public License | |||
| along with RandomX.  If not, see<http://www.gnu.org/licenses/>.
 | ||||
| */ | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| extern "C" { | ||||
| 	void randomx_program_prologue(); | ||||
| 	void randomx_program_loop_begin(); | ||||
|  | @ -36,4 +38,4 @@ extern "C" { | |||
| 	void randomx_sshash_end(); | ||||
| 	void randomx_sshash_init(); | ||||
| 	void randomx_program_end(); | ||||
| } | ||||
| } | ||||
|  | @ -19,7 +19,7 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| //#define TRACE
 | ||||
| 
 | ||||
| //#include "AssemblyGeneratorX86.hpp"
 | ||||
| #include "Stopwatch.hpp" | ||||
| #include "stopwatch.hpp" | ||||
| //#include "blake2/blake2.h"
 | ||||
| #include "blake2/endian.h" | ||||
| #include <fstream> | ||||
|  |  | |||
|  | @ -19,12 +19,10 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| 
 | ||||
| #include "randomx.h" | ||||
| #include "dataset.hpp" | ||||
| #include "VirtualMachine.hpp" | ||||
| #include "./InterpretedVirtualMachine.hpp" | ||||
| #include "./InterpretedLightVirtualMachine.hpp" | ||||
| #include "./CompiledVirtualMachine.hpp" | ||||
| #include "./CompiledLightVirtualMachine.hpp" | ||||
| #include "virtualMemory.hpp" | ||||
| #include "vm_interpreted.hpp" | ||||
| #include "vm_interpreted_light.hpp" | ||||
| #include "vm_compiled.hpp" | ||||
| #include "vm_compiled_light.hpp" | ||||
| #include "blake2/blake2.h" | ||||
| 
 | ||||
| extern "C" { | ||||
|  |  | |||
|  | @ -19,7 +19,6 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| 
 | ||||
| #include "reciprocal.h" | ||||
| 
 | ||||
| 
 | ||||
| /*
 | ||||
| 	Calculates rcp = 2**x / divisor for highest integer x such that rcp < 2**64. | ||||
| 
 | ||||
|  | @ -34,7 +33,7 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| 	ret | ||||
| 
 | ||||
| */ | ||||
| uint64_t reciprocal(uint64_t divisor) { | ||||
| uint64_t randomx_reciprocal(uint64_t divisor) { | ||||
| 
 | ||||
| 	const uint64_t p2exp63 = 1ULL << 63; | ||||
| 
 | ||||
|  |  | |||
|  | @ -18,13 +18,14 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| */ | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #include <stdint.h> | ||||
| 
 | ||||
| #if defined(__cplusplus) | ||||
| extern "C" { | ||||
| #endif | ||||
| 
 | ||||
| 	uint64_t reciprocal(uint64_t); | ||||
| uint64_t randomx_reciprocal(uint64_t); | ||||
| 
 | ||||
| #if defined(__cplusplus) | ||||
| } | ||||
|  |  | |||
|  | @ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License | |||
| along with RandomX.  If not, see<http://www.gnu.org/licenses/>.
 | ||||
| */ | ||||
| 
 | ||||
| #include "softAes.h" | ||||
| #include "soft_aes.h" | ||||
| 
 | ||||
| alignas(16) const uint8_t sbox[256] = { | ||||
| 	0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, | ||||
|  | @ -321,8 +321,8 @@ alignas(16) const uint32_t lutDec3[256] = { | |||
| __m128i soft_aesenc(__m128i in, __m128i key) { | ||||
| 	uint32_t s0, s1, s2, s3; | ||||
| 
 | ||||
| 	s0 = _mm_cvtsi128_si32(_mm_shuffle_epi32(in, 0xFF)); | ||||
| 	s1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(in, 0xAA)); | ||||
| 	s0 = _mm_cvtsi128_si32(_mm_shuffle_epi32(in, 0xff)); | ||||
| 	s1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(in, 0xaa)); | ||||
| 	s2 = _mm_cvtsi128_si32(_mm_shuffle_epi32(in, 0x55)); | ||||
| 	s3 = _mm_cvtsi128_si32(in); | ||||
| 
 | ||||
|  | @ -339,8 +339,8 @@ __m128i soft_aesenc(__m128i in, __m128i key) { | |||
| __m128i soft_aesdec(__m128i in, __m128i key) { | ||||
| 	uint32_t s0, s1, s2, s3; | ||||
| 
 | ||||
| 	s0 = _mm_cvtsi128_si32(_mm_shuffle_epi32(in, 0xFF)); | ||||
| 	s1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(in, 0xAA)); | ||||
| 	s0 = _mm_cvtsi128_si32(_mm_shuffle_epi32(in, 0xff)); | ||||
| 	s1 = _mm_cvtsi128_si32(_mm_shuffle_epi32(in, 0xaa)); | ||||
| 	s2 = _mm_cvtsi128_si32(_mm_shuffle_epi32(in, 0x55)); | ||||
| 	s3 = _mm_cvtsi128_si32(in); | ||||
| 
 | ||||
|  | @ -18,8 +18,9 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| */ | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #include <stdint.h> | ||||
| #include "intrinPortable.h" | ||||
| #include "intrin_portable.h" | ||||
| 
 | ||||
| __m128i soft_aesenc(__m128i in, __m128i key); | ||||
| 
 | ||||
|  | @ -25,8 +25,8 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| #include <algorithm> | ||||
| #include <stdexcept> | ||||
| #include <iomanip> | ||||
| #include "superscalarGenerator.hpp" | ||||
| #include "intrinPortable.h" | ||||
| #include "superscalar.hpp" | ||||
| #include "intrin_portable.h" | ||||
| #include "reciprocal.h" | ||||
| 
 | ||||
| namespace randomx { | ||||
|  | @ -885,11 +885,11 @@ namespace randomx { | |||
| 				if (reciprocals != nullptr) | ||||
| 					r[instr.dst] *= (*reciprocals)[instr.getImm32()]; | ||||
| 				else | ||||
| 					r[instr.dst] *= reciprocal(instr.getImm32()); | ||||
| 					r[instr.dst] *= randomx_reciprocal(instr.getImm32()); | ||||
| 				break; | ||||
| 			default: | ||||
| 				UNREACHABLE; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| } | ||||
|  | @ -18,9 +18,11 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| */ | ||||
| 
 | ||||
| #pragma once | ||||
| #include "superscalar_program.hpp" | ||||
| #include "Blake2Generator.hpp" | ||||
| 
 | ||||
| #include <cstdint> | ||||
| #include <vector> | ||||
| #include "superscalar_program.hpp" | ||||
| #include "blake2_generator.hpp" | ||||
| 
 | ||||
| namespace randomx { | ||||
| 	                                              //                  Intel Ivy Bridge reference
 | ||||
|  | @ -45,5 +47,5 @@ namespace randomx { | |||
| 	} | ||||
| 
 | ||||
| 	void generateSuperscalar(SuperscalarProgram& prog, Blake2Generator& gen); | ||||
| 	void executeSuperscalar(int_reg_t(&r)[8], SuperscalarProgram& prog, std::vector<uint64_t> *reciprocals = nullptr); | ||||
| 	void executeSuperscalar(uint64_t(&r)[8], SuperscalarProgram& prog, std::vector<uint64_t> *reciprocals = nullptr); | ||||
| } | ||||
|  | @ -20,7 +20,7 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| #pragma once | ||||
| 
 | ||||
| #include <cstdint> | ||||
| #include "Instruction.hpp" | ||||
| #include "instruction.hpp" | ||||
| #include "configuration.h" | ||||
| 
 | ||||
| namespace randomx { | ||||
|  |  | |||
|  | @ -17,13 +17,13 @@ You should have received a copy of the GNU General Public License | |||
| along with RandomX.  If not, see<http://www.gnu.org/licenses/>.
 | ||||
| */ | ||||
| 
 | ||||
| #include "VirtualMachine.hpp" | ||||
| #include "virtual_machine.hpp" | ||||
| #include "common.hpp" | ||||
| #include "hashAes1Rx4.hpp" | ||||
| #include "aes_hash.hpp" | ||||
| #include "blake2/blake2.h" | ||||
| #include <cstring> | ||||
| #include <iomanip> | ||||
| #include "intrinPortable.h" | ||||
| #include "intrin_portable.h" | ||||
| #include "allocator.hpp" | ||||
| 
 | ||||
| randomx_vm::~randomx_vm() { | ||||
|  | @ -21,8 +21,7 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| 
 | ||||
| #include <cstdint> | ||||
| #include "common.hpp" | ||||
| #include "dataset.hpp" | ||||
| #include "Program.hpp" | ||||
| #include "program.hpp" | ||||
| 
 | ||||
| /* Global namespace for C binding */ | ||||
| class randomx_vm { | ||||
|  | @ -38,7 +37,6 @@ public: | |||
| 	randomx::RegisterFile *getRegisterFile() { | ||||
| 		return ® | ||||
| 	} | ||||
| 
 | ||||
| protected: | ||||
| 	void initialize(); | ||||
| 	alignas(64) randomx::Program program; | ||||
|  | @ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License | |||
| along with RandomX.  If not, see<http://www.gnu.org/licenses/>.
 | ||||
| */ | ||||
| 
 | ||||
| #include "virtualMemory.hpp" | ||||
| #include "virtual_memory.hpp" | ||||
| 
 | ||||
| #include <stdexcept> | ||||
| 
 | ||||
|  | @ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License | |||
| along with RandomX.  If not, see<http://www.gnu.org/licenses/>.
 | ||||
| */ | ||||
| 
 | ||||
| #include "CompiledVirtualMachine.hpp" | ||||
| #include "vm_compiled.hpp" | ||||
| #include "common.hpp" | ||||
| 
 | ||||
| namespace randomx { | ||||
|  | @ -20,8 +20,11 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| #pragma once | ||||
| 
 | ||||
| #include <new> | ||||
| #include "VirtualMachine.hpp" | ||||
| #include "JitCompilerX86.hpp" | ||||
| #include <cstdint> | ||||
| #include "virtual_machine.hpp" | ||||
| #include "jit_compiler_x86.hpp" | ||||
| #include "allocator.hpp" | ||||
| #include "dataset.hpp" | ||||
| 
 | ||||
| namespace randomx { | ||||
| 
 | ||||
|  | @ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License | |||
| along with RandomX.  If not, see<http://www.gnu.org/licenses/>.
 | ||||
| */ | ||||
| 
 | ||||
| #include "CompiledLightVirtualMachine.hpp" | ||||
| #include "vm_compiled_light.hpp" | ||||
| #include "common.hpp" | ||||
| #include <stdexcept> | ||||
| 
 | ||||
|  | @ -18,11 +18,9 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| */ | ||||
| 
 | ||||
| #pragma once | ||||
| //#define TRACEVM
 | ||||
| 
 | ||||
| #include <new> | ||||
| #include "CompiledVirtualMachine.hpp" | ||||
| #include "JitCompilerX86.hpp" | ||||
| #include "intrinPortable.h" | ||||
| #include "vm_compiled.hpp" | ||||
| 
 | ||||
| namespace randomx { | ||||
| 
 | ||||
|  | @ -16,20 +16,21 @@ GNU General Public License for more details. | |||
| You should have received a copy of the GNU General Public License | ||||
| along with RandomX.  If not, see<http://www.gnu.org/licenses/>.
 | ||||
| */ | ||||
| 
 | ||||
| //#define TRACE
 | ||||
| //#define FPUCHECK
 | ||||
| #define RANDOMX_JUMP | ||||
| #include "InterpretedVirtualMachine.hpp" | ||||
| #include "dataset.hpp" | ||||
| 
 | ||||
| #include <iostream> | ||||
| #include <iomanip> | ||||
| #include <stdexcept> | ||||
| #include <sstream> | ||||
| #include <cmath> | ||||
| #include <cfloat> | ||||
| #include <thread> | ||||
| #include <climits> | ||||
| #include "intrinPortable.h" | ||||
| #include "vm_interpreted.hpp" | ||||
| #include "dataset.hpp" | ||||
| #include "intrin_portable.h" | ||||
| #include "reciprocal.h" | ||||
| 
 | ||||
| #ifdef FPUCHECK | ||||
|  | @ -465,7 +466,7 @@ namespace randomx { | |||
| 		} | ||||
| 	}*/ | ||||
| 
 | ||||
| #include "instructionWeights.hpp" | ||||
| #include "instruction_weights.hpp" | ||||
| 
 | ||||
| 	template<class Allocator, bool softAes> | ||||
| 	void InterpretedVm<Allocator, softAes>::precompileProgram(int_reg_t(&r)[8], __m128d (&f)[4], __m128d (&e)[4], __m128d (&a)[4]) { | ||||
|  | @ -652,7 +653,7 @@ namespace randomx { | |||
| 						auto dst = instr.dst % RegistersCount; | ||||
| 						ibc.type = InstructionType::IMUL_R; | ||||
| 						ibc.idst = &r[dst]; | ||||
| 						ibc.imm = reciprocal(divisor); | ||||
| 						ibc.imm = randomx_reciprocal(divisor); | ||||
| 						ibc.isrc = &ibc.imm; | ||||
| 						registerUsage[instr.dst] = i; | ||||
| 					} | ||||
|  | @ -20,10 +20,11 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| #pragma once | ||||
| 
 | ||||
| #include <new> | ||||
| #include "VirtualMachine.hpp" | ||||
| #include "Program.hpp" | ||||
| #include "intrinPortable.h" | ||||
| #include <vector> | ||||
| #include "common.hpp" | ||||
| #include "virtual_machine.hpp" | ||||
| #include "intrin_portable.h" | ||||
| #include "allocator.hpp" | ||||
| 
 | ||||
| namespace randomx { | ||||
| 
 | ||||
|  | @ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License | |||
| along with RandomX.  If not, see<http://www.gnu.org/licenses/>.
 | ||||
| */ | ||||
| 
 | ||||
| #include "InterpretedLightVirtualMachine.hpp" | ||||
| #include "vm_interpreted_light.hpp" | ||||
| #include "dataset.hpp" | ||||
| 
 | ||||
| namespace randomx { | ||||
|  | @ -20,8 +20,7 @@ along with RandomX.  If not, see<http://www.gnu.org/licenses/>. | |||
| #pragma once | ||||
| 
 | ||||
| #include <new> | ||||
| #include "InterpretedVirtualMachine.hpp" | ||||
| #include "superscalar_program.hpp" | ||||
| #include "vm_interpreted.hpp" | ||||
| 
 | ||||
| namespace randomx { | ||||
| 
 | ||||
|  | @ -127,60 +127,58 @@ | |||
|     <ClCompile Include="..\src\allocator.cpp" /> | ||||
|     <ClCompile Include="..\src\argon2_core.c" /> | ||||
|     <ClCompile Include="..\src\argon2_ref.c" /> | ||||
|     <ClCompile Include="..\src\AssemblyGeneratorX86.cpp" /> | ||||
|     <ClCompile Include="..\src\Blake2Generator.cpp" /> | ||||
|     <ClCompile Include="..\src\assembly_generator_x86.cpp" /> | ||||
|     <ClCompile Include="..\src\blake2_benerator.cpp" /> | ||||
|     <ClCompile Include="..\src\blake2\blake2b.c" /> | ||||
|     <ClCompile Include="..\src\CompiledLightVirtualMachine.cpp" /> | ||||
|     <ClCompile Include="..\src\CompiledVirtualMachine.cpp" /> | ||||
|     <ClCompile Include="..\src\vm_compiled_light.cpp" /> | ||||
|     <ClCompile Include="..\src\vm_compiled.cpp" /> | ||||
|     <ClCompile Include="..\src\dataset.cpp" /> | ||||
|     <ClCompile Include="..\src\hashAes1Rx4.cpp" /> | ||||
|     <ClCompile Include="..\src\Instruction.cpp" /> | ||||
|     <ClCompile Include="..\src\instructionsPortable.cpp" /> | ||||
|     <ClCompile Include="..\src\InterpretedLightVirtualMachine.cpp" /> | ||||
|     <ClCompile Include="..\src\InterpretedVirtualMachine.cpp" /> | ||||
|     <ClCompile Include="..\src\JitCompilerX86.cpp" /> | ||||
|     <ClCompile Include="..\src\aes_hash.cpp" /> | ||||
|     <ClCompile Include="..\src\instruction.cpp" /> | ||||
|     <ClCompile Include="..\src\instructions_portable.cpp" /> | ||||
|     <ClCompile Include="..\src\vm_interpreted_light.cpp" /> | ||||
|     <ClCompile Include="..\src\vm_interpreted.cpp" /> | ||||
|     <ClCompile Include="..\src\jit_compiler_x86.cpp" /> | ||||
|     <ClCompile Include="..\src\randomx.cpp" /> | ||||
|     <ClCompile Include="..\src\superscalarGenerator.cpp" /> | ||||
|     <ClCompile Include="..\src\superscalar.cpp" /> | ||||
|     <ClCompile Include="..\src\main.cpp" /> | ||||
|     <ClCompile Include="..\src\reciprocal.c" /> | ||||
|     <ClCompile Include="..\src\softAes.cpp" /> | ||||
|     <ClCompile Include="..\src\VirtualMachine.cpp" /> | ||||
|     <ClCompile Include="..\src\virtualMemory.cpp" /> | ||||
|     <ClCompile Include="..\src\soft_aes.cpp" /> | ||||
|     <ClCompile Include="..\src\virtual_machine.cpp" /> | ||||
|     <ClCompile Include="..\src\virtual_memory.cpp" /> | ||||
|   </ItemGroup> | ||||
|   <ItemGroup> | ||||
|     <MASM Include="..\src\JitCompilerX86-static.asm" /> | ||||
|     <MASM Include="..\src\squareHash.asm" /> | ||||
|     <MASM Include="..\src\jit_compiler_x86_staticc.asm" /> | ||||
|   </ItemGroup> | ||||
|   <ItemGroup> | ||||
|     <ClInclude Include="..\src\allocator.hpp" /> | ||||
|     <ClInclude Include="..\src\argon2.h" /> | ||||
|     <ClInclude Include="..\src\argon2_core.h" /> | ||||
|     <ClInclude Include="..\src\AssemblyGeneratorX86.hpp" /> | ||||
|     <ClInclude Include="..\src\Blake2Generator.hpp" /> | ||||
|     <ClInclude Include="..\src\assembly_generator_x86.hpp" /> | ||||
|     <ClInclude Include="..\src\blake2_generator.hpp" /> | ||||
|     <ClInclude Include="..\src\catch.hpp" /> | ||||
|     <ClInclude Include="..\src\common.hpp" /> | ||||
|     <ClInclude Include="..\src\CompiledLightVirtualMachine.hpp" /> | ||||
|     <ClInclude Include="..\src\CompiledVirtualMachine.hpp" /> | ||||
|     <ClInclude Include="..\src\vm_compiled_light.hpp" /> | ||||
|     <ClInclude Include="..\src\vm_compiled.hpp" /> | ||||
|     <ClInclude Include="..\src\configuration.h" /> | ||||
|     <ClInclude Include="..\src\dataset.hpp" /> | ||||
|     <ClInclude Include="..\src\hashAes1Rx4.hpp" /> | ||||
|     <ClInclude Include="..\src\Instruction.hpp" /> | ||||
|     <ClInclude Include="..\src\instructionWeights.hpp" /> | ||||
|     <ClInclude Include="..\src\InterpretedLightVirtualMachine.hpp" /> | ||||
|     <ClInclude Include="..\src\InterpretedVirtualMachine.hpp" /> | ||||
|     <ClInclude Include="..\src\intrinPortable.h" /> | ||||
|     <ClInclude Include="..\src\JitCompilerX86-static.hpp" /> | ||||
|     <ClInclude Include="..\src\JitCompilerX86.hpp" /> | ||||
|     <ClInclude Include="..\src\aes_hash.hpp" /> | ||||
|     <ClInclude Include="..\src\instruction.hpp" /> | ||||
|     <ClInclude Include="..\src\instruction_weights.hpp" /> | ||||
|     <ClInclude Include="..\src\vm_interpreted_light.hpp" /> | ||||
|     <ClInclude Include="..\src\vm_interpreted.hpp" /> | ||||
|     <ClInclude Include="..\src\intrin_portable.h" /> | ||||
|     <ClInclude Include="..\src\jit_compiler_x86_static.hpp" /> | ||||
|     <ClInclude Include="..\src\jit_compiler_x86.hpp" /> | ||||
|     <ClInclude Include="..\src\randomx.h" /> | ||||
|     <ClInclude Include="..\src\superscalarGenerator.hpp" /> | ||||
|     <ClInclude Include="..\src\Program.hpp" /> | ||||
|     <ClInclude Include="..\src\superscalar.hpp" /> | ||||
|     <ClInclude Include="..\src\program.hpp" /> | ||||
|     <ClInclude Include="..\src\reciprocal.h" /> | ||||
|     <ClInclude Include="..\src\softAes.h" /> | ||||
|     <ClInclude Include="..\src\squareHash.h" /> | ||||
|     <ClInclude Include="..\src\Stopwatch.hpp" /> | ||||
|     <ClInclude Include="..\src\soft_aes.h" /> | ||||
|     <ClInclude Include="..\src\stopwatch.hpp" /> | ||||
|     <ClInclude Include="..\src\superscalar_program.hpp" /> | ||||
|     <ClInclude Include="..\src\VirtualMachine.hpp" /> | ||||
|     <ClInclude Include="..\src\virtualMemory.hpp" /> | ||||
|     <ClInclude Include="..\src\virtual_machine.hpp" /> | ||||
|     <ClInclude Include="..\src\virtual_memory.hpp" /> | ||||
|   </ItemGroup> | ||||
|   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | ||||
|   <ImportGroup Label="ExtensionTargets"> | ||||
|  |  | |||
|  | @ -24,69 +24,66 @@ | |||
|     <ClCompile Include="..\src\reciprocal.c"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\AssemblyGeneratorX86.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\CompiledLightVirtualMachine.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\CompiledVirtualMachine.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\dataset.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\hashAes1Rx4.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\Instruction.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\instructionsPortable.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\InterpretedVirtualMachine.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\JitCompilerX86.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\main.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\softAes.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\VirtualMachine.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\virtualMemory.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\blake2\blake2b.c"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\Blake2Generator.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\superscalarGenerator.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\randomx.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\allocator.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\InterpretedLightVirtualMachine.cpp"> | ||||
|     <ClCompile Include="..\src\assembly_generator_x86.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\blake2_benerator.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\vm_compiled_light.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\vm_compiled.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\aes_hash.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\instruction.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\instructions_portable.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\vm_interpreted_light.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\jit_compiler_x86.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\soft_aes.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\superscalar.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\virtual_machine.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\vm_interpreted.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\src\virtual_memory.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|   </ItemGroup> | ||||
|   <ItemGroup> | ||||
|     <MASM Include="..\src\JitCompilerX86-static.asm"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </MASM> | ||||
|     <MASM Include="..\src\squareHash.asm"> | ||||
|     <MASM Include="..\src\jit_compiler_x86_staticc.asm"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </MASM> | ||||
|   </ItemGroup> | ||||
|  | @ -97,85 +94,82 @@ | |||
|     <ClInclude Include="..\src\argon2_core.h"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\AssemblyGeneratorX86.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\catch.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\common.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\CompiledLightVirtualMachine.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\CompiledVirtualMachine.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\configuration.h"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\dataset.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\hashAes1Rx4.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\Instruction.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\instructionWeights.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\InterpretedVirtualMachine.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\intrinPortable.h"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\JitCompilerX86.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\JitCompilerX86-static.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\Program.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\reciprocal.h"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\softAes.h"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\squareHash.h"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\Stopwatch.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\VirtualMachine.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\virtualMemory.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\Blake2Generator.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\superscalarGenerator.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\randomx.h"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\allocator.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\InterpretedLightVirtualMachine.hpp"> | ||||
|     <ClInclude Include="..\src\superscalar_program.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\superscalar_program.hpp"> | ||||
|     <ClInclude Include="..\src\assembly_generator_x86.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\blake2_generator.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\aes_hash.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\instruction.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\instruction_weights.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\vm_compiled_light.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\vm_compiled.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\vm_interpreted_light.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\vm_interpreted.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\intrin_portable.h"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\jit_compiler_x86.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\jit_compiler_x86_static.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\program.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\soft_aes.h"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\stopwatch.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\virtual_machine.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\virtual_memory.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\src\superscalar.hpp"> | ||||
|       <Filter>Header Files</Filter> | ||||
|     </ClInclude> | ||||
|   </ItemGroup> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue