|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object scale.backend.Instruction scale.backend.x86.X86Instruction scale.backend.x86.X86RInstruction
public class X86RInstruction
This is the base class for all X86 instructions except branches that def a register.
$Id$
Copyright 2008 by James H. Burrill
All Rights Reserved.
Field Summary | |
---|---|
protected int |
reg
If the instruction modifies a register, it is specified by this member. |
Fields inherited from class scale.backend.x86.X86Instruction |
---|
opcode, setCC, useCC |
Constructor Summary | |
---|---|
X86RInstruction(int opcode,
int reg)
|
Method Summary | |
---|---|
void |
assembler(Assembler asm,
Emit emit)
Insert the assembler representation of the instruction into the output stream. |
protected boolean |
checkForm(int opcode)
Return true if the specified form is valid for this instruction opcode. |
boolean |
defs(int register,
RegisterSet registers)
Return true if the instruction sets the register |
int |
getDestRegister()
Return the destination register or -1 if none. |
int |
getReg()
|
void |
remapDestRegister(int oldReg,
int newReg)
Map the registers defined in the instruction as destinations to the specified register. |
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 |
setReg(int reg)
|
void |
specifyRegisterUsage(RegisterAllocator rs,
int index,
int strength)
Specify the registers used by this instruction. |
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.X86Instruction |
---|
assembleDisp, buildAddress, canBeDeleted, getDisplacement, getDisplacement2, getOpcode, getOperandSize, getOperandSizeLabel, getReg2, getReg3, getScale, independent, independentCC, instructionSize, isReversed, setDisplacement, setDisplacement2, setOpcode, setOperandSize, setReg2, setReg3, setScale, setsCC, setSetCC, setsSpecialReg, setUseCC, usesCC |
Methods inherited from class scale.backend.Instruction |
---|
clone, copy, ehash, getBBID, getCopyDest, getCopySrc, getExecutionCycles, getFunctionalUnit, getLoopNumber, getNext, getPredicate, getPredicates, getSrcRegisters, getTag, isBranch, isCopy, isLabel, isLoad, isMandatory, isMarker, isPhi, isPredicated, isPredicatedOnTrue, isPrefetch, isSpillInstruction, isSpillLoadPoint, isSpillStorePoint, isStore, markSpillInstruction, mods, nullified, nullify, numPredicates, removePredicates, setBBID, setLoopNumber, setMandatory, setNext, setPredicate, setPredicate, setPredicatedOnTrue, setPredicates, setTag, specifyNotSpillLoadPoint, specifySpillStorePoint |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected int reg
Constructor Detail |
---|
public X86RInstruction(int opcode, int reg)
Method Detail |
---|
protected boolean checkForm(int opcode)
X86Instruction
checkForm
in class X86Instruction
public int getReg()
getReg
in class X86Instruction
public void setReg(int reg)
setReg
in class X86Instruction
public int getDestRegister()
getDestRegister
in class Instruction
public void remapRegisters(int[] map)
Instruction
remapRegisters
in class X86Instruction
map
- maps from the virtual register to real registerpublic void remapDestRegister(int oldReg, int newReg)
remapDestRegister
in class X86Instruction
oldReg
- is the previous destination registernewReg
- is the new destination registerpublic void remapSrcRegister(int oldReg, int newReg)
remapSrcRegister
in class X86Instruction
oldReg
- is the previous source registernewReg
- is the new source registerpublic void specifyRegisterUsage(RegisterAllocator rs, int index, int strength)
specifyRegisterUsage
in class X86Instruction
rs
- is the register set in useindex
- is an index associated with the instructionstrength
- is the importance of the instructionRegisterAllocator.useRegister(int,int,int)
,
RegisterAllocator.defRegister(int,int)
public boolean uses(int register, RegisterSet registers)
uses
in class X86Instruction
public boolean defs(int register, RegisterSet registers)
defs
in class X86Instruction
public void assembler(Assembler asm, Emit emit)
assembler
in class X86Instruction
public java.lang.String toString()
toString
in class X86Instruction
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |