JDK-8028580 : PPC64 (part 114/120): Support for Call nodes with constants.
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: port-stage-ppc-aix
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • CPU: ppc
  • Submitted: 2013-11-19
  • Updated: 2014-07-29
  • Resolved: 2013-11-20
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 Availability Release.

To download the current JDK release, click here.
JDK 8 JDK 9 Other
8u20Fixed 9Fixed port-stage-ppc-aixFixed
C2 Call nodes use several constant values. So far C2 does not 
support placing these values in the constant table of the nmethod.

Among others, these constants are 
 - the called address             
 - the inline cache               
 - values required by the C-calling convention (on PPC, env pointer
   and toc from function descriptor)                               

This change extends Call nodes so that they can issue constants
to the constant table.                                         

- Extend adlc to add edge to MachConstantBaseNode if 
  $constanttablebase is used in the specification.   
- Extend Call nodes to deliver proper register mask to 
  register allocation for this new input.              
- Add method ins_num_consts() so that number of required
  constants can be specified in the call node.          
- Extend output() so that it reserves space for the     
  constants in the Calls, using ins_num_consts().


This is preparation for PPC64 integration: http://openjdk.java.net/jeps/175
This and following ppc64 changes will go into staging repository first and tested there: http://hg.openjdk.java.net/ppc-aix-port/stage/

As we basically redesigned this, it comprises two of the original patches: