-
Bug
-
Resolution: Fixed
-
P5
-
9, 11, 16
-
b27
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8277364 | 11.0.14 | Jie Fu | P5 | Resolved | Fixed | b04 |
Suggested fix:
------------------------
diff --git a/src/hotspot/cpu/x86/register_x86.hpp b/src/hotspot/cpu/x86/register_x86.hpp
index 0c4004d..1461742 100644
--- a/src/hotspot/cpu/x86/register_x86.hpp
+++ b/src/hotspot/cpu/x86/register_x86.hpp
@@ -50,7 +50,7 @@ class RegisterImpl: public AbstractRegisterImpl {
#else
number_of_registers = 16,
number_of_byte_registers = 16,
- max_slots_per_register = 1
+ max_slots_per_register = 2
#endif // AMD64
};
@@ -256,10 +256,7 @@ class ConcreteRegisterImpl : public AbstractRegisterImpl {
// There is no requirement that any ordering here matches any ordering c2 gives
// it's optoregs.
- number_of_registers = RegisterImpl::number_of_registers +
-#ifdef AMD64
- RegisterImpl::number_of_registers + // "H" half of a 64bit register
-#endif // AMD64
+ number_of_registers = RegisterImpl::number_of_registers * RegisterImpl::max_slots_per_register +
2 * FloatRegisterImpl::number_of_registers +
XMMRegisterImpl::max_slots_per_register * XMMRegisterImpl::number_of_registers +
KRegisterImpl::number_of_registers + // mask registers
------------------------
------------------------
diff --git a/src/hotspot/cpu/x86/register_x86.hpp b/src/hotspot/cpu/x86/register_x86.hpp
index 0c4004d..1461742 100644
--- a/src/hotspot/cpu/x86/register_x86.hpp
+++ b/src/hotspot/cpu/x86/register_x86.hpp
@@ -50,7 +50,7 @@ class RegisterImpl: public AbstractRegisterImpl {
#else
number_of_registers = 16,
number_of_byte_registers = 16,
- max_slots_per_register = 1
+ max_slots_per_register = 2
#endif // AMD64
};
@@ -256,10 +256,7 @@ class ConcreteRegisterImpl : public AbstractRegisterImpl {
// There is no requirement that any ordering here matches any ordering c2 gives
// it's optoregs.
- number_of_registers = RegisterImpl::number_of_registers +
-#ifdef AMD64
- RegisterImpl::number_of_registers + // "H" half of a 64bit register
-#endif // AMD64
+ number_of_registers = RegisterImpl::number_of_registers * RegisterImpl::max_slots_per_register +
2 * FloatRegisterImpl::number_of_registers +
XMMRegisterImpl::max_slots_per_register * XMMRegisterImpl::number_of_registers +
KRegisterImpl::number_of_registers + // mask registers
------------------------
- backported by
-
JDK-8277364 RegisterImpl::max_slots_per_register is incorrect on AMD64
- Resolved
- relates to
-
JDK-8076276 Add support for AVX512
- Resolved
- links to
-
Commit openjdk/jdk11u-dev/d9b2c4ce
-
Commit openjdk/jdk/b1d14993
-
Review openjdk/jdk11u-dev/597
-
Review openjdk/jdk/1413
(1 links to)