Skip to content

Conversation

@JohnTortugo
Copy link
Contributor

@JohnTortugo JohnTortugo commented Sep 14, 2020

Relates to: https://bugs.openjdk.java.net/browse/JDK-8243066
Tested on: x86_64 {windows, linux, os x} x {jdk-tier1-part1..3, hotspot-tier1-gc}

Small change to move VM_INTRINSICS_DO out of vmSymbols.hpp into its own file.

/covered


Progress

  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • Change must be properly reviewed

Error

 ⚠️ For contributors who are not existing OpenJDK Authors, commit attribution will be taken from the commits in the PR. However, the commits in this PR have inconsistent user names and/or email addresses. Please amend the commits.

Issue

  • JDK-8243066: move VM_INTRINSICS_DO into its own vmIntrinsics.hpp file

Reviewers

Download

$ git fetch https://git.openjdk.java.net/jdk pull/160/head:pull/160
$ git checkout pull/160

@bridgekeeper bridgekeeper bot added the oca Needs verification of OCA signatory status label Sep 14, 2020
@bridgekeeper
Copy link

bridgekeeper bot commented Sep 14, 2020

Hi @JohnTortugo, welcome to this OpenJDK project and thanks for contributing!

We do not recognize you as Contributor and need to ensure you have signed the Oracle Contributor Agreement (OCA). If you have not signed the OCA, please follow the instructions. Please fill in your GitHub username in the "Username" field of the application. Once you have signed the OCA, please let us know by writing /signed in a comment in this pull request.

If you already are an OpenJDK Author, Committer or Reviewer, please click here to open a new issue so that we can record that fact. Please use "Add GitHub user JohnTortugo" as summary for the issue.

If you are contributing this work on behalf of your employer and your employer has signed the OCA, please let us know by writing /covered in a comment in this pull request.

@openjdk
Copy link

openjdk bot commented Sep 14, 2020

@JohnTortugo The following label will be automatically applied to this pull request: hotspot.

When this pull request is ready to be reviewed, an RFR email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label (add|remove) "label" command.

@openjdk openjdk bot added the hotspot hotspot-dev@openjdk.org label Sep 14, 2020
@JohnTortugo
Copy link
Contributor Author

/covered

@bridgekeeper bridgekeeper bot added the oca-verify Needs verification of OCA signatory status label Sep 14, 2020
@bridgekeeper
Copy link

bridgekeeper bot commented Sep 14, 2020

Thank you! Please allow for a few business days to verify that your employer has signed the OCA. Also, please note that pull requests that are pending an OCA check will not usually be evaluated, so your patience is appreciated!

@bridgekeeper bridgekeeper bot removed oca Needs verification of OCA signatory status oca-verify Needs verification of OCA signatory status labels Sep 15, 2020
@openjdk openjdk bot added the rfr Pull request is ready for review label Sep 15, 2020
@mlbridge
Copy link

mlbridge bot commented Sep 15, 2020

Webrevs

Copy link
Member

@iklam iklam left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good.

I did a 3-way diff between the new and old versions of the files and vmIntrinsics.hpp has identical content as the removed part of vmSymbols.hpp.

#endif //SHARE_CLASSFILE_VMINTRINSICS_HPP is missing in the new header file. I am surprised how that passed the build.

@openjdk
Copy link

openjdk bot commented Sep 15, 2020

@JohnTortugo This change is no longer ready for integration - check the PR body for details.

@openjdk openjdk bot added the ready Pull request is ready to be integrated label Sep 15, 2020
Copy link
Contributor

@iwanowww iwanowww left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good.

@JohnTortugo
Copy link
Contributor Author

Before integrating this PR I need to include a change requested by @coleenp on the maillist:

There's also vmIntrinsics code in vmSymbols.cpp, so there should also be a vmIntrinsics.cpp file.

@openjdk openjdk bot removed ready Pull request is ready to be integrated rfr Pull request is ready for review labels Sep 16, 2020
@JohnTortugo
Copy link
Contributor Author

/covered

@bridgekeeper
Copy link

bridgekeeper bot commented Sep 16, 2020

You are already a known contributor!

@openjdk
Copy link

openjdk bot commented Sep 16, 2020

⚠️ @JohnTortugo This pull request contains merges that bring in commits not present in the target repository. Since this is not a "merge style" pull request, these changes will be squashed when this pull request in integrated. If this is your intention, then please ignore this message. If you want to preserve the commit structure, you must change the title of this pull request to Merge <project>:<branch> where <project> is the name of another project in the OpenJDK organization (for example Merge jdk:master).

@openjdk openjdk bot added ready Pull request is ready to be integrated rfr Pull request is ready for review labels Sep 16, 2020
@JohnTortugo JohnTortugo requested a review from iklam September 16, 2020 05:51
@iklam
Copy link
Member

iklam commented Sep 16, 2020

@JohnTortugo JohnTortugo force-pushed the JohnTortugo:jdk-8243066 branch from 868eee7 to e711a53 12 hours ago

Was this an attempt to fix the missing new-line character? It doesn't seem to work.

@mlbridge
Copy link

mlbridge bot commented Sep 17, 2020

Mailing list message from David Holmes on hotspot-dev:

On 17/09/2020 4:21 am, Ioi Lam wrote:

