src/share/vm/opto/library_call.cpp

changeset 9756
2be326848943
parent 9703
2fdf635bcf28
parent 9720
67dddb025b7b
child 9806
758c07667682
     1.1 --- a/src/share/vm/opto/library_call.cpp	Sat Nov 09 20:15:27 2019 +0800
     1.2 +++ b/src/share/vm/opto/library_call.cpp	Sat Nov 09 20:29:45 2019 +0800
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
     1.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.8   *
     1.9   * This code is free software; you can redistribute it and/or modify it
    1.10 @@ -3803,7 +3803,7 @@
    1.11    }
    1.12    // Now test the correct condition.
    1.13    jint  nval = (obj_array
    1.14 -                ? ((jint)Klass::_lh_array_tag_type_value
    1.15 +                ? (jint)(Klass::_lh_array_tag_type_value
    1.16                     <<    Klass::_lh_array_tag_shift)
    1.17                  : Klass::_lh_neutral_value);
    1.18    Node* cmp = _gvn.transform(new(C) CmpINode(layout_val, intcon(nval)));
    1.19 @@ -6759,10 +6759,18 @@
    1.20    if (state == NULL) return false;
    1.21  
    1.22    // Call the stub.
    1.23 -  Node* call = make_runtime_call(RC_LEAF|RC_NO_FP,
    1.24 -                                 OptoRuntime::digestBase_implCompressMB_Type(),
    1.25 -                                 stubAddr, stubName, TypePtr::BOTTOM,
    1.26 -                                 src_start, state, ofs, limit);
    1.27 +  Node *call;
    1.28 +  if (CCallingConventionRequiresIntsAsLongs) {
    1.29 +    call = make_runtime_call(RC_LEAF|RC_NO_FP,
    1.30 +                             OptoRuntime::digestBase_implCompressMB_Type(),
    1.31 +                             stubAddr, stubName, TypePtr::BOTTOM,
    1.32 +                             src_start, state, ofs XTOP, limit XTOP);
    1.33 +  } else {
    1.34 +    call = make_runtime_call(RC_LEAF|RC_NO_FP,
    1.35 +                             OptoRuntime::digestBase_implCompressMB_Type(),
    1.36 +                             stubAddr, stubName, TypePtr::BOTTOM,
    1.37 +                             src_start, state, ofs, limit);
    1.38 +  }
    1.39    // return ofs (int)
    1.40    Node* result = _gvn.transform(new (C) ProjNode(call, TypeFunc::Parms));
    1.41    set_result(result);

mercurial