diff --git a/src/superscalar.cpp b/src/superscalar.cpp index a3130cb..012ff15 100644 --- a/src/superscalar.cpp +++ b/src/superscalar.cpp @@ -679,7 +679,7 @@ namespace randomx { //if we have issued all macro-ops for the current RandomX instruction, create a new instruction if (macroOpIndex >= currentInstruction.getInfo().getSize()) { - if (portsSaturated) + if (portsSaturated || programSize >= RANDOMX_SUPERSCALAR_MAX_SIZE) break; //select an instruction so that the first macro-op fits into the current slot currentInstruction.createForSlot(gen, decodeBuffer->getCounts()[bufferIndex], decodeBuffer->getIndex(), decodeBuffer->getSize() == bufferIndex + 1, bufferIndex == 0);