On Tue, 15 Sep 2020 19:15:37 GMT, John Tortugo <github.com+2249648+JohnTortugo at openjdk.org> wrote:

Looks good.

Before integrating this PR I need to include a change requested by @coleenp on the maillist:

There's also vmIntrinsics code in vmSymbols.cpp, so there should also be a vmIntrinsics.cpp file.

`@JohnTortugo JohnTortugo force-pushed the JohnTortugo:jdk-8243066 branch from 868eee7 to e711a53 12 hours ago`

Please do not force-push changes in an active PR as they just mess
things up. It is fine to add a new commit to the PR to address any
updates. All commits will be flattened before the changes are committed
to the master branch of the main repo.

Thanks,
David
-----

@openjdk openjdk bot removed ready Pull request is ready to be integrated rfr Pull request is ready for review labels Sep 17, 2020
Copy link
Member

@iklam iklam left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@JohnTortugo
Copy link
Contributor Author

@iklam @dholmes-ora - Sorry about the confusion (force push) - I was actually trying to fix the the author name of one of my previous commit (a PR check was complaining about it).

Spaces / Copyright / List of include headers are not fixed.

openjdk-notifier bot pushed a commit that referenced this pull request Oct 5, 2021
r18 should not be used as it is reserved as platform register. Linux is
fine with userspace using it, but Windows and also recently macOS (
openjdk/jdk11u-dev#301 (comment) )
are actually using it on the kernel side.

The macro assembler uses the bit pattern `0x7fffffff` (== `r0-r30`) to
specify which registers to spill; fortunately this helper is only used
here:
https://github.com/openjdk/jdk/blob/c05dc268acaf87236f30cf700ea3ac778e3b20e5/src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp#L1400-L1404

I haven't seen causing this particular instance any issues in practice
_yet_, presumably because it looks hard to align the stars in order to
trigger a problem (between stp and ldp of r18 a transition to kernel
space must happen *and* the kernel needs to do something with r18). But
jdk11u-dev has more usages of the `::pusha`/`::popa` macro and that
causes troubles as explained in the link above.

Output of `-XX:+PrintInterpreter` before this change:
```
----------------------------------------------------------------------
method entry point (kind = native)  [0x0000000138809b00, 0x000000013880a280]  1920 bytes
--------------------------------------------------------------------------------
  0x0000000138809b00:   ldr x2, [x12, #16]
  0x0000000138809b04:   ldrh    w2, [x2, #44]
  0x0000000138809b08:   add x24, x20, x2, uxtx #3
  0x0000000138809b0c:   sub x24, x24, #0x8
[...]
  0x0000000138809fa4:   stp x16, x17, [sp, #128]
  0x0000000138809fa8:   stp x18, x19, [sp, #144]
  0x0000000138809fac:   stp x20, x21, [sp, #160]
[...]
  0x0000000138809fc0:   stp x30, xzr, [sp, #240]
  0x0000000138809fc4:   mov x0, x28
 ;; 0x10864ACCC
  0x0000000138809fc8:   mov x9, #0xaccc                 // #44236
  0x0000000138809fcc:   movk    x9, #0x864, lsl #16
  0x0000000138809fd0:   movk    x9, #0x1, lsl #32
  0x0000000138809fd4:   blr x9
  0x0000000138809fd8:   ldp x2, x3, [sp, #16]
[...]
  0x0000000138809ff4:   ldp x16, x17, [sp, #128]
  0x0000000138809ff8:   ldp x18, x19, [sp, #144]
  0x0000000138809ffc:   ldp x20, x21, [sp, #160]
```

After:
```
----------------------------------------------------------------------
method entry point (kind = native)  [0x0000000108e4db00, 0x0000000108e4e280]  1920 bytes

--------------------------------------------------------------------------------
  0x0000000108e4db00:   ldr x2, [x12, #16]
  0x0000000108e4db04:   ldrh    w2, [x2, #44]
  0x0000000108e4db08:   add x24, x20, x2, uxtx #3
  0x0000000108e4db0c:   sub x24, x24, #0x8
[...]
  0x0000000108e4dfa4:   stp x16, x17, [sp, #128]
  0x0000000108e4dfa8:   stp x19, x20, [sp, #144]
  0x0000000108e4dfac:   stp x21, x22, [sp, #160]
[...]
  0x0000000108e4dfbc:   stp x29, x30, [sp, #224]
  0x0000000108e4dfc0:   mov x0, x28
 ;; 0x107E4A06C
  0x0000000108e4dfc4:   mov x9, #0xa06c                 // #41068
  0x0000000108e4dfc8:   movk    x9, #0x7e4, lsl #16
  0x0000000108e4dfcc:   movk    x9, #0x1, lsl #32
  0x0000000108e4dfd0:   blr x9
  0x0000000108e4dfd4:   ldp x2, x3, [sp, #16]
[...]
  0x0000000108e4dff0:   ldp x16, x17, [sp, #128]
  0x0000000108e4dff4:   ldp x19, x20, [sp, #144]
  0x0000000108e4dff8:   ldp x21, x22, [sp, #160]
[...]
```
pfirmstone added a commit to pfirmstone/jdk-with-authorization that referenced this pull request Nov 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hotspot hotspot-dev@openjdk.org

Development

Successfully merging this pull request may close these issues.

4 participants