/** * 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); } }
}, { // iload/pop = nothing ____.iload(X) .pop().__(), }, }, { // i = i = nothing ____.iload(X) .istore(X).__(), }, }, { // iload/iload = iload/dup ____.iload(X) .iload(X).__(), ____.iload(X) .dup().__() }, { // istore/iload = dup/istore ____.istore(X) .iload(X).__(), }, { // iload/dup/istore = iload ____.iload(X) .dup()
}, { // iload/pop = nothing ____.iload(X) .pop().__(), }, }, { // i = i = nothing ____.iload(X) .istore(X).__(), }, }, { // iload/iload = iload/dup ____.iload(X) .iload(X).__(), ____.iload(X) .dup().__() }, { // istore/iload = dup/istore ____.istore(X) .iload(X).__(), }, { // iload/dup/istore = iload ____.iload(X) .dup()
}, { // iload/pop = nothing ____.iload(X) .pop().__(), }, }, { // i = i = nothing ____.iload(X) .istore(X).__(), }, }, { // iload/iload = iload/dup ____.iload(X) .iload(X).__(), ____.iload(X) .dup().__() }, { // istore/iload = dup/istore ____.istore(X) .iload(X).__(), }, { // iload/dup/istore = iload ____.iload(X) .dup()