1 cananian 1.1.2.2 // InstrDIRECTIVE.java, created Mon May 17 16:08:00 1999 by andyb 2 andyb 1.1.2.1 // Copyright (C) 1999 Andrew Berkheimer <andyb@mit.edu> 3 andyb 1.1.2.1 // Licensed under the terms of the GNU GPL; see COPYING for details. 4 andyb 1.1.2.1 package harpoon.IR.Assem; 5 andyb 1.1.2.1 6 andyb 1.1.2.1 import harpoon.ClassFile.HCodeElement; 7 andyb 1.1.2.1 import harpoon.Temp.Label; 8 cananian 1.1.2.4 import harpoon.Temp.TempMap; 9 andyb 1.1.2.1 10 andyb 1.1.2.1 /** 11 andyb 1.1.2.1 * <code>InstrDIRECTIVE</code> is used to represents assembler 12 andyb 1.1.2.1 * directives. 13 andyb 1.1.2.1 * 14 andyb 1.1.2.1 * @author Andrew Berkheimer <andyb@mit.edu> 15 cananian 1.2 * @version $Id: InstrDIRECTIVE.java,v 1.2 2002/02/25 21:04:11 cananian Exp $ 16 andyb 1.1.2.1 */ 17 andyb 1.1.2.1 public class InstrDIRECTIVE extends Instr { 18 andyb 1.1.2.1 19 andyb 1.1.2.1 public InstrDIRECTIVE(InstrFactory inf, HCodeElement src, String a) { 20 pnkfelix 1.1.2.5 this(inf, src, a, true); 21 andyb 1.1.2.1 } 22 pnkfelix 1.1.2.5 23 pnkfelix 1.1.2.5 private InstrDIRECTIVE(InstrFactory inf, HCodeElement src, 24 pnkfelix 1.1.2.5 String a, boolean falls) { 25 pnkfelix 1.1.2.5 super(inf, src, a, null, null, falls, null); 26 pnkfelix 1.1.2.5 } 27 pnkfelix 1.1.2.5 28 pnkfelix 1.1.2.5 public static InstrDIRECTIVE makeNoFall 29 pnkfelix 1.1.2.5 (InstrFactory inf, HCodeElement src, String a) { 30 pnkfelix 1.1.2.5 return new InstrDIRECTIVE(inf, src, a, false); 31 pnkfelix 1.1.2.5 } 32 cananian 1.1.2.4 33 cananian 1.1.2.4 public Instr rename(InstrFactory inf, TempMap defMap, TempMap useMap) { 34 cananian 1.1.2.4 return new InstrDIRECTIVE(inf, this, getAssem()); 35 pnkfelix 1.1.2.6 } 36 pnkfelix 1.1.2.6 37 pnkfelix 1.1.2.6 public Instr cloneMutateAssem(InstrFactory inf, String newAssem) { 38 pnkfelix 1.1.2.6 return new InstrDIRECTIVE(inf, this, newAssem); 39 cananian 1.1.2.4 } 40 andyb 1.1.2.1 41 pnkfelix 1.1.2.3 public void accept(InstrVisitor v) { v.visit(this); } 42 pnkfelix 1.1.2.7 43 pnkfelix 1.1.2.7 public boolean isDirective() { return true; } 44 cananian 1.2 }