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

Remove unused frame::native_param_addr code

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P3 P3
    • 9
    • 6
    • hotspot
    • b57
    • x86
    • solaris

        frame::native_param_addr is implemented incorrectly on amd64, but it doesn't
        matter since it's never used. In 1.4.2, it was used in the safepoint code.

        It's currently implemented as if the amd64 ABI were the i486 ABI, i.e., as if all
        parameters were on the stack, vis.

        inline address* frame::native_param_addr(int idx) const {
          return (address*) addr_at( native_frame_initial_param_offset+idx);
        }

        where native_frame_initial_param_offset = 2 to account for the saved rbp and return
        address.

        There's no ABI-specific register argument save area on amd64, so we can only
        return the address of memory arguments, vis.

        inline address* frame::native_param_addr(int idx) const {
          if (idx < Argument::n_register_parameters) {
            return NULL;
          }
          return (address*) addr_at( native_frame_initial_param_offset +
                                     idx - Argument::n_register_paramters);
        }

        where native_frame_initial_param_offset = 2 on solaris/linux and 6 on windows
        (to account for the 4-qword register argument spill area).

              mikael Mikael Vidstedt
              phh Paul Hohensee
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: