View Javadoc

1   // RegisterNumberVisitor.java, created Jun 15, 2003 2:00:45 AM by joewhaley
2   // Copyright (C) 2003 John Whaley <jwhaley@alum.mit.edu>
3   // Licensed under the terms of the GNU LGPL; see COPYING for details.
4   package joeq.Compiler.Quad;
5   
6   import joeq.Util.Templates.ListIterator;
7   import jwutil.collections.IndexMap;
8   
9   /***
10   * RegisterNumberVisitor
11   * 
12   * @author John Whaley
13   * @version $Id: RegisterNumberVisitor.java 1931 2004-09-22 22:17:47Z joewhaley $
14   */
15  public class RegisterNumberVisitor extends QuadVisitor.EmptyVisitor {
16  
17      IndexMap m = new IndexMap("Register numbers");
18  
19      public void visitQuad(Quad q) {
20          for (ListIterator.RegisterOperand i = q.getDefinedRegisters().registerOperandIterator();
21              i.hasNext(); ) {
22              m.get(i.nextRegisterOperand().getRegister());
23          }
24          for (ListIterator.RegisterOperand i = q.getUsedRegisters().registerOperandIterator();
25              i.hasNext(); ) {
26              m.get(i.nextRegisterOperand().getRegister());
27          }
28      }
29  
30  }