Merge pull request #1240 from SChernykh/evo

Sync with latest RandomX code
This commit is contained in:
xmrig 2019-10-14 10:07:20 +07:00 committed by GitHub
commit 5b4026694d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -631,7 +631,7 @@ namespace randomx {
int cycle1 = scheduleUop<false>(mop.getUop1(), portBusy, cycle); int cycle1 = scheduleUop<false>(mop.getUop1(), portBusy, cycle);
int cycle2 = scheduleUop<false>(mop.getUop2(), portBusy, cycle); int cycle2 = scheduleUop<false>(mop.getUop2(), portBusy, cycle);
if (cycle1 == cycle2) { if (cycle1 >= 0 && cycle1 == cycle2) {
if (commit) { if (commit) {
scheduleUop<true>(mop.getUop1(), portBusy, cycle1); scheduleUop<true>(mop.getUop1(), portBusy, cycle1);
scheduleUop<true>(mop.getUop2(), portBusy, cycle2); scheduleUop<true>(mop.getUop2(), portBusy, cycle2);
@ -755,6 +755,12 @@ namespace randomx {
//recalculate when the instruction can be scheduled for execution based on operand availability //recalculate when the instruction can be scheduled for execution based on operand availability
scheduleCycle = scheduleMop<true>(mop, portBusy, scheduleCycle, scheduleCycle); scheduleCycle = scheduleMop<true>(mop, portBusy, scheduleCycle, scheduleCycle);
if (scheduleCycle < 0) {
if (trace) std::cout << "Unable to map operation '" << mop.getName() << "' to execution port (cycle " << scheduleCycle << ")" << std::endl;
portsSaturated = true;
break;
}
//calculate when the result will be ready //calculate when the result will be ready
depCycle = scheduleCycle + mop.getLatency(); depCycle = scheduleCycle + mop.getLatency();