SChernykh
43db7e290e
Fixed GCC 13 compilation
1 year ago
SChernykh
7245f13c7e
Invalidate CPU I-cache on Apple Silicon
...
Call __builtin___clear_cache() after pthread_jit_write_protect_np() according to https://developer.apple.com/documentation/apple-silicon/porting-just-in-time-compilers-to-apple-silicon
2 years ago
hyc
261d58c77f
Fix missing failure check in allocMemoryPages() ( #250 )
2 years ago
SChernykh
00472c54ef
Fixed compiler warning
...
```
virtual_memory.c:210:14: warning: type defaults to 'int' in declaration of 'pageMinimum' [-Wimplicit-int]
```
2 years ago
SChernykh
166e0d80f5
Fixed cache->jit memory leak
...
1. `cache->jit = new randomx::JitCompiler();` - succeeds
2. `cache->memory = (uint8_t*)randomx::LargePageAllocator::allocMemory(randomx::CacheSize);` - fails
3. `if (cache && cache->memory == nullptr) randomx_release_cache(cache);` is executed
4. randomx_release_cache checks `if (cache->memory != nullptr)` and does nothing
5. cache->jit stays allocated
2 years ago
hyc
85c527a623
Fix missing defs on older platforms ( #243 )
2 years ago
Howard Chu
d8fb7363c1
Fix previous commit...
...
true/false leftover from C++
2 years ago
Howard Chu
6f756473c0
Don't use exceptions in low-level mem allocator
2 years ago
tevador
905ee34f8b
Do not use reserved identifiers in intrin_portable.h
...
Identifiers starting with an underscore followed by an uppercase
letter are reserved for the compiler.
3 years ago
hyc
9efc398c19
Merge pull request #227 from selsta/randomx-benchmark
...
RandomX benchmark 1.1.11
3 years ago
selsta
85a4032f34
RandomX benchmark 1.1.11
3 years ago
Jethro Grassie
4d8ef87936
pageProtect when missing pthread_jit_write_protect_np
3 years ago
Jethro Grassie
31b9b0f8fc
Add runtime checks
3 years ago
Jethro Grassie
c7973839fa
Fix apple-non-arm jit guard
3 years ago
SChernykh
bbc9ccc90b
Fixed a crash in MSVC Debug and RelWithDebInfo builds
...
MSVC debug/relwithdebinfo builds use jmp trampolines for ASM functions, so these must be traversed to get the actual address of the code for each function.
3 years ago
tevador
d589aa29d3
Merge pull request #222 from hyc/relocs
...
Fix absolute address references
3 years ago
tevador
b27283a708
Merge pull request #217 from hyc/issue216
...
Fix #216 - MacOS JIT privs are not ARM-specific
3 years ago
hyc
59c981cc5d
Merge pull request #192 from xiphon/fix-mingw-5.3-cross-compilation
...
__cpuidex: explicit MSVC check, fix MinGW GCC 5.3 cross-compilation
3 years ago
Howard Chu
ae2c241a96
Fix #216 - MacOS JIT privs are not ARM-specific
3 years ago
hyc
088c36fea0
Fix absolute address references
...
Use local symbols instead of global symbols, to prevent problems
with dynamic linker
3 years ago
tevador
8006ac7ec0
Fix native code generator using the wrong hash function
3 years ago
SChernykh
3c8c7ee097
Optimized dataset read ( #211 )
...
* Optimized dataset read
There was a false dependency on readReg2 and readReg3 (caused by `xor rbp, rax` instruction) when reading dataset item (see design.md - 4.6.2 Loop execution, steps 5 and 7). This change uses `ma` register to read dataset item before the whole `rbp` (`ma` and `mx`) is changed, so superscalar and out-of-order CPU can start executing it earlier.
Results: https://i.imgur.com/Bpeq9mx.png
~1% speedup on modern Intel/AMD CPUs.
* ARMv8: optimized dataset read
Break dependency from readReg2 and readReg3.
* Fixed light mode hashing
3 years ago
tevador
c12097400b
Merge pull request #212 from hyc/m1prot
...
Faster W^X policy for apple silicon macs
3 years ago
tevador
0db4c57823
Merge pull request #198 from tevador/pr-applem1
...
Apple silicon: force W^X, enable hardware AES
3 years ago
Howard Chu
d9b7e8c25d
Faster W^X policy for apple silicon macs
3 years ago
SChernykh
2ba7df2844
Fix illegal instruction crash on some ARM systems
...
See https://github.com/xmrig/xmrig/issues/1916
3 years ago
tevador
a44d07c89f
Merge pull request #201 from cryptonote-social/removecode
...
remove unnecessary first-load initialization code
3 years ago
cryptonote-social
529b933fcf
remove unnecessary first-load initialization code
3 years ago
tevador
a38ce601fd
Apple silicon: force W^X, enable hardware AES
4 years ago
tevador
5bfd021e8f
Merge pull request #183 from selsta/map_jit
...
virtual_memory: add MAP_JIT on macOS
4 years ago
xiphon
66c22813f6
__cpuidex: explicit MSVC check, fix MinGW GCC 5.3 cross-compilation
4 years ago
tevador
5ce5f4906c
add --noBatch benchmark option
4 years ago
selsta
7c172f746f
virtual_memory: add MAP_JIT on macOS
4 years ago
tevador
9905ec9c5a
Merge pull request #188 from cryptonote-social/master
...
replace hardcoded literal with its appropriate symbol
4 years ago
tevador
863765bbe6
Merge pull request #185 from tevador/pr-crosscomp
...
Fix windows-target cross-compilation
4 years ago
tevador
a1c08a2f41
Merge pull request #187 from tevador/pr-netbsd
...
Fix compilation and JIT support on NetBSD
1. Disable hugepages (not supported).
2. Force W^X (required).
3. When allocating JIT memory, PROT_EXEC must be reserved
in order to set the pages executable later.
4 years ago
tevador
708a4e50c5
Fix compilation and JIT support on NetBSD:
...
1. Disable hugepages (not supported).
2. Force W^X (required).
3. When allocating JIT memory, PROT_EXEC must be reserved
in order to set the pages executable later.
4 years ago
tevador
32ab5dea54
fix potential use-after-free when reallocating cache
4 years ago
cryptonote-social
a7733de1e7
replace hardcoded literal with its appropriate symbol
4 years ago
tevador
bece0a7206
fix #184
4 years ago
tevador
148b923f71
fix test 92 not failing properly on GCC/amd64
4 years ago
tevador
6a764e90d0
Preserve floating point state when calling randomx_calculate_hash
4 years ago
tevador
01381ccef3
Add a missing function to calculate a batch of hashes
...
Add a test for batch calculation
4 years ago
tevador
30969c0e25
Benchmark version
5 years ago
tevador
aa19c5b9b6
Disable thread affinity on FreeBSD and Android
5 years ago
tevador
3910d49b49
Hide tempHash from the public API
5 years ago
SChernykh
219c02e1e5
Combined hash and fill AES loop ( #166 )
...
Adds more parallelizm into AES loop so modern CPUs can take advantage of it. Also, scratchpad data moves between L1 and L3 caches only one time which saves time and energy per hash.
5 years ago
Vladimir
01914b49cd
Fixes for cmake build with visual studio ( #144 )
...
* Fixed CMake configuration for visual studio build
Added proper asm source and set correct type.
* Disabled stadard layout check of randomx_cache for visual studio debug
Required to silence static_assert which fails on Visual Studio Debug
configuation.
* Fixed warning message and defines check
* Removed unsupported flags for MSVC compiler
* Enabled AVX2 for msvc
* Fixed formatting in CmakeLists
* Added generation of configuration.asm by CMake for MSVC
5 years ago
tevador
7e20c8e56e
Merge pull request #161 from tevador/pr-struct
...
Fix inconsistent class/struct usage
5 years ago
tevador
88268ae325
Improved benchmark instructions
5 years ago