RFR: 8283327: Add methods to save/restore registers when calling into the VM from C1/interpreter barrier code/improve push pop stuff for x86

Thomas Schatzl tschatzl at openjdk.java.net
Fri Mar 18 14:07:58 UTC 2022


Hi all,

  can I have reviews for this change that adds an API to save/restore caller-saved registers for VM upcalls for C1/interpreter.

Currently, for x86, this is done in a very ad-hoc (copy&pasty) way, which starts to fall apart. Additionally this fixes some problems with wrong stack alignment.

There is some cleanup to do separately to remove that copy&paste code in another CR. At the moment the API (`push_call_clobbered_registers/pop_call_clobbered_registers`) is only used for g1.

It's based on `RegSet` from AArch64.

Testing: tier1-5, tier1 testing with x64 and x86, with some at this point obscure combinations (like x86 UseSSE=0/1).

Thanks,
  Thomas

-------------

Commit messages:
 - Single stack change
 - Reserve space on stack only for necessary parts of xmm registers
 - More refactoring
 - Store floats with usesse==1 too
 - Reverse pop
 - add reverseregiterator
 - minor refactoring
 - More fixes
 - build fixes
 - Clenaups
 - ... and 1 more: https://git.openjdk.java.net/jdk/compare/69e4e338...1be201b1

Changes: https://git.openjdk.java.net/jdk/pull/7867/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=7867&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8283327
  Stats: 543 lines in 9 files changed: 396 ins; 126 del; 21 mod
  Patch: https://git.openjdk.java.net/jdk/pull/7867.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/7867/head:pull/7867

PR: https://git.openjdk.java.net/jdk/pull/7867


More information about the hotspot-dev mailing list