| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectscale.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 | regIf 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 X86Instructionpublic int getReg()
getReg in class X86Instructionpublic void setReg(int reg)
setReg in class X86Instructionpublic int getDestRegister()
getDestRegister in class Instructionpublic void remapRegisters(int[] map)
Instruction
remapRegisters in class X86Instructionmap - maps from the virtual register to real register
public void remapDestRegister(int oldReg,
                              int newReg)
remapDestRegister in class X86InstructionoldReg - is the previous destination registernewReg - is the new destination register
public void remapSrcRegister(int oldReg,
                             int newReg)
remapSrcRegister in class X86InstructionoldReg - is the previous source registernewReg - is the new source register
public void specifyRegisterUsage(RegisterAllocator rs,
                                 int index,
                                 int strength)
specifyRegisterUsage in class X86Instructionrs - 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 X86Instructionpublic java.lang.String toString()
toString in class X86Instruction| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||