Org.Mozilla.Classfile.ClassFileWriter.OpcodeCount C# (CSharp) Method

OpcodeCount() static private method

Number of operands accompanying the opcode.
Number of operands accompanying the opcode.
static private OpcodeCount ( int opcode ) : int
opcode int
return int
		internal static int OpcodeCount(int opcode)
		{
			switch (opcode)
			{
				case ByteCode.AALOAD:
				case ByteCode.AASTORE:
				case ByteCode.ACONST_NULL:
				case ByteCode.ALOAD_0:
				case ByteCode.ALOAD_1:
				case ByteCode.ALOAD_2:
				case ByteCode.ALOAD_3:
				case ByteCode.ARETURN:
				case ByteCode.ARRAYLENGTH:
				case ByteCode.ASTORE_0:
				case ByteCode.ASTORE_1:
				case ByteCode.ASTORE_2:
				case ByteCode.ASTORE_3:
				case ByteCode.ATHROW:
				case ByteCode.BALOAD:
				case ByteCode.BASTORE:
				case ByteCode.BREAKPOINT:
				case ByteCode.CALOAD:
				case ByteCode.CASTORE:
				case ByteCode.D2F:
				case ByteCode.D2I:
				case ByteCode.D2L:
				case ByteCode.DADD:
				case ByteCode.DALOAD:
				case ByteCode.DASTORE:
				case ByteCode.DCMPG:
				case ByteCode.DCMPL:
				case ByteCode.DCONST_0:
				case ByteCode.DCONST_1:
				case ByteCode.DDIV:
				case ByteCode.DLOAD_0:
				case ByteCode.DLOAD_1:
				case ByteCode.DLOAD_2:
				case ByteCode.DLOAD_3:
				case ByteCode.DMUL:
				case ByteCode.DNEG:
				case ByteCode.DREM:
				case ByteCode.DRETURN:
				case ByteCode.DSTORE_0:
				case ByteCode.DSTORE_1:
				case ByteCode.DSTORE_2:
				case ByteCode.DSTORE_3:
				case ByteCode.DSUB:
				case ByteCode.DUP:
				case ByteCode.DUP2:
				case ByteCode.DUP2_X1:
				case ByteCode.DUP2_X2:
				case ByteCode.DUP_X1:
				case ByteCode.DUP_X2:
				case ByteCode.F2D:
				case ByteCode.F2I:
				case ByteCode.F2L:
				case ByteCode.FADD:
				case ByteCode.FALOAD:
				case ByteCode.FASTORE:
				case ByteCode.FCMPG:
				case ByteCode.FCMPL:
				case ByteCode.FCONST_0:
				case ByteCode.FCONST_1:
				case ByteCode.FCONST_2:
				case ByteCode.FDIV:
				case ByteCode.FLOAD_0:
				case ByteCode.FLOAD_1:
				case ByteCode.FLOAD_2:
				case ByteCode.FLOAD_3:
				case ByteCode.FMUL:
				case ByteCode.FNEG:
				case ByteCode.FREM:
				case ByteCode.FRETURN:
				case ByteCode.FSTORE_0:
				case ByteCode.FSTORE_1:
				case ByteCode.FSTORE_2:
				case ByteCode.FSTORE_3:
				case ByteCode.FSUB:
				case ByteCode.I2B:
				case ByteCode.I2C:
				case ByteCode.I2D:
				case ByteCode.I2F:
				case ByteCode.I2L:
				case ByteCode.I2S:
				case ByteCode.IADD:
				case ByteCode.IALOAD:
				case ByteCode.IAND:
				case ByteCode.IASTORE:
				case ByteCode.ICONST_0:
				case ByteCode.ICONST_1:
				case ByteCode.ICONST_2:
				case ByteCode.ICONST_3:
				case ByteCode.ICONST_4:
				case ByteCode.ICONST_5:
				case ByteCode.ICONST_M1:
				case ByteCode.IDIV:
				case ByteCode.ILOAD_0:
				case ByteCode.ILOAD_1:
				case ByteCode.ILOAD_2:
				case ByteCode.ILOAD_3:
				case ByteCode.IMPDEP1:
				case ByteCode.IMPDEP2:
				case ByteCode.IMUL:
				case ByteCode.INEG:
				case ByteCode.IOR:
				case ByteCode.IREM:
				case ByteCode.IRETURN:
				case ByteCode.ISHL:
				case ByteCode.ISHR:
				case ByteCode.ISTORE_0:
				case ByteCode.ISTORE_1:
				case ByteCode.ISTORE_2:
				case ByteCode.ISTORE_3:
				case ByteCode.ISUB:
				case ByteCode.IUSHR:
				case ByteCode.IXOR:
				case ByteCode.L2D:
				case ByteCode.L2F:
				case ByteCode.L2I:
				case ByteCode.LADD:
				case ByteCode.LALOAD:
				case ByteCode.LAND:
				case ByteCode.LASTORE:
				case ByteCode.LCMP:
				case ByteCode.LCONST_0:
				case ByteCode.LCONST_1:
				case ByteCode.LDIV:
				case ByteCode.LLOAD_0:
				case ByteCode.LLOAD_1:
				case ByteCode.LLOAD_2:
				case ByteCode.LLOAD_3:
				case ByteCode.LMUL:
				case ByteCode.LNEG:
				case ByteCode.LOR:
				case ByteCode.LREM:
				case ByteCode.LRETURN:
				case ByteCode.LSHL:
				case ByteCode.LSHR:
				case ByteCode.LSTORE_0:
				case ByteCode.LSTORE_1:
				case ByteCode.LSTORE_2:
				case ByteCode.LSTORE_3:
				case ByteCode.LSUB:
				case ByteCode.LUSHR:
				case ByteCode.LXOR:
				case ByteCode.MONITORENTER:
				case ByteCode.MONITOREXIT:
				case ByteCode.NOP:
				case ByteCode.POP:
				case ByteCode.POP2:
				case ByteCode.RETURN:
				case ByteCode.SALOAD:
				case ByteCode.SASTORE:
				case ByteCode.SWAP:
				case ByteCode.WIDE:
				{
					return 0;
				}

				case ByteCode.ALOAD:
				case ByteCode.ANEWARRAY:
				case ByteCode.ASTORE:
				case ByteCode.BIPUSH:
				case ByteCode.CHECKCAST:
				case ByteCode.DLOAD:
				case ByteCode.DSTORE:
				case ByteCode.FLOAD:
				case ByteCode.FSTORE:
				case ByteCode.GETFIELD:
				case ByteCode.GETSTATIC:
				case ByteCode.GOTO:
				case ByteCode.GOTO_W:
				case ByteCode.IFEQ:
				case ByteCode.IFGE:
				case ByteCode.IFGT:
				case ByteCode.IFLE:
				case ByteCode.IFLT:
				case ByteCode.IFNE:
				case ByteCode.IFNONNULL:
				case ByteCode.IFNULL:
				case ByteCode.IF_ACMPEQ:
				case ByteCode.IF_ACMPNE:
				case ByteCode.IF_ICMPEQ:
				case ByteCode.IF_ICMPGE:
				case ByteCode.IF_ICMPGT:
				case ByteCode.IF_ICMPLE:
				case ByteCode.IF_ICMPLT:
				case ByteCode.IF_ICMPNE:
				case ByteCode.ILOAD:
				case ByteCode.INSTANCEOF:
				case ByteCode.INVOKEINTERFACE:
				case ByteCode.INVOKESPECIAL:
				case ByteCode.INVOKESTATIC:
				case ByteCode.INVOKEVIRTUAL:
				case ByteCode.ISTORE:
				case ByteCode.JSR:
				case ByteCode.JSR_W:
				case ByteCode.LDC:
				case ByteCode.LDC2_W:
				case ByteCode.LDC_W:
				case ByteCode.LLOAD:
				case ByteCode.LSTORE:
				case ByteCode.NEW:
				case ByteCode.NEWARRAY:
				case ByteCode.PUTFIELD:
				case ByteCode.PUTSTATIC:
				case ByteCode.RET:
				case ByteCode.SIPUSH:
				{
					return 1;
				}

				case ByteCode.IINC:
				case ByteCode.MULTIANEWARRAY:
				{
					return 2;
				}

				case ByteCode.LOOKUPSWITCH:
				case ByteCode.TABLESWITCH:
				{
					return -1;
				}
			}
			throw new ArgumentException("Bad opcode: " + opcode);
		}