< prev index next >

src/hotspot/share/runtime/signature.cpp

Print this page
@@ -176,11 +176,10 @@
    } else {
      _param_size += 1;  // this is the convention for Method::compute_size_of_parameters
    }
  
  #if defined(_LP64) && !defined(ZERO)
-   _stack_arg_slots = align_up(_stack_arg_slots, 2);
  #ifdef ASSERT
    int dbg_stack_arg_slots = compute_num_stack_arg_slots(_signature, _param_size, static_flag);
    assert(_stack_arg_slots == dbg_stack_arg_slots, "fingerprinter: %d full: %d", _stack_arg_slots, dbg_stack_arg_slots);
  #endif
  #else

@@ -233,45 +232,49 @@
    case T_BOOLEAN:
    case T_CHAR:
    case T_BYTE:
    case T_SHORT:
    case T_INT:
- #if defined(PPC64) || defined(S390)
      if (_int_args < Argument::n_int_register_parameters_j) {
        _int_args++;
      } else {
+ #if defined(PPC64) || defined(S390)
+       _stack_arg_slots += 1;
+ #else
+       _stack_arg_slots = align_up(_stack_arg_slots, 2);
        _stack_arg_slots += 1;
+ #endif // defined(PPC64) || defined(S390)
      }
      break;
- #endif // defined(PPC64) || defined(S390)
    case T_LONG:
    case T_OBJECT:
    case T_ARRAY:
    case T_ADDRESS:
      if (_int_args < Argument::n_int_register_parameters_j) {
        _int_args++;
      } else {
-       PPC64_ONLY(_stack_arg_slots = align_up(_stack_arg_slots, 2));
-       S390_ONLY(_stack_arg_slots = align_up(_stack_arg_slots, 2));
+       _stack_arg_slots = align_up(_stack_arg_slots, 2);
        _stack_arg_slots += 2;
      }
      break;
    case T_FLOAT:
- #if defined(PPC64) || defined(S390)
      if (_fp_args < Argument::n_float_register_parameters_j) {
        _fp_args++;
      } else {
+ #if defined(PPC64) || defined(S390)
+       _stack_arg_slots += 1;
+ #else
+       _stack_arg_slots = align_up(_stack_arg_slots, 2);
        _stack_arg_slots += 1;
+ #endif // defined(PPC64) || defined(S390)
      }
      break;
- #endif // defined(PPC64) || defined(S390)
    case T_DOUBLE:
      if (_fp_args < Argument::n_float_register_parameters_j) {
        _fp_args++;
      } else {
-       PPC64_ONLY(_stack_arg_slots = align_up(_stack_arg_slots, 2));
-       S390_ONLY(_stack_arg_slots = align_up(_stack_arg_slots, 2));
+       _stack_arg_slots = align_up(_stack_arg_slots, 2);
        _stack_arg_slots += 2;
      }
      break;
    default:
      ShouldNotReachHere();
< prev index next >