-
Notifications
You must be signed in to change notification settings - Fork 729
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement z/OS XPLINK system linkage #5609
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
fjeremic
added
comp:jit
depends:omr
Pull request is dependent on a corresponding change in OMR
comp:jit:z
labels
Apr 24, 2019
Depends on eclipse-omr/omr#3779. |
Jenkins test sanity all depends eclipse-omr/omr#3779 |
joransiu
approved these changes
Apr 25, 2019
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The changes in this PR LGTM. Will review the OMR changes next.
Jenkins test sanity zlinux depends eclipse-omr/omr#3779 |
The `generateBinaryEncodingPrologue` has generic code for the following: 1. Creating the recompilation preprologue 2. Creating the method preprologue 3. Creating the method prologue On Z there is nothing specific to OpenJ9 about the above steps. In fact the steps are missing from OMR and hence no prologue/preprologue is generated of system linkages at the OMR level during binary encoding. This is a problem and the fix is to simply migrate this code over. Signed-off-by: Filip Jeremic <[email protected]>
Signed-off-by: Filip Jeremic <[email protected]>
Signed-off-by: Filip Jeremic <[email protected]>
The Linux and z/OS system linkage classes are large and complicated enough that they deserve to live within their own compilation units. This commit partitions up the two classes into: - SystemLinkageLinux.cpp - SystemLinkagezOS.cpp and updates the corresponding include files in the rest of the codebase. We take this opportunity to completely fold `S390SystemLinkage` as it really serves no purpose since the `SystemLinkage` class already exists in the `TR` namespace. Signed-off-by: Filip Jeremic <[email protected]>
Signed-off-by: Filip Jeremic <[email protected]>
- Create the new snippet - Migrate Call Descriptor generation function to the snippet - Document all the new APIs - Make use of the new snippet when generating the call outs - Clean up generation of Call Descriptor relocation - Remove XPLINKDESC, now unused pseudo-instruction - Enhance internal relocation class to be more generic Signed-off-by: Filip Jeremic <[email protected]>
Signed-off-by: Filip Jeremic <[email protected]>
Jenkins test sanity all depends eclipse-omr/omr#3779 |
0xdaryl
approved these changes
May 11, 2019
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
To get JitBuilder working on z/OS we need a proper z/OS system linkage in place, that means both frame shape and callout support. At the moment we have some half-baked solution in OMR which does not cut it, since we cannot even run the simplest JitBuilder test cases (see eclipse-omr/omr#3693).
This PR introduces minimal, but proper XPLINK support to OMR and lays out the groundwork for pushing Java-isms out of OMR and consolidating much of the system linkage support across Linux and z/OS. There are many changes in the PR, each of which deserves it's own commit. Each commit comment outlines the specific change made. The work is not done yet, but to avoid feature creep as this is a deep rabbit hole I've chosen this as the point where the code is good enough to be reviewed and contributed to the project while I continue to work on it in the background.
The following is a summary of some of the goals of this PR: