Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8256956

RegisterImpl::max_slots_per_register is incorrect on AMD64

    XMLWordPrintable

    Details

    • Subcomponent:
    • Resolved In Build:
      b27

      Description

      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
      ------------------------

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              jiefu Jie Fu
              Reporter:
              jiefu Jie Fu
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: