scale.backend.ppc
Class IFormInstruction

java.lang.Object
  extended by scale.backend.Instruction
      extended by scale.backend.Branch
          extended by scale.backend.ppc.PPCBranch
              extended by scale.backend.ppc.IFormInstruction
All Implemented Interfaces:
java.lang.Cloneable

public class IFormInstruction
extends PPCBranch

This class represents Sparc calPowerPC I-form instructions.

$Id: IFormInstruction.java,v 1.6 2007-10-04 19:57:55 burrill Exp $

Copyright 2007 by the Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.


Field Summary
protected  Displacement displacement
          the displacement
 
Fields inherited from class scale.backend.ppc.PPCBranch
opcode, pt
 
Constructor Summary
IFormInstruction(int opcode, Displacement displacement, int numTargets)
          Create a branch relative that does not set the link register.
IFormInstruction(int opcode, Displacement displacement, int numTargets, boolean absolute, boolean link)
           
IFormInstruction(int opcode, int numTargets)
           
 
Method Summary
 void assembler(Assembler asm, Emit emit)
          Insert the assembler representation of the instruction into the output stream.
 boolean independent(Instruction inst, RegisterSet registers)
          Return true if this instruction is independent of the specified instruction.
 java.lang.String toString()
           
 
Methods inherited from class scale.backend.ppc.PPCBranch
assembleDisp, canBeAnnulled, canBeDeleted, getOpcode, getPt, instructionSize, isUnconditional, setOpcode
 
Methods inherited from class scale.backend.Branch
additionalRegsKilled, additionalRegsSet, additionalRegsUsed, addTarget, copy, defs, getBranchProbability, getExecutionCycles, getRegsKilled, getTarget, isBranch, isCall, markAsCall, mods, nullify, numTargets, remapDestRegister, remapRegisters, remapSrcRegister, setBranchProbability, specifyRegisterUsage, uses, uses
 
Methods inherited from class scale.backend.Instruction
clone, ehash, getBBID, getCopyDest, getCopySrc, getDestRegister, getFunctionalUnit, getLoopNumber, getNext, getPredicate, getPredicates, getSrcRegisters, getTag, isCopy, isLabel, isLoad, isMandatory, isMarker, isPhi, isPredicated, isPredicatedOnTrue, isPrefetch, isSpillInstruction, isSpillLoadPoint, isSpillStorePoint, isStore, markSpillInstruction, nullified, numPredicates, removePredicates, setBBID, setLoopNumber, setMandatory, setNext, setPredicate, setPredicate, setPredicatedOnTrue, setPredicates, setsSpecialReg, setTag, specifyNotSpillLoadPoint, specifySpillStorePoint
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

displacement

protected Displacement displacement
the displacement

Constructor Detail

IFormInstruction

public IFormInstruction(int opcode,
                        int numTargets)

IFormInstruction

public IFormInstruction(int opcode,
                        Displacement displacement,
                        int numTargets)
Create a branch relative that does not set the link register.

Parameters:
displacement - is the branch address
numTargets - specifies where the number of branch targets

IFormInstruction

public IFormInstruction(int opcode,
                        Displacement displacement,
                        int numTargets,
                        boolean absolute,
                        boolean link)
Parameters:
displacement - is the branch address
numTargets - specifies where the number of branch targets
absolute - is true if the displacement represents an absolute address
link - is true if this instruction sets the link register
Method Detail

independent

public boolean independent(Instruction inst,
                           RegisterSet registers)
Return true if this instruction is independent of the specified instruction. If instructions are independent, than one instruction can be moved before or after the other instruction without changing the semantics of the program.

Overrides:
independent in class Branch
Parameters:
inst - is the specified instruction

assembler

public void assembler(Assembler asm,
                      Emit emit)
Insert the assembler representation of the instruction into the output stream.

Specified by:
assembler in class Instruction

toString

public java.lang.String toString()
Overrides:
toString in class Branch