Maintenance Notice

The site will be undergoing maintenance on 15th Dec 2017 21:00 PST to 16th Dec 2017 1:00 AM PST.
JDK-7172640 : C2: instrinsic implementations in LibraryCallKit should use argument() instead of pop()
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs24
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2012-05-30
  • Updated: 2013-06-26
  • Resolved: 2012-11-27
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availabitlity Release.

To download the current JDK release, click here.
JDK 7 JDK 8 Other
7u40Fixed 8Fixed hs24Fixed
Related Reports
Duplicate :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Most intrinsics in LibraryCallKit re-push the arguments that have been popped off before the call to just pop them again as arguments.  It would be much cleaner and more correct to use argument() accessors instead.

Another problem is that it is very tricky to find the places where the stack pointer needs to be adjusted to the correct value for re-execution (uncommon traps).  This adjustment is a plain SP bump and decrease after the call.  In itself very error prone and it could be handled in a much more elegant way.
Tests affected: RULE jruby/test.rubicon.test_thread_group Crash assert(sp() >= inputs) failed: must have enough JVMS stack to execute

JDK-7184394 needs to be verified.

JDK-7023898 needs to be verified.