/** * Loads the given variable of primitive type onto the stack. * * Operand stack: * ... -> ..., value * * @param variableIndex the index of the variable to be loaded. * @param type the type of the variable to be loaded. */ public InstructionSequenceBuilder load(int variableIndex, char type) { switch (type) { case ClassConstants.TYPE_BOOLEAN: case ClassConstants.TYPE_BYTE: case ClassConstants.TYPE_CHAR: case ClassConstants.TYPE_SHORT: case ClassConstants.TYPE_INT: return iload(variableIndex); case ClassConstants.TYPE_LONG: return lload(variableIndex); case ClassConstants.TYPE_FLOAT: return fload(variableIndex); case ClassConstants.TYPE_DOUBLE: return dload(variableIndex); default: return aload(variableIndex); } }
/** * Loads the given variable of primitive type onto the stack. * * Operand stack: * ... -> ..., value * * @param variableIndex the index of the variable to be loaded. * @param type the type of the variable to be loaded. */ public InstructionSequenceBuilder load(int variableIndex, char type) { switch (type) { case ClassConstants.TYPE_BOOLEAN: case ClassConstants.TYPE_BYTE: case ClassConstants.TYPE_CHAR: case ClassConstants.TYPE_SHORT: case ClassConstants.TYPE_INT: return iload(variableIndex); case ClassConstants.TYPE_LONG: return lload(variableIndex); case ClassConstants.TYPE_FLOAT: return fload(variableIndex); case ClassConstants.TYPE_DOUBLE: return dload(variableIndex); default: return aload(variableIndex); } }
/** * Loads the given variable of primitive type onto the stack. * * Operand stack: * ... -> ..., value * * @param variableIndex the index of the variable to be loaded. * @param type the type of the variable to be loaded. */ public InstructionSequenceBuilder load(int variableIndex, char type) { switch (type) { case ClassConstants.TYPE_BOOLEAN: case ClassConstants.TYPE_BYTE: case ClassConstants.TYPE_CHAR: case ClassConstants.TYPE_SHORT: case ClassConstants.TYPE_INT: return iload(variableIndex); case ClassConstants.TYPE_LONG: return lload(variableIndex); case ClassConstants.TYPE_FLOAT: return fload(variableIndex); case ClassConstants.TYPE_DOUBLE: return dload(variableIndex); default: return aload(variableIndex); } }
.catch_(CLASS_NOT_FOUND_EXCEPTION) .ldc_(CLASS_NAME) .aload(LOCAL_VARIABLE_INDEX_1) .invokestatic(LOGGER_CLASS_NAME, "logForName", "(Ljava/lang/String;Ljava/lang/String;)V") .athrow() .catch_(CLASS_NOT_FOUND_EXCEPTION) .ldc_(CLASS_NAME) .aload(LOCAL_VARIABLE_INDEX_1) .invokestatic(LOGGER_CLASS_NAME, "logForName", "(Ljava/lang/String;Ljava/lang/String;)V") .athrow() .catch_(CLASS_NOT_FOUND_EXCEPTION) .ldc_(CLASS_NAME) .aload(LOCAL_VARIABLE_INDEX_1) .invokestatic(LOGGER_CLASS_NAME, "logLoadClass", "(Ljava/lang/String;Ljava/lang/String;)V") .athrow() .catch_(NO_SUCH_METHOD_EXCEPTION) .ldc_(CLASS_NAME) .aload(LOCAL_VARIABLE_INDEX_1) .aload(LOCAL_VARIABLE_INDEX_2) .invokestatic(LOGGER_CLASS_NAME, "logGetDeclaredConstructor", "(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)V") .athrow() .catch_(NO_SUCH_METHOD_EXCEPTION) .ldc_(CLASS_NAME) .aload(LOCAL_VARIABLE_INDEX_1) .aload(LOCAL_VARIABLE_INDEX_2)
.catch_(CLASS_NOT_FOUND_EXCEPTION) .ldc_(CLASS_NAME) .aload(LOCAL_VARIABLE_INDEX_1) .invokestatic(LOGGER_CLASS_NAME, "logForName", "(Ljava/lang/String;Ljava/lang/String;)V") .athrow() .catch_(CLASS_NOT_FOUND_EXCEPTION) .ldc_(CLASS_NAME) .aload(LOCAL_VARIABLE_INDEX_1) .invokestatic(LOGGER_CLASS_NAME, "logForName", "(Ljava/lang/String;Ljava/lang/String;)V") .athrow() .catch_(CLASS_NOT_FOUND_EXCEPTION) .ldc_(CLASS_NAME) .aload(LOCAL_VARIABLE_INDEX_1) .invokestatic(LOGGER_CLASS_NAME, "logLoadClass", "(Ljava/lang/String;Ljava/lang/String;)V") .athrow() .catch_(NO_SUCH_METHOD_EXCEPTION) .ldc_(CLASS_NAME) .aload(LOCAL_VARIABLE_INDEX_1) .aload(LOCAL_VARIABLE_INDEX_2) .invokestatic(LOGGER_CLASS_NAME, "logGetDeclaredConstructor", "(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)V") .athrow() .catch_(NO_SUCH_METHOD_EXCEPTION) .ldc_(CLASS_NAME) .aload(LOCAL_VARIABLE_INDEX_1) .aload(LOCAL_VARIABLE_INDEX_2)
.catch_(CLASS_NOT_FOUND_EXCEPTION) .ldc_(CLASS_NAME) .aload(LOCAL_VARIABLE_INDEX_1) .invokestatic(LOGGER_CLASS_NAME, "logForName", "(Ljava/lang/String;Ljava/lang/String;)V") .athrow() .catch_(CLASS_NOT_FOUND_EXCEPTION) .ldc_(CLASS_NAME) .aload(LOCAL_VARIABLE_INDEX_1) .invokestatic(LOGGER_CLASS_NAME, "logForName", "(Ljava/lang/String;Ljava/lang/String;)V") .athrow() .catch_(CLASS_NOT_FOUND_EXCEPTION) .ldc_(CLASS_NAME) .aload(LOCAL_VARIABLE_INDEX_1) .invokestatic(LOGGER_CLASS_NAME, "logLoadClass", "(Ljava/lang/String;Ljava/lang/String;)V") .athrow() .catch_(NO_SUCH_METHOD_EXCEPTION) .ldc_(CLASS_NAME) .aload(LOCAL_VARIABLE_INDEX_1) .aload(LOCAL_VARIABLE_INDEX_2) .invokestatic(LOGGER_CLASS_NAME, "logGetDeclaredConstructor", "(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)V") .athrow() .catch_(NO_SUCH_METHOD_EXCEPTION) .ldc_(CLASS_NAME) .aload(LOCAL_VARIABLE_INDEX_1) .aload(LOCAL_VARIABLE_INDEX_2)
}, { // aload/pop = nothing ____.aload(X) .pop().__(), }, }, { // a = a = nothing ____.aload(X) .astore(X).__(), }, }, { // aload/aload = aload/dup ____.aload(X) .aload(X).__(), ____.aload(X) .dup().__() }, { // astore/aload = dup/astore ____.astore(X) .aload(X).__(), }, { // aload/dup/astore = aload ____.aload(X) .dup()
}, { // aload/pop = nothing ____.aload(X) .pop().__(), }, }, { // a = a = nothing ____.aload(X) .astore(X).__(), }, }, { // aload/aload = aload/dup ____.aload(X) .aload(X).__(), ____.aload(X) .dup().__() }, { // astore/aload = dup/astore ____.astore(X) .aload(X).__(), }, { // aload/dup/astore = aload ____.aload(X) .dup()
}, { // aload/pop = nothing ____.aload(X) .pop().__(), }, }, { // a = a = nothing ____.aload(X) .astore(X).__(), }, }, { // aload/aload = aload/dup ____.aload(X) .aload(X).__(), ____.aload(X) .dup().__() }, { // astore/aload = dup/astore ____.astore(X) .aload(X).__(), }, { // aload/dup/astore = aload ____.aload(X) .dup()