|
Evaluation
|
xxxxx@xxxxx 2003-03-28
With big Mike's help we found the the problem in the restoring XMM registers
during Safepoint processing. The stack pointer was incorrectly modified
before restoring XMM registers in the illegal_instruction_handler_blob().
The next test was prepared to show the problem.
/net/jano/export/disk20/GammaBase/Bugs/4828693/Test.java
>c:\j2sdk1.4.2.b18\bin\java_g -imgr -XX:+SafepointALot -XX:Guarantee
dSafepointInterval=1 -Xcomp -XX:CompileOnly=Hello.foo -XX:+ShowSafepointMsgs Hel
lo
VM option '+SafepointALot'
VM option 'GuaranteedSafepointInterval=1'
VM option 'CompileOnly=Hello.foo'
VM option '+ShowSafepointMsgs'
Thread in native stub.
Thread in native stub.
Hello!
0
10
...
### Compiled code: foo. pc: 0x00ad5560
############# Original nmethod ################
Compiled {method} 'foo' '()V' in 'Hello'
main code [0x00ad53f0,0x00ad57f4] = 1028
exception code [0x00ad57f4,0x00ad5800] = 12
stub code [0x00ad5800,0x00ad5828] = 40
relocation [0x00ad53b4,0x00ad53f0] = 60
oops [0x00ad59e4,0x00ad5a24] = 64
scopes data [0x00ad5828,0x00ad5978] = 336
scopes pcs [0x00ad5978,0x00ad59a0] = 40
handler table [0x00ad59a0,0x00ad59e0] = 64
nul chk table [0x00ad59e0,0x00ad59e4] = 4
total size = 1820
Original code: [0x00ad53f0 - 0x00ad5828]
Code buffer: [0x18571bd0 - 0x18572008]
Orignal pc: 0x00ad5560
handle_illegal_instruction_exception: static_call_type
X0(6859693.5) != Value(0.123456)
X1(1.741971E-39) != Value(0.123456)
|