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

org.jruby.compiler.ir.instructions.ALU_Instr Maven / Gradle / Ivy

There is a newer version: 9.4.7.0
Show newest version
package org.jruby.compiler.ir.instructions;

import org.jruby.compiler.ir.Operation;
import org.jruby.compiler.ir.operands.Operand;
import org.jruby.compiler.ir.operands.Variable;
import org.jruby.compiler.ir.representations.InlinerInfo;

// This instruction represents primitive arithmetic and logical operations
// and would be generated only during optimization passes that unbox ruby objects
// into native platform objects.
public class ALU_Instr extends TwoOperandInstr
{
    public ALU_Instr(Operation op, Variable dst, Operand arg1, Operand arg2) {
        super(op, dst, arg1, arg2);
    }

    public ALU_Instr(Operation op, Variable dst, Operand arg) {
        super(op, dst, arg, null);
    }

    public Instr cloneForInlining(InlinerInfo ii) {
        return new ALU_Instr(operation, ii.getRenamedVariable(result), operand1.cloneForInlining(ii), operand2 != null ? operand2.cloneForInlining(ii) : null);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy