-
Notifications
You must be signed in to change notification settings - Fork 720
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
AArch64: Implement UnresolvedDataSnippet #5985
Conversation
This depends on #5984 and eclipse-omr/omr#3938. |
This depends on eclipse-omr/omr#3953, too. (Edit) This depends on #6051 instead now. |
3971c79
to
93f3e90
Compare
Rebased to the latest code. |
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.
I'm not done reviewing, but I wanted to push these comments out.
.set J9TR_UDSnippet_codeCacheReturnAddress, 0 | ||
.set J9TR_UDSnippet_CPIndex, 4 | ||
.set J9TR_UDSnippet_CP, 8 | ||
.set J9TR_UDSnippet_offset, 12 |
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.
Shouldn't these offsets be: 0, 8, 12, and 20 to match the snippet?
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.
You are right. Corrected.
// movk x9, #0, LSL #16 | ||
// movk x9, #0, LSL #32 | ||
// movk x9, #0, LSL #48 | ||
// use x9 for data access |
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.
I realize this code was inspired from the ARM implementation where it uses a hard-coded gr3
in the mainline code to hold the resolved address, but even in that world, how does it actually reserve gr3
for this purpose? I would think every unresolved memory reference on every instruction would need a register dependency on gr3
to prevent gr3
from being assigned to a virtual register (and hence be clobbered by the resolution code). I can't see how that is done. You'll have a similar problem with r9
on AArch64.
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.
Actually, the ARM implementation uses add
instructions (with shifted offset) to build up the address using the base register of the memory reference (whatever that base register happens to be). If you are using x9
then my question still remains on how you plan on ensuring that register will be free.
I am changing this from the dedicated register ( |
29fbbfe
to
45e5499
Compare
Just resolved merge conflicts in |
45e5499
to
d7aa665
Compare
Update the code for clinit bit checks ( |
d7aa665
to
f6938a5
Compare
Updated the files based on the another approach. Not ready for review yet. |
f269112
to
fc7d09b
Compare
Resolved merge conflicts. |
fc7d09b
to
e22329d
Compare
5888de2
to
088fa1c
Compare
This PR depends on eclipse-omr/omr#4225. |
088fa1c
to
65a52cd
Compare
Updated the |
11bbb3e
to
069c723
Compare
Updated along with the change in eclipse-omr/omr#4225, renaming |
Removed "WIP:" as eclipse-omr/omr#4225 was merged. |
069c723
to
76dc12f
Compare
Rebased and resolved the merge conflict. |
This commit implements UnresolvedDataSnippet and related functions for AArch64. Signed-off-by: knn-k <konno@jp.ibm.com>
76dc12f
to
bdf8645
Compare
Added the following four entries to PicBuilder.spp and Runtime.cpp:
|
Jenkins compile alinux64xl jdk11 |
This commit implements UnresolvedDataSnippet and related functions for
AArch64.
Signed-off-by: knn-k konno@jp.ibm.com