public abstract class org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets extends org.graalvm.compiler.replacements.gc.WriteBarrierSnippets implements org.graalvm.compiler.replacements.Snippets
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets
super_class: org.graalvm.compiler.replacements.gc.WriteBarrierSnippets
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.graalvm.compiler.replacements.gc.WriteBarrierSnippets.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/gc/SerialWriteBarrierSnippets;
public void serialImpreciseWriteBarrier(java.lang.Object, org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets$Counters, boolean);
descriptor: (Ljava/lang/Object;Lorg/graalvm/compiler/replacements/gc/SerialWriteBarrierSnippets$Counters;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.verifyBarrier:()Z
ifeq 2
1: aload 1
invokestatic org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.verifyNotArray:(Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
aload 2
iload 3
invokevirtual org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.serialWriteBarrier:(Ljdk/internal/vm/compiler/word/Pointer;Lorg/graalvm/compiler/replacements/gc/SerialWriteBarrierSnippets$Counters;Z)V
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/replacements/gc/SerialWriteBarrierSnippets;
0 4 1 object Ljava/lang/Object;
0 4 2 counters Lorg/graalvm/compiler/replacements/gc/SerialWriteBarrierSnippets$Counters;
0 4 3 verifyOnly Z
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
RuntimeVisibleParameterAnnotations:
0:
1:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
2:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
MethodParameters:
Name Flags
object
counters
verifyOnly
public void serialPreciseWriteBarrier(org.graalvm.compiler.nodes.memory.address.AddressNode$Address, org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets$Counters, boolean);
descriptor: (Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;Lorg/graalvm/compiler/replacements/gc/SerialWriteBarrierSnippets$Counters;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokestatic org.graalvm.compiler.word.Word.fromAddress:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;)Lorg/graalvm/compiler/word/Word;
aload 2
iload 3
invokevirtual org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.serialWriteBarrier:(Ljdk/internal/vm/compiler/word/Pointer;Lorg/graalvm/compiler/replacements/gc/SerialWriteBarrierSnippets$Counters;Z)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/replacements/gc/SerialWriteBarrierSnippets;
0 2 1 address Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;
0 2 2 counters Lorg/graalvm/compiler/replacements/gc/SerialWriteBarrierSnippets$Counters;
0 2 3 verifyOnly Z
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
RuntimeVisibleParameterAnnotations:
0:
1:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
2:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
MethodParameters:
Name Flags
address
counters
verifyOnly
public void serialArrayRangeWriteBarrier(org.graalvm.compiler.nodes.memory.address.AddressNode$Address, int, int);
descriptor: (Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: ldc 0.09999999999999998
iload 2
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack: double
1: iconst_0
StackMap locals: org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address int int
StackMap stack: double int
2: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
ifeq 4
3: return
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.cardTableShift:()I
istore 4
start local 4 5: aload 0
invokevirtual org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.cardTableAddress:()Lorg/graalvm/compiler/word/Word;
astore 5
start local 5 6: aload 5
aload 1
iload 2
iload 3
invokestatic org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.getPointerToFirstArrayElement:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;II)Lorg/graalvm/compiler/word/Word;
iload 4
invokevirtual org.graalvm.compiler.word.Word.unsignedShiftRight:(I)Lorg/graalvm/compiler/word/Word;
invokevirtual org.graalvm.compiler.word.Word.add:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
astore 6
start local 6 7: aload 5
aload 1
iload 2
iload 3
invokestatic org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.getPointerToLastArrayElement:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;II)Lorg/graalvm/compiler/word/Word;
iload 4
invokevirtual org.graalvm.compiler.word.Word.unsignedShiftRight:(I)Lorg/graalvm/compiler/word/Word;
invokevirtual org.graalvm.compiler.word.Word.add:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
astore 7
start local 7 8: aload 6
astore 8
start local 8 9: StackMap locals: org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address int int int org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word
StackMap stack:
aload 8
iconst_0
aload 0
invokevirtual org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.dirtyCardValue:()B
getstatic org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.GC_CARD_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
invokevirtual org.graalvm.compiler.word.Word.writeByte:(IBLjdk/internal/vm/compiler/word/LocationIdentity;)V
10: aload 8
iconst_1
invokevirtual org.graalvm.compiler.word.Word.add:(I)Lorg/graalvm/compiler/word/Word;
astore 8
11: aload 8
aload 7
invokevirtual org.graalvm.compiler.word.Word.belowOrEqual:(Lorg/graalvm/compiler/word/Word;)Z
ifne 9
12: return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/graalvm/compiler/replacements/gc/SerialWriteBarrierSnippets;
0 13 1 address Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;
0 13 2 length I
0 13 3 elementStride I
5 13 4 cardShift I
6 13 5 cardTableAddress Lorg/graalvm/compiler/word/Word;
7 13 6 start Lorg/graalvm/compiler/word/Word;
8 13 7 end Lorg/graalvm/compiler/word/Word;
9 13 8 cur Lorg/graalvm/compiler/word/Word;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
RuntimeVisibleParameterAnnotations:
0:
1:
2:
org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
MethodParameters:
Name Flags
address
length
elementStride
private void serialWriteBarrier(jdk.internal.vm.compiler.word.Pointer, org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets$Counters, boolean);
descriptor: (Ljdk/internal/vm/compiler/word/Pointer;Lorg/graalvm/compiler/replacements/gc/SerialWriteBarrierSnippets$Counters;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
ifne 2
1: aload 2
getfield org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets$Counters.serialWriteBarrierCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.cardTableAddress:()Lorg/graalvm/compiler/word/Word;
aload 1
aload 0
invokevirtual org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.cardTableShift:()I
invokeinterface jdk.internal.vm.compiler.word.Pointer.unsignedShiftRight:(I)Ljdk/internal/vm/compiler/word/UnsignedWord;
invokevirtual org.graalvm.compiler.word.Word.add:(Ljdk/internal/vm/compiler/word/UnsignedWord;)Lorg/graalvm/compiler/word/Word;
astore 4
start local 4 3: iload 3
ifeq 9
4: aload 4
iconst_0
getstatic org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.GC_CARD_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
invokevirtual org.graalvm.compiler.word.Word.readByte:(ILjdk/internal/vm/compiler/word/LocationIdentity;)B
istore 5
start local 5 5: iload 5
aload 0
invokevirtual org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.dirtyCardValue:()B
if_icmpne 6
iconst_1
goto 7
StackMap locals: org.graalvm.compiler.word.Word int
StackMap stack:
6: iconst_0
StackMap locals:
StackMap stack: int
7: ldc "card must be dirty"
invokestatic org.graalvm.compiler.replacements.nodes.AssertionNode.dynamicAssert:(ZLjava/lang/String;)V
end local 5 8: goto 10
9: StackMap locals:
StackMap stack:
aload 4
iconst_0
aload 0
invokevirtual org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.dirtyCardValue:()B
getstatic org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets.GC_CARD_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
invokevirtual org.graalvm.compiler.word.Word.writeByte:(IBLjdk/internal/vm/compiler/word/LocationIdentity;)V
10: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/graalvm/compiler/replacements/gc/SerialWriteBarrierSnippets;
0 11 1 ptr Ljdk/internal/vm/compiler/word/Pointer;
0 11 2 counters Lorg/graalvm/compiler/replacements/gc/SerialWriteBarrierSnippets$Counters;
0 11 3 verifyOnly Z
3 11 4 base Lorg/graalvm/compiler/word/Word;
5 8 5 cardValue B
MethodParameters:
Name Flags
ptr
counters
verifyOnly
protected abstract org.graalvm.compiler.word.Word cardTableAddress();
descriptor: ()Lorg/graalvm/compiler/word/Word;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected abstract int cardTableShift();
descriptor: ()I
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected abstract boolean verifyBarrier();
descriptor: ()Z
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected abstract byte dirtyCardValue();
descriptor: ()B
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
}
SourceFile: "SerialWriteBarrierSnippets.java"
NestMembers:
org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets$Counters org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets$SerialWriteBarrierLowerer
InnerClasses:
public abstract ConstantParameter = org.graalvm.compiler.api.replacements.Snippet$ConstantParameter of org.graalvm.compiler.api.replacements.Snippet
public abstract Address = org.graalvm.compiler.nodes.memory.address.AddressNode$Address of org.graalvm.compiler.nodes.memory.address.AddressNode
Counters = org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets$Counters of org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets
public SerialWriteBarrierLowerer = org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets$SerialWriteBarrierLowerer of org.graalvm.compiler.replacements.gc.SerialWriteBarrierSnippets