Add ASM optimizations (#208)

* Add ASM optimizations

- Add ASM optimization for CN-FAST on INTEL
- Add ASM optimization for CNV2 on AMD Bulldozer
- Alloy is now announced as XAO

* Upgraded default configs
This commit is contained in:
Ben Gräf 2018-11-12 12:20:59 +01:00 committed by GitHub
parent eebf62cd6a
commit 8997e74b90
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 992 additions and 46 deletions

View file

@ -52,10 +52,13 @@ extern "C"
#ifndef XMRIG_NO_ASM
void cnv1_mainloop_sandybridge_asm(ScratchPad* ctx0);
void cn_litev1_mainloop_sandybridge_asm(ScratchPad* ctx0);
void cn_fast_mainloop_sandybridge_asm(ScratchPad* ctx0);
void cnv2_mainloop_ivybridge_asm(ScratchPad* ctx0);
void cnv2_mainloop_ryzen_asm(ScratchPad* ctx0);
void cnv2_mainloop_bulldozer_asm(ScratchPad* ctx0);
void cnv2_double_mainloop_sandybridge_asm(ScratchPad* ctx0, ScratchPad* ctx1);
void cnv1_mainloop_soft_aes_sandybridge_asm(ScratchPad* ctx0);
void cn_fast_mainloop_soft_aes_sandybridge_asm(ScratchPad* ctx0);
void cn_litev1_mainloop_soft_aes_sandybridge_asm(ScratchPad* ctx0);
void cnv2_mainloop_soft_aes_sandybridge_asm(ScratchPad* ctx0);
#endif
@ -1424,14 +1427,22 @@ public:
if (ITERATIONS == 0x80000) {
cnv1_mainloop_soft_aes_sandybridge_asm(scratchPad[0]);
} else if (ITERATIONS == 0x40000){
cn_litev1_mainloop_soft_aes_sandybridge_asm(scratchPad[0]);
} else if (ITERATIONS == 0x40000) {
if (MASK == 0x1FFFF0) {
cn_fast_mainloop_soft_aes_sandybridge_asm(scratchPad[0]);
} else {
cn_litev1_mainloop_soft_aes_sandybridge_asm(scratchPad[0]);
}
}
} else {
if (ITERATIONS == 0x80000) {
cnv1_mainloop_sandybridge_asm(scratchPad[0]);
} else if (ITERATIONS == 0x40000){
cn_litev1_mainloop_sandybridge_asm(scratchPad[0]);
} else if (ITERATIONS == 0x40000) {
if (MASK == 0x1FFFF0) {
cn_fast_mainloop_sandybridge_asm(scratchPad[0]);
} else {
cn_litev1_mainloop_sandybridge_asm(scratchPad[0]);
}
}
}
#endif
@ -1538,6 +1549,8 @@ public:
}
} else if (asmOptimization == AsmOptimization::ASM_RYZEN) {
cnv2_mainloop_ryzen_asm(scratchPad[0]);
} else if (asmOptimization == AsmOptimization::ASM_BULLDOZER) {
cnv2_mainloop_bulldozer_asm(scratchPad[0]);
}
#endif