#10637: java/util/stream/test/org/openjdk/tests/java/util/stream/SliceOpTest.java fails with -XX:ReservedCodeCacheSize=256m mips64el-jdk8u232-b11

Wed, 04 Dec 2019 18:01:06 +0800

author
jiefu
date
Wed, 04 Dec 2019 18:01:06 +0800
changeset 9761
17884ee5d053
parent 9760
8b305ff8f6b6
child 9762
c97db0855565

#10637: java/util/stream/test/org/openjdk/tests/java/util/stream/SliceOpTest.java fails with -XX:ReservedCodeCacheSize=256m
Reviewed-by: aoqi

src/cpu/mips/vm/assembler_mips.hpp file | annotate | diff | comparison | revisions
src/cpu/mips/vm/mips_64.ad file | annotate | diff | comparison | revisions
src/cpu/mips/vm/nativeInst_mips.cpp file | annotate | diff | comparison | revisions
     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  

mercurial