aa022
978720462d
ARM64 RandomX JIT: dataset prefetch + non-temporal loads
...
Two Apple-silicon-targeted tweaks to the aarch64 RandomX JIT:
- Early dataset prefetch: when readReg2/readReg3 are finalized well before
the end of the program body, emit the next iteration's dataset-line prefetch
early to hide more DRAM latency on the serial scalar chain.
- Non-temporal dataset loads: each 64-byte dataset line is read once and never
reused, so ldp -> ldnp avoids evicting the hot scratchpad, and the prefetch
hint moves pldl2strm -> pldl1strm to match the longer lead time.
Measured ~8% hashrate gain on Apple M4 base over dev (7eadfdc9 ).
2026-05-25 13:46:41 +02:00
SChernykh
720325c40f
RandomX optimizations:
...
- ARM64: optimized emitMovImmediate/emitMemLoad
- ARM64: disabled 32-bit literal preloading (it was slower)
- Android and Linux: added MADV_COLLAPSE support to memory allocation
2026-05-17 21:04:02 +02:00
SChernykh
f8dd210531
ARM64 RandomX JIT:
...
- optimized F/E register loading
- aligned asm code
- optimized emitAddImmediate for small negative values
- v2: optimized CFROUND
- v2: optimized AES in the main loop
2026-05-15 17:30:05 +02:00
SChernykh
5347458fc7
ARM64 JIT: Optimize Group E register conversion
...
Based on https://github.com/tevador/RandomX/pull/324
2026-04-25 11:37:47 +02:00
SChernykh
26ee1cd291
ARM64 fixes
...
- Added a check for free memory before enabling NUMA
- Removed duplicate AES tables from the ARM64 JIT compiler
Fixes #3729 and #3777
2026-02-04 00:07:16 +01:00
SChernykh
cb6001945e
RandomX v2 (ARM64)
2026-01-31 17:30:35 +01:00
Christopher Wright
93f5067999
minor Aarch64 JIT changes (better instruction selection, don't emit instructions that add 0, etc)
2025-09-20 08:32:32 -04:00
SChernykh
ef6fb728b5
Fixed ARMv8 compilation
2024-08-02 17:51:08 +02:00
SChernykh
caae7c64f0
RandomX: correct memcpy size for JIT initialization
...
No buffer overflow, better fix for `_FORTIFY_SOURCE`
2024-04-14 09:13:00 +02:00
SChernykh
f6c50b5393
Fix RandomX crash when compiled with fortify_source
2024-03-20 21:24:02 +01:00
SChernykh
5e66efabcf
ARM64 JIT: don't use x18 register
...
From https://developer.apple.com/documentation/xcode/writing-arm64-code-for-apple-platforms
> The platforms reserve register x18. Don’t use this register.
This PR fixes invalid hashes when running on Apple silicon with the latest macOS SDK.
2023-10-19 17:45:15 +02:00
SChernykh
5dcbab7e3a
RandomX: optimized program generation
2023-05-21 17:44:20 +02:00
SChernykh
346892e170
Update jit_compiler_a64.cpp
2021-02-01 22:52:02 +01:00
SChernykh
db03573804
ARM JIT: added missing cache flush
2021-02-01 22:42:35 +01:00
SChernykh
e74573f81f
Fixed code allocation for ARM
2021-02-01 22:36:11 +01:00
SChernykh
4108428872
Fixed crashes on ARM
2021-02-01 17:07:45 +01:00
SChernykh
633aaccd9c
Added config option for AVX2 dataset init
...
-1 = Auto detect
0 = Always disabled
1 = Enabled if AVX2 is supported
2020-12-19 16:18:49 +01:00
XMRig
6b331b6945
Reduce JIT memory for ARM.
2020-12-15 02:52:38 +07:00
XMRig
179f09081f
Alternative secure JIT for macOS.
2020-12-12 21:32:36 +07:00
XMRig
775867fc3e
Fixed secure JIT on Linux and code cleanup.
2020-12-12 19:18:47 +07:00
XMRig
497863441a
Remove duplicated code.
2020-12-12 12:39:11 +07:00
XMRig
ec62ded279
Added generic secure JIT support for RandomX.
2020-12-11 23:17:54 +07:00
SChernykh
50bdaba526
Fixed Debug build in Visual Studio
2020-10-27 14:08:36 +01:00
SChernykh
166c011d37
Fixed ARM compilation
2020-10-07 18:09:42 +02:00
SChernykh
44dcded866
RandomX: added huge-pages-jit config parameter
...
Set to false by default, gives 0.2% boost on Ryzen 7 3700X with 16 threads, but hashrate might be unstable on Ryzen between launches. Use with caution.
2020-10-07 17:42:55 +02:00
SChernykh
c7476e076b
RandomX refactoring, moved more stuff to compile time
...
Small x86 JIT compiler speedup.
2020-09-18 20:51:25 +02:00
SChernykh
d0df824599
Optimized dataset read for Ryzen CPUs
...
Removed register dependency in dataset read, +0.8% speedup on average.
2019-12-08 16:14:02 +01:00
SChernykh
578bebb04d
Prefer sys_icache_invalidate on iOS
...
Also break compilation with error if clear cache is not available
2019-10-18 18:17:57 +02:00
SChernykh
5611249af7
Fixed __builtin___clear_cache detection
2019-10-18 18:04:13 +02:00
SChernykh
0ad992985c
Update jit_compiler_a64.cpp
2019-10-18 16:36:50 +02:00
SChernykh
1a66c3f1a1
Update jit_compiler_a64.cpp
2019-10-18 16:32:01 +02:00
SChernykh
a2ef2fd9d9
Update jit_compiler_a64.cpp
2019-10-18 16:28:49 +02:00
SChernykh
998c55030a
Fixed code cache cleanup on iOS/Darwin
2019-10-18 16:26:15 +02:00
XMRig
5c02cb50da
Fix copy/paste typo.
2019-10-18 21:26:15 +07:00
XMRig
10d292092a
#1246 Fixed build on iOS.
2019-10-18 12:02:10 +07:00
SChernykh
38f4f4f695
Added JIT compiler for RandomX on ARMv8
2019-09-21 10:10:52 +02:00