Skip to content

Support more opcodes in InterpreterEmulator to inline DirectMethodHandleAccessor.isStatic - #24676

Open
matthewhall2 wants to merge 2 commits into
eclipse-openj9:masterfrom
matthewhall2:support_ifacmp_interpEm
Open

matthewhall2 wants to merge 2 commits into
eclipse-openj9:masterfrom
matthewhall2:support_ifacmp_interpEm

Conversation

@matthewhall2

@matthewhall2 matthewhall2 commented Sep 1, 2026 •

Copy link
Copy Markdown
Contributor

Adds support for ifacmpeq, ifacmpne, bipush, sipush to InterpreterEmulator.cpp, allowing DirectMethodHandleAccessor.isStatic() to be folded to its result.

builds on changes in #24504. These won't take effect until that PR is merged, since it relies on the ifacmpeq and ifacmpne support added there in InterpreterEmulator::maintainStackForIf()

ifacmpeq and ifacmpne are both supported in maintainStackForIf, so add
them to maintainStack

Signed-off-by: Matthew Hall <matthew.hall3@outlook.com>
putfield should pop 2 bytes as per the jvm spec. This was causes issues
with operand stacks having different sizes

Signed-off-by: Matthew Hall <matthew.hall3@outlook.com>
@matthewhall2

Copy link
Copy Markdown
Contributor Author

@nbhuiyan this gives an additional ~18% improvement in at least instanceMethodConst and staticMethodConsts (both baseline benchmarks and with these changes run with TR_moreInterpreterEmulator set)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant