fix: add labels from NOP instructions in fallback mode (#666)

This commit is contained in:
Skylot
2019-05-19 18:47:06 +03:00
parent 75a6714057
commit 5efe4bd845
@@ -241,10 +241,11 @@ public class MethodGen {
}
public static void addFallbackInsns(CodeWriter code, MethodNode mth, InsnNode[] insnArr, boolean addLabels) {
code.incIndent();
InsnGen insnGen = new InsnGen(getFallbackMethodGen(mth), true);
InsnNode prevInsn = null;
for (InsnNode insn : insnArr) {
if (insn == null || insn.getType() == InsnType.NOP) {
if (insn == null) {
continue;
}
if (addLabels && needLabel(insn, prevInsn)) {
@@ -252,6 +253,9 @@ public class MethodGen {
code.startLine(getLabelName(insn.getOffset()) + ':');
code.incIndent();
}
if (insn.getType() == InsnType.NOP) {
continue;
}
try {
code.startLine();
RegisterArg resArg = insn.getResult();
@@ -272,6 +276,7 @@ public class MethodGen {
}
prevInsn = insn;
}
code.decIndent();
}
private static boolean needLabel(InsnNode insn, InsnNode prevInsn) {