< prev index next >
src/hotspot/share/runtime/stackValue.cpp
Print this page
rev 52233 : Add scalable shapes for Arm Scalable Vector Extension.
Summary: Add scalable vector shapes to support Arm SVE better.
Reviewed-by: duke
@@ -40,91 +40,103 @@
// Vectors
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte64Vector):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte128Vector):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte256Vector):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte512Vector):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ByteScalableVector):
is_mask = false;
return T_BYTE;
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short64Vector):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short128Vector):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short256Vector):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short512Vector):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ShortScalableVector):
is_mask = false;
return T_SHORT;
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int64Vector):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int128Vector):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int256Vector):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int512Vector):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_IntScalableVector):
is_mask = false;
return T_INT;
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long64Vector):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long128Vector):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long256Vector):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long512Vector):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_LongScalableVector):
is_mask = false;
return T_LONG;
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float64Vector):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float128Vector):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float256Vector):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float512Vector):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_FloatScalableVector):
is_mask = false;
return T_FLOAT;
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double64Vector):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double128Vector):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double256Vector):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double512Vector):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_DoubleScalableVector):
is_mask = false;
return T_DOUBLE;
// Masks
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte64Vector_Byte64Mask):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte128Vector_Byte128Mask):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte256Vector_Byte256Mask):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte512Vector_Byte512Mask):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ByteScalableVector_ByteScalableMask):
is_mask = true;
return T_BYTE;
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short64Vector_Short64Mask):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short128Vector_Short128Mask):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short256Vector_Short256Mask):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short512Vector_Short512Mask):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ShortScalableVector_ShortScalableMask):
is_mask = true;
return T_SHORT;
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int64Vector_Int64Mask):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int128Vector_Int128Mask):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int256Vector_Int256Mask):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int512Vector_Int512Mask):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_IntScalableVector_IntScalableMask):
is_mask = true;
return T_INT;
// LongMask
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long64Vector_Long64Mask):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long128Vector_Long128Mask):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long256Vector_Long256Mask):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long512Vector_Long512Mask):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_LongScalableVector_LongScalableMask):
is_mask = true;
return T_LONG;
// FloatMask
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float64Vector_Float64Mask):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float128Vector_Float128Mask):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float256Vector_Float256Mask):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float512Vector_Float512Mask):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_FloatScalableVector_FloatScalableMask):
is_mask = true;
return T_INT;
// DoubleMask
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double64Vector_Double64Mask):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double128Vector_Double128Mask):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double256Vector_Double256Mask):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double512Vector_Double512Mask):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_DoubleScalableVector_DoubleScalableMask):
is_mask = true;
return T_LONG;
default:
fatal("unknown klass: %s", ik->name()->as_utf8());
@@ -188,10 +200,24 @@
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float512Vector_Float512Mask):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double512Vector):
case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double512Vector_Double512Mask):
return (512 / 8);
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ByteScalableVector):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ByteScalableVector_ByteScalableMask):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ShortScalableVector):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ShortScalableVector_ShortScalableMask):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_IntScalableVector):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_IntScalableVector_IntScalableMask):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_LongScalableVector):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_LongScalableVector_LongScalableMask):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_FloatScalableVector):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_FloatScalableVector_FloatScalableMask):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_DoubleScalableVector):
+ case vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_DoubleScalableVector_DoubleScalableMask):
+ return Matcher::max_vector_size(T_BYTE);
+
default:
fatal("unknown klass: %s", ik->name()->as_utf8());
return -1;
}
}
< prev index next >