|
Message
From: cvs at opencores.org<cvs@o...>
Date: Tue Jul 24 15:06:16 CEST 2007
Subject: [cvs-checkins] MODIFIED: jop ...
Date: 00/07/07 24:15:06 Added: jop/java/tools/src/wcet/framework/interfaces/instruction IAnalysisInstruction.java IAnalysisInstructionType.java IImplementationConfig.java IInstructionGenerator.java IJOPMethodVisitor.java OpCodes.java Log: Revision Changes Path 1.1 jop/java/tools/src/wcet/framework/interfaces/instruction/IAnalysisInstruction.java http://www.opencores.org/cvsweb.shtml/jop/java/tools/src/wcet/framework/interfaces/instruction/IAnalysisInstruction.java?rev=1.1&content-type=text/x-cvsweb-markup Index: IAnalysisInstruction.java =================================================================== /** * */ package wcet.framework.interfaces.instruction; /** * @author Elena Axamitova * @version 0.1 17.03.2007 */ public interface IAnalysisInstruction { public int getOpcode(); } 1.1 jop/java/tools/src/wcet/framework/interfaces/instruction/IAnalysisInstructionType.java http://www.opencores.org/cvsweb.shtml/jop/java/tools/src/wcet/framework/interfaces/instruction/IAnalysisInstructionType.java?rev=1.1&content-type=text/x-cvsweb-markup Index: IAnalysisInstructionType.java =================================================================== /** * */ package wcet.framework.interfaces.instruction; /** * @author Elena Axamitova * @version 0.1 15.03.2007 */ public interface IAnalysisInstructionType { public final static int INSN = 0; public final static int INT_INSN = 1; public final static int VAR_INSN = 2; public final static int TYPE_INSN = 3; public final static int FIELD_INSN = 4; public final static int METHOD_INSN = 5; public final static int JUMP_INSN = 6; public final static int LABEL = 7; public final static int LDC_INSN = 8; public final static int IINC_INSN = 9; public final static int TABLESWITCH_INSN = 10; public final static int LOOKUPSWITCH_INSN = 11; public final static int MULTIANEWARRAY_INSN = 12; public final static int FRAME = 13; public final static int LINE = 14; public final static int JOP_INSN = 30; } 1.1 jop/java/tools/src/wcet/framework/interfaces/instruction/IImplementationConfig.java http://www.opencores.org/cvsweb.shtml/jop/java/tools/src/wcet/framework/interfaces/instruction/IImplementationConfig.java?rev=1.1&content-type=text/x-cvsweb-markup Index: IImplementationConfig.java =================================================================== /** * */ package wcet.framework.interfaces.instruction; /** * @author Elena Axamitova * @version 0.1 02.04.2007 */ public interface IImplementationConfig { public static final int NOT_USED = -2;
public static final int NOT_IMPLEMENTED = -1;
public static final int JAVA = 0;
public static final int MC = 1;
public static final int HW = 2;
public static final String NOT_USED_STRING = "-2";
public static final String NOT_IMPLEMENTED_STRING = "-1";
public static final String JAVA_STRING = "0";
public static final String MC_STRING = "1";
public static final String HW_STRING = "2";
public static final String DEF_BYTECODE_METHOD_DECRIPTOR = "()V";
public static final int[] JOP_INSN_IMPL_DEFAULT = {
/* nop */HW,
/* aconst_null */HW,
/* iconst_m1 */HW,
/* iconst_0 */HW,
/* iconst_1 */HW,
/* iconst_2 */HW,
/* iconst_3 */HW,
/* iconst_4 */HW,
/* iconst_5 */HW,
/* lconst_0 */MC,
/* lconst_1 */MC,
/* fconst_0 */JAVA,
/* fconst_1 */JAVA,
/* fconst_2 */JAVA,
/* dconst_0 */NOT_IMPLEMENTED,
/* dconst_1 */NOT_IMPLEMENTED,
/* bipush */MC,
/* sipush */MC,
/* ldc */MC,
/* ldc_w */MC,
/* ldc2_w */MC,
/* iload */MC,
/* lload */MC,
/* fload */MC,
/* dload */MC,
/* aload */MC,
/* iload_0 */HW,
/* iload_1 */HW,
/* iload_2 */HW,
/* iload_3 */HW,
/* lload_0 */MC,
/* lload_1 */MC,
/* lload_2 */MC,
/* lload_3 */MC,
/* fload_0 */HW,
/* fload_1 */HW,
/* fload_2 */HW,
/* fload_3 */HW,
/* dload_0 */MC,
/* dload_1 */MC,
/* dload_2 */MC,
/* dload_3 */MC,
/* aload_0 */HW,
/* aload_1 */HW,
/* aload_2 */HW,
/* aload_3 */HW,
/* iaload */MC,
/* laload */MC,
/* faload */MC,
/* daload */NOT_IMPLEMENTED,
/* aaload */MC,
/* baload */MC,
/* caload */MC,
/* saload */MC,
/* istore */MC,
/* lstore */MC,
/* fstore */MC,
/* dstore */MC,
/* astore */MC,
/* istore_0 */HW,
/* istore_1 */HW,
/* istore_2 */HW,
/* istore_3 */HW,
/* lstore_0 */MC,
/* lstore_1 */MC,
/* lstore_2 */MC,
/* lstore_3 */MC,
/* fstore_0 */HW,
/* fstore_1 */HW,
/* fstore_2 */HW,
/* fstore_3 */HW,
/* dstore_0 */MC,
/* dstore_1 */MC,
/* dstore_2 */MC,
/* dstore_3 */MC,
/* astore_0 */HW,
/* astore_1 */HW,
/* astore_2 */HW,
/* astore_3 */HW,
/* iastore */MC,
/* lastore */MC,
/* fastore */MC,
/* dastore */NOT_IMPLEMENTED,
/* aastore */MC,
/* bastore */MC,
/* castore */MC,
/* sastore */MC,
/* pop */HW,
/* pop2 */MC,
/* dup */HW,
/* dup_x2 */MC,
/* dup_x2 */MC,
/* dup2 */MC,
/* dup2_x1 */MC,
/* dup2_x2 */MC,
/* swap */MC,
/* iadd */HW,
/* ladd */JAVA,
/* fadd */JAVA,
/* dadd */NOT_IMPLEMENTED,
/* isub */HW,
/* lsub */JAVA,
/* fsub */JAVA,
/* dsub */NOT_IMPLEMENTED,
/* imul */MC,
/* lmul */JAVA,
/* fmul */NOT_IMPLEMENTED,
/* dmul */NOT_IMPLEMENTED,
/* idiv */JAVA,
/* ldiv */JAVA,
/* fdiv */NOT_IMPLEMENTED,
/* ddiv */NOT_IMPLEMENTED,
/* irem */JAVA,
/* lrem */JAVA,
/* frem */NOT_IMPLEMENTED,
/* drem */NOT_IMPLEMENTED,
/* ineg */MC,
/* lneg */JAVA,
/* fneg */NOT_IMPLEMENTED,
/* dneg */NOT_IMPLEMENTED,
/* ishl */HW,
/* lshl */JAVA,
/* ishr */HW,
/* lshr */JAVA,
/* iushr */HW,
/* lushr */JAVA,
/* iand */HW,
/* land */JAVA,
/* ior */HW,
/* lor */JAVA,
/* ixor */HW,
/* lxor */JAVA,
/* iinc */MC,
/* i2l */JAVA,
/* i2f */NOT_IMPLEMENTED,
/* i2d */NOT_IMPLEMENTED,
/* l2i */MC,
/* l2f */NOT_IMPLEMENTED,
/* l2d */NOT_IMPLEMENTED,
/* f2i */JAVA,
/* f2l */NOT_IMPLEMENTED,
/* f2d */NOT_IMPLEMENTED,
/* d2i */NOT_IMPLEMENTED,
/* d2l */NOT_IMPLEMENTED,
/* d2f */NOT_IMPLEMENTED,
/* i2b */JAVA,
/* i2c */MC,
/* i2s */JAVA,
/* lcmp */JAVA,
/* fcmpl */NOT_IMPLEMENTED,
/* fcmpg */NOT_IMPLEMENTED,
/* dcmpl */NOT_IMPLEMENTED,
/* dcmpg */NOT_IMPLEMENTED,
/* ifeq */MC,
/* ifne */MC,
/* iflt */MC,
/* ifge */MC,
/* ifgt */MC,
/* ifle */MC,
/* if_icmpeq */MC,
/* if_icmpne */MC,
/* if_icmplt */MC,
/* if_icmpge */MC,
/* if_icmpgt */MC,
/* if_icmple */MC,
/* if_acmpeq */MC,
/* if_acmpne */MC,
/* goto */MC,
/* jsr */NOT_USED,
/* ret */NOT_USED,
/* tableswitch */JAVA,
/* lookupswitch */JAVA,
/* ireturn */MC,
/* lreturn */MC,
/* freturn */MC,
/* dreturn */MC,
/* areturn */MC,
/* return */MC,
/* getstatic */MC,
/* putstatic */MC,
/* getfield */MC,
/* putfield */MC,
/* invokevirtual */MC,
/* invokespecial */MC,
/* invokestatic */MC,
/* invokeinterface , */MC,
/* unused ba*/NOT_USED,
/* new */JAVA,
/* newarray */JAVA,
/* anewarray */JAVA,
/* arraylength */MC,
/* athrow */JAVA,
/* checkcast */JAVA,
/* instanceof */JAVA,
/* monitorenter */HW,
/* monitorexit */HW,
/* wide */NOT_USED,
/* multianewarray */JAVA,
/* ifnull */HW,
/* ifnonnull */HW,
/* goto_w */NOT_USED,
/* jsr_w */NOT_USED,
/* breakpoint */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* jopsys_rd */MC,
/* jopsys_wr */MC,
/* jopsys_rdmem */MC,
/* jopsys_wrmem */MC,
/* jopsys_rdint */MC,
/* jopsys_wrint */MC,
/* jopsys_getsp */MC,
/* jopsys_setsp */MC,
/* jopsys_getvp */MC,
/* jopsys_setvp */MC,
/* jopsys_int2ext */MC,
/* jopsys_ext2int */MC,
/* jopsys_nop */MC,
/* jopsys_invoke */MC,
/* jopsys_cond_move */MC,
/* getstatic_ref */MC,
/* putstatic_ref */MC,
/* getfield_ref */MC,
/* putfield_ref */MC,
/* getstatic_long */MC,
/* putstatic_long */MC,
/* getfield_long */MC,
/* putfield_long */MC,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* sys_int */JAVA,
/* sys_exc */JAVA,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* ILLEGAL_OPCODE */NOT_IMPLEMENTED,
/* sys_noimp */JAVA,
/* sys_init */ NOT_USED};
public static final String[] JOP_METHOD_IMPL_DESCR = {
/* nop */DEF_BYTECODE_METHOD_DECRIPTOR,
/* aconst_null */DEF_BYTECODE_METHOD_DECRIPTOR,
/* iconst_m1 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* iconst_0 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* iconst_1 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* iconst_2 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* iconst_3 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* iconst_4 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* iconst_5 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lconst_0 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lconst_1 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* fconst_0 */"()V",
/* fconst_1 */"()V",
/* fconst_2 */"()V",
/* dconst_0 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dconst_1 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* bipush */DEF_BYTECODE_METHOD_DECRIPTOR,
/* sipush */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ldc */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ldc_w */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ldc2_w */DEF_BYTECODE_METHOD_DECRIPTOR,
/* iload */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lload */DEF_BYTECODE_METHOD_DECRIPTOR,
/* fload */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dload */DEF_BYTECODE_METHOD_DECRIPTOR,
/* aload */DEF_BYTECODE_METHOD_DECRIPTOR,
/* iload_0 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* iload_1 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* iload_2 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* iload_3 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lload_0 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lload_1 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lload_2 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lload_3 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* fload_0 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* fload_1 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* fload_2 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* fload_3 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dload_0 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dload_1 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dload_2 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dload_3 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* aload_0 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* aload_1 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* aload_2 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* aload_3 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* iaload */DEF_BYTECODE_METHOD_DECRIPTOR,
/* laload */DEF_BYTECODE_METHOD_DECRIPTOR,
/* faload */DEF_BYTECODE_METHOD_DECRIPTOR,
/* daload */DEF_BYTECODE_METHOD_DECRIPTOR,
/* aaload */DEF_BYTECODE_METHOD_DECRIPTOR,
/* baload */DEF_BYTECODE_METHOD_DECRIPTOR,
/* caload */DEF_BYTECODE_METHOD_DECRIPTOR,
/* saload */DEF_BYTECODE_METHOD_DECRIPTOR,
/* istore */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lstore */DEF_BYTECODE_METHOD_DECRIPTOR,
/* fstore */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dstore */DEF_BYTECODE_METHOD_DECRIPTOR,
/* astore */DEF_BYTECODE_METHOD_DECRIPTOR,
/* istore_0 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* istore_1 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* istore_2 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* istore_3 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lstore_0 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lstore_1 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lstore_2 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lstore_3 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* fstore_0 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* fstore_1 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* fstore_2 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* fstore_3 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dstore_0 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dstore_1 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dstore_2 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dstore_3 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* astore_0 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* astore_1 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* astore_2 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* astore_3 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* iastore */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lastore */DEF_BYTECODE_METHOD_DECRIPTOR,
/* fastore */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dastore */DEF_BYTECODE_METHOD_DECRIPTOR,
/* aastore */DEF_BYTECODE_METHOD_DECRIPTOR,
/* bastore */DEF_BYTECODE_METHOD_DECRIPTOR,
/* castore */DEF_BYTECODE_METHOD_DECRIPTOR,
/* sastore */DEF_BYTECODE_METHOD_DECRIPTOR,
/* pop */DEF_BYTECODE_METHOD_DECRIPTOR,
/* pop2 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dup */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dup_x2 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dup_x2 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dup2 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dup2_x1 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dup2_x2 */DEF_BYTECODE_METHOD_DECRIPTOR,
/* swap */DEF_BYTECODE_METHOD_DECRIPTOR,
/* iadd */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ladd */"(IIII)J",
/* fadd */"(II)I",
/* dadd */DEF_BYTECODE_METHOD_DECRIPTOR,
/* isub */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lsub */"(JJ)J",
/* fsub */"(II)I",
/* dsub */DEF_BYTECODE_METHOD_DECRIPTOR,
/* imul */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lmul */"(JJ)J",
/* fmul */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dmul */DEF_BYTECODE_METHOD_DECRIPTOR,
/* idiv */"(II)I",
/* ldiv */"(JJ)J",
/* fdiv */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ddiv */DEF_BYTECODE_METHOD_DECRIPTOR,
/* irem */"(II)I",
/* lrem */"(JJ)J",
/* frem */DEF_BYTECODE_METHOD_DECRIPTOR,
/* drem */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ineg */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lneg */"(J)J",
/* fneg */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dneg */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ishl */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lshl */"(III)J",
/* ishr */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lshr */"(III)J",
/* iushr */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lushr */"(III)J",
/* iand */DEF_BYTECODE_METHOD_DECRIPTOR,
/* land */"(IIII)J",
/* ior */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lor */"(IIII)J",
/* ixor */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lxor */"(IIII)J",
/* iinc */DEF_BYTECODE_METHOD_DECRIPTOR,
/* i2l */"(I)J",
/* i2f */DEF_BYTECODE_METHOD_DECRIPTOR,
/* i2d */DEF_BYTECODE_METHOD_DECRIPTOR,
/* l2i */DEF_BYTECODE_METHOD_DECRIPTOR,
/* l2f */DEF_BYTECODE_METHOD_DECRIPTOR,
/* l2d */DEF_BYTECODE_METHOD_DECRIPTOR,
/* f2i */"(I)I",/*???*/
/* f2l */DEF_BYTECODE_METHOD_DECRIPTOR,
/* f2d */DEF_BYTECODE_METHOD_DECRIPTOR,
/* d2i */DEF_BYTECODE_METHOD_DECRIPTOR,
/* d2l */DEF_BYTECODE_METHOD_DECRIPTOR,
/* d2f */DEF_BYTECODE_METHOD_DECRIPTOR,
/* i2b */"(I)I",
/* i2c */DEF_BYTECODE_METHOD_DECRIPTOR,
/* i2s */"(I)I",
/* lcmp */"(JJ)I",
/* fcmpl */DEF_BYTECODE_METHOD_DECRIPTOR,
/* fcmpg */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dcmpl */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dcmpg */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ifeq */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ifne */DEF_BYTECODE_METHOD_DECRIPTOR,
/* iflt */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ifge */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ifgt */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ifle */DEF_BYTECODE_METHOD_DECRIPTOR,
/* if_icmpeq */DEF_BYTECODE_METHOD_DECRIPTOR,
/* if_icmpne */DEF_BYTECODE_METHOD_DECRIPTOR,
/* if_icmplt */DEF_BYTECODE_METHOD_DECRIPTOR,
/* if_icmpge */DEF_BYTECODE_METHOD_DECRIPTOR,
/* if_icmpgt */DEF_BYTECODE_METHOD_DECRIPTOR,
/* if_icmple */DEF_BYTECODE_METHOD_DECRIPTOR,
/* if_acmpeq */DEF_BYTECODE_METHOD_DECRIPTOR,
/* if_acmpne */DEF_BYTECODE_METHOD_DECRIPTOR,
/* goto */DEF_BYTECODE_METHOD_DECRIPTOR,
/* jsr */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ret */DEF_BYTECODE_METHOD_DECRIPTOR,
/* tableswitch */"(I)V",
/* lookupswitch */"(I)V",
/* ireturn */DEF_BYTECODE_METHOD_DECRIPTOR,
/* lreturn */DEF_BYTECODE_METHOD_DECRIPTOR,
/* freturn */DEF_BYTECODE_METHOD_DECRIPTOR,
/* dreturn */DEF_BYTECODE_METHOD_DECRIPTOR,
/* areturn */DEF_BYTECODE_METHOD_DECRIPTOR,
/* return */DEF_BYTECODE_METHOD_DECRIPTOR,
/* getstatic */DEF_BYTECODE_METHOD_DECRIPTOR,
/* putstatic */DEF_BYTECODE_METHOD_DECRIPTOR,
/* getfield */DEF_BYTECODE_METHOD_DECRIPTOR,
/* putfield */DEF_BYTECODE_METHOD_DECRIPTOR,
/* invokevirtual */DEF_BYTECODE_METHOD_DECRIPTOR,
/* invokespecial */DEF_BYTECODE_METHOD_DECRIPTOR,
/* invokestatic */DEF_BYTECODE_METHOD_DECRIPTOR,
/* invokeinterface , */DEF_BYTECODE_METHOD_DECRIPTOR,
/* unused ba */"",
/* new */"(I)I",
/* newarray */"(II)I",
/* anewarray */"(II)I",
/* arraylength */DEF_BYTECODE_METHOD_DECRIPTOR,
/* athrow */"(Ljava/lang/Throwable;)Ljava/lang/Throwable;",
/* checkcast */"(II)I",
/* instanceof */DEF_BYTECODE_METHOD_DECRIPTOR,
/* monitorenter */"(I)V",
/* monitorexit */"(I)V",
/* wide */DEF_BYTECODE_METHOD_DECRIPTOR,
/* multianewarray */"()I",
/* ifnull */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ifnonnull */DEF_BYTECODE_METHOD_DECRIPTOR,
/* goto_w */DEF_BYTECODE_METHOD_DECRIPTOR,
/* jsr_w */DEF_BYTECODE_METHOD_DECRIPTOR,
/* breakpoint */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* jopsys_rd */DEF_BYTECODE_METHOD_DECRIPTOR,
/* jopsys_wr */DEF_BYTECODE_METHOD_DECRIPTOR,
/* jopsys_rdmem */DEF_BYTECODE_METHOD_DECRIPTOR,
/* jopsys_wrmem */DEF_BYTECODE_METHOD_DECRIPTOR,
/* jopsys_rdint */DEF_BYTECODE_METHOD_DECRIPTOR,
/* jopsys_wrint */DEF_BYTECODE_METHOD_DECRIPTOR,
/* jopsys_getsp */DEF_BYTECODE_METHOD_DECRIPTOR,
/* jopsys_setsp */DEF_BYTECODE_METHOD_DECRIPTOR,
/* jopsys_getvp */DEF_BYTECODE_METHOD_DECRIPTOR,
/* jopsys_setvp */DEF_BYTECODE_METHOD_DECRIPTOR,
/* jopsys_int2ext */DEF_BYTECODE_METHOD_DECRIPTOR,
/* jopsys_ext2int */DEF_BYTECODE_METHOD_DECRIPTOR,
/* jopsys_nop */DEF_BYTECODE_METHOD_DECRIPTOR,
/* jopsys_invoke */DEF_BYTECODE_METHOD_DECRIPTOR,
/* jopsys_cond_move */DEF_BYTECODE_METHOD_DECRIPTOR,
/* getstatic_ref */DEF_BYTECODE_METHOD_DECRIPTOR,
/* putstatic_ref */DEF_BYTECODE_METHOD_DECRIPTOR,
/* getfield_ref */DEF_BYTECODE_METHOD_DECRIPTOR,
/* putfield_ref */DEF_BYTECODE_METHOD_DECRIPTOR,
/* getstatic_long */DEF_BYTECODE_METHOD_DECRIPTOR,
/* putstatic_long */DEF_BYTECODE_METHOD_DECRIPTOR,
/* getfield_long */DEF_BYTECODE_METHOD_DECRIPTOR,
/* putfield_long */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
//TODO get descriptors for java implemented jop instructions
/* sys_int */"()V",
/* sys_exc */"()V",
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* ILLEGAL_OPCODE */DEF_BYTECODE_METHOD_DECRIPTOR,
/* sys_noimp */"()V",
/* sys_init */ DEF_BYTECODE_METHOD_DECRIPTOR };
}
1.1 jop/java/tools/src/wcet/framework/interfaces/instruction/IInstructionGenerator.java
http://www.opencores.org/cvsweb.shtml/jop/java/tools/src/wcet/framework/interfaces/instruction/IInstructionGenerator.java?rev=1.1&content-type=text/x-cvsweb-markup
Index: IInstructionGenerator.java
===================================================================
/**
*
*/
package wcet.framework.interfaces.instruction;
import org.objectweb.asm.Label;
/**
* @author Elena Axamitova
* @version 0.1 10.04.2007
*/
public interface IInstructionGenerator {
public IAnalysisInstruction getFieldInsn(int opcode, String owner, String name, String desc);
public IAnalysisInstruction getIincInsn(int var, int inc);
public IAnalysisInstruction getInsn(int opcode);
public IAnalysisInstruction getIntInsn(int opcode, int o);
public IAnalysisInstruction getJumpInsn(int opcode, Label label);
public IAnalysisInstruction getLdcInsn(Object cst);
public IAnalysisInstruction getLookupSwitchInsn(Label dflt, int[] keys, Label[] labels);
public IAnalysisInstruction getMethodInsn(int opcode, String owner, String name, String desc);
public IAnalysisInstruction getMultiANewArrayInsn(String desc, int dims);
public IAnalysisInstruction getTableSwitchInsn(int min, int max, Label dflt, Label[] labels);
public IAnalysisInstruction getTypeInsn(int opcode, String desc);
public IAnalysisInstruction getVarInsn(int opcode, int var);
public IAnalysisInstruction getJOPInsn(int opcode);
}
1.1 jop/java/tools/src/wcet/framework/interfaces/instruction/IJOPMethodVisitor.java
http://www.opencores.org/cvsweb.shtml/jop/java/tools/src/wcet/framework/interfaces/instruction/IJOPMethodVisitor.java?rev=1.1&content-type=text/x-cvsweb-markup
Index: IJOPMethodVisitor.java
===================================================================
/**
*
*/
package wcet.framework.interfaces.instruction;
import org.objectweb.asm.MethodVisitor;
/**
* @author Elena Axamitova
* @version 0.1 19.04.2007
*/
public interface IJOPMethodVisitor extends MethodVisitor {
//TODO more parameters???
public void visitJOPInsn(int opCode);
}
1.1 jop/java/tools/src/wcet/framework/interfaces/instruction/OpCodes.java
http://www.opencores.org/cvsweb.shtml/jop/java/tools/src/wcet/framework/interfaces/instruction/OpCodes.java?rev=1.1&content-type=text/x-cvsweb-markup
Index: OpCodes.java
===================================================================
/**
*
*/
package wcet.framework.interfaces.instruction;
/**
* Interface defining names and values of java bytecodes an jop instruction.
* @author Elena Axamitova
* @version 0.2 12.02.2007
*/
public interface OpCodes {
String ILLEGAL_OPCODE = "ILLEGAL_OPCODE";
int JOP_INSN_START = 209;
/**
* Bytecode names array.
*/
String[] OPCODE_NAMES = { "nop", "aconst_null", "iconst_m1", "iconst_0",
"iconst_1", "iconst_2", "iconst_3", "iconst_4", "iconst_5",
"lconst_0", "lconst_1", "fconst_0", "fconst_1", "fconst_2",
"dconst_0", "dconst_1", "bipush", "sipush", "ldc", "ldc_w",
"ldc2_w", "iload", "lload", "fload", "dload", "aload", "iload_0",
"iload_1", "iload_2", "iload_3", "lload_0", "lload_1", "lload_2",
"lload_3", "fload_0", "fload_1", "fload_2", "fload_3", "dload_0",
"dload_1", "dload_2", "dload_3", "aload_0", "aload_1", "aload_2",
"aload_3", "iaload", "laload", "faload", "daload", "aaload",
"baload", "caload", "saload", "istore", "lstore", "fstore",
"dstore", "astore", "istore_0", "istore_1", "istore_2", "istore_3",
"lstore_0", "lstore_1", "lstore_2", "lstore_3", "fstore_0",
"fstore_1", "fstore_2", "fstore_3", "dstore_0", "dstore_1",
"dstore_2", "dstore_3", "astore_0", "astore_1", "astore_2",
"astore_3", "iastore", "lastore", "fastore", "dastore", "aastore",
"bastore", "castore", "sastore", "pop", "pop2", "dup", "dup_x1",
"dup_x2", "dup2", "dup2_x1", "dup2_x2", "swap", "iadd", "ladd",
"fadd", "dadd", "isub", "lsub", "fsub", "dsub", "imul", "lmul",
"fmul", "dmul", "idiv", "ldiv", "fdiv", "ddiv", "irem", "lrem",
"frem", "drem", "ineg", "lneg", "fneg", "dneg", "ishl", "lshl",
"ishr", "lshr", "iushr", "lushr", "iand", "land", "ior", "lor",
"ixor", "lxor", "iinc", "i2l", "i2f", "i2d", "l2i", "l2f", "l2d",
"f2i", "f2l", "f2d", "d2i", "d2l", "d2f", "i2b", "i2c", "i2s",
"lcmp", "fcmpl", "fcmpg", "dcmpl", "dcmpg", "ifeq", "ifne", "iflt",
"ifge", "ifgt", "ifle", "if_icmpeq", "if_icmpne", "if_icmplt",
"if_icmpge", "if_icmpgt", "if_icmple", "if_acmpeq", "if_acmpne",
"goto", "jsr", "ret", "tableswitch", "lookupswitch", "ireturn",
"lreturn", "freturn", "dreturn", "areturn", "return", "getstatic",
"putstatic", "getfield", "putfield", "invokevirtual",
"invokespecial", "invokestatic", "invokeinterface", ILLEGAL_OPCODE,
"new", "newarray", "anewarray", "arraylength", "athrow",
"checkcast", "instanceof", "monitorenter", "monitorexit", "wide",
"multianewarray", "ifnull", "ifnonnull", "goto_w", "jsr_w",
"breakpoint", ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, "jopsys_rd",
"jopsys_wr", "jopsys_rdmem", "jopsys_wrmem", "jopsys_rdint",
"jopsys_wrint", "jopsys_getsp", "jopsys_setsp", "jopsys_getvp",
"jopsys_setvp", "jopsys_int2ext", "jopsys_ext2int", "jopsys_nop",
"jopsys_invoke", "jopsys_cond_move", "getstatic_ref", "putstatic_ref",
"getfield_ref", "putfield_ref", "getstatic_long", "putstatic_long",
"getfield_long", "putfield_long", ILLEGAL_OPCODE, ILLEGAL_OPCODE,
ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
ILLEGAL_OPCODE, ILLEGAL_OPCODE, "sys_int", "sys_exc",
ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
"sys_noimp", "sys_init" };
// opcodes // visit method (- = idem)
int NOP = 0; // visitInsn
int ACONST_NULL = 1; // -
int ICONST_M1 = 2; // -
int ICONST_0 = 3; // -
int ICONST_1 = 4; // -
int ICONST_2 = 5; // -
int ICONST_3 = 6; // -
int ICONST_4 = 7; // -
int ICONST_5 = 8; // -
int LCONST_0 = 9; // -
int LCONST_1 = 10; // -
int FCONST_0 = 11; // -
int FCONST_1 = 12; // -
int FCONST_2 = 13; // -
int DCONST_0 = 14; // -
int DCONST_1 = 15; // -
int BIPUSH = 16; // visitIntInsn
int SIPUSH = 17; // -
int LDC = 18; // visitLdcInsn
int LDC_W = 19; // -
int LDC2_W = 20; // -
int ILOAD = 21; // visitVarInsn
int LLOAD = 22; // -
int FLOAD = 23; // -
int DLOAD = 24; // -
int ALOAD = 25; // -
int ILOAD_0 = 26; // -
int ILOAD_1 = 27; // -
int ILOAD_2 = 28; // -
int ILOAD_3 = 29; // -
int LLOAD_0 = 30; // -
int LLOAD_1 = 31; // -
int LLOAD_2 = 32; // -
int LLOAD_3 = 33; // -
int FLOAD_0 = 34; // -
int FLOAD_1 = 35; // -
int FLOAD_2 = 36; // -
int FLOAD_3 = 37; // -
int DLOAD_0 = 38; // -
int DLOAD_1 = 39; // -
int DLOAD_2 = 40; // -
int DLOAD_3 = 41; // -
int ALOAD_0 = 42; // -
int ALOAD_1 = 43; // -
int ALOAD_2 = 44; // -
int ALOAD_3 = 45; // -
int IALOAD = 46; // visitInsn
int LALOAD = 47; // -
int FALOAD = 48; // -
int DALOAD = 49; // -
int AALOAD = 50; // -
int BALOAD = 51; // -
int CALOAD = 52; // -
int SALOAD = 53; // -
int ISTORE = 54; // visitVarInsn
int LSTORE = 55; // -
int FSTORE = 56; // -
int DSTORE = 57; // -
int ASTORE = 58; // -
int ISTORE_0 = 59; // -
int ISTORE_1 = 60; // -
int ISTORE_2 = 61; // -
int ISTORE_3 = 62; // -
int LSTORE_0 = 63; // -
int LSTORE_1 = 64; // -
int LSTORE_2 = 65; // -
int LSTORE_3 = 66; // -
int FSTORE_0 = 67; // -
int FSTORE_1 = 68; // -
int FSTORE_2 = 69; // -
int FSTORE_3 = 70; // -
int DSTORE_0 = 71; // -
int DSTORE_1 = 72; // -
int DSTORE_2 = 73; // -
int DSTORE_3 = 74; // -
int ASTORE_0 = 75; // -
int ASTORE_1 = 76; // -
int ASTORE_2 = 77; // -
int ASTORE_3 = 78; // -
int IASTORE = 79; // visitInsn
int LASTORE = 80; // -
int FASTORE = 81; // -
int DASTORE = 82; // -
int AASTORE = 83; // -
int BASTORE = 84; // -
int CASTORE = 85; // -
int SASTORE = 86; // -
int POP = 87; // -
int POP2 = 88; // -
int DUP = 89; // -
int DUP_X1 = 90; // -
int DUP_X2 = 91; // -
int DUP2 = 92; // -
int DUP2_X1 = 93; // -
int DUP2_X2 = 94; // -
int SWAP = 95; // -
int IADD = 96; // -
int LADD = 97; // -
int FADD = 98; // -
int DADD = 99; // -
int ISUB = 100; // -
int LSUB = 101; // -
int FSUB = 102; // -
int DSUB = 103; // -
int IMUL = 104; // -
int LMUL = 105; // -
int FMUL = 106; // -
int DMUL = 107; // -
int IDIV = 108; // -
int LDIV = 109; // -
int FDIV = 110; // -
int DDIV = 111; // -
int IREM = 112; // -
int LREM = 113; // -
int FREM = 114; // -
int DREM = 115; // -
int INEG = 116; // -
int LNEG = 117; // -
int FNEG = 118; // -
int DNEG = 119; // -
int ISHL = 120; // -
int LSHL = 121; // -
int ISHR = 122; // -
int LSHR = 123; // -
int IUSHR = 124; // -
int LUSHR = 125; // -
int IAND = 126; // -
int LAND = 127; // -
int IOR = 128; // -
int LOR = 129; // -
int IXOR = 130; // -
int LXOR = 131; // -
int IINC = 132; // visitIincInsn
int I2L = 133; // visitInsn
int I2F = 134; // -
int I2D = 135; // -
int L2I = 136; // -
int L2F = 137; // -
int L2D = 138; // -
int F2I = 139; // -
int F2L = 140; // -
int F2D = 141; // -
int D2I = 142; // -
int D2L = 143; // -
int D2F = 144; // -
int I2B = 145; // -
int I2C = 146; // -
int I2S = 147; // -
int LCMP = 148; // -
int FCMPL = 149; // -
int FCMPG = 150; // -
int DCMPL = 151; // -
int DCMPG = 152; // -
int IFEQ = 153; // visitJumpInsn
int IFNE = 154; // -
int IFLT = 155; // -
int IFGE = 156; // -
int IFGT = 157; // -
int IFLE = 158; // -
int IF_ICMPEQ = 159; // -
int IF_ICMPNE = 160; // -
int IF_ICMPLT = 161; // -
int IF_ICMPGE = 162; // -
int IF_ICMPGT = 163; // -
int IF_ICMPLE = 164; // -
int IF_ACMPEQ = 165; // -
int IF_ACMPNE = 166; // -
int GOTO = 167; // -
int JSR = 168; // -
int RET = 169; // visitVarInsn
int TABLESWITCH = 170; // visiTableSwitchInsn
int LOOKUPSWITCH = 171; // visitLookupSwitch
int IRETURN = 172; // visitInsn
int LRETURN = 173; // -
int FRETURN = 174; // -
int DRETURN = 175; // -
int ARETURN = 176; // -
int RETURN = 177; // -
int GETSTATIC = 178; // visitFieldInsn
int PUTSTATIC = 179; // -
int GETFIELD = 180; // -
int PUTFIELD = 181; // -
int INVOKEVIRTUAL = 182; // visitMethodInsn
int INVOKESPECIAL = 183; // -
int INVOKESTATIC = 184; // -
int INVOKEINTERFACE = 185; // -
// int UNUSED = 186; // NOT VISITED
int NEW = 187; // visitTypeInsn
int NEWARRAY = 188; // visitIntInsn
int ANEWARRAY = 189; // visitTypeInsn
int ARRAYLENGTH = 190; // visitInsn
int ATHROW = 191; // -
int CHECKCAST = 192; // visitTypeInsn
int INSTANCEOF = 193; // -
int MONITORENTER = 194; // visitInsn
int MONITOREXIT = 195; // -
int WIDE = 196; // NOT VISITED
int MULTIANEWARRAY = 197; // visitMultiANewArrayInsn
int IFNULL = 198; // visitJumpInsn
int IFNONNULL = 199; // -
int GOTO_W = 200; // -
int JSR_W = 201; // -
// Native bytecodes (see jvm.asm)
int JOPSYS_RD = 209;
int JOPSYS_WR = 210;
int JOPSYS_RDMEM = 211;
int JOPSYS_WRMEM = 212;
int JOPSYS_RDINT = 213;
int JOPSYS_WRINT = 214;
int JOPSYS_GETSP = 215;
int JOPSYS_SETSP = 216;
int JOPSYS_GETVP = 217;
int JOPSYS_SETVP = 218;
int JOPSYS_INT2EXT = 219;
int JOPSYS_EXT2INT = 220;
int JOPSYS_NOP = 221;
int JOPSYS_INVOKE = 222;
int JOPSYS_COND_MOVE = 223;
int GETSTATIC_REF = 224;
int PUTSTATIC_REF = 225;
int GETFIELD_REF = 226;
int PUTFIELD_REF = 227;
int GETSTATIC_LONG = 228;
int PUTSTATIC_LONG = 229;
int GETFIELD_LONG = 230;
int PUTFIELD_LONG = 231;
int SYS_INT = 240;
int SYS_EXC = 241;
int SYS_NOIMP = 254;
int SYS_INIT = 255;
}
|
 |