Skip to content

Commit 01db567

Browse files
committed
Fixed an inconsistency in IADD_RS in SuperscalarHash
1 parent c87dcc8 commit 01db567

File tree

4 files changed

+5
-5
lines changed

4 files changed

+5
-5
lines changed

src/assembly_generator_x86.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ namespace randomx {
7272
asmCode << "xor " << regR[instr.dst] << ", " << regR[instr.src] << std::endl;
7373
break;
7474
case SuperscalarInstructionType::IADD_RS:
75-
asmCode << "lea " << regR[instr.dst] << ", [" << regR[instr.dst] << "+" << regR[instr.src] << "*" << (1 << (instr.getModMem())) << "]" << std::endl;
75+
asmCode << "lea " << regR[instr.dst] << ", [" << regR[instr.dst] << "+" << regR[instr.src] << "*" << (1 << (instr.getModShift())) << "]" << std::endl;
7676
break;
7777
case SuperscalarInstructionType::IMUL_R:
7878
asmCode << "imul " << regR[instr.dst] << ", " << regR[instr.src] << std::endl;
@@ -181,7 +181,7 @@ namespace randomx {
181181
asmCode << regR[instr.dst] << " ^= " << regR[instr.src] << ";" << std::endl;
182182
break;
183183
case SuperscalarInstructionType::IADD_RS:
184-
asmCode << regR[instr.dst] << " += " << regR[instr.src] << "*" << (1 << (instr.getModMem())) << ";" << std::endl;
184+
asmCode << regR[instr.dst] << " += " << regR[instr.src] << "*" << (1 << (instr.getModShift())) << ";" << std::endl;
185185
break;
186186
case SuperscalarInstructionType::IMUL_R:
187187
asmCode << regR[instr.dst] << " *= " << regR[instr.src] << ";" << std::endl;

src/jit_compiler_x86.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@ namespace randomx {
352352
case randomx::SuperscalarInstructionType::IADD_RS:
353353
emit(REX_LEA);
354354
emitByte(0x04 + 8 * instr.dst);
355-
genSIB(instr.getModMem(), instr.src, instr.dst);
355+
genSIB(instr.getModShift(), instr.src, instr.dst);
356356
break;
357357
case randomx::SuperscalarInstructionType::IMUL_R:
358358
emit(REX_IMUL_RR);

src/superscalar.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -849,7 +849,7 @@ namespace randomx {
849849
r[instr.dst] ^= r[instr.src];
850850
break;
851851
case randomx::SuperscalarInstructionType::IADD_RS:
852-
r[instr.dst] += r[instr.src] << instr.getModMem();
852+
r[instr.dst] += r[instr.src] << instr.getModShift();
853853
break;
854854
case randomx::SuperscalarInstructionType::IMUL_R:
855855
r[instr.dst] *= r[instr.src];

src/tests/benchmark.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ int main(int argc, char** argv) {
229229
std::cout << "Calculated result: ";
230230
result.print(std::cout);
231231
if (noncesCount == 1000 && seedValue == 0)
232-
std::cout << "Reference result: 6d95d8d07fa3a80771f33d1b20452b61ab2d0bf21058b5e586fad38bf3e1e0ca" << std::endl;
232+
std::cout << "Reference result: a15448785857f9a78703eb5da235dfe73d0d5fc4c8effaebe73869904f5af47d" << std::endl;
233233
if (!miningMode) {
234234
std::cout << "Performance: " << 1000 * elapsed / noncesCount << " ms per hash" << std::endl;
235235
}

0 commit comments

Comments
 (0)