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