Prepared by: | never on Fri Jul 10 17:44:17 PDT 2009 |
---|---|
Workspace: | /net/smite.sfbay/export/ws/c2 |
Compare against: | /export/ws/baseline |
Summary of changes: | 58 lines changed: 52 ins; 4 del; 2 mod; 3346 unchg |
Patch of changes: | 6859338.patch |
Author comments: |
This is a bug found in the realtime 64 bit C1 testing. From 6789226: A compiled method calls a native method that uses a compiled entry point. The call is an IC call. First thing on method entry: do the IC check. The code allocates a new tmp register with a push/pop sequence for this check. When the receiver is NULL the IC check acts as an implicit null check (triggers a SEGV that the runtime will catch and convert to a null pointer exception). But the tmp register allocation changes the stack layout and that's not expected by the runtime when it throws the exception. The fix is to use rscratch1 as a tmp instead. Tested with regression test. |
Legend: |
Modified file Deleted file New file |
Cdiffs
Udiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/cpu/x86/vm/sharedRuntime_x86_64.cpp
7 lines changed: 1 ins; 4 del; 2 mod; 3346 unchg
------ ------ ------
------
---
New
Patch
Raw
test/compiler/6859338/Test6859338.java
51 lines changed: 51 ins; 0 del; 0 mod; 0 unchg
This code review page was prepared using /net/smite.sfbay/never/bin/webrev (vers 23.18-hg-never).