tevador
102f8acf90
bump benchmark version to 1.2.1
7 months ago
tevador
e895d451a3
Avoid `zext.b`
7 months ago
tevador
06a7cc1c33
Update README and benchmark version
7 months ago
SChernykh
5c49ab12a0
Optimized randomx_reciprocal
...
Also limited it to 32 bit because it's supposed to work only with 32-bit values, according to the specs.
7 months ago
SChernykh
8f91d31b8b
Fixed UB in ARM64 JIT compiler
...
Fixed unaligned memory writes
7 months ago
SChernykh
f72101aa2c
ARM64 JIT: don't use `x18` register
7 months ago
tevador
277791085c
Merge pull request #275 from tevador/pr-riscv
...
JIT compiler for RISC-V
7 months ago
tevador
027ecb8576
JIT compiler for RISC-V
7 months ago
SChernykh
e322218fb7
Fixed casts from const to non-const pointers
7 months ago
tevador
b89deae92e
Merge branch 'master' into pr-randomx-v2
8 months ago
tevador
07a413b9f0
rename 'hash v2' to 'commitment'
8 months ago
SChernykh
3f69ad7b79
Added CI tests
...
- Compile RandomX on a wide variety of OS and architectures
- Fixed broken x86 (32-bit) builds
- Don't use broken `fesetenv` in msys2 builds: https://sourceforge.net/p/mingw-w64/bugs/541/
9 months ago
SChernykh
43db7e290e
Fixed GCC 13 compilation
12 months ago
tevador
db273f2671
introduce RandomX v2 with double-hashing
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
1 year 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.
2 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
3 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