RFR: 8359965: Enable paired pushp and popp instruction usage for APX enabled CPUs [v5]

duke duke at openjdk.org
Tue Jul 22 22:20:56 UTC 2025


On Thu, 17 Jul 2025 17:17:07 GMT, Srinivas Vamsi Parasa <sparasa at openjdk.org> wrote:

>> This PR adds support for the Push-Pop Acceleration (PPX) hint to legacy PUSH and POP instructions, enabling the PUSHP and POPP forms. The PPX hint improves performance by accelerating register value forwarding between matching push/pop pairs.
>> 
>> **Purpose:** PPX is a performance hint that allows the processor to bypass memory and the training loop of Fast Store Forwarding Predictor (FSFP) by directly forwarding data between paired PUSHP and POPP instructions.
>> 
>> **Requirements:** Both the PUSH and its matching POP must be marked with PPX. A "matching" pair accesses the same stack address (e.g., typical function prolog/epilog). Standalone PUSH instructions (e.g. for argument passing) must not be marked.
>> 
>> **Encoding:** PUSHP/POPP is a replacement for legacy PUSH/POP (0x50+rd / 0x58+rd) and uses REX2.W = 1 (implies 64-bit operand size). PPX cannot be encoded with 16-bit operand size as REX2.W overrides the 0x66 prefix.
>
> Srinivas Vamsi Parasa has updated the pull request incrementally with one additional commit since the last revision:
> 
>   change to push_ppx/pop_ppx

@vamsi-parasa 
Your change (at version 78cbf2430d2a8179d97201f799026747a38367a4) is now ready to be sponsored by a Committer.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/25889#issuecomment-3104989703


More information about the hotspot-compiler-dev mailing list