public class org.graalvm.compiler.hotspot.HotSpotDebugInfoBuilder extends org.graalvm.compiler.core.gen.DebugInfoBuilder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.hotspot.HotSpotDebugInfoBuilder
super_class: org.graalvm.compiler.core.gen.DebugInfoBuilder
{
private final org.graalvm.compiler.hotspot.HotSpotLockStack lockStack;
descriptor: Lorg/graalvm/compiler/hotspot/HotSpotLockStack;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int maxInterpreterFrameSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private jdk.vm.ci.hotspot.HotSpotCodeCacheProvider codeCacheProvider;
descriptor: Ljdk/vm/ci/hotspot/HotSpotCodeCacheProvider;
flags: (0x0002) ACC_PRIVATE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/graalvm/compiler/hotspot/HotSpotDebugInfoBuilder;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.graalvm.compiler.hotspot.HotSpotDebugInfoBuilder.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.graalvm.compiler.nodes.spi.NodeValueMap, org.graalvm.compiler.hotspot.HotSpotLockStack, org.graalvm.compiler.hotspot.HotSpotLIRGenerator);
descriptor: (Lorg/graalvm/compiler/nodes/spi/NodeValueMap;Lorg/graalvm/compiler/hotspot/HotSpotLockStack;Lorg/graalvm/compiler/hotspot/HotSpotLIRGenerator;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 3
invokeinterface org.graalvm.compiler.hotspot.HotSpotLIRGenerator.getResult:()Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
invokevirtual org.graalvm.compiler.lir.gen.LIRGenerationResult.getLIR:()Lorg/graalvm/compiler/lir/LIR;
invokevirtual org.graalvm.compiler.lir.LIR.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
invokespecial org.graalvm.compiler.core.gen.DebugInfoBuilder.<init>:(Lorg/graalvm/compiler/nodes/spi/NodeValueMap;Lorg/graalvm/compiler/debug/DebugContext;)V
1: aload 0
aload 2
putfield org.graalvm.compiler.hotspot.HotSpotDebugInfoBuilder.lockStack:Lorg/graalvm/compiler/hotspot/HotSpotLockStack;
2: aload 0
aload 3
invokeinterface org.graalvm.compiler.hotspot.HotSpotLIRGenerator.getProviders:()Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getCodeCache:()Ljdk/vm/ci/hotspot/HotSpotCodeCacheProvider;
putfield org.graalvm.compiler.hotspot.HotSpotDebugInfoBuilder.codeCacheProvider:Ljdk/vm/ci/hotspot/HotSpotCodeCacheProvider;
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/hotspot/HotSpotDebugInfoBuilder;
0 4 1 nodeValueMap Lorg/graalvm/compiler/nodes/spi/NodeValueMap;
0 4 2 lockStack Lorg/graalvm/compiler/hotspot/HotSpotLockStack;
0 4 3 gen Lorg/graalvm/compiler/hotspot/HotSpotLIRGenerator;
MethodParameters:
Name Flags
nodeValueMap
lockStack
gen
public org.graalvm.compiler.hotspot.HotSpotLockStack lockStack();
descriptor: ()Lorg/graalvm/compiler/hotspot/HotSpotLockStack;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.hotspot.HotSpotDebugInfoBuilder.lockStack:Lorg/graalvm/compiler/hotspot/HotSpotLockStack;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/hotspot/HotSpotDebugInfoBuilder;
public int maxInterpreterFrameSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.hotspot.HotSpotDebugInfoBuilder.maxInterpreterFrameSize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/hotspot/HotSpotDebugInfoBuilder;
protected jdk.vm.ci.meta.JavaValue computeLockValue(org.graalvm.compiler.nodes.FrameState, int);
descriptor: (Lorg/graalvm/compiler/nodes/FrameState;I)Ljdk/vm/ci/meta/JavaValue;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: iload 2
istore 3
start local 3 1: aload 1
invokevirtual org.graalvm.compiler.nodes.FrameState.outerFrameState:()Lorg/graalvm/compiler/nodes/FrameState;
ifnull 3
2: iload 3
aload 1
invokevirtual org.graalvm.compiler.nodes.FrameState.outerFrameState:()Lorg/graalvm/compiler/nodes/FrameState;
invokevirtual org.graalvm.compiler.nodes.FrameState.nestedLockDepth:()I
iadd
istore 3
3: StackMap locals: int
StackMap stack:
aload 0
getfield org.graalvm.compiler.hotspot.HotSpotDebugInfoBuilder.lockStack:Lorg/graalvm/compiler/hotspot/HotSpotLockStack;
iload 3
invokevirtual org.graalvm.compiler.hotspot.HotSpotLockStack.makeLockSlot:(I)Lorg/graalvm/compiler/lir/VirtualStackSlot;
astore 4
start local 4 4: aload 1
iload 2
invokevirtual org.graalvm.compiler.nodes.FrameState.lockAt:(I)Lorg/graalvm/compiler/nodes/ValueNode;
astore 5
start local 5 5: aload 0
aload 5
invokevirtual org.graalvm.compiler.hotspot.HotSpotDebugInfoBuilder.toJavaValue:(Lorg/graalvm/compiler/nodes/ValueNode;)Ljdk/vm/ci/meta/JavaValue;
astore 6
start local 6 6: aload 6
instanceof jdk.vm.ci.code.VirtualObject
ifne 7
aload 1
iload 2
invokevirtual org.graalvm.compiler.nodes.FrameState.monitorIdAt:(I)Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
invokevirtual org.graalvm.compiler.nodes.java.MonitorIdNode.isEliminated:()Z
ifne 7
iconst_0
goto 8
StackMap locals: org.graalvm.compiler.lir.VirtualStackSlot org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.JavaValue
StackMap stack:
7: iconst_1
StackMap locals:
StackMap stack: int
8: istore 7
start local 7 9: getstatic org.graalvm.compiler.hotspot.HotSpotDebugInfoBuilder.$assertionsDisabled:Z
ifne 10
aload 1
iload 2
invokevirtual org.graalvm.compiler.nodes.FrameState.monitorIdAt:(I)Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
invokevirtual org.graalvm.compiler.nodes.java.MonitorIdNode.getLockDepth:()I
iload 3
if_icmpeq 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
10: StackMap locals: int
StackMap stack:
new jdk.vm.ci.code.StackLockValue
dup
aload 6
aload 4
iload 7
invokespecial jdk.vm.ci.code.StackLockValue.<init>:(Ljdk/vm/ci/meta/JavaValue;Ljdk/vm/ci/meta/AllocatableValue;Z)V
areturn
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 11 0 this Lorg/graalvm/compiler/hotspot/HotSpotDebugInfoBuilder;
0 11 1 state Lorg/graalvm/compiler/nodes/FrameState;
0 11 2 lockIndex I
1 11 3 lockDepth I
4 11 4 slot Lorg/graalvm/compiler/lir/VirtualStackSlot;
5 11 5 lock Lorg/graalvm/compiler/nodes/ValueNode;
6 11 6 object Ljdk/vm/ci/meta/JavaValue;
9 11 7 eliminated Z
MethodParameters:
Name Flags
state
lockIndex
protected boolean verifyFrameState(org.graalvm.compiler.nodes.spi.NodeWithState, org.graalvm.compiler.nodes.FrameState);
descriptor: (Lorg/graalvm/compiler/nodes/spi/NodeWithState;Lorg/graalvm/compiler/nodes/FrameState;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof org.graalvm.compiler.nodes.FullInfopointNode
ifeq 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof org.graalvm.compiler.nodes.extended.ForeignCallNode
ifeq 7
3: aload 1
checkcast org.graalvm.compiler.nodes.extended.ForeignCallNode
astore 3
start local 3 4: aload 3
invokevirtual org.graalvm.compiler.nodes.extended.ForeignCallNode.getDescriptor:()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
astore 4
start local 4 5: getstatic org.graalvm.compiler.hotspot.meta.DefaultHotSpotLoweringProvider$RuntimeCalls.runtimeCalls:Ljava/util/EnumMap;
aload 4
invokevirtual java.util.EnumMap.containsValue:(Ljava/lang/Object;)Z
ifeq 7
6: iconst_1
ireturn
end local 4 end local 3 7: StackMap locals:
StackMap stack:
aload 2
getfield org.graalvm.compiler.nodes.FrameState.bci:I
iflt 15
aload 2
invokevirtual org.graalvm.compiler.nodes.FrameState.duringCall:()Z
ifne 15
aload 2
invokevirtual org.graalvm.compiler.nodes.FrameState.rethrowException:()Z
ifne 15
8: aload 2
invokevirtual org.graalvm.compiler.nodes.FrameState.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 3
start local 3 9: aload 3
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getCode:()[B
aload 2
getfield org.graalvm.compiler.nodes.FrameState.bci:I
baload
sipush 255
iand
istore 4
start local 4 10: iload 4
sipush 182
if_icmpeq 11
iload 4
sipush 185
if_icmpne 12
11: StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod int
StackMap stack:
getstatic org.graalvm.compiler.hotspot.HotSpotDebugInfoBuilder.$assertionsDisabled:Z
ifne 15
aload 2
invokevirtual org.graalvm.compiler.nodes.FrameState.stackSize:()I
ifgt 15
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "expected non-empty stack: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
12: StackMap locals:
StackMap stack:
iload 4
invokestatic org.graalvm.compiler.bytecode.Bytecodes.stackEffectOf:(I)I
istore 5
start local 5 13: iload 5
ifge 15
14: getstatic org.graalvm.compiler.hotspot.HotSpotDebugInfoBuilder.$assertionsDisabled:Z
ifne 15
aload 2
invokevirtual org.graalvm.compiler.nodes.FrameState.stackSize:()I
iload 5
ineg
if_icmpge 15
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "expected at least "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 5
ineg
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " stack depth : "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 5 end local 4 end local 3 15: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/graalvm/compiler/hotspot/HotSpotDebugInfoBuilder;
0 16 1 node Lorg/graalvm/compiler/nodes/spi/NodeWithState;
0 16 2 topState Lorg/graalvm/compiler/nodes/FrameState;
4 7 3 call Lorg/graalvm/compiler/nodes/extended/ForeignCallNode;
5 7 4 descriptor Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
9 15 3 m Ljdk/vm/ci/meta/ResolvedJavaMethod;
10 15 4 opcode I
13 15 5 stackEffect I
MethodParameters:
Name Flags
node
topState
protected jdk.vm.ci.code.BytecodeFrame computeFrameForState(org.graalvm.compiler.nodes.spi.NodeWithState, org.graalvm.compiler.nodes.FrameState);
descriptor: (Lorg/graalvm/compiler/nodes/spi/NodeWithState;Lorg/graalvm/compiler/nodes/FrameState;)Ljdk/vm/ci/code/BytecodeFrame;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
getfield org.graalvm.compiler.nodes.FrameState.bci:I
invokestatic jdk.vm.ci.code.BytecodeFrame.isPlaceholderBci:(I)Z
ifeq 2
aload 2
getfield org.graalvm.compiler.nodes.FrameState.bci:I
bipush -2
if_icmpeq 2
1: aload 0
aload 2
invokevirtual org.graalvm.compiler.hotspot.HotSpotDebugInfoBuilder.raiseInvalidFrameStateError:(Lorg/graalvm/compiler/nodes/FrameState;)V
2: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokespecial org.graalvm.compiler.core.gen.DebugInfoBuilder.computeFrameForState:(Lorg/graalvm/compiler/nodes/spi/NodeWithState;Lorg/graalvm/compiler/nodes/FrameState;)Ljdk/vm/ci/code/BytecodeFrame;
astore 3
start local 3 3: aload 0
aload 0
getfield org.graalvm.compiler.hotspot.HotSpotDebugInfoBuilder.maxInterpreterFrameSize:I
aload 0
getfield org.graalvm.compiler.hotspot.HotSpotDebugInfoBuilder.codeCacheProvider:Ljdk/vm/ci/hotspot/HotSpotCodeCacheProvider;
aload 3
invokevirtual jdk.vm.ci.hotspot.HotSpotCodeCacheProvider.interpreterFrameSize:(Ljdk/vm/ci/code/BytecodeFrame;)I
invokestatic java.lang.Math.max:(II)I
putfield org.graalvm.compiler.hotspot.HotSpotDebugInfoBuilder.maxInterpreterFrameSize:I
4: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/hotspot/HotSpotDebugInfoBuilder;
0 5 1 node Lorg/graalvm/compiler/nodes/spi/NodeWithState;
0 5 2 state Lorg/graalvm/compiler/nodes/FrameState;
3 5 3 result Ljdk/vm/ci/code/BytecodeFrame;
MethodParameters:
Name Flags
node
state
protected void raiseInvalidFrameStateError(org.graalvm.compiler.nodes.FrameState);
descriptor: (Lorg/graalvm/compiler/nodes/FrameState;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=9, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.nodes.FrameState.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
astore 2
start local 2 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 2: aconst_null
astore 4
start local 4 3: aload 2
ifnull 15
4: aload 2
astore 5
start local 5 5: goto 14
6: StackMap locals: org.graalvm.compiler.hotspot.HotSpotDebugInfoBuilder org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.graph.NodeSourcePosition java.util.List jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.graph.NodeSourcePosition
StackMap stack:
new java.lang.StringBuilder
dup
ldc "parsing "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 6
start local 6 7: aload 5
invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 7
start local 7 8: aload 6
aload 7
aload 5
invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getBCI:()I
invokestatic jdk.vm.ci.meta.MetaUtil.appendLocation:(Ljava/lang/StringBuilder;Ljdk/vm/ci/meta/ResolvedJavaMethod;I)Ljava/lang/StringBuilder;
pop
9: aload 7
ldc Lorg/graalvm/compiler/api/replacements/MethodSubstitution;
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
ifnonnull 11
10: aload 7
ldc Lorg/graalvm/compiler/api/replacements/Snippet;
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
ifnull 12
11: StackMap locals: java.lang.StringBuilder jdk.vm.ci.meta.ResolvedJavaMethod
StackMap stack:
aload 7
astore 4
12: StackMap locals:
StackMap stack:
aload 3
aload 6
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
13: aload 5
invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getCaller:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
astore 5
end local 7 end local 6 14: StackMap locals:
StackMap stack:
aload 5
ifnonnull 6
end local 5 15: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Invalid frame state "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
start local 5 16: aload 4
ifnull 18
17: new java.lang.StringBuilder
dup
aload 5
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " associated with a side effect in "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
ldc "%H.%n(%p)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " at a position that cannot be deoptimized to"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
18: StackMap locals: java.lang.String
StackMap stack:
new org.graalvm.compiler.graph.GraalGraphError
dup
aload 5
iconst_0
anewarray java.lang.Object
invokespecial org.graalvm.compiler.graph.GraalGraphError.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
astore 6
start local 6 19: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 8
goto 22
StackMap locals: org.graalvm.compiler.hotspot.HotSpotDebugInfoBuilder org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.graph.NodeSourcePosition java.util.List jdk.vm.ci.meta.ResolvedJavaMethod java.lang.String org.graalvm.compiler.graph.GraalGraphError top java.util.Iterator
StackMap stack:
20: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 7
start local 7 21: aload 6
aload 7
invokevirtual org.graalvm.compiler.graph.GraalGraphError.addContext:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/GraalError;
pop
end local 7 22: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 20
23: aload 6
athrow
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 24 0 this Lorg/graalvm/compiler/hotspot/HotSpotDebugInfoBuilder;
0 24 1 state Lorg/graalvm/compiler/nodes/FrameState;
1 24 2 sourcePosition Lorg/graalvm/compiler/graph/NodeSourcePosition;
2 24 3 context Ljava/util/List<Ljava/lang/String;>;
3 24 4 replacementMethodWithProblematicSideEffect Ljdk/vm/ci/meta/ResolvedJavaMethod;
5 15 5 pos Lorg/graalvm/compiler/graph/NodeSourcePosition;
7 14 6 sb Ljava/lang/StringBuilder;
8 14 7 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
16 24 5 message Ljava/lang/String;
19 24 6 error Lorg/graalvm/compiler/graph/GraalGraphError;
21 22 7 c Ljava/lang/String;
Exceptions:
throws org.graalvm.compiler.graph.GraalGraphError
MethodParameters:
Name Flags
state
}
SourceFile: "HotSpotDebugInfoBuilder.java"
InnerClasses:
public final RuntimeCalls = org.graalvm.compiler.hotspot.meta.DefaultHotSpotLoweringProvider$RuntimeCalls of org.graalvm.compiler.hotspot.meta.DefaultHotSpotLoweringProvider