Integrated: 8359965: Enable paired pushp and popp instruction usage for APX enabled CPUs
Srinivas Vamsi Parasa
sparasa at openjdk.org
Tue Jul 22 22:41:00 UTC 2025
On Thu, 19 Jun 2025 05:15:40 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.
This pull request has now been integrated.
Changeset: 4994bd59
Author: Srinivas Vamsi Parasa <sparasa at openjdk.org>
Committer: Sandhya Viswanathan <sviswanathan at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/4994bd594299e91e804438692e068b1c5dd5cc02
Stats: 341 lines in 22 files changed: 19 ins; 0 del; 322 mod
8359965: Enable paired pushp and popp instruction usage for APX enabled CPUs
Reviewed-by: sviswanathan, vpaprotski
-------------
PR: https://git.openjdk.org/jdk/pull/25889
More information about the hotspot-dev
mailing list