summaryrefslogtreecommitdiff
path: root/src/main/java/com/seaofnodes/simple/node/GuardMach.java
blob: 202b1ab8c11d1464f1f6bd9e5cc5533df2d5189c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.seaofnodes.simple.node;

import com.seaofnodes.simple.codegen.CodeGen;
import com.seaofnodes.simple.codegen.Encoding;
import com.seaofnodes.simple.codegen.RegMask;
import com.seaofnodes.simple.type.Type;
import com.seaofnodes.simple.util.SB;

public class GuardMach extends GuardNode implements MachNode {
    public GuardMach(GuardNode guard) { super(guard); }
    @Override public String op() { return label(); }
    @Override public RegMask regmap(int i) { assert i==1; return RegMask.FULL; }
    @Override public RegMask outregmap() { return RegMask.FULL; }
    @Override public int twoAddress() { return in(1)._type==Type.BOTTOM ? 0 : 1; }
    @Override public void encoding(Encoding enc) { }
    @Override public void asm(CodeGen code, SB sb) { sb.p(code.reg(in(1))); }
}