private void visitParameterLoad(Parameter parameter) throws JavaBytecodeCompilerException {
        if (parameter instanceof ObjectParameter) {
            Object value = parameter.evaluate();
            Integer intValue = (Integer) value;
            switch (intValue) {
                case 0:
                    methodVisitor.visitInsn(ICONST_0);
                    break;
                case 1:
                    methodVisitor.visitInsn(ICONST_1);
                    break;
                case 2:
                    methodVisitor.visitInsn(ICONST_2);
                    break;
                case 3:
                    methodVisitor.visitInsn(ICONST_3);
                    break;
                case 4:
                    methodVisitor.visitInsn(ICONST_4);
                    break;
                case 5:
                    methodVisitor.visitInsn(ICONST_5);
                    break;
                default:
                    methodVisitor.visitIntInsn(SIPUSH, intValue);
                    break;
            }
            
        } else if (parameter instanceof VariableParameter) {
            VariableParameter variableParameter = (VariableParameter) parameter;
            Variable valueVariable = variableParameter.getVariable();
            
            if (!definedVariables.contains(valueVariable.getName().toLowerCase()))
                throw new JavaBytecodeCompilerException("Trying to use an undefined variable");
            
            visitVariableLoad(valueVariable);
        } else
            throw new JavaBytecodeCompilerException("Parameter type is not supported");
    }