-
Notifications
You must be signed in to change notification settings - Fork 738
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 arm64cinterp.m4 and arm64helpers.m4 #3559
Conversation
Should the file names be arm64* or aarch64*? |
@gacholio @DanHeidinga ^ do you have a preference? |
I'd prefer this not be in another file - will it not be 99% similar to the 32-bit implementation? I was hoping not to generate another branch of files for 64-bit (we haven't needed to do it on any other platforms). I'd prefer to see ifdefs on our existing 64-bit flag (the poorly-name ENV_DATA64) in ARM files rather than calling out AARCH64 as an entirely different entity. @knn-k See if you can fix/ifdef the existing m4 files. |
AArch64 instruction set is not an extension of existing 32-bit ARM instruction set. The implementation of those *.m4 files for AArch64 will be completely different from the 32-bit ARM version. See #3502 for the case of unsafeHelper.s. I have already wrote the full version of arm64cinterp.m4, which is not built nor tested yet. |
Can this difference be resolved by way of alias (in much the same way that _rbx on X is EBX or RBX on different bitness)? 99% of all of the instructions in the m4 files are fullword-sized. |
@gacholio It won't be simple instruction/register aliases. I guess I will have to define more macros to put both 32-bit and 64-bit ARM. From the existing armcinterp.m4:
AArch64 version (in preparation):
|
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.
Fair enough. Once the implementation is complete, we can look at commonizing things if it's worth it.
jenkins compile xlinux jdk8 |
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.
Compile fails for the non-cmake xa64 build - I suspect it will fail elsewhere as well. I think you need to update the module.xml to exclude your new C interp file on non-AARCH64 platforms.
bf3490f
to
a2fd5ed
Compare
Updated module.xml. |
jenkins compile xlinux jdk8 |
|
While you're at it, you may as well exclude the 32-bit file on 64-bit builds in preparation for having a build. |
How is the spec.flags determined during the OpenJ9 build process? |
a2fd5ed
to
b98b4c7
Compare
I updated the files a little. |
4d5af08
to
3396d28
Compare
Updated the files adding actual code to |
I can run |
This commit adds two asm files for aarch64, implementing c_cInterpreter. Signed-off-by: knn-k <konno@jp.ibm.com>
3396d28
to
9e3e321
Compare
Removed unnecessary comments from the .m4 files. |
@gacholio can you give this another review? |
I would like this PR to be merged if the code is OK. |
Sorry, I will get to this soon. |
jenkins compile xlinux jdk8 |
This commit adds two asm files for aarch64, implementing c_cInterpreter.
Signed-off-by: knn-k konno@jp.ibm.com