Compare commits

..

No commits in common. "41246334427a557693902b0a66db4a2edfd035e8" and "a6924bb0618605c5e615d903412db1267dafb246" have entirely different histories.

7 changed files with 41 additions and 56 deletions

View File

@ -50,14 +50,11 @@ namespace randomx {
template struct AlignedAllocator<CacheLineSize>; template struct AlignedAllocator<CacheLineSize>;
void* LargePageAllocator::allocMemory(size_t count) { void* LargePageAllocator::allocMemory(size_t count) {
void *mem = allocLargePagesMemory(count); return allocLargePagesMemory(count);
if (mem == nullptr)
throw std::bad_alloc();
return mem;
} }
void LargePageAllocator::freeMemory(void* ptr, size_t count) { void LargePageAllocator::freeMemory(void* ptr, size_t count) {
freePagedMemory(ptr, count); freePagedMemory(ptr, count);
}; };
} }

View File

@ -337,19 +337,19 @@ FORCE_INLINE int rx_vec_i128_w(rx_vec_i128 a) {
return _a.i32[3]; return _a.i32[3];
} }
FORCE_INLINE rx_vec_i128 rx_set_int_vec_i128(int i3, int i2, int i1, int i0) { FORCE_INLINE rx_vec_i128 rx_set_int_vec_i128(int _I3, int _I2, int _I1, int _I0) {
return (rx_vec_i128)((__m128li){i0,i1,i2,i3}); return (rx_vec_i128)((__m128li){_I0,_I1,_I2,_I3});
}; };
FORCE_INLINE rx_vec_i128 rx_xor_vec_i128(rx_vec_i128 a, rx_vec_i128 b) { FORCE_INLINE rx_vec_i128 rx_xor_vec_i128(rx_vec_i128 _A, rx_vec_i128 _B) {
return (rx_vec_i128)vec_xor(a,b); return (rx_vec_i128)vec_xor(_A,_B);
} }
FORCE_INLINE rx_vec_i128 rx_load_vec_i128(rx_vec_i128 const *p) { FORCE_INLINE rx_vec_i128 rx_load_vec_i128(rx_vec_i128 const *_P) {
#if defined(NATIVE_LITTLE_ENDIAN) #if defined(NATIVE_LITTLE_ENDIAN)
return *p; return *_P;
#else #else
uint32_t* ptr = (uint32_t*)p; uint32_t* ptr = (uint32_t*)_P;
vec_u c; vec_u c;
c.u32[0] = load32(ptr + 0); c.u32[0] = load32(ptr + 0);
c.u32[1] = load32(ptr + 1); c.u32[1] = load32(ptr + 1);
@ -359,13 +359,13 @@ FORCE_INLINE rx_vec_i128 rx_load_vec_i128(rx_vec_i128 const *p) {
#endif #endif
} }
FORCE_INLINE void rx_store_vec_i128(rx_vec_i128 *p, rx_vec_i128 b) { FORCE_INLINE void rx_store_vec_i128(rx_vec_i128 *_P, rx_vec_i128 _B) {
#if defined(NATIVE_LITTLE_ENDIAN) #if defined(NATIVE_LITTLE_ENDIAN)
*p = b; *_P = _B;
#else #else
uint32_t* ptr = (uint32_t*)p; uint32_t* ptr = (uint32_t*)_P;
vec_u B; vec_u B;
B.i = b; B.i = _B;
store32(ptr + 0, B.u32[0]); store32(ptr + 0, B.u32[0]);
store32(ptr + 1, B.u32[1]); store32(ptr + 1, B.u32[1]);
store32(ptr + 2, B.u32[2]); store32(ptr + 2, B.u32[2]);
@ -487,12 +487,12 @@ FORCE_INLINE int rx_vec_i128_w(rx_vec_i128 a) {
return vgetq_lane_s32(vreinterpretq_s32_u8(a), 3); return vgetq_lane_s32(vreinterpretq_s32_u8(a), 3);
} }
FORCE_INLINE rx_vec_i128 rx_set_int_vec_i128(int i3, int i2, int i1, int i0) { FORCE_INLINE rx_vec_i128 rx_set_int_vec_i128(int _I3, int _I2, int _I1, int _I0) {
int32_t data[4]; int32_t data[4];
data[0] = i0; data[0] = _I0;
data[1] = i1; data[1] = _I1;
data[2] = i2; data[2] = _I2;
data[3] = i3; data[3] = _I3;
return vreinterpretq_u8_s32(vld1q_s32(data)); return vreinterpretq_u8_s32(vld1q_s32(data));
}; };
@ -662,29 +662,29 @@ FORCE_INLINE int rx_vec_i128_w(rx_vec_i128 a) {
return a.u32[3]; return a.u32[3];
} }
FORCE_INLINE rx_vec_i128 rx_set_int_vec_i128(int i3, int i2, int i1, int i0) { FORCE_INLINE rx_vec_i128 rx_set_int_vec_i128(int _I3, int _I2, int _I1, int _I0) {
rx_vec_i128 v; rx_vec_i128 v;
v.u32[0] = i0; v.u32[0] = _I0;
v.u32[1] = i1; v.u32[1] = _I1;
v.u32[2] = i2; v.u32[2] = _I2;
v.u32[3] = i3; v.u32[3] = _I3;
return v; return v;
}; };
FORCE_INLINE rx_vec_i128 rx_xor_vec_i128(rx_vec_i128 a, rx_vec_i128 b) { FORCE_INLINE rx_vec_i128 rx_xor_vec_i128(rx_vec_i128 _A, rx_vec_i128 _B) {
rx_vec_i128 c; rx_vec_i128 c;
c.u32[0] = a.u32[0] ^ b.u32[0]; c.u32[0] = _A.u32[0] ^ _B.u32[0];
c.u32[1] = a.u32[1] ^ b.u32[1]; c.u32[1] = _A.u32[1] ^ _B.u32[1];
c.u32[2] = a.u32[2] ^ b.u32[2]; c.u32[2] = _A.u32[2] ^ _B.u32[2];
c.u32[3] = a.u32[3] ^ b.u32[3]; c.u32[3] = _A.u32[3] ^ _B.u32[3];
return c; return c;
} }
FORCE_INLINE rx_vec_i128 rx_load_vec_i128(rx_vec_i128 const* p) { FORCE_INLINE rx_vec_i128 rx_load_vec_i128(rx_vec_i128 const*_P) {
#if defined(NATIVE_LITTLE_ENDIAN) #if defined(NATIVE_LITTLE_ENDIAN)
return *p; return *_P;
#else #else
uint32_t* ptr = (uint32_t*)p; uint32_t* ptr = (uint32_t*)_P;
rx_vec_i128 c; rx_vec_i128 c;
c.u32[0] = load32(ptr + 0); c.u32[0] = load32(ptr + 0);
c.u32[1] = load32(ptr + 1); c.u32[1] = load32(ptr + 1);
@ -694,15 +694,15 @@ FORCE_INLINE rx_vec_i128 rx_load_vec_i128(rx_vec_i128 const* p) {
#endif #endif
} }
FORCE_INLINE void rx_store_vec_i128(rx_vec_i128 *p, rx_vec_i128 b) { FORCE_INLINE void rx_store_vec_i128(rx_vec_i128 *_P, rx_vec_i128 _B) {
#if defined(NATIVE_LITTLE_ENDIAN) #if defined(NATIVE_LITTLE_ENDIAN)
*p = b; *_P = _B;
#else #else
uint32_t* ptr = (uint32_t*)p; uint32_t* ptr = (uint32_t*)_P;
store32(ptr + 0, b.u32[0]); store32(ptr + 0, _B.u32[0]);
store32(ptr + 1, b.u32[1]); store32(ptr + 1, _B.u32[1]);
store32(ptr + 2, b.u32[2]); store32(ptr + 2, _B.u32[2]);
store32(ptr + 3, b.u32[3]); store32(ptr + 3, _B.u32[3]);
#endif #endif
} }

View File

@ -93,8 +93,6 @@ JitCompilerA64::JitCompilerA64()
, literalPos(ImulRcpLiteralsEnd) , literalPos(ImulRcpLiteralsEnd)
, num32bitLiterals(0) , num32bitLiterals(0)
{ {
if (code == nullptr)
throw std::runtime_error("allocMemoryPages");
memset(reg_changed_offset, 0, sizeof(reg_changed_offset)); memset(reg_changed_offset, 0, sizeof(reg_changed_offset));
memcpy(code, (void*) randomx_program_aarch64, CodeSize); memcpy(code, (void*) randomx_program_aarch64, CodeSize);

View File

@ -225,8 +225,6 @@ namespace randomx {
JitCompilerX86::JitCompilerX86() { JitCompilerX86::JitCompilerX86() {
code = (uint8_t*)allocMemoryPages(CodeSize); code = (uint8_t*)allocMemoryPages(CodeSize);
if (code == nullptr)
throw std::runtime_error("allocMemoryPages");
memcpy(code, codePrologue, prologueSize); memcpy(code, codePrologue, prologueSize);
memcpy(code + epilogueOffset, codeEpilogue, epilogueSize); memcpy(code + epilogueOffset, codeEpilogue, epilogueSize);
} }

View File

@ -113,10 +113,6 @@ extern "C" {
cache = nullptr; cache = nullptr;
} }
} }
if (cache && cache->memory == nullptr) {
randomx_release_cache(cache);
cache = nullptr;
}
return cache; return cache;
} }
@ -134,7 +130,9 @@ extern "C" {
void randomx_release_cache(randomx_cache* cache) { void randomx_release_cache(randomx_cache* cache) {
assert(cache != nullptr); assert(cache != nullptr);
cache->dealloc(cache); if (cache->memory != nullptr) {
cache->dealloc(cache);
}
delete cache; delete cache;
} }
@ -164,10 +162,6 @@ extern "C" {
dataset = nullptr; dataset = nullptr;
} }
} }
if (dataset && dataset->memory == nullptr) {
randomx_release_dataset(dataset);
dataset = nullptr;
}
return dataset; return dataset;
} }

View File

@ -32,7 +32,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <cstdlib> #include <cstdlib>
#include <iostream> #include <iostream>
#include <fstream> #include <fstream>
#include <cstdint>
constexpr char hexmap[] = "0123456789abcdef"; constexpr char hexmap[] = "0123456789abcdef";
inline void outputHex(std::ostream& os, const char* data, int length) { inline void outputHex(std::ostream& os, const char* data, int length) {

View File

@ -15,7 +15,6 @@
#include <sstream> #include <sstream>
#include <string> #include <string>
#include <vector> #include <vector>
#include <cstdint>
[[nodiscard]] inline std::string TrimString(const std::string& str, const std::string& pattern = " \f\n\r\t\v") [[nodiscard]] inline std::string TrimString(const std::string& str, const std::string& pattern = " \f\n\r\t\v")
{ {