Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4981526

NEWHPROF: BCI bug when using cpu=times on Volano

XMLWordPrintable

    • b38
    • generic
    • generic

      VolanoMark(TM) Benchmark Version 2.5.0.9
      Copyright (C) 1996-2002 Volano LLC. All rights reserved.
      Creating room number 1 ...
      Exception in thread "main" java.lang.VerifyError: (class: COM/volano/t, method: b signature: ()[Ljava/lang/Object;) Illegal target of jump or branch
              at COM.volano.e.<init>(DashoA5383)
              at COM.volano.e.<init>(DashoA5383)
              at COM.volano.ak.a(DashoA5383)
              at COM.volano.ak.a(DashoA5383)
              at COM.volano.Mark.main(DashoA5383)
      mv: cannot access vmark.log
      grep: can't open test-1.log
      -----------------------------------------------------


      Class COM.volano.t contains this method:

      public synchronized java.lang.Object[] b();
         throws java/lang/InterruptedException
        Code:
         0: goto 7
         3: aload_0
         4: invokevirtual #49; //Method java/lang/Object.wait:()V
         7: aload_0
         8: getfield #44; //Field a:Z
         11: ifeq 21
         14: aload_0
         15: getfield #48; //Field java/util/Vector.elementCount:I
         18: ifeq 3
         21: aload_0
         22: getfield #48; //Field java/util/Vector.elementCount:I
         25: anewarray #31; //class Object
         28: astore_1
         29: aload_0
         30: getfield #51; //Field java/util/Vector.elementData:[Ljava/lang/Object;
         33: iconst_0
         34: aload_1
         35: iconst_0
         36: aload_0
         37: getfield #48; //Field java/util/Vector.elementCount:I
         40: invokestatic #50; //Method java/lang/System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         43: aload_0
         44: invokevirtual #45; //Method java/util/Vector.removeAllElements:()V
         47: aload_1
         48: areturn

      }

      But the BCI transformation for cpu=times creates this:


      public synchronized java.lang.Object[] b();
         throws java/lang/InterruptedException
        Code:
         0: ldc #52; //int 267309056
         2: iconst_3
         3: invokestatic #58; //Method sun/tools/hprof/Tracker.CallSite:(II)V
         6: goto 19 <-------- BAD offset, should be 20!!!!!!!!!!
         9: aload_0
         10: invokevirtual #49; //Method java/lang/Object.wait:()V
         13: aload_0
         14: getfield #44; //Field a:Z
         17: ifeq 27
         20: aload_0
         21: getfield #48; //Field java/util/Vector.elementCount:I
         24: ifeq 9
         27: aload_0
         28: getfield #48; //Field java/util/Vector.elementCount:I
         31: anewarray #31; //class Object
         34: astore_1
         35: aload_0
         36: getfield #51; //Field java/util/Vector.elementData:[Ljava/lang/Object;
         39: iconst_0
         40: aload_1
         41: iconst_0
         42: aload_0
         43: getfield #48; //Field java/util/Vector.elementCount:I
         46: invokestatic #50; //Method java/lang/System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         49: aload_0
         50: invokevirtual #45; //Method java/util/Vector.removeAllElements:()V
         53: aload_1
         54: ldc #52; //int 267309056
         56: iconst_3
         57: invokestatic #62; //Method sun/tools/hprof/Tracker.ReturnSite:(II)V
         60: areturn

      }

            ohair Kelly Ohair (Inactive)
            ohair Kelly Ohair (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: