case Opcodes.ASTORE: abstractType1 = pop(); setLocal(arg, abstractType1); if (arg > 0) { int previousLocalType = getLocal(arg - 1); if (previousLocalType == LONG || previousLocalType == DOUBLE) { setLocal(arg - 1, TOP); } else if ((previousLocalType & KIND_MASK) == LOCAL_KIND || (previousLocalType & KIND_MASK) == STACK_KIND) { setLocal(arg - 1, previousLocalType | TOP_IF_LONG_OR_DOUBLE_FLAG); pop(1); abstractType1 = pop(); setLocal(arg, abstractType1); setLocal(arg + 1, TOP); if (arg > 0) { int previousLocalType = getLocal(arg - 1); if (previousLocalType == LONG || previousLocalType == DOUBLE) { setLocal(arg - 1, TOP); } else if ((previousLocalType & KIND_MASK) == LOCAL_KIND || (previousLocalType & KIND_MASK) == STACK_KIND) { setLocal(arg - 1, previousLocalType | TOP_IF_LONG_OR_DOUBLE_FLAG); break; case Opcodes.IINC: setLocal(arg, INTEGER); break;
case Opcodes.ASTORE: abstractType1 = pop(); setLocal(arg, abstractType1); if (arg > 0) { int previousLocalType = getLocal(arg - 1); if (previousLocalType == LONG || previousLocalType == DOUBLE) { setLocal(arg - 1, TOP); } else if ((previousLocalType & KIND_MASK) == LOCAL_KIND || (previousLocalType & KIND_MASK) == STACK_KIND) { setLocal(arg - 1, previousLocalType | TOP_IF_LONG_OR_DOUBLE_FLAG); pop(1); abstractType1 = pop(); setLocal(arg, abstractType1); setLocal(arg + 1, TOP); if (arg > 0) { int previousLocalType = getLocal(arg - 1); if (previousLocalType == LONG || previousLocalType == DOUBLE) { setLocal(arg - 1, TOP); } else if ((previousLocalType & KIND_MASK) == LOCAL_KIND || (previousLocalType & KIND_MASK) == STACK_KIND) { setLocal(arg - 1, previousLocalType | TOP_IF_LONG_OR_DOUBLE_FLAG); break; case Opcodes.IINC: setLocal(arg, INTEGER); break;
case Opcodes.ASTORE: abstractType1 = pop(); setLocal(arg, abstractType1); if (arg > 0) { int previousLocalType = getLocal(arg - 1); if (previousLocalType == LONG || previousLocalType == DOUBLE) { setLocal(arg - 1, TOP); } else if ((previousLocalType & KIND_MASK) == LOCAL_KIND || (previousLocalType & KIND_MASK) == STACK_KIND) { setLocal(arg - 1, previousLocalType | TOP_IF_LONG_OR_DOUBLE_FLAG); pop(1); abstractType1 = pop(); setLocal(arg, abstractType1); setLocal(arg + 1, TOP); if (arg > 0) { int previousLocalType = getLocal(arg - 1); if (previousLocalType == LONG || previousLocalType == DOUBLE) { setLocal(arg - 1, TOP); } else if ((previousLocalType & KIND_MASK) == LOCAL_KIND || (previousLocalType & KIND_MASK) == STACK_KIND) { setLocal(arg - 1, previousLocalType | TOP_IF_LONG_OR_DOUBLE_FLAG); break; case Opcodes.IINC: setLocal(arg, INTEGER); break;
case Opcodes.ASTORE: abstractType1 = pop(); setLocal(arg, abstractType1); if (arg > 0) { int previousLocalType = getLocal(arg - 1); if (previousLocalType == LONG || previousLocalType == DOUBLE) { setLocal(arg - 1, TOP); } else if ((previousLocalType & KIND_MASK) == LOCAL_KIND || (previousLocalType & KIND_MASK) == STACK_KIND) { setLocal(arg - 1, previousLocalType | TOP_IF_LONG_OR_DOUBLE_FLAG); pop(1); abstractType1 = pop(); setLocal(arg, abstractType1); setLocal(arg + 1, TOP); if (arg > 0) { int previousLocalType = getLocal(arg - 1); if (previousLocalType == LONG || previousLocalType == DOUBLE) { setLocal(arg - 1, TOP); } else if ((previousLocalType & KIND_MASK) == LOCAL_KIND || (previousLocalType & KIND_MASK) == STACK_KIND) { setLocal(arg - 1, previousLocalType | TOP_IF_LONG_OR_DOUBLE_FLAG); break; case Opcodes.IINC: setLocal(arg, INTEGER); break;