Constructor and Description |
---|
Barriers() |
Modifier and Type | Method and Description |
---|---|
private static void |
arrayStoreBarrierHelper(Assembler asm,
BaselineCompilerImpl compiler,
NormalMethod barrier)
Helper function for primitive array stores
|
(package private) static void |
compileArrayLoadBarrier(Assembler asm,
boolean pushResult) |
(package private) static void |
compileArrayStoreBarrier(Assembler asm)
Generate code to perform an array store barrier.
|
(package private) static void |
compileArrayStoreBarrierByte(Assembler asm,
BaselineCompilerImpl compiler)
Generate code to perform a bastore barrier.
|
(package private) static void |
compileArrayStoreBarrierChar(Assembler asm,
BaselineCompilerImpl compiler)
Generate code to perform a castore barrier.
|
(package private) static void |
compileArrayStoreBarrierDouble(Assembler asm,
BaselineCompilerImpl compiler)
Generate code to perform a dastore barrier.
|
(package private) static void |
compileArrayStoreBarrierFloat(Assembler asm,
BaselineCompilerImpl compiler)
Generate code to perform a fastore barrier.
|
(package private) static void |
compileArrayStoreBarrierInt(Assembler asm,
BaselineCompilerImpl compiler)
Generate code to perform a iastore barrier.
|
(package private) static void |
compileArrayStoreBarrierLong(Assembler asm,
BaselineCompilerImpl compiler)
Generate code to perform a lastore barrier.
|
(package private) static void |
compileArrayStoreBarrierShort(Assembler asm,
BaselineCompilerImpl compiler)
Generate code to perform a sastore barrier.
|
(package private) static void |
compileGetfieldBarrier(Assembler asm,
RegisterConstants.GPR reg,
int locationMetadata) |
(package private) static void |
compileGetfieldBarrierImm(Assembler asm,
Offset fieldOffset,
int locationMetadata) |
(package private) static void |
compileGetstaticBarrier(Assembler asm,
RegisterConstants.GPR reg,
int locationMetadata) |
(package private) static void |
compileGetstaticBarrierImm(Assembler asm,
Offset fieldOffset,
int locationMetadata) |
(package private) static void |
compileModifyCheck(Assembler asm,
int offset) |
(package private) static void |
compilePutfieldBarrier(Assembler asm,
RegisterConstants.GPR offset,
int locationMetadata)
Generate code to perform a putfield barrier.
|
(package private) static void |
compilePutfieldBarrierAddress(Assembler asm,
RegisterConstants.GPR offset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a unboxed Address field.
|
(package private) static void |
compilePutfieldBarrierAddressImm(Assembler asm,
Offset fieldOffset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a unboxed Address field when
the field is at a known offset.
|
(package private) static void |
compilePutfieldBarrierBoolean(Assembler asm,
RegisterConstants.GPR offset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a boolean field.
|
(package private) static void |
compilePutfieldBarrierBooleanImm(Assembler asm,
Offset fieldOffset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a boolean field when
the field is at a known offset.
|
(package private) static void |
compilePutfieldBarrierByte(Assembler asm,
RegisterConstants.GPR offset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a byte field.
|
(package private) static void |
compilePutfieldBarrierByteImm(Assembler asm,
Offset fieldOffset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a byte field when
the field is at a known offset.
|
(package private) static void |
compilePutfieldBarrierChar(Assembler asm,
RegisterConstants.GPR offset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a char field.
|
(package private) static void |
compilePutfieldBarrierCharImm(Assembler asm,
Offset fieldOffset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a char field when
the field is at a known offset.
|
(package private) static void |
compilePutfieldBarrierDouble(Assembler asm,
RegisterConstants.GPR offset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a double field.
|
(package private) static void |
compilePutfieldBarrierDoubleImm(Assembler asm,
Offset fieldOffset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a double field when
the field is at a known offset.
|
(package private) static void |
compilePutfieldBarrierExtent(Assembler asm,
RegisterConstants.GPR offset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a unboxed Extent field.
|
(package private) static void |
compilePutfieldBarrierExtentImm(Assembler asm,
Offset fieldOffset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a unboxed Extent field when
the field is at a known offset.
|
(package private) static void |
compilePutfieldBarrierFloat(Assembler asm,
RegisterConstants.GPR offset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a float field.
|
(package private) static void |
compilePutfieldBarrierFloatImm(Assembler asm,
Offset fieldOffset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a float field when
the field is at a known offset.
|
(package private) static void |
compilePutfieldBarrierImm(Assembler asm,
Offset fieldOffset,
int locationMetadata)
Generate code to perform a putfield barrier when the field is at a known
offset.
|
(package private) static void |
compilePutfieldBarrierInt(Assembler asm,
RegisterConstants.GPR offset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a int field.
|
(package private) static void |
compilePutfieldBarrierIntImm(Assembler asm,
Offset fieldOffset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a int field when
the field is at a known offset.
|
(package private) static void |
compilePutfieldBarrierLong(Assembler asm,
RegisterConstants.GPR offset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a long field.
|
(package private) static void |
compilePutfieldBarrierLongImm(Assembler asm,
Offset fieldOffset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a long field when
the field is at a known offset.
|
(package private) static void |
compilePutfieldBarrierOffset(Assembler asm,
RegisterConstants.GPR offset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a unboxed Offset field.
|
(package private) static void |
compilePutfieldBarrierOffsetImm(Assembler asm,
Offset fieldOffset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a unboxed Offset field when
the field is at a known offset.
|
(package private) static void |
compilePutfieldBarrierShort(Assembler asm,
RegisterConstants.GPR offset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a short field.
|
(package private) static void |
compilePutfieldBarrierShortImm(Assembler asm,
Offset fieldOffset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a short field when
the field is at a known offset.
|
(package private) static void |
compilePutfieldBarrierWord(Assembler asm,
RegisterConstants.GPR offset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a unboxed Word field.
|
(package private) static void |
compilePutfieldBarrierWordImm(Assembler asm,
Offset fieldOffset,
int locationMetadata,
BaselineCompilerImpl compiler)
Generate code to perform a putfield barrier for a unboxed Word field when
the field is at a known offset.
|
(package private) static void |
compilePutstaticBarrier(Assembler asm,
RegisterConstants.GPR reg,
int locationMetadata) |
(package private) static void |
compilePutstaticBarrierImm(Assembler asm,
Offset fieldOffset,
int locationMetadata) |
private static void |
genNullCheck(Assembler asm,
RegisterConstants.GPR objRefReg)
Generate an implicit null check by loading the TIB of the given object.
|
private static void |
putfieldStoreBarrierHelper(Assembler asm,
BaselineCompilerImpl compiler,
Offset fieldOffset,
int locationMetadata,
NormalMethod barrier)
Private helper method for primitive putfields
|
private static void |
putfieldStoreBarrierHelper(Assembler asm,
BaselineCompilerImpl compiler,
RegisterConstants.GPR offset,
int locationMetadata,
NormalMethod barrier)
Private helper method for primitive putfields
|
Barriers()
static void compileArrayStoreBarrier(Assembler asm)
asm
- the assembler to generate the code inprivate static void arrayStoreBarrierHelper(Assembler asm, BaselineCompilerImpl compiler, NormalMethod barrier)
asm
- the assembler to generate the code incompiler
- the compiler instance to ensure correct parameter passingbarrier
- the designated barrierstatic void compileArrayStoreBarrierByte(Assembler asm, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code incompiler
- the compiler instance to ensure correct parameter passingstatic void compileArrayStoreBarrierChar(Assembler asm, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code incompiler
- the compiler instance to ensure correct parameter passingstatic void compileArrayStoreBarrierDouble(Assembler asm, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code incompiler
- the compiler instance to ensure correct parameter passingstatic void compileArrayStoreBarrierFloat(Assembler asm, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code incompiler
- the compiler instance to ensure correct parameter passingstatic void compileArrayStoreBarrierInt(Assembler asm, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code incompiler
- the compiler instance to ensure correct parameter passingstatic void compileArrayStoreBarrierLong(Assembler asm, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code incompiler
- the compiler instance to ensure correct parameter passingstatic void compileArrayStoreBarrierShort(Assembler asm, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code incompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrier(Assembler asm, RegisterConstants.GPR offset, int locationMetadata)
asm
- the assembler to generate the code inoffset
- the register holding the offset of the fieldlocationMetadata
- meta-data about the locationstatic void compilePutfieldBarrierImm(Assembler asm, Offset fieldOffset, int locationMetadata)
asm
- the assembler to generate the code infieldOffset
- the offset of the fieldlocationMetadata
- meta-data about the locationprivate static void putfieldStoreBarrierHelper(Assembler asm, BaselineCompilerImpl compiler, RegisterConstants.GPR offset, int locationMetadata, NormalMethod barrier)
asm
- the assembler to generate the code incompiler
- the compiler instance to ensure correct parameter passingoffset
- the register holding the offset of the fieldlocationMetadata
- meta-data about the locationbarrier
- the barrier method to callprivate static void putfieldStoreBarrierHelper(Assembler asm, BaselineCompilerImpl compiler, Offset fieldOffset, int locationMetadata, NormalMethod barrier)
asm
- the assembler to generate the code incompiler
- the compiler instance to ensure correct parameter passingfieldOffset
- offset of the fieldlocationMetadata
- meta-data about the locationbarrier
- the barrier method to callstatic void compilePutfieldBarrierBoolean(Assembler asm, RegisterConstants.GPR offset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code inoffset
- the register holding the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierBooleanImm(Assembler asm, Offset fieldOffset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code infieldOffset
- the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierByte(Assembler asm, RegisterConstants.GPR offset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code inoffset
- the register holding the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierByteImm(Assembler asm, Offset fieldOffset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code infieldOffset
- the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierChar(Assembler asm, RegisterConstants.GPR offset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code inoffset
- the register holding the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierCharImm(Assembler asm, Offset fieldOffset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code infieldOffset
- the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierDouble(Assembler asm, RegisterConstants.GPR offset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code inoffset
- the register holding the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierDoubleImm(Assembler asm, Offset fieldOffset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code infieldOffset
- the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierFloat(Assembler asm, RegisterConstants.GPR offset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code inoffset
- the register holding the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierFloatImm(Assembler asm, Offset fieldOffset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code infieldOffset
- the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierInt(Assembler asm, RegisterConstants.GPR offset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code inoffset
- the register holding the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierIntImm(Assembler asm, Offset fieldOffset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code infieldOffset
- the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierLong(Assembler asm, RegisterConstants.GPR offset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code inoffset
- the register holding the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierLongImm(Assembler asm, Offset fieldOffset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code infieldOffset
- the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierShort(Assembler asm, RegisterConstants.GPR offset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code inoffset
- the register holding the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierShortImm(Assembler asm, Offset fieldOffset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code infieldOffset
- the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierWord(Assembler asm, RegisterConstants.GPR offset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code inoffset
- the register holding the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierWordImm(Assembler asm, Offset fieldOffset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code infieldOffset
- the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierAddress(Assembler asm, RegisterConstants.GPR offset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code inoffset
- the register holding the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierAddressImm(Assembler asm, Offset fieldOffset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code infieldOffset
- the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierExtent(Assembler asm, RegisterConstants.GPR offset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code inoffset
- the register holding the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierExtentImm(Assembler asm, Offset fieldOffset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code infieldOffset
- the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierOffset(Assembler asm, RegisterConstants.GPR offset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code inoffset
- the register holding the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutfieldBarrierOffsetImm(Assembler asm, Offset fieldOffset, int locationMetadata, BaselineCompilerImpl compiler)
asm
- the assembler to generate the code infieldOffset
- the offset of the fieldlocationMetadata
- meta-data about the locationcompiler
- the compiler instance to ensure correct parameter passingstatic void compilePutstaticBarrier(Assembler asm, RegisterConstants.GPR reg, int locationMetadata)
static void compilePutstaticBarrierImm(Assembler asm, Offset fieldOffset, int locationMetadata)
static void compileArrayLoadBarrier(Assembler asm, boolean pushResult)
static void compileGetfieldBarrier(Assembler asm, RegisterConstants.GPR reg, int locationMetadata)
static void compileGetfieldBarrierImm(Assembler asm, Offset fieldOffset, int locationMetadata)
static void compileGetstaticBarrier(Assembler asm, RegisterConstants.GPR reg, int locationMetadata)
static void compileGetstaticBarrierImm(Assembler asm, Offset fieldOffset, int locationMetadata)
static void compileModifyCheck(Assembler asm, int offset)
private static void genNullCheck(Assembler asm, RegisterConstants.GPR objRefReg)
asm
- the assembler to generate intoobjRefReg
- the register containing the reference