eed9bba9807a9409928dd2d559b57ebc0f95b98b
[repair.git] / Repair / RepairCompiler / MCC / IR / Opcode.java
1 package MCC.IR;
2
3 public class Opcode {
4
5     private final String name;
6     private Opcode(String name) { this.name = name; }
7     
8     public String toString() { return name; }       
9
10     public static final Opcode ADD = new Opcode("+");
11     public static final Opcode SUB = new Opcode("-");
12     public static final Opcode MULT = new Opcode("*");
13     public static final Opcode DIV = new Opcode("/");
14
15     public static final Opcode GT = new Opcode(">");
16     public static final Opcode GE = new Opcode(">=");
17     public static final Opcode LT = new Opcode("<");
18     public static final Opcode LE = new Opcode("<=");
19
20     public static final Opcode EQ = new Opcode("==");
21     public static final Opcode NE = new Opcode("!=");
22
23     public static final Opcode AND = new Opcode("&&");
24     public static final Opcode OR = new Opcode("||");
25     public static final Opcode NOT = new Opcode("!");
26     public static final Opcode RND = new Opcode("RND");
27     public static final Opcode NOP = new Opcode("NOP");
28     public static final Opcode SHL = new Opcode("<<");
29     public static final Opcode SHR = new Opcode(">>");
30
31     public static Opcode decodeFromString(String opname) {
32         Opcode opcode;
33
34         if (opname.equals("add")) {
35             return Opcode.ADD;
36         } else if (opname.equals("sub")) {
37             return Opcode.SUB;
38         } else if (opname.equals("mult")) {
39             return Opcode.MULT;
40         } else if (opname.equals("div")) {
41             return Opcode.DIV;
42         } else if (opname.equals("and")) {
43             return Opcode.AND;
44         } else if (opname.equals("or")) {
45             return Opcode.OR;
46         } else if (opname.equals("not")) {
47             return Opcode.NOT;
48         } else if (opname.equals("gt")) {
49             return Opcode.GT;
50         } else if (opname.equals("ge")) {
51             return Opcode.GE;
52         } else if (opname.equals("lt")) {
53             return Opcode.LT;
54         } else if (opname.equals("le")) {
55             return Opcode.LE;
56         } else if (opname.equals("eq")) {
57             return Opcode.EQ;
58         } else if (opname.equals("ne")) {
59             return Opcode.NE;
60         } else {
61             return null;
62         }
63     }
64
65 }