1 pnkfelix 1.1.2.1 // InstrMOVEproxy.java, created Tue Aug 22 15:30:46 2000 by pnkfelix 2 cananian 1.1.2.5 // 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.Analysis.Instr; 5 pnkfelix 1.1.2.1 6 pnkfelix 1.1.2.2 import harpoon.IR.Assem.InstrFactory; 7 pnkfelix 1.1.2.1 import harpoon.IR.Assem.Instr; 8 pnkfelix 1.1.2.1 import harpoon.Temp.Temp; 9 pnkfelix 1.1.2.2 import harpoon.Temp.TempMap; 10 pnkfelix 1.1.2.1 11 pnkfelix 1.1.2.1 import java.util.Arrays; 12 pnkfelix 1.1.2.1 import java.util.List; 13 pnkfelix 1.1.2.1 /** 14 pnkfelix 1.1.2.1 * <code>InstrMOVEproxy</code> 15 pnkfelix 1.1.2.1 * 16 cananian 1.1.2.5 * @author Felix S. Klock II <pnkfelix@mit.edu> 17 cananian 1.2 * @version $Id: InstrMOVEproxy.java,v 1.2 2002/02/25 20:57:30 cananian Exp $ 18 pnkfelix 1.1.2.1 */ 19 pnkfelix 1.1.2.4 public class InstrMOVEproxy extends Instr { 20 pnkfelix 1.1.2.1 21 pnkfelix 1.1.2.1 /** Creates a <code>InstrMOVEproxy</code>. */ 22 pnkfelix 1.1.2.1 public InstrMOVEproxy(Instr src) { 23 pnkfelix 1.1.2.1 super(src.getFactory(), src, 24 pnkfelix 1.1.2.3 "", 25 pnkfelix 1.1.2.1 // " @proxy "+src.defC()+" <- "+src.useC(), 26 pnkfelix 1.1.2.3 // " @proxy "+src.getAssem(), 27 pnkfelix 1.1.2.1 (Temp[])src.def().clone(), 28 pnkfelix 1.1.2.1 (Temp[])src.use().clone()); 29 pnkfelix 1.1.2.2 } 30 pnkfelix 1.1.2.2 public Instr rename(InstrFactory inf, TempMap defMap, TempMap useMap) { 31 pnkfelix 1.1.2.2 return new InstrMOVEproxy 32 pnkfelix 1.1.2.2 (new Instr(inf, this, getAssem(), 33 pnkfelix 1.1.2.2 map(defMap,def()), map(useMap,use()))); 34 pnkfelix 1.1.2.1 } 35 pnkfelix 1.1.2.1 36 cananian 1.2 }