1 pnkfelix 1.1.2.1 // InstrCALL.java, created Wed Jan 26 10:56:44 2000 by pnkfelix 2 cananian 1.1.2.4 // Copyright (C) 2000 Felix S. Klock II <pnkfelix@mit.edu> 3 pnkfelix 1.1.2.1 // Licensed under the terms of the GNU GPL; see COPYING for details. 4 pnkfelix 1.1.2.1 package harpoon.IR.Assem; 5 pnkfelix 1.1.2.1 6 pnkfelix 1.1.2.1 import harpoon.ClassFile.HCodeElement; 7 cananian 1.3 import harpoon.Temp.Label; 8 pnkfelix 1.1.2.1 import harpoon.Temp.Temp; 9 pnkfelix 1.1.2.3 import harpoon.Temp.TempMap; 10 pnkfelix 1.1.2.1 import java.util.List; 11 pnkfelix 1.1.2.1 12 pnkfelix 1.1.2.1 /** 13 pnkfelix 1.1.2.1 * <code>InstrCALL</code> 14 pnkfelix 1.1.2.1 * 15 cananian 1.1.2.4 * @author Felix S. Klock II <pnkfelix@mit.edu> 16 cananian 1.3 * @version $Id: InstrCALL.java,v 1.3 2003/06/10 15:07:13 cananian Exp $ 17 pnkfelix 1.1.2.1 */ 18 pnkfelix 1.1.2.1 public class InstrCALL extends Instr { 19 pnkfelix 1.1.2.1 20 pnkfelix 1.1.2.1 /** Creates a <code>InstrCALL</code>. */ 21 pnkfelix 1.1.2.1 public InstrCALL( InstrFactory inf, HCodeElement source, 22 pnkfelix 1.1.2.1 String assem, Temp[] dst, Temp[] src, 23 cananian 1.3 boolean canFallThrough, List<Label> targets) { 24 pnkfelix 1.1.2.1 super(inf, source, assem, dst, src, canFallThrough, targets); 25 pnkfelix 1.1.2.1 } 26 pnkfelix 1.1.2.2 27 pnkfelix 1.1.2.2 /** Accept a visitor */ 28 pnkfelix 1.1.2.2 public void accept(InstrVisitor v) { v.visit(this); } 29 pnkfelix 1.1.2.3 30 pnkfelix 1.1.2.3 public Instr rename(InstrFactory inf, TempMap defMap, TempMap useMap) { 31 pnkfelix 1.1.2.3 // should clone label or something. 32 pnkfelix 1.1.2.3 return new InstrCALL(getFactory(), this, getAssem(), 33 pnkfelix 1.1.2.3 map(defMap,def()), map(useMap, use()), 34 pnkfelix 1.1.2.3 this.canFallThrough, getTargets()); 35 pnkfelix 1.1.2.3 } 36 pnkfelix 1.1.2.3 public Instr cloneMutateAssem(InstrFactory inf, String newAssem) { 37 pnkfelix 1.1.2.3 return new InstrCALL(inf, this, newAssem, def(), use(), 38 pnkfelix 1.1.2.3 canFallThrough, getTargets()); 39 pnkfelix 1.1.2.3 } 40 pnkfelix 1.1.2.1 41 cananian 1.2 }