tevador
027ecb8576
JIT compiler for RISC-V
2023-10-10 20:51:33 +02:00
tevador
b89deae92e
Merge branch 'master' into pr-randomx-v2
2023-09-08 22:57:28 +02:00
tevador
07a413b9f0
rename 'hash v2' to 'commitment'
2023-09-08 22:57:09 +02:00
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/
2023-08-23 12:15:21 +02:00
SChernykh
43db7e290e
Fixed GCC 13 compilation
2023-05-15 09:45:20 +02:00
tevador
db273f2671
introduce RandomX v2 with double-hashing
2023-04-22 19:14:46 +02:00
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
2022-11-30 13:26:20 +01:00
hyc
261d58c77f
Fix missing failure check in allocMemoryPages() ( #250 )
2022-07-24 16:31:36 +01:00
SChernykh
00472c54ef
Fixed compiler warning
...
```
virtual_memory.c:210:14: warning: type defaults to 'int' in declaration of 'pageMinimum' [-Wimplicit-int]
```
2022-06-04 19:47:17 +02:00
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
2022-05-24 14:22:16 +02:00
hyc
85c527a623
Fix missing defs on older platforms ( #243 )
2022-05-09 22:02:04 +01:00
Howard Chu
d8fb7363c1
Fix previous commit...
...
true/false leftover from C++
2022-05-09 17:48:14 +01:00
Howard Chu
6f756473c0
Don't use exceptions in low-level mem allocator
2022-05-09 17:28:59 +01:00
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.
2021-11-29 21:33:42 +01:00
hyc
9efc398c19
Merge pull request #227 from selsta/randomx-benchmark
...
RandomX benchmark 1.1.11
2021-11-19 06:08:59 +00:00
selsta
85a4032f34
RandomX benchmark 1.1.11
2021-11-16 03:05:28 +01:00
Jethro Grassie
4d8ef87936
pageProtect when missing pthread_jit_write_protect_np
2021-11-13 08:53:57 -05:00
Jethro Grassie
31b9b0f8fc
Add runtime checks
2021-11-12 20:59:19 -05:00
Jethro Grassie
c7973839fa
Fix apple-non-arm jit guard
2021-11-12 14:50:41 -05:00
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.
2021-11-06 22:15:07 +01:00
tevador
d589aa29d3
Merge pull request #222 from hyc/relocs
...
Fix absolute address references
2021-11-06 22:02:21 +01:00
tevador
b27283a708
Merge pull request #217 from hyc/issue216
...
Fix #216 - MacOS JIT privs are not ARM-specific
2021-11-06 21:51:16 +01:00
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
2021-11-06 20:16:29 +00:00
Howard Chu
ae2c241a96
Fix #216 - MacOS JIT privs are not ARM-specific
2021-11-06 20:07:11 +00:00
hyc
088c36fea0
Fix absolute address references
...
Use local symbols instead of global symbols, to prevent problems
with dynamic linker
2021-11-06 17:19:37 +00:00
tevador
8006ac7ec0
Fix native code generator using the wrong hash function
2021-11-06 16:16:26 +01:00
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
2021-05-22 13:54:50 +02:00
tevador
c12097400b
Merge pull request #212 from hyc/m1prot
...
Faster W^X policy for apple silicon macs
2021-05-22 12:39:04 +02:00
tevador
0db4c57823
Merge pull request #198 from tevador/pr-applem1
...
Apple silicon: force W^X, enable hardware AES
2021-05-22 12:30:42 +02:00
Howard Chu
d9b7e8c25d
Faster W^X policy for apple silicon macs
2021-05-20 20:35:18 +01:00
SChernykh
2ba7df2844
Fix illegal instruction crash on some ARM systems
...
See https://github.com/xmrig/xmrig/issues/1916
2021-02-01 23:19:14 +01:00
tevador
a44d07c89f
Merge pull request #201 from cryptonote-social/removecode
...
remove unnecessary first-load initialization code
2021-01-28 22:14:03 +01:00
cryptonote-social
529b933fcf
remove unnecessary first-load initialization code
2021-01-23 14:56:35 -08:00
tevador
a38ce601fd
Apple silicon: force W^X, enable hardware AES
2020-11-29 20:39:53 +01:00
tevador
5bfd021e8f
Merge pull request #183 from selsta/map_jit
...
virtual_memory: add MAP_JIT on macOS
2020-11-21 20:45:04 +01:00
xiphon
66c22813f6
__cpuidex: explicit MSVC check, fix MinGW GCC 5.3 cross-compilation
2020-09-07 16:31:11 +00:00
tevador
5ce5f4906c
add --noBatch benchmark option
2020-07-04 14:57:56 +02:00
selsta
7c172f746f
virtual_memory: add MAP_JIT on macOS
2020-06-28 17:29:41 +02:00
tevador
9905ec9c5a
Merge pull request #188 from cryptonote-social/master
...
replace hardcoded literal with its appropriate symbol
2020-06-28 16:36:40 +02:00
tevador
863765bbe6
Merge pull request #185 from tevador/pr-crosscomp
...
Fix windows-target cross-compilation
2020-06-28 16:36:12 +02:00
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.
2020-06-28 16:35:19 +02:00
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.
2020-06-28 16:16:20 +02:00
tevador
32ab5dea54
fix potential use-after-free when reallocating cache
2020-06-27 20:21:06 +02:00
cryptonote-social
a7733de1e7
replace hardcoded literal with its appropriate symbol
2020-06-27 09:53:46 -07:00
tevador
bece0a7206
fix #184
2020-06-09 19:10:56 +02:00
tevador
148b923f71
fix test 92 not failing properly on GCC/amd64
2020-05-06 13:48:53 +02:00
tevador
6a764e90d0
Preserve floating point state when calling randomx_calculate_hash
2020-05-06 12:42:30 +02:00
tevador
01381ccef3
Add a missing function to calculate a batch of hashes
...
Add a test for batch calculation
2020-02-06 18:14:38 +01:00
tevador
30969c0e25
Benchmark version
2019-12-01 21:07:13 +01:00
tevador
aa19c5b9b6
Disable thread affinity on FreeBSD and Android
2019-12-01 20:41:20 +01:00