Wed, 04 Dec 2019 18:01:06 +0800
#10637: java/util/stream/test/org/openjdk/tests/java/util/stream/SliceOpTest.java fails with -XX:ReservedCodeCacheSize=256m
Reviewed-by: aoqi
1.1 --- a/src/cpu/mips/vm/assembler_mips.hpp Mon Dec 02 16:01:35 2019 +0800 1.2 +++ b/src/cpu/mips/vm/assembler_mips.hpp Wed Dec 04 18:01:06 2019 +0800 1.3 @@ -1265,6 +1265,7 @@ 1.4 void sw (Register rt, Register base, int off) { emit_long(insn_ORRI(sw_op, (int)base->encoding(), (int)rt->encoding(), off)); } 1.5 void swl (Register rt, Register base, int off) { emit_long(insn_ORRI(swl_op, (int)base->encoding(), (int)rt->encoding(), off)); } 1.6 void swr (Register rt, Register base, int off) { emit_long(insn_ORRI(swr_op, (int)base->encoding(), (int)rt->encoding(), off)); } 1.7 + void synci(Register base, int off) { emit_long(insn_ORRI(regimm_op, (int)base->encoding(), synci_op, off)); } 1.8 void sync () { emit_long(sync_op); } 1.9 void syscall(int code) { emit_long( (code<<6) | syscall_op ); } 1.10
2.1 --- a/src/cpu/mips/vm/mips_64.ad Mon Dec 02 16:01:35 2019 +0800 2.2 +++ b/src/cpu/mips/vm/mips_64.ad Wed Dec 04 18:01:06 2019 +0800 2.3 @@ -817,39 +817,23 @@ 2.4 return false; 2.5 } 2.6 2.7 +int CallStaticJavaDirectNode::compute_padding(int current_offset) const { 2.8 + return round_to(current_offset, alignment_required()) - current_offset; 2.9 +} 2.10 + 2.11 +int CallDynamicJavaDirectNode::compute_padding(int current_offset) const { 2.12 + return round_to(current_offset, alignment_required()) - current_offset; 2.13 +} 2.14 + 2.15 int CallLeafNoFPDirectNode::compute_padding(int current_offset) const { 2.16 - //lui 2.17 - //ori 2.18 - //dsll 2.19 - //ori 2.20 - 2.21 - //jalr 2.22 - //nop 2.23 - 2.24 return round_to(current_offset, alignment_required()) - current_offset; 2.25 } 2.26 2.27 int CallLeafDirectNode::compute_padding(int current_offset) const { 2.28 - //lui 2.29 - //ori 2.30 - //dsll 2.31 - //ori 2.32 - 2.33 - //jalr 2.34 - //nop 2.35 - 2.36 return round_to(current_offset, alignment_required()) - current_offset; 2.37 } 2.38 2.39 int CallRuntimeDirectNode::compute_padding(int current_offset) const { 2.40 - //lui 2.41 - //ori 2.42 - //dsll 2.43 - //ori 2.44 - 2.45 - //jalr 2.46 - //nop 2.47 - 2.48 return round_to(current_offset, alignment_required()) - current_offset; 2.49 } 2.50 2.51 @@ -13382,6 +13366,7 @@ 2.52 ins_encode( Java_Static_Call( meth ) ); 2.53 ins_pipe( pipe_slow ); 2.54 ins_pc_relative(1); 2.55 + ins_alignment(16); 2.56 %} 2.57 2.58 // Call Java Dynamic Instruction 2.59 @@ -13397,6 +13382,7 @@ 2.60 ins_encode( Java_Dynamic_Call( meth ) ); 2.61 ins_pipe( pipe_slow ); 2.62 ins_pc_relative(1); 2.63 + ins_alignment(16); 2.64 %} 2.65 2.66 instruct CallLeafNoFPDirect(method meth) %{
3.1 --- a/src/cpu/mips/vm/nativeInst_mips.cpp Mon Dec 02 16:01:35 2019 +0800 3.2 +++ b/src/cpu/mips/vm/nativeInst_mips.cpp Wed Dec 04 18:01:06 2019 +0800 3.3 @@ -552,6 +552,7 @@ 3.4 count++; 3.5 } 3.6 3.7 + guarantee(((long)addr_at(0) % (BytesPerWord * 2)) == 0, "must be aligned"); 3.8 atomic_store128_ptr func = get_atomic_store128_func(); 3.9 (*func)((long *)addr_at(0), 0, *(long *)&insts[0], *(long *)&insts[2]); 3.10 3.11 @@ -711,7 +712,7 @@ 3.12 patch_on_jal_only(dest); 3.13 } else if (is_special_op(int_at(16), Assembler::jalr_op)) { 3.14 if (UseLEXT1) { 3.15 - patch_on_jalr(dest); 3.16 + patch_on_jalr_gs(dest); 3.17 } else { 3.18 patch_on_jalr(dest); 3.19 } 3.20 @@ -1199,6 +1200,7 @@ 3.21 count++; 3.22 } 3.23 3.24 + guarantee(((long)addr_at(0) % (BytesPerWord * 2)) == 0, "must be aligned"); 3.25 atomic_store128_ptr func = get_atomic_store128_func(); 3.26 (*func)((long *)addr_at(0), 0, *(long *)&insts[0], *(long *)&insts[2]); 3.27