scale.backend.x86
Class X86RRBranch
java.lang.Object
scale.backend.Instruction
scale.backend.Branch
scale.backend.x86.X86Branch
scale.backend.x86.X86RBranch
scale.backend.x86.X86RRBranch
- All Implemented Interfaces:
- java.lang.Cloneable
- Direct Known Subclasses:
- X86RRDBranch
public class X86RRBranch
- extends X86RBranch
This is the base class for all X86 branches
that reference two registers.
$Id$
Copyright 2008 by James H. Burrill
All Rights Reserved.
Field Summary |
protected int |
reg2
|
Constructor Summary |
X86RRBranch(int opcode,
boolean pt,
int numTargets,
int reg,
int reg2)
|
Method Summary |
void |
assembler(Assembler asm,
Emit emit)
Insert the assembler representation of the instruction into the
output stream. |
protected boolean |
checkForm(int opcode)
|
int |
getReg2()
|
void |
remapRegisters(int[] map)
Map the virtual registers referenced in the instruction to the
specified real registers. |
void |
remapSrcRegister(int oldReg,
int newReg)
Map the registers used in the instruction as sources to the specified register. |
void |
setReg2(int reg2)
|
java.lang.String |
toString()
|
boolean |
uses(int register,
RegisterSet registers)
Return true if the instruction uses the register. |
Methods inherited from class scale.backend.x86.X86Branch |
assembleDisp, buildAddress, canBeDeleted, defs, getDisplacement, getOpcode, getOperandSize, getOperandSizeLabel, getPt, instructionSize, isReversed, isUnconditional, mods, remapDestRegister, setDisplacement, setOpcode, setOperandSize, setReturnedStructSize, setScale, specifyRegisterUsage |
Methods inherited from class scale.backend.Branch |
additionalRegsKilled, additionalRegsSet, additionalRegsUsed, addTarget, copy, getBranchProbability, getExecutionCycles, getRegsKilled, getTarget, independent, isBranch, isCall, markAsCall, nullify, numTargets, setBranchProbability, 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 |
reg2
protected int reg2
X86RRBranch
public X86RRBranch(int opcode,
boolean pt,
int numTargets,
int reg,
int reg2)
checkForm
protected boolean checkForm(int opcode)
- Overrides:
checkForm
in class X86RBranch
getReg2
public int getReg2()
- Overrides:
getReg2
in class X86Branch
setReg2
public void setReg2(int reg2)
- Overrides:
setReg2
in class X86Branch
remapRegisters
public void remapRegisters(int[] map)
- Description copied from class:
Branch
- Map the virtual registers referenced in the instruction to the
specified real registers. The mapping is specified using an
array that is indexed by the virtual register to return the real
register.
- Overrides:
remapRegisters
in class X86RBranch
- Parameters:
map
- maps from the virtual register to real register
remapSrcRegister
public void remapSrcRegister(int oldReg,
int newReg)
- Map the registers used in the instruction as sources to the specified register.
If the register is not used as a source register, no change is made.
- Overrides:
remapSrcRegister
in class X86RBranch
- Parameters:
oldReg
- is the previous source registernewReg
- is the new source register
uses
public boolean uses(int register,
RegisterSet registers)
- Return true if the instruction uses the register.
- Overrides:
uses
in class X86RBranch
assembler
public void assembler(Assembler asm,
Emit emit)
- Insert the assembler representation of the instruction into the
output stream.
- Overrides:
assembler
in class X86RBranch
toString
public java.lang.String toString()
- Overrides:
toString
in class X86RBranch