public class org.graalvm.compiler.word.WordTypes
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.word.WordTypes
  super_class: java.lang.Object
{
  private final jdk.vm.ci.meta.ResolvedJavaType wordBaseType;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaType;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Class<?> wordBaseClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<*>;

  private final jdk.vm.ci.meta.ResolvedJavaType wordImplType;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaType;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.vm.ci.meta.ResolvedJavaType wordFactoryType;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaType;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.vm.ci.meta.ResolvedJavaType objectAccessType;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaType;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.vm.ci.meta.ResolvedJavaType barrieredAccessType;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaType;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.vm.ci.meta.JavaKind wordKind;
    descriptor: Ljdk/vm/ci/meta/JavaKind;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  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: .line 50
            ldc Lorg/graalvm/compiler/word/WordTypes;
            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.word.WordTypes.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(jdk.vm.ci.meta.MetaAccessProvider, jdk.vm.ci.meta.JavaKind);
    descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/JavaKind;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.word.WordTypes this
        start local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 2 // jdk.vm.ci.meta.JavaKind wordKind
         0: .line 80
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 81
            aload 0 /* this */
            aload 2 /* wordKind */
            putfield org.graalvm.compiler.word.WordTypes.wordKind:Ljdk/vm/ci/meta/JavaKind;
         2: .line 82
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Lorg/graalvm/word/WordBase;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            putfield org.graalvm.compiler.word.WordTypes.wordBaseType:Ljdk/vm/ci/meta/ResolvedJavaType;
         3: .line 83
            aload 0 /* this */
            ldc Lorg/graalvm/word/WordBase;
            putfield org.graalvm.compiler.word.WordTypes.wordBaseClass:Ljava/lang/Class;
         4: .line 84
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Lorg/graalvm/compiler/word/Word;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            putfield org.graalvm.compiler.word.WordTypes.wordImplType:Ljdk/vm/ci/meta/ResolvedJavaType;
         5: .line 85
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Lorg/graalvm/word/WordFactory;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            putfield org.graalvm.compiler.word.WordTypes.wordFactoryType:Ljdk/vm/ci/meta/ResolvedJavaType;
         6: .line 86
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Lorg/graalvm/compiler/word/ObjectAccess;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            putfield org.graalvm.compiler.word.WordTypes.objectAccessType:Ljdk/vm/ci/meta/ResolvedJavaType;
         7: .line 87
            aload 0 /* this */
            aload 1 /* metaAccess */
            ldc Lorg/graalvm/compiler/word/BarrieredAccess;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            putfield org.graalvm.compiler.word.WordTypes.barrieredAccessType:Ljdk/vm/ci/meta/ResolvedJavaType;
         8: .line 89
            getstatic jdk.vm.ci.services.Services.IS_BUILDING_NATIVE_IMAGE:Z
            ifne 10
         9: .line 90
            invokestatic org.graalvm.compiler.word.Word.ensureInitialized:()V
        10: .line 92
      StackMap locals: org.graalvm.compiler.word.WordTypes jdk.vm.ci.meta.MetaAccessProvider jdk.vm.ci.meta.JavaKind
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.word.WordTypes.wordImplType:Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.initialize:()V
        11: .line 93
            return
        end local 2 // jdk.vm.ci.meta.JavaKind wordKind
        end local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 0 // org.graalvm.compiler.word.WordTypes this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lorg/graalvm/compiler/word/WordTypes;
            0   12     1  metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0   12     2    wordKind  Ljdk/vm/ci/meta/JavaKind;
    MethodParameters:
            Name  Flags
      metaAccess  
      wordKind    

  public boolean isWordOperation(jdk.vm.ci.meta.ResolvedJavaMethod);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.graalvm.compiler.word.WordTypes this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
         0: .line 99
            aload 0 /* this */
            getfield org.graalvm.compiler.word.WordTypes.wordFactoryType:Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 1 /* targetMethod */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            istore 2 /* isWordFactory */
        start local 2 // boolean isWordFactory
         1: .line 100
            iload 2 /* isWordFactory */
            ifeq 5
         2: .line 101
            aload 1 /* targetMethod */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isConstructor:()Z
            ifeq 3
            iconst_0
            goto 4
      StackMap locals: int
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: ireturn
         5: .line 103
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.word.WordTypes.objectAccessType:Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 1 /* targetMethod */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            istore 3 /* isObjectAccess */
        start local 3 // boolean isObjectAccess
         6: .line 104
            aload 0 /* this */
            getfield org.graalvm.compiler.word.WordTypes.barrieredAccessType:Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 1 /* targetMethod */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            istore 4 /* isBarrieredAccess */
        start local 4 // boolean isBarrieredAccess
         7: .line 105
            iload 3 /* isObjectAccess */
            ifne 8
            iload 4 /* isBarrieredAccess */
            ifeq 10
         8: .line 106
      StackMap locals: int int
      StackMap stack:
            getstatic org.graalvm.compiler.word.WordTypes.$assertionsDisabled:Z
            ifne 9
            aload 1 /* targetMethod */
            ldc Lorg/graalvm/compiler/word/Word$Operation;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnonnull 9
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* targetMethod */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " should be annotated with @"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc Lorg/graalvm/compiler/word/Word$Operation;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         9: .line 107
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        10: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* targetMethod */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokevirtual org.graalvm.compiler.word.WordTypes.isWord:(Ljdk/vm/ci/meta/JavaType;)Z
            ireturn
        end local 4 // boolean isBarrieredAccess
        end local 3 // boolean isObjectAccess
        end local 2 // boolean isWordFactory
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        end local 0 // org.graalvm.compiler.word.WordTypes this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   11     0               this  Lorg/graalvm/compiler/word/WordTypes;
            0   11     1       targetMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            1   11     2      isWordFactory  Z
            6   11     3     isObjectAccess  Z
            7   11     4  isBarrieredAccess  Z
    MethodParameters:
              Name  Flags
      targetMethod  

  public jdk.vm.ci.meta.ResolvedJavaMethod getWordOperation(jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.ResolvedJavaType);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.graalvm.compiler.word.WordTypes this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        start local 2 // jdk.vm.ci.meta.ResolvedJavaType callingContextType
         0: .line 121
            aload 0 /* this */
            getfield org.graalvm.compiler.word.WordTypes.wordBaseType:Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 1 /* targetMethod */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            istore 3 /* isWordBase */
        start local 3 // boolean isWordBase
         1: .line 122
            aload 1 /* targetMethod */
            astore 4 /* wordMethod */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaMethod wordMethod
         2: .line 123
            iload 3 /* isWordBase */
            ifeq 5
            aload 1 /* targetMethod */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isStatic:()Z
            ifne 5
         3: .line 124
            getstatic org.graalvm.compiler.word.WordTypes.$assertionsDisabled:Z
            ifne 4
            aload 0 /* this */
            getfield org.graalvm.compiler.word.WordTypes.wordImplType:Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isLinked:()Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 125
      StackMap locals: int jdk.vm.ci.meta.ResolvedJavaMethod
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.word.WordTypes.wordImplType:Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 1 /* targetMethod */
            aload 2 /* callingContextType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.resolveConcreteMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 4 /* wordMethod */
         5: .line 127
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.word.WordTypes.$assertionsDisabled:Z
            ifne 6
            aload 4 /* wordMethod */
            ifnonnull 6
            new java.lang.AssertionError
            dup
            aload 1 /* targetMethod */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         6: .line 128
      StackMap locals:
      StackMap stack:
            aload 4 /* wordMethod */
            areturn
        end local 4 // jdk.vm.ci.meta.ResolvedJavaMethod wordMethod
        end local 3 // boolean isWordBase
        end local 2 // jdk.vm.ci.meta.ResolvedJavaType callingContextType
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        end local 0 // org.graalvm.compiler.word.WordTypes this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    7     0                this  Lorg/graalvm/compiler/word/WordTypes;
            0    7     1        targetMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    7     2  callingContextType  Ljdk/vm/ci/meta/ResolvedJavaType;
            1    7     3          isWordBase  Z
            2    7     4          wordMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
    MethodParameters:
                    Name  Flags
      targetMethod        
      callingContextType  

  public boolean isWord(org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.word.WordTypes this
        start local 1 // org.graalvm.compiler.nodes.ValueNode node
         0: .line 135
            aload 0 /* this */
            aload 1 /* node */
            invokestatic org.graalvm.compiler.nodes.type.StampTool.typeOrNull:(Lorg/graalvm/compiler/nodes/ValueNode;)Ljdk/vm/ci/meta/ResolvedJavaType;
            invokevirtual org.graalvm.compiler.word.WordTypes.isWord:(Ljdk/vm/ci/meta/JavaType;)Z
            ireturn
        end local 1 // org.graalvm.compiler.nodes.ValueNode node
        end local 0 // org.graalvm.compiler.word.WordTypes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/word/WordTypes;
            0    1     1  node  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
      Name  Flags
      node  

  public boolean isWord(jdk.vm.ci.meta.JavaType);
    descriptor: (Ljdk/vm/ci/meta/JavaType;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.word.WordTypes this
        start local 1 // jdk.vm.ci.meta.JavaType type
         0: .line 142
            aload 1 /* type */
            instanceof jdk.vm.ci.meta.ResolvedJavaType
            ifeq 1
            aload 0 /* this */
            getfield org.graalvm.compiler.word.WordTypes.wordBaseType:Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 1 /* type */
            checkcast jdk.vm.ci.meta.ResolvedJavaType
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // jdk.vm.ci.meta.JavaType type
        end local 0 // org.graalvm.compiler.word.WordTypes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/word/WordTypes;
            0    2     1  type  Ljdk/vm/ci/meta/JavaType;
    MethodParameters:
      Name  Flags
      type  

  public boolean isWord(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.word.WordTypes this
        start local 1 // java.lang.Class clazz
         0: .line 146
            aload 0 /* this */
            getfield org.graalvm.compiler.word.WordTypes.wordBaseClass:Ljava/lang/Class;
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ireturn
        end local 1 // java.lang.Class clazz
        end local 0 // org.graalvm.compiler.word.WordTypes this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/graalvm/compiler/word/WordTypes;
            0    1     1  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
       Name  Flags
      clazz  

  public jdk.vm.ci.meta.JavaKind asKind(jdk.vm.ci.meta.JavaType);
    descriptor: (Ljdk/vm/ci/meta/JavaType;)Ljdk/vm/ci/meta/JavaKind;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.word.WordTypes this
        start local 1 // jdk.vm.ci.meta.JavaType type
         0: .line 154
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual org.graalvm.compiler.word.WordTypes.isWord:(Ljdk/vm/ci/meta/JavaType;)Z
            ifeq 2
         1: .line 155
            aload 0 /* this */
            getfield org.graalvm.compiler.word.WordTypes.wordKind:Ljdk/vm/ci/meta/JavaKind;
            areturn
         2: .line 157
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            invokeinterface jdk.vm.ci.meta.JavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            areturn
        end local 1 // jdk.vm.ci.meta.JavaType type
        end local 0 // org.graalvm.compiler.word.WordTypes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/word/WordTypes;
            0    3     1  type  Ljdk/vm/ci/meta/JavaType;
    MethodParameters:
      Name  Flags
      type  

  public jdk.vm.ci.meta.JavaKind getWordKind();
    descriptor: ()Ljdk/vm/ci/meta/JavaKind;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.word.WordTypes this
         0: .line 162
            aload 0 /* this */
            getfield org.graalvm.compiler.word.WordTypes.wordKind:Ljdk/vm/ci/meta/JavaKind;
            areturn
        end local 0 // org.graalvm.compiler.word.WordTypes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/word/WordTypes;

  public org.graalvm.compiler.core.common.type.Stamp getWordStamp(jdk.vm.ci.meta.ResolvedJavaType);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Lorg/graalvm/compiler/core/common/type/Stamp;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.word.WordTypes this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType type
         0: .line 169
            getstatic org.graalvm.compiler.word.WordTypes.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual org.graalvm.compiler.word.WordTypes.isWord:(Ljdk/vm/ci/meta/JavaType;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 170
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.word.WordTypes.wordKind:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.forKind:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
            areturn
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 0 // org.graalvm.compiler.word.WordTypes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/word/WordTypes;
            0    2     1  type  Ljdk/vm/ci/meta/ResolvedJavaType;
    MethodParameters:
      Name  Flags
      type  

  public org.graalvm.compiler.core.common.type.Stamp getWordStamp(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/Stamp;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.word.WordTypes this
        start local 1 // java.lang.Class type
         0: .line 174
            getstatic org.graalvm.compiler.word.WordTypes.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual org.graalvm.compiler.word.WordTypes.isWord:(Ljava/lang/Class;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.word.WordTypes.wordKind:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.forKind:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
            areturn
        end local 1 // java.lang.Class type
        end local 0 // org.graalvm.compiler.word.WordTypes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/word/WordTypes;
            0    2     1  type  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Lorg/graalvm/compiler/core/common/type/Stamp;
    MethodParameters:
      Name  Flags
      type  

  public jdk.vm.ci.meta.ResolvedJavaType getWordImplType();
    descriptor: ()Ljdk/vm/ci/meta/ResolvedJavaType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.word.WordTypes this
         0: .line 179
            aload 0 /* this */
            getfield org.graalvm.compiler.word.WordTypes.wordImplType:Ljdk/vm/ci/meta/ResolvedJavaType;
            areturn
        end local 0 // org.graalvm.compiler.word.WordTypes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/word/WordTypes;

  public boolean ensureGraphContainsNoWordTypeReferences(org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // org.graalvm.compiler.word.WordTypes this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 188
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 13
      StackMap locals: org.graalvm.compiler.word.WordTypes org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 2 /* n */
        start local 2 // org.graalvm.compiler.graph.Node n
         2: .line 189
            aload 2 /* n */
            instanceof org.graalvm.compiler.nodes.ValueNode
            ifeq 13
         3: .line 190
            getstatic org.graalvm.compiler.word.WordTypes.$assertionsDisabled:Z
            ifne 4
            aload 0 /* this */
            aload 2 /* n */
            checkcast org.graalvm.compiler.nodes.ValueNode
            invokevirtual org.graalvm.compiler.word.WordTypes.isWord:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
            ifeq 4
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Node "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* n */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is a word type and not rewritten after graph building, this is invalid."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         4: .line 191
      StackMap locals: org.graalvm.compiler.word.WordTypes org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.graph.Node java.util.Iterator
      StackMap stack:
            aload 2 /* n */
            invokevirtual org.graalvm.compiler.graph.Node.getNodeClass:()Lorg/graalvm/compiler/graph/NodeClass;
            invokevirtual org.graalvm.compiler.graph.NodeClass.getData:()Lorg/graalvm/compiler/core/common/Fields;
            astore 4 /* f */
        start local 4 // org.graalvm.compiler.core.common.Fields f
         5: .line 192
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 12
         7: .line 193
      StackMap locals: org.graalvm.compiler.core.common.Fields int
      StackMap stack:
            aload 4 /* f */
            aload 2 /* n */
            iload 5 /* i */
            invokevirtual org.graalvm.compiler.core.common.Fields.get:(Ljava/lang/Object;I)Ljava/lang/Object;
            astore 6 /* fieldValue */
        start local 6 // java.lang.Object fieldValue
         8: .line 194
            aload 6 /* fieldValue */
            instanceof org.graalvm.compiler.core.common.type.AbstractObjectStamp
            ifeq 11
         9: .line 195
            aload 6 /* fieldValue */
            checkcast org.graalvm.compiler.core.common.type.AbstractObjectStamp
            astore 7 /* os */
        start local 7 // org.graalvm.compiler.core.common.type.AbstractObjectStamp os
        10: .line 196
            getstatic org.graalvm.compiler.word.WordTypes.$assertionsDisabled:Z
            ifne 11
            aload 0 /* this */
            aload 7 /* os */
            invokevirtual org.graalvm.compiler.core.common.type.AbstractObjectStamp.type:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokevirtual org.graalvm.compiler.word.WordTypes.isWord:(Ljdk/vm/ci/meta/JavaType;)Z
            ifeq 11
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Stamp Field "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* f */
            iload 5 /* i */
            invokevirtual org.graalvm.compiler.core.common.Fields.getName:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " of node "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* n */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is a word type and not rewritten after graph building, this is invalid"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 7 // org.graalvm.compiler.core.common.type.AbstractObjectStamp os
        end local 6 // java.lang.Object fieldValue
        11: .line 192
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 5 /* i */
            aload 4 /* f */
            invokevirtual org.graalvm.compiler.core.common.Fields.getCount:()I
            if_icmplt 7
        end local 5 // int i
        end local 4 // org.graalvm.compiler.core.common.Fields f
        end local 2 // org.graalvm.compiler.graph.Node n
        13: .line 188
      StackMap locals: org.graalvm.compiler.word.WordTypes org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        14: .line 211
            iconst_1
            ireturn
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.word.WordTypes this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Lorg/graalvm/compiler/word/WordTypes;
            0   15     1       graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2   13     2           n  Lorg/graalvm/compiler/graph/Node;
            5   13     4           f  Lorg/graalvm/compiler/core/common/Fields;
            6   13     5           i  I
            8   11     6  fieldValue  Ljava/lang/Object;
           10   11     7          os  Lorg/graalvm/compiler/core/common/type/AbstractObjectStamp;
    MethodParameters:
       Name  Flags
      graph  
}
SourceFile: "WordTypes.java"
InnerClasses:
  public abstract Operation = org.graalvm.compiler.word.Word$Operation of org.graalvm.compiler.word.Word