00001 package de.fub.bytecode.generic;
00002
00003 import de.fub.bytecode.Constants;
00004
00005
00006
00007
00008
00009
00010
00011 public abstract class ReturnInstruction extends Instruction
00012 implements Constants, ExceptionThrower {
00013
00014
00015
00016
00017 ReturnInstruction() {}
00018
00019
00020
00021 protected ReturnInstruction(short tag) {
00022 super(tag, (short)1);
00023 }
00024 public Class[] getExceptions() {
00025 return new Class[] { ILLEGAL_MONITOR_STATE };
00026 }
00027 public Type getType() {
00028 switch(tag) {
00029 case IRETURN : return Type.INT;
00030 case LRETURN : return Type.LONG;
00031 case FRETURN : return Type.FLOAT;
00032 case DRETURN : return Type.DOUBLE;
00033 case ARETURN : return Type.NULL;
00034
00035 default:
00036 throw new RuntimeException("Unknown type " + tag);
00037 }
00038 }
00039 }