Skip to content
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

8247993: AArch64: add support for VaList #224

Closed
wants to merge 1 commit into from

Conversation

nick-arm
Copy link
Collaborator

@nick-arm nick-arm commented Jul 1, 2020

Based on the SysV x64 implementation as it's somewhat similar to AArch64.

I added some extra tests to cover some cases on AArch64 that weren't hit
by the existing tests. The new testHugeStructByValue fails on Linux
x86_64 because the HugePoint struct is too large to be passed in
registers in the SysV ABI. Made a minimal fix to pass it on the stack
instead.


Progress

  • Change must not contain extraneous whitespace
  • Change must be properly reviewed

Issue

Reviewers

  • Jorn Vernee (jvernee - Committer)

Download

$ git fetch https://git.openjdk.java.net/panama-foreign pull/224/head:pull/224
$ git checkout pull/224

Sorry, something went wrong.

Based on the SysV x64 implementation as it's somewhat similar to AArch64.

I added some extra tests to cover some cases on AArch64 that weren't hit
by the existing tests. The new testHugeStructByValue fails on Linux
x86_64 because the HugePoint struct is too large to be passed in
registers in the SysV ABI. Made a minimal fix to pass it on the stack
instead.
@bridgekeeper
Copy link

bridgekeeper bot commented Jul 1, 2020

👋 Welcome back ngasson! A progress list of the required criteria for merging this PR into foreign-abi will be added to the body of your pull request.

@openjdk openjdk bot added the rfr Ready for review label Jul 1, 2020
@mlbridge
Copy link

mlbridge bot commented Jul 1, 2020

Webrevs

@JornVernee
Copy link
Member

Hi Nick,

Thanks for the patch! And thanks for fixing the SysV problem. That use-case slipped my mind.

I plan to take a thorough look at this soon, but I'm currently juggling a few other things.

Copy link
Member

@JornVernee JornVernee left a comment

Choose a reason for hiding this comment

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

Looks Excellent! Thanks.

@openjdk
Copy link

openjdk bot commented Jul 2, 2020

@nick-arm This change now passes all automated pre-integration checks, type /integrate in a new comment to proceed. After integration, the commit message will be:

8247993: AArch64: add support for VaList

Reviewed-by: jvernee
  • If you would like to add a summary, use the /summary command.
  • To credit additional contributors, use the /contributor command.
  • To add additional solved issues, use the /issue command.

Since the source branch of this PR was last updated there have been 99 commits pushed to the foreign-abi branch:

As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid automatic rebasing, please merge foreign-abi into your branch, and then specify the current head hash when integrating, like this: /integrate 6d6233cc5c9c3a63632c18fb19137d5c1694b249.

As you do not have Committer status in this project, an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@JornVernee) but any other Committer may sponsor as well.

➡️ To flag this PR as ready for integration with the above commit message, type /integrate in a new comment. (Afterwards, your sponsor types /sponsor in a new comment to perform the integration).

@openjdk openjdk bot added the ready Ready to be integrated label Jul 2, 2020
@nick-arm
Copy link
Collaborator Author

nick-arm commented Jul 3, 2020

/integrate

@openjdk
Copy link

openjdk bot commented Jul 3, 2020

@nick-arm
Your change (at version 0a5e655) is now ready to be sponsored by a Committer.

@openjdk openjdk bot added the sponsor Ready to sponsor label Jul 3, 2020
@JornVernee
Copy link
Member

/sponsor

@openjdk
Copy link

openjdk bot commented Jul 3, 2020

@JornVernee Only Committers are allowed to sponsor changes.

@JornVernee
Copy link
Member

/sponsor

@openjdk
Copy link

openjdk bot commented Jul 3, 2020

@JornVernee Only Committers are allowed to sponsor changes.

@JornVernee
Copy link
Member

/sponsor

@openjdk openjdk bot closed this Jul 3, 2020
@openjdk openjdk bot added integrated Pull request has been integrated and removed sponsor Ready to sponsor ready Ready to be integrated rfr Ready for review labels Jul 3, 2020
@openjdk
Copy link

openjdk bot commented Jul 3, 2020

