public class SPARCMacroAssembler extends SPARCAssembler
Modifier and Type | Class and Description |
---|---|
class |
SPARCMacroAssembler.ScratchRegister |
static class |
SPARCMacroAssembler.Sethix
This instruction is like sethi but for 64-bit values.
|
static class |
SPARCMacroAssembler.Setx |
SPARCAssembler.Annul, SPARCAssembler.Asi, SPARCAssembler.BitKey, SPARCAssembler.BitKeyIndex, SPARCAssembler.BitSpec, SPARCAssembler.Bpcc, SPARCAssembler.Bpr, SPARCAssembler.Br, SPARCAssembler.BranchPredict, SPARCAssembler.CBCond, SPARCAssembler.CC, SPARCAssembler.CompositeBitSpec, SPARCAssembler.ConditionFlag, SPARCAssembler.ContinousBitSpec, SPARCAssembler.ControlTransferOp, SPARCAssembler.Fcn, SPARCAssembler.MembarMask, SPARCAssembler.Op2Op, SPARCAssembler.Op2s, SPARCAssembler.Op3Op, SPARCAssembler.Op3s, SPARCAssembler.Opfs, SPARCAssembler.Ops, SPARCAssembler.RCondition, SPARCAssembler.Sethi, SPARCAssembler.SPARCOp
Assembler.InstructionCounter, Assembler.LabelHint
Modifier and Type | Field and Description |
---|---|
private boolean |
immediateConstantLoad
Use ld [reg+simm13], reg for loading constants (User has to make sure, that the size of the
constant table does not exceed simm13).
|
private int |
nextFreeScratchRegister |
private static SPARCAddress |
Placeholder
A sentinel value used as a place holder in an instruction stream for an address that will be
patched.
|
private SPARCMacroAssembler.ScratchRegister[] |
scratchRegister |
BPCC, BPR, BR, BRANCH, CALL, CBCOND, CCR_ICC_SHIFT, CCR_V_SHIFT, CCR_XCC_SHIFT, D10HI_MASK, D10HI_SHIFT, D10LO_MASK, D10LO_SHIFT, D16HI_MASK, D16HI_SHIFT, D16LO_MASK, D16LO_SHIFT, DISP19_MASK, DISP19_SHIFT, DISP22_MASK, DISP22_SHIFT, FBPCC, LDST, OP2_MASK, OP2_SHIFT, OP3, PC_RETURN_OFFSET, SETHI
Constructor and Description |
---|
SPARCMacroAssembler(TargetDescription target,
RegisterConfig registerConfig) |
add, add, addc, addc, addcc, addcc, and, and, andcc, andcc, andn, andn, andncc, andncc, bicc, bpcc, bpr, call, casa, casxa, cbcondw, cbcondw, cbcondx, cbcondx, fabsd, fabss, faddd, faddq, fadds, fandd, fbcc, fbpcc, fcmp, fdivd, fdivs, fdtoi, fdtos, fdtox, fitod, fitos, flushw, fmovd, fmovdcc, fmovs, fmovscc, fmt, fmt00, fmt10, fmuld, fmuls, fnegd, fnegs, fpadd32, fsmuld, fsqrtd, fsqrts, fsrc2d, fsrc2s, fstod, fstoi, fstox, fsubd, fsubs, fxtod, fxtos, fzerod, fzeros, getBits, getInstructionCounter, getSPARCOp, hasFeature, hi22, illtrap, insertNopAfterCBCond, isCBCond, isImm, isSimm, isSimm10, isSimm11, isSimm11, isSimm13, isSimm13, isSimm13, isSimm5, isWordDisp30, jmpl, jmpl, ld, ld, ld, lddf, ldf, ldsb, ldsh, ldsw, ldub, lduh, lduw, lduwa, ldx, ldxa, lo10, maxSimm, membar, minSimm, movcc, movcc, movdtox, movstosw, movstouw, movwtos, movxtod, mulx, mulx, nop, op3, op3, or, or, patchAddImmediate, patchUnbound, peephole, popc, popc, prefetch, rdpc, restore, save, save, sdivx, sdivx, sethi, simm, sll, sll, sllx, sllx, sra, sra, srax, srax, srl, srl, srlx, srlx, st, stb, stdf, stf, sth, stw, stx, sub, sub, subcc, subcc, ta, tcc, udivx, udivx, umulxhi, wrccr, wrccr, xnor, xnor, xor, xor, xorcc, xorcc
bind, close, createLabelName, emitByte, emitByte, emitInt, emitInt, emitLong, emitLong, emitShort, emitShort, emitString, emitString, emitString0, getByte, getInt, getShort, nameOf, position, requestLabelHint, reset
private static final SPARCAddress Placeholder
private final SPARCMacroAssembler.ScratchRegister[] scratchRegister
private int nextFreeScratchRegister
private boolean immediateConstantLoad
public SPARCMacroAssembler(TargetDescription target, RegisterConfig registerConfig)
public void setImmediateConstantLoad(boolean immediateConstantLoad)
immediateConstantLoad
protected final void patchJumpTarget(int branch, int branchTarget)
patchJumpTarget
in class Assembler
public AbstractAddress makeAddress(Register base, int displacement)
makeAddress
in class Assembler
public AbstractAddress getPlaceholder()
getPlaceholder
in class Assembler
public final void ensureUniquePC()
ensureUniquePC
in class Assembler
public void clrb(SPARCAddress addr)
public void clrh(SPARCAddress addr)
public void clrx(SPARCAddress addr)
public void jmp(SPARCAddress address)
public void restoreWindow()
public void ret()
public boolean isImmediateConstantLoad()
public SPARCMacroAssembler.ScratchRegister getScratchRegister()