All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.adoptopenjdk.jitwatch.model.bytecode.Opcode Maven / Gradle / Ivy

/*
 * Copyright (c) 2013-2015 Chris Newland.
 * Licensed under https://github.com/AdoptOpenJDK/jitwatch/blob/master/LICENSE-BSD
 * Instructions: https://github.com/AdoptOpenJDK/jitwatch/wiki
 */
package org.adoptopenjdk.jitwatch.model.bytecode;

import java.util.HashMap;
import java.util.Map;

public enum Opcode implements Comparable
{
	NOP(0,"nop"),
	ACONST_NULL(1,"aconst_null"),
	ICONST_M1(2,"iconst_m1"),
	ICONST_0(3,"iconst_0"),
	ICONST_1(4,"iconst_1"),
	ICONST_2(5,"iconst_2"),
	ICONST_3(6,"iconst_3"),
	ICONST_4(7,"iconst_4"),
	ICONST_5(8,"iconst_5"),
	LCONST_0(9,"lconst_0"),
	LCONST_1(10,"lconst_1"),
	FCONST_0(11,"fconst_0"),
	FCONST_1(12,"fconst_1"),
	FCONST_2(13,"fconst_2"),
	DCONST_0(14,"dconst_0"),
	DCONST_1(15,"dconst_1"),
	BIPUSH(16,"bipush"),
	SIPUSH(17,"sipush"),
	LDC(18,"ldc"),
	LDC_W(19,"ldc_w"),
	LDC2_W(20,"ldc2_w"),
	ILOAD(21,"iload"),
	LLOAD(22,"lload"),
	FLOAD(23,"fload"),
	DLOAD(24,"dload"),
	ALOAD(25,"aload"),
	ILOAD_0(26,"iload_0"),
	ILOAD_1(27,"iload_1"),
	ILOAD_2(28,"iload_2"),
	ILOAD_3(29,"iload_3"),
	LLOAD_0(30,"lload_0"),
	LLOAD_1(31,"lload_1"),
	LLOAD_2(32,"lload_2"),
	LLOAD_3(33,"lload_3"),
	FLOAD_0(34,"fload_0"),
	FLOAD_1(35,"fload_1"),
	FLOAD_2(36,"fload_2"),
	FLOAD_3(37,"fload_3"),
	DLOAD_0(38,"dload_0"),
	DLOAD_1(39,"dload_1"),
	DLOAD_2(40,"dload_2"),
	DLOAD_3(41,"dload_3"),
	ALOAD_0(42,"aload_0"),
	ALOAD_1(43,"aload_1"),
	ALOAD_2(44,"aload_2"),
	ALOAD_3(45,"aload_3"),
	IALOAD(46,"iaload"),
	LALOAD(47,"laload"),
	FALOAD(48,"faload"),
	DALOAD(49,"daload"),
	AALOAD(50,"aaload"),
	BALOAD(51,"baload"),
	CALOAD(52,"caload"),
	SALOAD(53,"saload"),
	ISTORE(54,"istore"),
	LSTORE(55,"lstore"),
	FSTORE(56,"fstore"),
	DSTORE(57,"dstore"),
	ASTORE(58,"astore"),
	ISTORE_0(59,"istore_0"),
	ISTORE_1(60,"istore_1"),
	ISTORE_2(61,"istore_2"),
	ISTORE_3(62,"istore_3"),
	LSTORE_0(63,"lstore_0"),
	LSTORE_1(64,"lstore_1"),
	LSTORE_2(65,"lstore_2"),
	LSTORE_3(66,"lstore_3"),
	FSTORE_0(67,"fstore_0"),
	FSTORE_1(68,"fstore_1"),
	FSTORE_2(69,"fstore_2"),
	FSTORE_3(70,"fstore_3"),
	DSTORE_0(71,"dstore_0"),
	DSTORE_1(72,"dstore_1"),
	DSTORE_2(73,"dstore_2"),
	DSTORE_3(74,"dstore_3"),
	ASTORE_0(75,"astore_0"),
	ASTORE_1(76,"astore_1"),
	ASTORE_2(77,"astore_2"),
	ASTORE_3(78,"astore_3"),
	IASTORE(79,"iastore"),
	LASTORE(80,"lastore"),
	FASTORE(81,"fastore"),
	DASTORE(82,"dastore"),
	AASTORE(83,"aastore"),
	BASTORE(84,"bastore"),
	CASTORE(85,"castore"),
	SASTORE(86,"sastore"),
	POP(87,"pop"),
	POP2(88,"pop2"),
	DUP(89,"dup"),
	DUP_X1(90,"dup_x1"),
	DUP_X2(91,"dup_x2"),
	DUP2(92,"dup2"),
	DUP2_X1(93,"dup2_x1"),
	DUP2_X2(94,"dup2_x2"),
	SWAP(95,"swap"),
	IADD(96,"iadd"),
	LADD(97,"ladd"),
	FADD(98,"fadd"),
	DADD(99,"dadd"),
	ISUB(100,"isub"),
	LSUB(101,"lsub"),
	FSUB(102,"fsub"),
	DSUB(103,"dsub"),
	IMUL(104,"imul"),
	LMUL(105,"lmul"),
	FMUL(106,"fmul"),
	DMUL(107,"dmul"),
	IDIV(108,"idiv"),
	LDIV(109,"ldiv"),
	FDIV(110,"fdiv"),
	DDIV(111,"ddiv"),
	IREM(112,"irem"),
	LREM(113,"lrem"),
	FREM(114,"frem"),
	DREM(115,"drem"),
	INEG(116,"ineg"),
	LNEG(117,"lneg"),
	FNEG(118,"fneg"),
	DNEG(119,"dneg"),
	ISHL(120,"ishl"),
	LSHL(121,"lshl"),
	ISHR(122,"ishr"),
	LSHR(123,"lshr"),
	IUSHR(124,"iushr"),
	LUSHR(125,"lushr"),
	IAND(126,"iand"),
	LAND(127,"land"),
	IOR(128,"ior"),
	LOR(129,"lor"),
	IXOR(130,"ixor"),
	LXOR(131,"lxor"),
	IINC(132,"iinc"),
	I2L(133,"i2l"),
	I2F(134,"i2f"),
	I2D(135,"i2d"),
	L2I(136,"l2i"),
	L2F(137,"l2f"),
	L2D(138,"l2d"),
	F2I(139,"f2i"),
	F2L(140,"f2l"),
	F2D(141,"f2d"),
	D2I(142,"d2i"),
	D2L(143,"d2l"),
	D2F(144,"d2f"),
	I2B(145,"i2b"),
	I2C(146,"i2c"),
	I2S(147,"i2s"),
	LCMP(148,"lcmp"),
	FCMPL(149,"fcmpl"),
	FCMPG(150,"fcmpg"),
	DCMPL(151,"dcmpl"),
	DCMPG(152,"dcmpg"),
	IFEQ(153,"ifeq"),
	IFNE(154,"ifne"),
	IFLT(155,"iflt"),
	IFGE(156,"ifge"),
	IFGT(157,"ifgt"),
	IFLE(158,"ifle"),
	IF_ICMPEQ(159,"if_icmpeq"),
	IF_ICMPNE(160,"if_icmpne"),
	IF_ICMPLT(161,"if_icmplt"),
	IF_ICMPGE(162,"if_icmpge"),
	IF_ICMPGT(163,"if_icmpgt"),
	IF_ICMPLE(164,"if_icmple"),
	IF_ACMPEQ(165,"if_acmpeq"),
	IF_ACMPNE(166,"if_acmpne"),
	GOTO(167,"goto"),
	JSR(168,"jsr"),
	RET(169,"ret"),
	TABLESWITCH(170,"tableswitch"),
	LOOKUPSWITCH(171,"lookupswitch"),
	IRETURN(172,"ireturn"),
	LRETURN(173,"lreturn"),
	FRETURN(174,"freturn"),
	DRETURN(175,"dreturn"),
	ARETURN(176,"areturn"),
	RETURN(177,"return"),
	GETSTATIC(178,"getstatic"),
	PUTSTATIC(179,"putstatic"),
	GETFIELD(180,"getfield"),
	PUTFIELD(181,"putfield"),
	INVOKEVIRTUAL(182,"invokevirtual"),
	INVOKESPECIAL(183,"invokespecial"),
	INVOKESTATIC(184,"invokestatic"),
	INVOKEINTERFACE(185,"invokeinterface"),
	INVOKEDYNAMIC(186,"invokedynamic"),
	NEW(187,"new"),
	NEWARRAY(188,"newarray"),
	ANEWARRAY(189,"anewarray"),
	ARRAYLENGTH(190,"arraylength"),
	ATHROW(191,"athrow"),
	CHECKCAST(192,"checkcast"),
	INSTANCEOF(193,"instanceof"),
	MONITORENTER(194,"monitorenter"),
	MONITOREXIT(195,"monitorexit"),
	WIDE(196,"wide"),
	MULTIANEWARRAY(197,"multianewarray"),
	IFNULL(198,"ifnull"),
	IFNONNULL(199,"ifnonnull"),
	GOTO_W(200,"goto_w"),
	JSR_W(201,"jsr_w"),
	BREAKPOINT(202,"breakpoint"),
	IMPDEP1(254,"impdep1"),
	IMPDEP2(255,"impdep2");

	Opcode(int value, String text)
	{
		this.value = value;
		this.mnemonic = text;		
	}

	private final int value;
	private final String mnemonic;
	
	public int getValue()
	{
		return value;
	}
	
	public String getMnemonic()
	{
		return mnemonic;
	}
	
	static final Map opcodeMap = new HashMap<>();

	static
	{
		for (Opcode oc : Opcode.values())
		{
			opcodeMap.put(oc.getMnemonic(),  oc);
		}
	}
	
	public static Opcode getOpcodeForMnemonic(String mnemonic)
	{
		return opcodeMap.get(mnemonic);
	}
	
	public boolean equals(String mnemonic)
	{
		return this.mnemonic.equals(mnemonic);
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy