All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.bugvm.llvm.TargetOptions Maven / Gradle / Ivy

/*
 * Copyright (C) 2013 RoboVM AB
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see .
 */
package com.bugvm.llvm;

import com.bugvm.llvm.binding.FloatABIType;
import com.bugvm.llvm.binding.FPOpFusionMode;
import com.bugvm.llvm.binding.LLVM;
import com.bugvm.llvm.binding.TargetOptionsRef;

/**
 * 
 */
public class TargetOptions {
    protected TargetOptionsRef ref;

    TargetOptions(TargetOptionsRef ref) {
        this.ref = ref;
    }

    public boolean getPrintMachineCode() {
        return LLVM.TargetOptionsGetPrintMachineCode(ref);
    }

    public void setPrintMachineCode(boolean value) {
        LLVM.TargetOptionsSetPrintMachineCode(ref, value);
    }

    public boolean getNoFramePointerElim() {
        return LLVM.TargetOptionsGetNoFramePointerElim(ref);
    }

    public void setNoFramePointerElim(boolean value) {
        LLVM.TargetOptionsSetNoFramePointerElim(ref, value);
    }

    public boolean getLessPreciseFPMADOption() {
        return LLVM.TargetOptionsGetLessPreciseFPMADOption(ref);
    }

    public void setLessPreciseFPMADOption(boolean value) {
        LLVM.TargetOptionsSetLessPreciseFPMADOption(ref, value);
    }

    public boolean getUnsafeFPMath() {
        return LLVM.TargetOptionsGetUnsafeFPMath(ref);
    }

    public void setUnsafeFPMath(boolean value) {
        LLVM.TargetOptionsSetUnsafeFPMath(ref, value);
    }

    public boolean getNoInfsFPMath() {
        return LLVM.TargetOptionsGetNoInfsFPMath(ref);
    }

    public void setNoInfsFPMath(boolean value) {
        LLVM.TargetOptionsSetNoInfsFPMath(ref, value);
    }

    public boolean getNoNaNsFPMath() {
        return LLVM.TargetOptionsGetNoNaNsFPMath(ref);
    }

    public void setNoNaNsFPMath(boolean value) {
        LLVM.TargetOptionsSetNoNaNsFPMath(ref, value);
    }

    public boolean getHonorSignDependentRoundingFPMathOption() {
        return LLVM.TargetOptionsGetHonorSignDependentRoundingFPMathOption(ref);
    }

    public void setHonorSignDependentRoundingFPMathOption(boolean value) {
        LLVM.TargetOptionsSetHonorSignDependentRoundingFPMathOption(ref, value);
    }

    public boolean getUseSoftFloat() {
        return LLVM.TargetOptionsGetUseSoftFloat(ref);
    }

    public void setUseSoftFloat(boolean value) {
        LLVM.TargetOptionsSetUseSoftFloat(ref, value);
    }

    public boolean getNoZerosInBSS() {
        return LLVM.TargetOptionsGetNoZerosInBSS(ref);
    }

    public void setNoZerosInBSS(boolean value) {
        LLVM.TargetOptionsSetNoZerosInBSS(ref, value);
    }

    public boolean getJITEmitDebugInfo() {
        return LLVM.TargetOptionsGetJITEmitDebugInfo(ref);
    }

    public void setJITEmitDebugInfo(boolean value) {
        LLVM.TargetOptionsSetJITEmitDebugInfo(ref, value);
    }

    public boolean getJITEmitDebugInfoToDisk() {
        return LLVM.TargetOptionsGetJITEmitDebugInfoToDisk(ref);
    }

    public void setJITEmitDebugInfoToDisk(boolean value) {
        LLVM.TargetOptionsSetJITEmitDebugInfoToDisk(ref, value);
    }

    public boolean getGuaranteedTailCallOpt() {
        return LLVM.TargetOptionsGetGuaranteedTailCallOpt(ref);
    }

    public void setGuaranteedTailCallOpt(boolean value) {
        LLVM.TargetOptionsSetGuaranteedTailCallOpt(ref, value);
    }

    public boolean getDisableTailCalls() {
        return LLVM.TargetOptionsGetDisableTailCalls(ref);
    }

    public void setDisableTailCalls(boolean value) {
        LLVM.TargetOptionsSetDisableTailCalls(ref, value);
    }

    public int getStackAlignmentOverride() {
        return LLVM.TargetOptionsGetStackAlignmentOverride(ref);
    }

    public void setStackAlignmentOverride(int value) {
        LLVM.TargetOptionsSetStackAlignmentOverride(ref, value);
    }

    public boolean getEnableFastISel() {
        return LLVM.TargetOptionsGetEnableFastISel(ref);
    }

    public void setEnableFastISel(boolean value) {
        LLVM.TargetOptionsSetEnableFastISel(ref, value);
    }

    public boolean getPositionIndependentExecutable() {
        return LLVM.TargetOptionsGetPositionIndependentExecutable(ref);
    }

    public void setPositionIndependentExecutable(boolean value) {
        LLVM.TargetOptionsSetPositionIndependentExecutable(ref, value);
    }

    public boolean getUseInitArray() {
        return LLVM.TargetOptionsGetUseInitArray(ref);
    }

    public void setUseInitArray(boolean value) {
        LLVM.TargetOptionsSetUseInitArray(ref, value);
    }

    public FloatABIType getFloatABIType() {
        return LLVM.TargetOptionsGetFloatABIType(ref);
    }

    public void setFloatABIType(FloatABIType value) {
        LLVM.TargetOptionsSetFloatABIType(ref, value);
    }

    public FPOpFusionMode getAllowFPOpFusion() {
        return LLVM.TargetOptionsGetAllowFPOpFusion(ref);
    }

    public void setAllowFPOpFusion(FPOpFusionMode value) {
        LLVM.TargetOptionsSetAllowFPOpFusion(ref, value);
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((ref == null) ? 0 : ref.hashCode());
        return result;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        TargetOptions other = (TargetOptions) obj;
        if (ref == null) {
            if (other.ref != null) {
                return false;
            }
        } else if (!ref.equals(other.ref)) {
            return false;
        }
        return true;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy