change
[IRC.git] / Robust / src / IR / Flat / FlatElementNode.java
1 package IR.Flat;
2 import IR.FieldDescriptor;
3
4 public class FlatElementNode extends FlatNode {
5   TempDescriptor src;
6   TempDescriptor dst;
7   TempDescriptor index;
8
9   public FlatElementNode(TempDescriptor src, TempDescriptor index, TempDescriptor dst) {
10     this.index=index;
11     this.src=src;
12     this.dst=dst;
13   }
14
15   public boolean needsBoundsCheck() {
16     return true;
17   }
18
19   public TempDescriptor getIndex() {
20     return index;
21   }
22
23   public TempDescriptor getSrc() {
24     return src;
25   }
26
27   public TempDescriptor getDst() {
28     return dst;
29   }
30
31   public String toString() {
32     return "FlatElementNode_"+dst.toString()+"="+src.toString()+"["+index.toString()+"]";
33   }
34
35   public int kind() {
36     return FKind.FlatElementNode;
37   }
38
39   public TempDescriptor [] writesTemps() {
40     return new TempDescriptor[] {dst};
41   }
42
43   public TempDescriptor [] readsTemps() {
44     return new TempDescriptor[] {src,index};
45   }
46 }