call_VM doesn't allocate enough backing stack space for register argument on Win64

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: P2
    • 5.0u7
    • Affects Version/s: 1.4.2_11, 5.0u7, 6
    • Component/s: hotspot
    • b01
    • x86
    • windows_xp

        This is a bug fix in mustang that missed being backported to tiger.

        Here is an example of the mustang code:

        void MacroAssembler::call_VM_leaf_base(address entry_point, int num_args)
        {
          Label L, E;

        #ifdef _WIN64
          // Windows always allocates space for it's register args
          assert(num_args <= 4, "only register arguments supported");
          subq(rsp, frame::arg_reg_save_area_bytes);
        #endif
        ...

        and the tiger code:
        void MacroAssembler::call_VM_leaf_base(address entry_point, int num_args)
        {
          Label L, E;

        #ifdef _WIN64
            // Windows always allocates space for it's register args
            subq(rsp, (num_args+1)*wordSize);
        #endif

              Assignee:
              Keith Mcguigan (Inactive)
              Reporter:
              Steve Goldman (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: