public final class SPARCArrayEqualsOp extends SPARCLIRInstruction
SPARCLIRInstruction.SizeEstimate
LIRInstruction.Alive, LIRInstruction.Def, LIRInstruction.OperandFlag, LIRInstruction.OperandMode, LIRInstruction.State, LIRInstruction.Temp, LIRInstruction.Use
Modifier and Type | Field and Description |
---|---|
protected Value |
array1Value |
protected Value |
array2Value |
private int |
arrayBaseOffset |
private int |
arrayIndexScale |
private Kind |
kind |
protected Value |
lengthValue |
protected Value |
resultValue |
static SPARCLIRInstruction.SizeEstimate |
SIZE |
protected Value |
temp1 |
protected Value |
temp2 |
protected Value |
temp3 |
protected Value |
temp4 |
protected Value |
temp5 |
static LIRInstructionClass<SPARCArrayEqualsOp> |
TYPE |
private static int |
VECTOR_SIZE
|
delayedControlTransfer
ADDRESS_FLAGS, ALLOWED_FLAGS
Constructor and Description |
---|
SPARCArrayEqualsOp(LIRGeneratorTool tool,
Kind kind,
Value result,
Value array1,
Value array2,
Value length) |
Modifier and Type | Method and Description |
---|---|
private void |
emit8ByteCompare(SPARCMacroAssembler masm,
Register result,
Register array1,
Register array2,
Register length,
Label trueLabel,
Label falseLabel)
Emits code that uses 8-byte vector compares.
|
void |
emitCode(CompilationResultBuilder crb,
SPARCMacroAssembler masm) |
private void |
emitTailCompares(SPARCMacroAssembler masm,
Register result,
Register array1,
Register array2,
Label trueLabel,
Label falseLabel)
Emits code to compare the remaining 1 to 4 bytes.
|
emitCode, estimateSize, leavesRegisterWindow, setDelayedControlTransfer
destroysCallerSavedRegisters, forEachAlive, forEachAlive, forEachInput, forEachInput, forEachOutput, forEachOutput, forEachRegisterHint, forEachRegisterHint, forEachState, forEachState, forEachState, forEachState, forEachTemp, forEachTemp, getLIRInstructionClass, hasOperands, hasState, id, name, setId, toString, toStringWithIdPrefix, verify, visitEachAlive, visitEachAlive, visitEachInput, visitEachInput, visitEachOutput, visitEachOutput, visitEachState, visitEachState, visitEachTemp, visitEachTemp
public static final LIRInstructionClass<SPARCArrayEqualsOp> TYPE
public static final SPARCLIRInstruction.SizeEstimate SIZE
private final int arrayBaseOffset
private final int arrayIndexScale
protected Value resultValue
protected Value array1Value
protected Value array2Value
protected Value lengthValue
private static final int VECTOR_SIZE
public SPARCArrayEqualsOp(LIRGeneratorTool tool, Kind kind, Value result, Value array1, Value array2, Value length)
public void emitCode(CompilationResultBuilder crb, SPARCMacroAssembler masm)
emitCode
in class SPARCLIRInstruction
private void emit8ByteCompare(SPARCMacroAssembler masm, Register result, Register array1, Register array2, Register length, Label trueLabel, Label falseLabel)
private void emitTailCompares(SPARCMacroAssembler masm, Register result, Register array1, Register array2, Label trueLabel, Label falseLabel)