public class HotSpotVMConfig extends Object
Modifier and Type | Class and Description |
---|---|
class |
HotSpotVMConfig.AbstractConstant |
static class |
HotSpotVMConfig.CompressEncoding
A compact representation of the different encoding strategies for Objects and metadata.
|
(package private) class |
HotSpotVMConfig.Flags |
(package private) class |
HotSpotVMConfig.VMFields |
(package private) class |
HotSpotVMConfig.VMIntConstants |
(package private) class |
HotSpotVMConfig.VMLongConstants |
(package private) class |
HotSpotVMConfig.VMTypes |
Constructor and Description |
---|
HotSpotVMConfig(CompilerToVM compilerToVm) |
Modifier and Type | Method and Description |
---|---|
long |
arrayPrototypeMarkWord()
See markOopDesc::prototype().
|
int |
cardtableShift() |
long |
cardtableStartAddress() |
boolean |
check() |
private void |
checkField(Field field,
Object value) |
long |
codeCacheHighBoundary() |
long |
codeCacheLowBoundary() |
int |
g1CardQueueBufferOffset() |
int |
g1CardQueueIndexOffset() |
int |
g1SATBQueueBufferOffset() |
int |
g1SATBQueueIndexOffset() |
int |
g1SATBQueueMarkingOffset() |
long |
gcTotalCollectionsAddress() |
String |
getCodeInstallResultDescription(int codeInstallResult) |
String |
getHostArchitectureName()
Gets the host architecture name for the purpose of finding the corresponding
backend.
|
HotSpotVMConfig.CompressEncoding |
getKlassEncoding() |
HotSpotVMConfig.CompressEncoding |
getOopEncoding() |
String |
getVMFieldCSymbol(long value)
Returns the name of the C/C++ symbol that is associated (via HotSpotVMField annotation) with
the HotSpotVMConfig object's field containing
value ; returns null if no field holds
the provided address. |
String |
getVMValueCSymbol(long value)
Returns the name of the C/C++ symbol that is associated (via HotSpotVMValue annotation) with
the HotSpotVMConfig object's field containing
value ; returns null if no field holds
the provided address. |
long |
inlineCacheMissStub() |
private static boolean |
isRequired(String currentArch,
String[] archsSpecification)
Determines if the current architecture is included in a given architecture set specification.
|
int |
layoutHelperElementTypePrimitiveInPlace()
This filters out the bit that differentiates a type array from an object array.
|
int |
logMinObjAlignment() |
int |
threadJavaFrameAnchorFlagsOffset()
This value is only valid on SPARC.
|
int |
threadLastJavaFpOffset()
This value is only valid on AMD64.
|
int |
threadLastJavaPcOffset() |
int |
threadLastJavaSpOffset() |
int |
threadTlabEndOffset() |
int |
threadTlabPfTopOffset() |
int |
threadTlabSizeOffset() |
int |
threadTlabStartOffset() |
int |
threadTlabTopOffset() |
int |
tlabFastRefillWasteOffset() |
long |
tlabIntArrayMarkWord()
See markOopDesc::copy_set_hash().
|
int |
tlabNumberOfRefillsOffset() |
int |
tlabRefillWasteLimitOffset() |
int |
tlabSlowAllocationsOffset() |
String |
toString() |
private boolean |
verifyInitialization()
Check that the initialization produces the same result as the values captured through
vmStructs.
|
public final int maxFrameSize
private final HotSpotVMConfig.CompressEncoding oopEncoding
private final HotSpotVMConfig.CompressEncoding klassEncoding
private long gHotSpotVMStructs
private long gHotSpotVMStructEntryTypeNameOffset
private long gHotSpotVMStructEntryFieldNameOffset
private long gHotSpotVMStructEntryTypeStringOffset
private long gHotSpotVMStructEntryIsStaticOffset
private long gHotSpotVMStructEntryOffsetOffset
private long gHotSpotVMStructEntryAddressOffset
private long gHotSpotVMStructEntryArrayStride
private long gHotSpotVMTypes
private long gHotSpotVMTypeEntryTypeNameOffset
private long gHotSpotVMTypeEntrySuperclassNameOffset
private long gHotSpotVMTypeEntryIsOopTypeOffset
private long gHotSpotVMTypeEntryIsIntegerTypeOffset
private long gHotSpotVMTypeEntryIsUnsignedOffset
private long gHotSpotVMTypeEntrySizeOffset
private long gHotSpotVMTypeEntryArrayStride
private long gHotSpotVMIntConstants
private long gHotSpotVMIntConstantEntryNameOffset
private long gHotSpotVMIntConstantEntryValueOffset
private long gHotSpotVMIntConstantEntryArrayStride
private long gHotSpotVMLongConstants
private long gHotSpotVMLongConstantEntryNameOffset
private long gHotSpotVMLongConstantEntryValueOffset
private long gHotSpotVMLongConstantEntryArrayStride
public boolean cAssertions
public final boolean windowsOs
public int codeEntryAlignment
public boolean verifyOops
public boolean ciTime
public boolean ciTimeEach
public int compileTheWorldStartAt
public int compileTheWorldStopAt
public boolean dontCompileHugeMethods
public int hugeMethodLimit
public boolean printInlining
public boolean useFastLocking
public boolean forceUnreachable
public boolean useTLAB
public boolean useBiasedLocking
public boolean usePopCountInstruction
public boolean useCountLeadingZerosInstruction
public boolean useCountTrailingZerosInstruction
public boolean useAESIntrinsics
public boolean useCRC32Intrinsics
public boolean useG1GC
public boolean useCMSGC
public int allocatePrefetchStyle
public int allocatePrefetchInstr
public int allocatePrefetchLines
public int allocateInstancePrefetchLines
public int allocatePrefetchStepSize
public int allocatePrefetchDistance
public boolean flightRecorder
private long universeCollectedHeap
private int collectedHeapTotalCollectionsOffset
public boolean useDeferredInitBarriers
public boolean useHeapProfiler
public boolean useCompressedOops
public boolean useCompressedClassPointers
public long narrowOopBase
public int narrowOopShift
public int objectAlignment
public long narrowKlassBase
public int narrowKlassShift
public int logKlassAlignment
public int useSSE
public int useAVX
public int x86CPUFeatures
public int cpuCX8
public int cpuCMOV
public int cpuFXSR
public int cpuHT
public int cpuMMX
public int cpu3DNOWPREFETCH
public int cpuSSE
public int cpuSSE2
public int cpuSSE3
public int cpuSSSE3
public int cpuSSE4A
public int cpuSSE41
public int cpuSSE42
public int cpuPOPCNT
public int cpuLZCNT
public int cpuTSC
public int cpuTSCINV
public int cpuAVX
public int cpuAVX2
public int cpuAES
public int cpuERMS
public int cpuCLMUL
public int cpuBMI1
public int sparcFeatures
public int vis3Instructions
public int vis2Instructions
public int vis1Instructions
public int cbcondInstructions
public int stackShadowPages
public boolean useStackBanging
public int stackBias
public int markOffset
public int hubOffset
public int handleHandleOffset
public int prototypeMarkWordOffset
public int subklassOffset
public int nextSiblingOffset
public int superCheckOffsetOffset
public int secondarySuperCacheOffset
public int secondarySupersOffset
public int classMirrorOffset
Class
) in a Klass.public int klassSuperKlassOffset
public int klassModifierFlagsOffset
public int klassAccessFlagsOffset
public int klassLayoutHelperOffset
public int klassLayoutHelperNeutralValue
public int klassLayoutHelperInstanceSlowPathBit
public int layoutHelperLog2ElementSizeShift
public int layoutHelperLog2ElementSizeMask
public int layoutHelperElementTypeShift
public int layoutHelperElementTypeMask
public int layoutHelperHeaderSizeShift
public int layoutHelperHeaderSizeMask
public int layoutHelperArrayTagShift
public int layoutHelperArrayTagTypeValue
public int layoutHelperArrayTagObjectValue
public final int arrayKlassLayoutHelperIdentifier
public int arrayKlassComponentMirrorOffset
public int vtableEntrySize
public int vtableEntryMethodOffset
public int instanceKlassVtableStartOffset
public int instanceKlassVtableLengthOffset
public int baseVtableLength
public int arrayLengthOffset
public int arrayU1LengthOffset
public int arrayU1DataOffset
public int arrayU2DataOffset
public int metaspaceArrayLengthOffset
public int metaspaceArrayBaseOffset
public int instanceKlassSourceFileNameIndexOffset
public int instanceKlassInitStateOffset
public int instanceKlassConstantsOffset
public int instanceKlassFieldsOffset
public int instanceKlassStateLinked
public int instanceKlassStateFullyInitialized
public int arrayClassElementOffset
public int fieldInfoAccessFlagsOffset
public int fieldInfoNameIndexOffset
public int fieldInfoSignatureIndexOffset
public int fieldInfoInitvalIndexOffset
public int fieldInfoLowPackedOffset
public int fieldInfoHighPackedOffset
public int fieldInfoFieldSlots
public int fieldInfoTagSize
public int jvmAccFieldInternal
public int jvmAccFieldStable
public int jvmAccFieldHasGenericSignature
public int jvmAccWrittenFlags
public int threadTlabOffset
public int javaThreadAnchorOffset
public int threadObjectOffset
public int osThreadOffset
public int javaThreadDirtyCardQueueOffset
public int threadIsMethodHandleReturnOffset
public int javaThreadSatbMarkQueueOffset
public int threadObjectResultOffset
public int jvmciCountersThreadOffset
public static final long INVALID_RTLD_DEFAULT_HANDLE
rtldDefault
.public long dllLoad
void* (const char *filename, char *ebuf, int ebuflen)
public long dllLookup
void* (void* handle, const char* name)
public long rtldDefault
dllLookup
means lookup will
return the first occurrence of the desired symbol using the default library search order. If
this field is -559023410L, then this capability is not supported on
the current platform.public int threadExceptionOopOffset
NOTE: This is not the same as pendingExceptionOffset
.
public int threadExceptionPcOffset
private int javaFrameAnchorLastJavaSpOffset
private int javaFrameAnchorLastJavaPcOffset
private int javaFrameAnchorLastJavaFpOffset
private int javaFrameAnchorFlagsOffset
public int runtimeCallStackSize
public int frameInterpreterFrameSenderSpOffset
public int frameInterpreterFrameLastSpOffset
public int ptrQueueActiveOffset
public int ptrQueueBufferOffset
public int ptrQueueIndexOffset
public int osThreadInterruptedOffset
public int unlockedMask
public int biasedLockMaskInPlace
public int ageMaskInPlace
public int epochMaskInPlace
public long markOopDescHashShift
public long markOopDescHashMask
public long markOopDescHashMaskInPlace
public int biasedLockPattern
public int markWordNoHashInPlace
public int markWordNoLockInPlace
public int pendingExceptionOffset
NOTE: This is not the same as threadExceptionOopOffset
.
public int pendingDeoptimizationOffset
public int pendingFailedSpeculationOffset
public int pendingTransferToInterpreterOffset
public int identityHashCodeShift
public int uninitializedIdentityHashCodeValue
public int methodAccessFlagsOffset
public int methodConstMethodOffset
public int methodIntrinsicIdOffset
public int methodFlagsOffset
public int methodVtableIndexOffset
public int methodFlagsJfrTowrite
public int methodFlagsCallerSensitive
public int methodFlagsForceInline
public int methodFlagsDontInline
public int methodFlagsHidden
public int nonvirtualVtableIndex
public int invalidVtableIndex
public int invocationEntryBci
public int jvmAccMonitorMatch
public int jvmAccHasMonitorBytecodes
public int jvmciEnvTaskOffset
public int jvmciEnvJvmtiCanHotswapOrPostBreakpointOffset
public int compileTaskNumInlinedBytecodesOffset
public int extraStackEntries
public int constMethodConstantsOffset
public int constMethodFlagsOffset
public int constMethodCodeSizeOffset
public int constMethodNameIndexOffset
public int constMethodSignatureIndexOffset
public int constMethodMaxStackOffset
public int methodMaxLocalsOffset
public int constMethodHasLineNumberTable
public int constMethodHasLocalVariableTable
public int constMethodHasExceptionTable
public int exceptionTableElementSize
public int exceptionTableElementStartPcOffset
public int exceptionTableElementEndPcOffset
public int exceptionTableElementHandlerPcOffset
public int exceptionTableElementCatchTypeIndexOffset
public int localVariableTableElementSize
public int localVariableTableElementStartBciOffset
public int localVariableTableElementLengthOffset
public int localVariableTableElementNameCpIndexOffset
public int localVariableTableElementDescriptorCpIndexOffset
public int localVariableTableElementSignatureCpIndexOffset
public int localVariableTableElementSlotOffset
public int constantPoolSize
public int constantPoolTagsOffset
public int constantPoolCacheOffset
public int constantPoolHolderOffset
public int constantPoolLengthOffset
public int constantPoolResolvedReferencesOffset
public int constantPoolReferenceMapOffset
public int constantPoolCpCacheIndexTag
public int constantPoolCacheSize
public int constantPoolCacheLengthOffset
public int constantPoolCacheEntrySize
public int constantPoolCacheEntryIndicesOffset
public int constantPoolCacheEntryF1Offset
public int constantPoolCacheEntryF2Offset
public int constantPoolCacheEntryFlagsOffset
public int constantPoolCacheEntryHasAppendixShift
public int constantPoolCacheEntryCpIndexMask
public int constantPoolCacheEntryIndyResolvedReferencesAppendixOffset
public int jvmConstantUtf8
public int jvmConstantInteger
public int jvmConstantLong
public int jvmConstantFloat
public int jvmConstantDouble
public int jvmConstantClass
public int jvmConstantUnresolvedClass
public int jvmConstantUnresolvedClassInError
public int jvmConstantString
public int jvmConstantFieldref
public int jvmConstantMethodref
public int jvmConstantInterfaceMethodref
public int jvmConstantNameAndType
public int jvmConstantMethodHandle
public int jvmConstantMethodHandleInError
public int jvmConstantMethodType
public int jvmConstantMethodTypeInError
public int jvmConstantInvokeDynamic
public int jvmConstantExternalMax
public int jvmConstantInternalMin
public int jvmConstantInternalMax
public int heapWordSize
public int symbolPointerSize
public int symbolLengthOffset
public int symbolBodyOffset
public long vmSymbolsSymbols
public int vmSymbolsFirstSID
public int vmSymbolsSIDLimit
public int klassHasFinalizerFlag
public int syntheticFlag
public int recognizedFieldModifiers
public long nonOopBits
public long verifyOopCounterAddress
public long verifyOopMask
public long verifyOopBits
public int collectedHeapBarrierSetOffset
public int logOfHRGrainBytes
private int barrierSetKindOffset
public int barrierSetCardTableModRef
public int barrierSetCardTableExtension
public int barrierSetG1SATBCT
public int barrierSetG1SATBCTLogging
public int barrierSetModRef
public int barrierSetOther
private int cardTableModRefBSByteMapBaseOffset
public int cardTableModRefBSCardShift
public byte dirtyCardValue
public byte g1YoungCardValue
private final long cardtableStartAddress
private final int cardtableShift
public long safepointPollingAddress
public int klassOffset
public int arrayKlassOffset
public int methodDataOffset
public int methodCompiledEntryOffset
public int methodCodeOffset
public int methodDataSize
public int methodDataDataSize
public int methodDataOopDataOffset
public int methodDataOopTrapHistoryOffset
public int methodDataIRSizeOffset
public int nmethodEntryOffset
public int nmethodCompLevelOffset
public int compilationLevelFullOptimization
public int basicLockSize
public int basicLockDisplacedHeaderOffset
public long heapEndAddress
public long heapTopAddress
public int threadAllocatedBytesOffset
public int tlabRefillWasteIncrement
public int tlabAlignmentReserve
private int threadLocalAllocBufferStartOffset
private int threadLocalAllocBufferEndOffset
private int threadLocalAllocBufferTopOffset
private int threadLocalAllocBufferPfTopOffset
private int threadLocalAllocBufferSlowAllocationsOffset
private int threadLocalAllocBufferFastRefillWasteOffset
private int threadLocalAllocBufferNumberOfRefillsOffset
private int threadLocalAllocBufferRefillWasteLimitOffset
private int threadLocalAllocBufferDesiredSizeOffset
public boolean tlabStats
public boolean inlineContiguousAllocationSupported
public int dataLayoutHeaderSize
public int dataLayoutTagOffset
public int dataLayoutFlagsOffset
public int dataLayoutBCIOffset
public int dataLayoutCellsOffset
public int dataLayoutCellSize
public int dataLayoutNoTag
public int dataLayoutBitDataTag
public int dataLayoutCounterDataTag
public int dataLayoutJumpDataTag
public int dataLayoutReceiverTypeDataTag
public int dataLayoutVirtualCallDataTag
public int dataLayoutRetDataTag
public int dataLayoutBranchDataTag
public int dataLayoutMultiBranchDataTag
public int dataLayoutArgInfoDataTag
public int dataLayoutCallTypeDataTag
public int dataLayoutVirtualCallTypeDataTag
public int dataLayoutParametersTypeDataTag
public int dataLayoutSpeculativeTrapDataTag
public int bciProfileWidth
public int typeProfileWidth
public int methodProfileWidth
private int codeBlobCodeOffsetOffset
private long inlineCacheMissBlob
public long handleDeoptStub
public long uncommonTrapStub
private final long inlineCacheMissStub
private long codeCacheHeap
private int codeHeapMemoryOffset
private int virtualSpaceLowBoundaryOffset
private int virtualSpaceHighBoundaryOffset
private final long codeCacheLowBoundary
private final long codeCacheHighBoundary
public long aescryptEncryptBlockStub
public long aescryptDecryptBlockStub
public long cipherBlockChainingEncryptAESCryptStub
public long cipherBlockChainingDecryptAESCryptStub
public long updateBytesCRC32Stub
public long crcTableAddress
public long jbyteArraycopy
public long jshortArraycopy
public long jintArraycopy
public long jlongArraycopy
public long oopArraycopy
public long oopArraycopyUninit
public long jbyteDisjointArraycopy
public long jshortDisjointArraycopy
public long jintDisjointArraycopy
public long jlongDisjointArraycopy
public long oopDisjointArraycopy
public long oopDisjointArraycopyUninit
public long jbyteAlignedArraycopy
public long jshortAlignedArraycopy
public long jintAlignedArraycopy
public long jlongAlignedArraycopy
public long oopAlignedArraycopy
public long oopAlignedArraycopyUninit
public long jbyteAlignedDisjointArraycopy
public long jshortAlignedDisjointArraycopy
public long jintAlignedDisjointArraycopy
public long jlongAlignedDisjointArraycopy
public long oopAlignedDisjointArraycopy
public long oopAlignedDisjointArraycopyUninit
public long checkcastArraycopy
public long checkcastArraycopyUninit
public long unsafeArraycopy
public long genericArraycopy
public long newInstanceAddress
public long newArrayAddress
public long newMultiArrayAddress
public long dynamicNewArrayAddress
public long dynamicNewInstanceAddress
public long threadIsInterruptedAddress
public long vmMessageAddress
public long identityHashCodeAddress
public long exceptionHandlerForPcAddress
public long monitorenterAddress
public long monitorexitAddress
public long createNullPointerExceptionAddress
public long createOutOfBoundsExceptionAddress
public long logPrimitiveAddress
public long logObjectAddress
public long logPrintfAddress
public long vmErrorAddress
public long loadAndClearExceptionAddress
public long writeBarrierPreAddress
public long writeBarrierPostAddress
public long validateObject
public long testDeoptimizeCallInt
public long registerFinalizerAddress
public long exceptionHandlerForReturnAddressAddress
public long osrMigrationEndAddress
public long javaTimeMillisAddress
public long javaTimeNanosAddress
public long arithmeticSinAddress
public long arithmeticCosAddress
public long arithmeticTanAddress
public long arithmeticExpAddress
public long arithmeticLogAddress
public long arithmeticLog10Address
public long arithmeticPowAddress
public int jvmciCountersSize
public long deoptimizationFetchUnrollInfo
public long deoptimizationUncommonTrap
public long deoptimizationUnpackFrames
public int deoptReasonNone
public int deoptReasonNullCheck
public int deoptReasonRangeCheck
public int deoptReasonClassCheck
public int deoptReasonArrayCheck
public int deoptReasonUnreached0
public int deoptReasonTypeCheckInlining
public int deoptReasonOptimizedTypeCheck
public int deoptReasonNotCompiledExceptionHandler
public int deoptReasonUnresolved
public int deoptReasonJsrMismatch
public int deoptReasonDiv0Check
public int deoptReasonConstraint
public int deoptReasonLoopLimitCheck
public int deoptReasonAliasing
public int deoptReasonTransferToInterpreter
public int deoptReasonOSROffset
public int deoptActionNone
public int deoptActionMaybeRecompile
public int deoptActionReinterpret
public int deoptActionMakeNotEntrant
public int deoptActionMakeNotCompilable
public int deoptimizationActionBits
public int deoptimizationReasonBits
public int deoptimizationDebugIdBits
public int deoptimizationActionShift
public int deoptimizationReasonShift
public int deoptimizationDebugIdShift
public int deoptimizationUnpackDeopt
public int deoptimizationUnpackException
public int deoptimizationUnpackUncommonTrap
public int deoptimizationUnpackReexecute
public int deoptimizationUnrollBlockSizeOfDeoptimizedFrameOffset
public int deoptimizationUnrollBlockCallerAdjustmentOffset
public int deoptimizationUnrollBlockNumberOfFramesOffset
public int deoptimizationUnrollBlockTotalFrameSizesOffset
public int deoptimizationUnrollBlockFrameSizesOffset
public int deoptimizationUnrollBlockFramePcsOffset
public int deoptimizationUnrollBlockInitialInfoOffset
public int vmIntrinsicInvokeBasic
public int vmIntrinsicLinkToVirtual
public int vmIntrinsicLinkToStatic
public int vmIntrinsicLinkToSpecial
public int vmIntrinsicLinkToInterface
public int codeInstallResultOk
public int codeInstallResultDependenciesFailed
public int codeInstallResultDependenciesInvalid
public int codeInstallResultCacheFull
public int codeInstallResultCodeTooLarge
public int compilerToVMKlassTag
public int compilerToVMSymbolTag
public int MARKID_VERIFIED_ENTRY
public int MARKID_UNVERIFIED_ENTRY
public int MARKID_OSR_ENTRY
public int MARKID_EXCEPTION_HANDLER_ENTRY
public int MARKID_DEOPT_HANDLER_ENTRY
public int MARKID_INVOKEINTERFACE
public int MARKID_INVOKEVIRTUAL
public int MARKID_INVOKESTATIC
public int MARKID_INVOKESPECIAL
public int MARKID_INLINE_INVOKE
public int MARKID_POLL_NEAR
public int MARKID_POLL_RETURN_NEAR
public int MARKID_POLL_FAR
public int MARKID_POLL_RETURN_FAR
public int MARKID_CARD_TABLE_SHIFT
public int MARKID_CARD_TABLE_ADDRESS
public int MARKID_INVOKE_INVALID
public HotSpotVMConfig(CompilerToVM compilerToVm)
private static boolean isRequired(String currentArch, String[] archsSpecification)
currentArch
- archsSpecification
- specifies a set of architectures. A zero length value implies all
architectures.private boolean verifyInitialization()
public HotSpotVMConfig.CompressEncoding getOopEncoding()
public HotSpotVMConfig.CompressEncoding getKlassEncoding()
private void checkField(Field field, Object value)
public String getHostArchitectureName()
public long gcTotalCollectionsAddress()
public int logMinObjAlignment()
public int layoutHelperElementTypePrimitiveInPlace()
public int threadLastJavaSpOffset()
public int threadLastJavaPcOffset()
public int threadLastJavaFpOffset()
public int threadJavaFrameAnchorFlagsOffset()
public long arrayPrototypeMarkWord()
public long tlabIntArrayMarkWord()
public long cardtableStartAddress()
public int cardtableShift()
public int g1CardQueueIndexOffset()
public int g1CardQueueBufferOffset()
public int g1SATBQueueMarkingOffset()
public int g1SATBQueueIndexOffset()
public int g1SATBQueueBufferOffset()
public int tlabSlowAllocationsOffset()
public int tlabFastRefillWasteOffset()
public int tlabNumberOfRefillsOffset()
public int tlabRefillWasteLimitOffset()
public int threadTlabSizeOffset()
public int threadTlabStartOffset()
public int threadTlabEndOffset()
public int threadTlabTopOffset()
public int threadTlabPfTopOffset()
public long inlineCacheMissStub()
public long codeCacheLowBoundary()
public long codeCacheHighBoundary()
public String getCodeInstallResultDescription(int codeInstallResult)
public boolean check()
public String getVMValueCSymbol(long value)
value
; returns null if no field holds
the provided address.value
- value of the fieldpublic String getVMFieldCSymbol(long value)
value
; returns null if no field holds
the provided address.value
- value of the field