public final class AArch64ArrayCompareToOp extends AArch64LIRInstruction
IMPORTANT: If both array kinds are not the same (i.e., one is a Char array and another is
a Byte array), then byte array's value and length will be the first passed value and the char
array's value and length will be the second passed value; however, even if the inputs are
swapped, kind1 and kind2 will be in the original order. See AArch64GraphBuilderPlugins
registerStringLatin1Plugins and registerStringUTF16Plugins for the arrangement of values.
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 |
protected Value |
length1Value |
protected Value |
length1ValueTemp |
protected Value |
length2Value |
protected Value |
length2ValueTemp |
protected Value |
resultValue |
protected Value |
temp1 |
protected Value |
temp2 |
protected Value |
temp3 |
protected Value |
temp4 |
protected Value |
temp5 |
protected Value |
temp6 |
static LIRInstructionClass<AArch64ArrayCompareToOp> |
TYPE |
protected AllocatableValue |
vectorTemp1 |
protected AllocatableValue |
vectorTemp2 |
protected AllocatableValue |
vectorTemp3 |
protected AllocatableValue |
vectorTemp4 |
protected AllocatableValue |
vectorTemp5 |
ADDRESS_FLAGS, ALLOWED_FLAGS| Constructor and Description |
|---|
AArch64ArrayCompareToOp(LIRGeneratorTool tool,
JavaKind kind1,
JavaKind kind2,
int array1BaseOffset,
int array2BaseOffset,
Value result,
Value array1,
Value array2,
Value length1,
Value length2) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
emitCode(CompilationResultBuilder crb,
AArch64MacroAssembler masm) |
emitCodeaddStackSlotsToTemporaries, destroysCallerSavedRegisters, forEachAlive, forEachAlive, forEachInput, forEachInput, forEachOutput, forEachOutput, forEachRegisterHint, forEachRegisterHint, forEachState, forEachState, forEachState, forEachState, forEachTemp, forEachTemp, getComment, getLIRInstructionClass, getPosition, hashCode, hasOperands, hasState, id, isLoadConstantOp, isMoveOp, isValueMoveOp, name, needsClearUpperVectorRegisters, setComment, setId, setPosition, toString, toString, toStringWithIdPrefix, verify, visitEachAlive, visitEachAlive, visitEachInput, visitEachInput, visitEachOutput, visitEachOutput, visitEachState, visitEachState, visitEachTemp, visitEachTemppublic static final LIRInstructionClass<AArch64ArrayCompareToOp> TYPE
protected Value resultValue
protected Value array1Value
protected Value array2Value
protected Value length1Value
protected Value length2Value
protected Value length1ValueTemp
protected Value length2ValueTemp
protected Value temp1
protected Value temp2
protected Value temp3
protected Value temp4
protected Value temp5
protected Value temp6
protected AllocatableValue vectorTemp1
protected AllocatableValue vectorTemp2
protected AllocatableValue vectorTemp3
protected AllocatableValue vectorTemp4
protected AllocatableValue vectorTemp5
public AArch64ArrayCompareToOp(LIRGeneratorTool tool, JavaKind kind1, JavaKind kind2, int array1BaseOffset, int array2BaseOffset, Value result, Value array1, Value array2, Value length1, Value length2)
protected void emitCode(CompilationResultBuilder crb, AArch64MacroAssembler masm)
emitCode in class AArch64LIRInstruction