Mercurial > hg > graal-jvmci-8
diff src/share/vm/opto/library_call.cpp @ 2385:0e3ed5a14f73
Merge
author | jcoomes |
---|---|
date | Thu, 24 Mar 2011 23:04:36 -0700 |
parents | b099aaf51bf8 9dc311b8473e |
children | 3d58a4983660 e1162778c1c8 |
line wrap: on
line diff
--- a/src/share/vm/opto/library_call.cpp Thu Mar 24 23:00:27 2011 -0700 +++ b/src/share/vm/opto/library_call.cpp Thu Mar 24 23:04:36 2011 -0700 @@ -1101,6 +1101,8 @@ float likely = PROB_LIKELY(0.9); float unlikely = PROB_UNLIKELY(0.9); + const int nargs = 2; // number of arguments to push back for uncommon trap in predicate + const int value_offset = java_lang_String::value_offset_in_bytes(); const int count_offset = java_lang_String::count_offset_in_bytes(); const int offset_offset = java_lang_String::offset_offset_in_bytes(); @@ -1138,12 +1140,12 @@ Node* return_ = __ make_label(1); __ set(rtn,__ ConI(-1)); - __ loop(i, sourceOffset, BoolTest::lt, sourceEnd); { + __ loop(this, nargs, i, sourceOffset, BoolTest::lt, sourceEnd); { Node* i2 = __ AddI(__ value(i), targetCountLess1); // pin to prohibit loading of "next iteration" value which may SEGV (rare) Node* src = load_array_element(__ ctrl(), source, i2, TypeAryPtr::CHARS); __ if_then(src, BoolTest::eq, lastChar, unlikely); { - __ loop(j, zero, BoolTest::lt, targetCountLess1); { + __ loop(this, nargs, j, zero, BoolTest::lt, targetCountLess1); { Node* tpj = __ AddI(targetOffset, __ value(j)); Node* targ = load_array_element(no_ctrl, target, tpj, target_type); Node* ipj = __ AddI(__ value(i), __ value(j));