public static IClass getArithmeticalResultType(IClass... types) {
    	IClass resultType = null;
        for (IClass type : types) {
            type = getPrimitiveAClass(type);

            if (isArithmetical(type)) {
                int typeSort = type.getType().getSort();
                if (resultType == null || typeSort > resultType.getType().getSort()) {
                    if (typeSort <= Type.INT) {
                        resultType = type.getClassHolder().getType(int.class);
                    } else {
                        resultType = type;
                    }
                }
            } else {
                throw new ASMSupportException(type + " dons't support arithmetical operator.");
            }
        }
        return resultType;
    }