Name: dkC59003 Date: 01/21/99
Symantec JIT v3.00.078(x) doesn't compile hand-coded static Method walk:"([[FI)I"
( in source fpm01401m1a.jasm below ) with message ( see fpm01401m1.trace below ).
The method contains internal subroutine and a 'jsr' instruction is used. The method
checks the correctness of execution a 'fneg' instruction for argument, loaded from
local or array component or field. Array of pairs {argument value, result value}
is passed to the method with start index in the array. Class fpm01401m1 is used
for the arguments array preparation and for the method invocation.
The same error occurs in the similar method for a 'dneg' testing.
This bug affects new JCK tests
vm/fp/fpm014/fpm01401m1/fpm01401m1.html
vm/fp/fpm014/fpm01401m2/fpm01401m2.html .
Unchanged, they can't check proper execution of a 'fneg' and 'dneg' instruction
in jit-compiled code.
========================================= fpm01401m1.trace
>H:\ld25\java\dest\jdk1.2.2C\win32\bin\java.exe -version
java version "1.2.2"
Classic VM (build JDK-1.2.2-C, native threads)
>H:\ld25\java\dest\jdk1.2.2C\win32\bin\java.exe fpm01401m1
A nonfatal internal JIT (3.00.078(x)) error 'LD: null preHeader' has occurred in :
'fpm01401m1a.walk ([[FI)I': Interpreting method.
Please report this error in detail to http://java.sun.com/cgi-bin/bugreport.cgi
========================================= fpm01401m1a.jasm
super class fpm01401m1a
{
static Field from:I;
static Field holder:F;
static Method walk:"([[FI)I"
stack 6 locals 9
// local 0 - {{arg1,res}}
// local 1 - start index in 0
// local 2 - not used
// local 3 - {arg1,res}
// local 4 - isNaN(res)
// local 5 - isZero(res)
// local 6 - returnAddress for CHECK
// local 7,8 - arg1
{
goto INLOOP;
LOOP: aload_0;
iload_1;
aaload; // got {arg1,res}
dup; // ----
dup; // --------
astore_3; // --------
iconst_0;
faload; //arg1
dup;
putstatic Field holder:"F";
fstore 7;
iconst_1; // ----
faload;
dup;
invokestatic Method java/lang/Float.isNaN:"(F)Z";
istore 4;
fconst_0;
fcmpl; // res != 0
istore 5;
aload_3;
iconst_0;
faload; //arg1 from array[]
fneg;
iconst_0;
jsr CHECK;
getstatic Field holder:"F"; //arg1 from field
fneg;
iconst_1;
jsr CHECK;
fload 7; //arg1 from local
fneg;
iconst_2;
jsr CHECK;
iinc 1, -1;
INLOOP: iload_1;
ifge LOOP;
RET: iload_1;
ireturn;
CHECK: //------------------ subroutine
astore 6;
putstatic Field from:"I";
iload 4;
ifne NAN;
iload 5;
ifeq ZERO; // need additional work for zero value
aload_3;
iconst_1;
faload; // res
fcmpl;
ifne RET;
goto CONT; //------------------ return
ZERO: dup;
aload_3;
iconst_1;
faload; // res
fcmpl;
ifeq GOON;
pop;
goto RET;
GOON:
getstatic Field java/lang/Float.MIN_VALUE:"F";
swap;
fdiv; // wait +/-Inf==(MIN_VALUE/(+/-0))
getstatic Field java/lang/Float.MIN_VALUE:"F";
aload_3;
iconst_1;
faload; // res == (+/-0)
fdiv; // wait +/-Inf==(MIN_VALUE/(+/-0))
fcmpl;
ifne RET;
goto CONT; //------------------ return
NAN: invokestatic Method java/lang/Float.isNaN:"(F)Z";
ifeq RET;
CONT: ret 6; //------------------ return
}
Method "<init>":"()V"
stack 2 locals 1
{
aload_0;
invokespecial Method java/lang/Object."<init>":"()V";
return;
}
}
========================================= fpm01401m1.java
import java.io.PrintStream;
public class fpm01401m1 {
public static void main(String argv[]) {
System.exit(run(argv, System.out) + 95/*STATUS_TEMP*/);
}
public static int run(String argv[], PrintStream out) {
final float X = Float.MAX_VALUE - (Float.MAX_VALUE-(Float.MAX_VALUE/(1L<<24)))/2;
final float Y = Float.MIN_VALUE*(1L<<(24-1));
fpm01401m1a R = new fpm01401m1a();
boolean OK = true;
float[] aaX[] = {
{ Float.MIN_VALUE, -Float.MIN_VALUE},
{ -Float.MIN_VALUE, Float.MIN_VALUE},
{ Float.MAX_VALUE, -Float.MAX_VALUE},
{ -Float.MAX_VALUE, Float.MAX_VALUE},
{ 0, -0.0f },
{ -0.0f, 0 },
{ -X, X },
{ X, -X },
{ -Y, Y },
{ Y, -Y },
{ Float.MIN_VALUE, -Float.MIN_VALUE},
{ -Float.MIN_VALUE, Float.MIN_VALUE},
{ Float.MAX_VALUE, -Float.MAX_VALUE},
{ -Float.MAX_VALUE, Float.MAX_VALUE},
{ Float.POSITIVE_INFINITY, Float.NEGATIVE_INFINITY },
{ Float.NEGATIVE_INFINITY, Float.POSITIVE_INFINITY },
{ -0.0f/0, Float.NaN },
{ Float.NaN, Float.NaN },
};
int j;
int i=aaX.length;
while ( i>0 ) {
j = i-1;
i = R.walk(aaX,j);
if ( i>=0 ) {
out.println("Failed at index "+i+" with "+aaX[i]+"");
OK = false;
}
}
return OK ? 0/*STATUS_PASSED*/
: 2/*STATUS_FAILED*/;
}
}
=========================================
======================================================================
Name: skT88420 Date: 06/03/99
hi, just messing around with break and continue and got the above error. Source code as follows:-
//: ConTest.java
class ConTest {
public static void main(String[] args) {
int i=0;
int j=0;
outerlabel:
for(;j<10;j++) {
label1:
for (; i<10; i++) {
System.out.println(i);
continue outerlabel;
}
}
}
} ///:~
(Review ID: 83864)
======================================================================
Name: skT88420 Date: 08/23/99
A nonfatal internal JIT (3.00.078(x)) error 'LD: null preHeader' has occurred in
:
'sun/tools/tree/TryStatement.check (Lsun/tools/java/Environment;Lsun/tools/tre
e/Context;Lsun/tools/tree/Vset;Ljava/util/Hashtable;)Lsun/tools/tree/Vset;': Int
erpreting method.
Classic VM (build JDK-1.2.1-A, native threads)
java full version "JDK-1.2.1-A"
(Review ID: 94238)
======================================================================
Name: krT82822 Date: 11/15/99
java version "1.2"
Classic VM (build JDK-1.2-V, native threads)
Nonfatal internal JIT (3.00.078(x)) error 'LD: null preHeader' has occurred in .
Our application is often show this error in console window. We have not any
problem with it, but our customers have been nervious a lot. This problem do
not appear when it is used HotSpot. Unfortunately we cannot use HotSpot for all
our customers. How can we avoid this error? I
(Review ID: 97842)
======================================================================
Name: skT88420 Date: 01/28/2000
java version "1.2.2"
Classic VM (build JDK-1.2.2-W, native threads, symcjit)
While executing my little test programm following internal bug occured:
>java Aufgabe51
A nonfatal internal JIT (3.10.107(x)) error 'LD: null preHeader' has occurred in
:'Aufgabe51.main ([Ljava/lang/String;)V': Interpreting method.
Please report this error in detail to http://java.sun.com/cgi-bin/bugreport.cgi
It does not affect my programm:
-----------------
/** Aufgabe Aufgabe51 */
class Aufgabe51
{
/** Hauptprogramm */
public static void main(String [] args){
// Aufgabe a)
int i = 1; // Startwert
int ende = 10;
while (i < ende){
/* <S> z.B.: */ System.out.print(i);
i++; // am Ende der Schleife (repr. den Update-Teil)
}
System.out.println();
System.out.println("------------------------");
// Aufgabe b)
i = 1;
/* <S> z.B.: */ System.out.print(i); i++;
/* <s> muss hier auch schon stehen, weil die Do-Schleife
nicht abweisend ist, der Code in der Schleife also immer
mindestens einmal ausgef?hrt wird */
while (i < ende){
/* <S> z.B.: */ System.out.print(i); i++;
}
System.out.println();
System.out.println("------------------------");
// Aufgabe c)
i = 1;
schleife1: while (true){
while (i == 1){
/* <S1> z.B.: */ System.out.println("<S1>");
break schleife1;
}
/* <S2> z.B.: */ System.out.println("<S2>");
break;
}
i = 2;
schleife2: while (true){
while (i == 1){
/* <S1> z.B.: */ System.out.println("<S1>");
break schleife2;
}
/* <S2> z.B.: */ System.out.println("<S2>");
break;
}
System.out.println("------------------------");
// Aufgabe d)
for (i = 1; i<=3; i++){
schleife3: while (true){
while (i==1){
/* <S1> z.B.: */ System.out.println("<S1>");
break schleife3;
}
while (i==2){
/* <S2> z.B.: */ System.out.println("<S2>");
break schleife3;
}
/* <S3> z.B.: */ System.out.println("<S3>");
break;
}
}
}
}
-----------------
I hope it's helpfull for you...
(Review ID: 100453)
======================================================================
Name: krT82822 Date: 01/29/2000
java version "1.2.2"
Classic VM (build JDK-1.2.2-001, native threads, symcjit)
Hello there !
I want to report you this bug :
A nonfatal internal JIT (3.10.107(x)) error 'LD: null preHeader' has occurred in
: 'db/Search.?? ([I)V': Interpreting method.
I could?nt locate the piece of code where this error occurs, but I hope you are
able to give me an explanation for it.
So i also don?t know the impact of the error, but it feels as if the application
was slowed down by this bug...?!? (sorry for my bad english)
OK so far, please help me if you can
Best regards, Andreas Gardt
(Review ID: 100501)
======================================================================