@JornVernee @nick-arm The following commits have been pushed to foreign-abi since your change was applied:

  • 6d6233c: Automatic merge of foreign-memaccess into foreign-abi
  • f414a23: Automatic merge of master into foreign-memaccess
  • 1339f2b: Automatic merge of jdk:master into master
  • 4506975: 8248398: Add diagnostic RepeatCompilation utility
  • e2072bb: 8245302: Upgrade LogRecord to support long thread ids and remove its usage of ThreadLocal
  • 272a141: 8248480: Switch isVarArg layout attribute to Boolean
  • 3d5b523: Fix javadoc issues in foreign-abi
  • e84922e: Copy stubs from Compile arena to nmethod stub array
  • 0e3850c: Turn off down call intrinsics by default
  • 69e9a61: 8248331: Intrinsify downcall handles in C2
  • 77fc798: Improve StdLibTest to use new helpers
  • 56aecf9: 8248499: Add methods to allocate off heap arrays from Java arrays
  • cef954c: Automatic merge of foreign-memaccess into foreign-abi
  • 56d796f: 8248487: Add static helpers to access segments
  • f23c983: 8248468: java/awt/font/DefaultFontTest/DefaultFontTest.java fails in SunFontManager.findFont2D
  • af51a73: 8244383: jhsdb/HeapDumpTestWithActiveProcess.java fails with "AssertionFailure: illegal bci"
  • e0c26b3: 8248348: Regression caused by the update to BCEL 6.0
  • 6b8bf62: Merge
  • 4858141: 8247533: SA stack walking sometimes fails with sun.jvm.hotspot.debugger.DebuggerException: get_thread_regs failed for a lwp
  • 8b7c959: 8247922: Update Graal
  • ec25b42: 8076985: Allocation path: biased locking + compressed oops code quality
  • 5a90271: 8237488: jdk/jfr/event/compiler/TestCompilerCompile.java failed due to "RuntimeException: No thread in event"
  • 579ed70: 8248417: some jdk/javadoc/doclet tests fail (JDK 16)
  • 78b9de8: 8248495: [macos] zerovm is broken due to libffi headers location
  • dc0c0c7: 8248060: small HTML issues in java.xml package-info.java files
  • 1eaa411: Added tag jdk-16+4 for changeset e2622818f0bd
  • 4e962f9: 8248321: [JVMCI] improve libgraal logging and fatal error handling
  • 1356a0f: 8248667: Need support for building native libraries located in the test/lib directory
  • 72ae322: 8208207: Test nsk/stress/jni/gclocker/gcl001 fails after co-location
  • 3d9bad1: 8218021: Have jarsigner preserve posix permission attributes
  • dc63bf2: 8248650: [BACKOUT] Backout JDK-8244603 because it generates too much noise in CI
  • 51937e1: 8248634: Shenandoah: incorrect include in shenandoahInitLogger.cpp
  • 00e0a60: 8248632: Shenandoah: build fails without both JVMTI and JFR
  • 43a2010: Merge
  • 637fdbc: Added tag jdk-16+4 for changeset 78c07dd72404
  • 2e65885: Added tag jdk-15+30 for changeset 6909e4a1f25b
  • 55e7003: 8248059: [macos] EmptyFolderPackageTest.java failed "hdiutil: create failed - No child processes"
  • 83a8c4a: 8244724: CTW: C2 compilation fails with "Live Node limit exceeded limit"
  • 7e93e03: 8248612: Back quotes and double quotes must not be escaped in: Cannot convert "$unix_path" to Windows path
  • bf04926: 8005088: remove unused NativeInstruction::test methods
  • dc74336: 8243586: Optimize calls to SystemDictionaryShared::define_shared_package for classpath
  • 4b85bd5: 8248610: Clean up handling of Windows RC files
  • 32aa661: 8247534: Update --release 15 symbol information for JDK 15 build 29
  • 292a3d5: Merge
  • 03d47d5: 8248359: Update JVMCI
  • eb78035: 8247741: Test test/hotspot/jtreg/runtime/7162488/TestUnrecognizedVmOption.java fails when -XX:+IgnoreUnrecognizedVMOptions is set
  • 13b7c2e: 8244724: CTW: C2 compilation fails with "Live Node limit exceeded limit"
  • 2a37607: 8248563: Gtest CFLAGS/warnings is not properly handled
  • f567358: 8248526: configure script failed on WSL in May 2020 update
  • 545d56d: Merge
  • 7d54e71: 8246493: JDI stress/serial/mixed002 needs to use WhiteBox.deflateIdleMonitors support
  • 46ff8fd: 8248409: some jdk/javadoc/doclet tests fail (JDK 15)
  • 7c3d72f: Merge
  • 0f43de9: 8246114: java/net/MulticastSocket/Promiscuous.java fails after 8241072 (multi-homed systems)
  • 13750b6: 8248048: ZGC: AArch64: SIGILL in load barrier register spilling
  • abc55de: 8248485: Poor scalability in JfrCheckpointManager when using many threads after JDK-8242008
  • a338213: 8248545: Remove unneeded warning suppression of MSVC++ 4521/4522
  • eb1bacc: 8248475: Suppress unconditional warning "JFR will be disabled during CDS dumping"
  • 2de3595: 8248548: Use DISABLED_WARNINGS for globally disabled warnings on Visual Studio in Hotspot
  • f19db79: 8248547: Use SetupJdkLibrary for hotspot libraries
  • 622117d: 8234605: C2 failed "assert(C->live_nodes() - live_at_begin <= 2 * _nodes_required) failed: Bad node estimate: actual = 208 >> request = 101"
  • 20a1e35: 8248492: ProblemList open/test/langtools//jdk/javadoc/doclet/testHeadTag/TestHeadTag.java
  • 46f8647: 8248346: Move OopStorage mutex setup out from OopStorageSet
  • 51b7c76: 8245129: Enhance jstat gc option output and tests
  • ba711f6: 8248410: Correct Fix for 8236647: java/lang/invoke/CallSiteTest.java failed with InvocationTargetException in Graal mode
  • 682e836: 8248488: JDK-8246484 actually broke COMPARE_BUILD
  • 5a6954a: 8246051: SIGBUS by unaligned Unsafe compare_and_swap
  • 840867e: 8247218: Add default constructor to VectorSet to use Thread::current()->resource_area() as arena by default
  • fe14564: 8248227: Shenandoah: Refactor Shenandoah::heap() to match other GCs
  • c07ce7e: 8245245: Websocket can lose the URL encoding of URI query parameters
  • 55bbaf1: 8248273: Small clean up for PerfClassTraceTime
  • 48c0ce3: 8247408: IdealGraph bit check expression canonicalization
  • a25bacd: 8248234: Disabling UseExactTypes crashes C2
  • a793293: 8247845: Shenandoah: refactor TLAB/GCLAB retirement code
  • 5ad963c: 8248379: Handshake closures for JVMTI monitor functions lack of some validations
  • 9d67970: Merge
  • ac4f14c: 8247307: C2: Loop array fill stub routines are not called
  • f44f885: 8248044: Backout ProblemList-ed tests introduced by JDK-8247876
  • a2db08a: 8247438: JShell: When FailOverExecutionControlProvider fails the proximal cause is not shown
  • bdab5a0: 8248428: Cleanup pass on javax.lang.model docs
  • 1ef33e4: 8248168: [Graal] jck tests timeout in Graal with -Xcomp mode
  • a0a0539: 8248112: array index out of bound in FileMapInfo::check_paths
  • f6c537f: 8247438: JShell: When FailOverExecutionControlProvider fails the proximal cause is not shown
  • fc82a46: 8248412: test/jdk/java/sql/testng/test/sql/DriverManagerPermissionsTests.java can fail
  • c0c4a8d: 8248326: Add a minimal serialization test for local records
  • 57b792c: 8248216: JFR: Unify handling of all OopStorage instances in LeakProfiler root processing
  • 18cddad: 8247819: G1: Process strong OopStorage entries in parallel
  • 51ddc2a: 8246337: Add more JVM tests for sealed classes
  • 05dc2af: 8247824: CTW: C2 (Shenandoah) compilation fails with SEGV in SBC2Support::pin_and_expand
  • d5ae932: 8248265: compiler/ciReplay tests fail with AOT compiled java.base
  • a7e352b: 8246051: SIGBUS by unaligned Unsafe compare_and_swap
  • 144267d: 7107012: sun.jvm.hostspot.code.CompressedReadStream readDouble() conversion to long mishandled
  • d19f2bd: 8234605: C2 failed "assert(C->live_nodes() - live_at_begin <= 2 * _nodes_required) failed: Bad node estimate: actual = 208 >> request = 101"
  • 320af9b: 8248264: WinUpgradeUUIDTest application is missing in downgrade scenario
  • d180fb3: 8248254: jpackage fails if app module is in external runtime
  • 1a4f314: 8248427: jpackage jtreg BasicTest.testTemp() test fails on Windows
  • d16ea55: 8236647: Correct Fix for 8236647: java/lang/invoke/CallSiteTest.java failed with InvocationTargetException in Graal mode
  • 97cdfb9: 8247832: [Graal] Many Javafuzzer tests failures with Graal, due to unexpected results, after last update JDK-8243380
  • a4b1353: 8244763: Update --release 8 symbol information after JSR 337 MR3

Your commit was automatically rebased without conflicts.

Pushed as commit 3c80669.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
integrated Pull request has been integrated
Development

Successfully merging this pull request may close these issues.

None yet

2 participants