Code Review for 6859338

Prepared by:never on Fri Jul 10 17:44:17 PDT 2009
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/

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).