public final class AMD64CalcStringAttributesOp extends AMD64ComplexVectorOp
| Modifier and Type | Class and Description |
|---|---|
static class |
AMD64CalcStringAttributesOp.Op |
LIRInstruction.Alive, LIRInstruction.Def, LIRInstruction.OperandFlag, LIRInstruction.OperandMode, LIRInstruction.State, LIRInstruction.Temp, LIRInstruction.Use| Modifier and Type | Field and Description |
|---|---|
static int |
CR_16BIT
All codepoints are BMP (0x0000 - 0xffff, no UTF-16 surrogates).
|
static int |
CR_7BIT
All codepoints are ASCII (0x00 - 0x7f).
|
static int |
CR_8BIT
All codepoints are LATIN-1 (0x00 - 0xff).
|
static int |
CR_BROKEN_FIXED_WIDTH
The string is not encoded correctly in the given fixed-width encoding.
|
static int |
CR_BROKEN_MULTIBYTE
The string is not encoded correctly in the given multi-byte/variable-width encoding.
|
static int |
CR_VALID_FIXED_WIDTH
The string is encoded correctly in the given fixed-width encoding.
|
static int |
CR_VALID_MULTIBYTE
The string is encoded correctly in the given multi-byte/variable-width encoding.
|
static LIRInstructionClass<AMD64CalcStringAttributesOp> |
TYPE |
targetDescription, vectorSizeADDRESS_FLAGS, ALLOWED_FLAGS| Modifier and Type | Method and Description |
|---|---|
void |
emitCode(CompilationResultBuilder crb,
AMD64MacroAssembler asm) |
static AMD64CalcStringAttributesOp |
movParamsAndCreate(LIRGeneratorTool tool,
AMD64CalcStringAttributesOp.Op op,
Value array,
Value byteOffset,
Value length,
Value result,
boolean assumeValid)
Calculates the code range and codepoint length of strings in various encodings.
|
getVectorKind, needsClearUpperVectorRegisters, supports, supportsAVX2AndYMM, supportsAVX512VLBW, supportsAVX512VLBWAndZMM, supportsBMI2emitCodeaddStackSlotsToTemporaries, 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, setComment, setId, setPosition, toString, toString, toStringWithIdPrefix, verify, visitEachAlive, visitEachAlive, visitEachInput, visitEachInput, visitEachOutput, visitEachOutput, visitEachState, visitEachState, visitEachTemp, visitEachTemppublic static final LIRInstructionClass<AMD64CalcStringAttributesOp> TYPE
public static final int CR_7BIT
public static final int CR_8BIT
public static final int CR_16BIT
public static final int CR_VALID_FIXED_WIDTH
public static final int CR_BROKEN_FIXED_WIDTH
public static final int CR_VALID_MULTIBYTE
public static final int CR_BROKEN_MULTIBYTE
public static AMD64CalcStringAttributesOp movParamsAndCreate(LIRGeneratorTool tool, AMD64CalcStringAttributesOp.Op op, Value array, Value byteOffset, Value length, Value result, boolean assumeValid)
op - operation to run.array - arbitrary array.byteOffset - byteOffset to start from. Must include array base byteOffset!length - length of the array region to consider, scaled to AMD64CalcStringAttributesOp.Op.stride.assumeValid - assume that the string is encoded correctly.public void emitCode(CompilationResultBuilder crb, AMD64MacroAssembler asm)
emitCode in class AMD64LIRInstruction