public static ShaderIrNode ExtendTo32(ShaderIrNode node, bool signed, ShaderIrNode size) { ShaderIrOperImm wordSize = new ShaderIrOperImm(32); ShaderIrOp shift = new ShaderIrOp(ShaderIrInst.Sub, wordSize, size); ShaderIrInst rightShift = signed ? ShaderIrInst.Asr : ShaderIrInst.Lsr; node = new ShaderIrOp(ShaderIrInst.Lsl, node, shift); node = new ShaderIrOp(rightShift, node, shift); return(node); }
public static ShaderIrNode ExtendTo32(ShaderIrNode Node, bool Signed, ShaderIrNode Size) { ShaderIrOperImm WordSize = new ShaderIrOperImm(32); ShaderIrOp Shift = new ShaderIrOp(ShaderIrInst.Sub, WordSize, Size); ShaderIrInst RightShift = Signed ? ShaderIrInst.Asr : ShaderIrInst.Lsr; Node = new ShaderIrOp(ShaderIrInst.Lsl, Node, Shift); Node = new ShaderIrOp(RightShift, Node, Shift); return(Node); }