Commit Graph
7 Commits
Author SHA1 Message Date
SChernykh f72101aa2c ARM64 JIT: don't use x18 register 2023-10-19 17:20:53 +02: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
SChernykhandGitHub 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
SChernykh e43267fa86 Fix function names for clang on Apple 2019-11-12 13:04:11 +01:00
SChernykh 9a5d504bb3 Fix alignment for ARMv8 code 2019-10-19 00:20:09 +02:00
SChernykh 457c0e4a54 Workaround for gcc 8.3 on Arch Linux (ARM)
ldr/madd instruction sequence makes compiled binary crash, so separate them.
2019-09-23 22:23:23 +02:00
SChernykhandtevador c6468a3816 JIT compiler for ARMv8 (#125)
JIT compiler for ARMv8
2019-09-22 21:06:22 +02:00