-
sech1hyc1 tevador oh boy, it looks like RandomX x86 JIT will need a big overhaul in the future: intel.com/content/www/us/en/develop…ced-performance-extensions-apx.html
-
sech1General purpose registers increased from 16 to 32, most instructions will have 3-operand variants (separate destination register), also move conditional instructions
-
sech1*many new conditional instructions
-
hyc1lol that's no longer x86 :P
-
elucidatormips86
-
hyc1it's a welcome change. register renaming was always a shitty bandaid.
-
hyc1it might even make some compiler optimizations a lot simpler, matching other ISAs instead of all the bending-over-backwards compilers needed to do for x86
-
hyc1and it finally shuts up the nonsense of "it doesn't matter that we have few architectural registers because of register renaming and micro-op fusion etc etc etc" - it always mattered.
-
sech1RandomX was designed to fit in 16 x86 registers though
-
sech1I only found 1 place where the main loop saves data to stack
-
sech1
-
sech1and line 12
-
sech1it could use 2 temporary registers instead
-
sech1but that's a minuscule save
-
sech1And maybe 3-operand instructions will help to save a few cycles here and there
-
sech1hmm, JIT could always use free registers to store values for IMUL_RCP instructions, just like in aarch64 JIT
-
sech13-operand encoding will help with IMUL instruction. Right now it requires MOV instructions to move the result to the intended register
-
sech1*IMUL_H instruction