# HG changeset patch # User jiefu # Date 1575453666 -28800 # Node ID 17884ee5d05398bbd16013b0e73338aa69479cbf # Parent 8b305ff8f6b663833d7c831a513ab6f45dd69047 #10637: java/util/stream/test/org/openjdk/tests/java/util/stream/SliceOpTest.java fails with -XX:ReservedCodeCacheSize=256m Reviewed-by: aoqi diff -r 8b305ff8f6b6 -r 17884ee5d053 src/cpu/mips/vm/assembler_mips.hpp --- a/src/cpu/mips/vm/assembler_mips.hpp Mon Dec 02 16:01:35 2019 +0800 +++ b/src/cpu/mips/vm/assembler_mips.hpp Wed Dec 04 18:01:06 2019 +0800 @@ -1265,6 +1265,7 @@ void sw (Register rt, Register base, int off) { emit_long(insn_ORRI(sw_op, (int)base->encoding(), (int)rt->encoding(), off)); } void swl (Register rt, Register base, int off) { emit_long(insn_ORRI(swl_op, (int)base->encoding(), (int)rt->encoding(), off)); } void swr (Register rt, Register base, int off) { emit_long(insn_ORRI(swr_op, (int)base->encoding(), (int)rt->encoding(), off)); } + void synci(Register base, int off) { emit_long(insn_ORRI(regimm_op, (int)base->encoding(), synci_op, off)); } void sync () { emit_long(sync_op); } void syscall(int code) { emit_long( (code<<6) | syscall_op ); } diff -r 8b305ff8f6b6 -r 17884ee5d053 src/cpu/mips/vm/mips_64.ad --- a/src/cpu/mips/vm/mips_64.ad Mon Dec 02 16:01:35 2019 +0800 +++ b/src/cpu/mips/vm/mips_64.ad Wed Dec 04 18:01:06 2019 +0800 @@ -817,39 +817,23 @@ return false; } +int CallStaticJavaDirectNode::compute_padding(int current_offset) const { + return round_to(current_offset, alignment_required()) - current_offset; +} + +int CallDynamicJavaDirectNode::compute_padding(int current_offset) const { + return round_to(current_offset, alignment_required()) - current_offset; +} + int CallLeafNoFPDirectNode::compute_padding(int current_offset) const { - //lui - //ori - //dsll - //ori - - //jalr - //nop - return round_to(current_offset, alignment_required()) - current_offset; } int CallLeafDirectNode::compute_padding(int current_offset) const { - //lui - //ori - //dsll - //ori - - //jalr - //nop - return round_to(current_offset, alignment_required()) - current_offset; } int CallRuntimeDirectNode::compute_padding(int current_offset) const { - //lui - //ori - //dsll - //ori - - //jalr - //nop - return round_to(current_offset, alignment_required()) - current_offset; } @@ -13382,6 +13366,7 @@ ins_encode( Java_Static_Call( meth ) ); ins_pipe( pipe_slow ); ins_pc_relative(1); + ins_alignment(16); %} // Call Java Dynamic Instruction @@ -13397,6 +13382,7 @@ ins_encode( Java_Dynamic_Call( meth ) ); ins_pipe( pipe_slow ); ins_pc_relative(1); + ins_alignment(16); %} instruct CallLeafNoFPDirect(method meth) %{ diff -r 8b305ff8f6b6 -r 17884ee5d053 src/cpu/mips/vm/nativeInst_mips.cpp --- a/src/cpu/mips/vm/nativeInst_mips.cpp Mon Dec 02 16:01:35 2019 +0800 +++ b/src/cpu/mips/vm/nativeInst_mips.cpp Wed Dec 04 18:01:06 2019 +0800 @@ -552,6 +552,7 @@ count++; } + guarantee(((long)addr_at(0) % (BytesPerWord * 2)) == 0, "must be aligned"); atomic_store128_ptr func = get_atomic_store128_func(); (*func)((long *)addr_at(0), 0, *(long *)&insts[0], *(long *)&insts[2]); @@ -711,7 +712,7 @@ patch_on_jal_only(dest); } else if (is_special_op(int_at(16), Assembler::jalr_op)) { if (UseLEXT1) { - patch_on_jalr(dest); + patch_on_jalr_gs(dest); } else { patch_on_jalr(dest); } @@ -1199,6 +1200,7 @@ count++; } + guarantee(((long)addr_at(0) % (BytesPerWord * 2)) == 0, "must be aligned"); atomic_store128_ptr func = get_atomic_store128_func(); (*func)((long *)addr_at(0), 0, *(long *)&insts[0], *(long *)&insts[2]);