[Upgrade] jdk8u91-b15 --> jdk8u112-b15 (platform-dependent code OK)

Sat, 06 Jan 2018 20:01:31 +0800

author
fujie
date
Sat, 06 Jan 2018 20:01:31 +0800
changeset 8859
f39c2b3891e2
parent 8858
e3f4d3592615
child 8860
43b19021a5a9

[Upgrade] jdk8u91-b15 --> jdk8u112-b15 (platform-dependent code OK)

src/cpu/mips/vm/c1_LIRGenerator_mips.cpp file | annotate | diff | comparison | revisions
src/cpu/mips/vm/compiledIC_mips.cpp file | annotate | diff | comparison | revisions
src/cpu/mips/vm/jniFastGetField_mips_64.cpp file | annotate | diff | comparison | revisions
src/cpu/mips/vm/mips_64.ad file | annotate | diff | comparison | revisions
src/share/vm/c1/c1_LIRGenerator.cpp file | annotate | diff | comparison | revisions
src/share/vm/c1/c1_LIRGenerator.hpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/cpu/mips/vm/c1_LIRGenerator_mips.cpp	Tue Apr 10 10:21:49 2018 +0800
     1.2 +++ b/src/cpu/mips/vm/c1_LIRGenerator_mips.cpp	Sat Jan 06 20:01:31 2018 +0800
     1.3 @@ -1020,6 +1020,8 @@
     1.4    LIR_Opr klass_reg = FrameMap::_a4_oop_opr;
     1.5  #endif
     1.6  //  new_instance(reg, x->klass(), FrameMap::_t0_oop_opr, FrameMap::_t1_oop_opr,FrameMap::_t2_oop_opr, LIR_OprFact::illegalOpr, klass_reg, info);
     1.7 +  guarantee(false, "not implemented yet.");
     1.8 +/*
     1.9    new_instance(reg,
    1.10                 x->klass(),
    1.11                 FrameMap::_t0_oop_opr,
    1.12 @@ -1035,6 +1037,7 @@
    1.13  #endif
    1.14                 klass_reg,
    1.15                 info);
    1.16 +*/
    1.17    LIR_Opr result = rlock_result(x);
    1.18    __ move(reg, result);
    1.19  }
     2.1 --- a/src/cpu/mips/vm/compiledIC_mips.cpp	Tue Apr 10 10:21:49 2018 +0800
     2.2 +++ b/src/cpu/mips/vm/compiledIC_mips.cpp	Sat Jan 06 20:01:31 2018 +0800
     2.3 @@ -51,7 +51,7 @@
     2.4  // ----------------------------------------------------------------------------
     2.5  
     2.6  #define __ _masm.
     2.7 -void CompiledStaticCall::emit_to_interp_stub(CodeBuffer &cbuf) {
     2.8 +address CompiledStaticCall::emit_to_interp_stub(CodeBuffer &cbuf) {
     2.9  
    2.10    address mark = cbuf.insts_mark();  // get mark within main instrs section
    2.11  
    2.12 @@ -59,9 +59,8 @@
    2.13    // That's why we must use the macroassembler to generate a stub.
    2.14    MacroAssembler _masm(&cbuf);
    2.15  
    2.16 -  address base =
    2.17 -  __ start_a_stub(Compile::MAX_stubs_size);
    2.18 -  if (base == NULL)  return;  // CodeBuffer::expand failed
    2.19 +  address base = __ start_a_stub(Compile::MAX_stubs_size);
    2.20 +  if (base == NULL)  return NULL;  // CodeBuffer::expand failed
    2.21    // static stub relocation stores the instruction address of the call
    2.22  
    2.23    __ relocate(static_stub_Relocation::spec(mark), 0);
    2.24 @@ -83,8 +82,9 @@
    2.25    address call_pc = (address)-1;
    2.26    __ patchable_jump(call_pc);
    2.27    __ align(16);
    2.28 +  // Update current stubs pointer and restore code_end.
    2.29    __ end_a_stub();
    2.30 -  // Update current stubs pointer and restore code_end.
    2.31 +  return base;
    2.32  }
    2.33  #undef __
    2.34  
     3.1 --- a/src/cpu/mips/vm/jniFastGetField_mips_64.cpp	Tue Apr 10 10:21:49 2018 +0800
     3.2 +++ b/src/cpu/mips/vm/jniFastGetField_mips_64.cpp	Sat Jan 06 20:01:31 2018 +0800
     3.3 @@ -38,7 +38,7 @@
     3.4  // between loads, which is more efficient than lfence.
     3.5  
     3.6  address JNI_FastGetField::generate_fast_get_int_field0(BasicType type) {
     3.7 -  const char *name;
     3.8 +  const char *name = NULL;
     3.9    switch (type) {
    3.10      case T_BOOLEAN: name = "jni_fast_GetBooleanField"; break;
    3.11      case T_BYTE:    name = "jni_fast_GetByteField";    break;
    3.12 @@ -98,7 +98,7 @@
    3.13  
    3.14    slowcase_entry_pclist[count++] = __ pc();
    3.15    __ bind (slow);
    3.16 -  address slow_case_addr;
    3.17 +  address slow_case_addr = NULL;
    3.18    switch (type) {
    3.19      case T_BOOLEAN: slow_case_addr = jni_GetBooleanField_addr(); break;
    3.20      case T_BYTE:    slow_case_addr = jni_GetByteField_addr();    break;
    3.21 @@ -140,7 +140,7 @@
    3.22  }
    3.23  
    3.24  address JNI_FastGetField::generate_fast_get_float_field0(BasicType type) {
    3.25 -  const char *name;
    3.26 +  const char *name =NULL;
    3.27    switch (type) {
    3.28      case T_FLOAT:     name = "jni_fast_GetFloatField";     break;
    3.29      case T_DOUBLE:    name = "jni_fast_GetDoubleField";    break;
    3.30 @@ -212,7 +212,7 @@
    3.31  
    3.32    slowcase_entry_pclist[count++] = __ pc();
    3.33    __ bind (slow);
    3.34 -  address slow_case_addr;
    3.35 +  address slow_case_addr = NULL;
    3.36    switch (type) {
    3.37      case T_FLOAT:  slow_case_addr = jni_GetFloatField_addr();  break;
    3.38      case T_DOUBLE: slow_case_addr = jni_GetDoubleField_addr(); break;
     4.1 --- a/src/cpu/mips/vm/mips_64.ad	Tue Apr 10 10:21:49 2018 +0800
     4.2 +++ b/src/cpu/mips/vm/mips_64.ad	Sat Jan 06 20:01:31 2018 +0800
     4.3 @@ -538,9 +538,12 @@
     4.4    // Note that the code buffer's insts_mark is always relative to insts.
     4.5    // That's why we must use the macroassembler to generate a handler.
     4.6    MacroAssembler _masm(&cbuf);
     4.7 -  address base =
     4.8 -  __ start_a_stub(size_exception_handler());
     4.9 -  if (base == NULL)  return 0;  // CodeBuffer::expand failed
    4.10 +  address base = __ start_a_stub(size_exception_handler());
    4.11 +  if (base == NULL) {
    4.12 +    ciEnv::current()->record_failure("CodeCache is full");
    4.13 +    return 0;  // CodeBuffer::expand failed
    4.14 +  }
    4.15 +
    4.16    int offset = __ offset();
    4.17  
    4.18    __ block_comment("; emit_exception_handler");
    4.19 @@ -559,11 +562,12 @@
    4.20    // Note that the code buffer's insts_mark is always relative to insts.
    4.21    // That's why we must use the macroassembler to generate a handler.
    4.22    MacroAssembler _masm(&cbuf);
    4.23 -  address base =
    4.24 -  __ start_a_stub(size_deopt_handler());
    4.25 -
    4.26 -  // FIXME
    4.27 -  if (base == NULL)  return 0;  // CodeBuffer::expand failed
    4.28 +  address base = __ start_a_stub(size_deopt_handler());
    4.29 +  if (base == NULL) {
    4.30 +    ciEnv::current()->record_failure("CodeCache is full");
    4.31 +    return 0;  // CodeBuffer::expand failed
    4.32 +  }
    4.33 +
    4.34    int offset = __ offset();
    4.35  
    4.36    __ block_comment("; emit_deopt_handler");
    4.37 @@ -613,9 +617,11 @@
    4.38    // That's why we must use the macroassembler to generate a stub.
    4.39    MacroAssembler _masm(&cbuf);
    4.40  
    4.41 -  address base =
    4.42 -  __ start_a_stub(Compile::MAX_stubs_size);
    4.43 -  if (base == NULL)  return;  // CodeBuffer::expand failed
    4.44 +  address base = __ start_a_stub(Compile::MAX_stubs_size);
    4.45 +  if (base == NULL) { // CodeBuffer::expand failed
    4.46 +    ciEnv::current()->record_failure("CodeCache is full");
    4.47 +  }
    4.48 +
    4.49    // static stub relocation stores the instruction address of the call
    4.50  
    4.51    __ relocate(static_stub_Relocation::spec(mark), 0);
     5.1 --- a/src/share/vm/c1/c1_LIRGenerator.cpp	Tue Apr 10 10:21:49 2018 +0800
     5.2 +++ b/src/share/vm/c1/c1_LIRGenerator.cpp	Sat Jan 06 20:01:31 2018 +0800
     5.3 @@ -716,8 +716,7 @@
     5.4  #ifndef MIPS64
     5.5  void LIRGenerator::new_instance(LIR_Opr dst, ciInstanceKlass* klass, bool is_unresolved, LIR_Opr scratch1, LIR_Opr scratch2, LIR_Opr scratch3, LIR_Opr scratch4, LIR_Opr klass_reg, CodeEmitInfo* info) {
     5.6  #else
     5.7 -void LIRGenerator::new_instance(LIR_Opr dst, ciInstanceKlass* klass, bool is_unresolved, LIR_Opr scratch1, LIR_Opr scratch2, LIR_Opr scratch3,
     5.8 -                                LIR_Opr scratch4, LIR_Opr scratch5, LIR_Opr scratch6,LIR_Opr klass_reg, CodeEmitInfo* info) {
     5.9 +void LIRGenerator::new_instance(LIR_Opr dst, ciInstanceKlass* klass, bool is_unresolved, LIR_Opr scratch1, LIR_Opr scratch2, LIR_Opr scratch3, LIR_Opr scratch4, LIR_Opr scratch5, LIR_Opr scratch6, LIR_Opr klass_reg, CodeEmitInfo* info) {
    5.10  #endif
    5.11    klass2reg_with_patching(klass_reg, klass, info, is_unresolved);
    5.12    // If klass is not loaded we do not know if the klass has finalizers:
    5.13 @@ -3918,8 +3917,14 @@
    5.14      __ move(new LIR_Address(klass, in_bytes(Klass::layout_helper_offset()), T_INT), layout);
    5.15      int diffbit = Klass::layout_helper_boolean_diffbit();
    5.16      __ logical_and(layout, LIR_OprFact::intConst(diffbit), layout);
    5.17 +#ifdef MIPS64
    5.18 +    guarantee(false, "not implemented yet for mips");
    5.19 +    // __ cmp();
    5.20 +    // __ cmov();
    5.21 +#else
    5.22      __ cmp(lir_cond_notEqual, layout, LIR_OprFact::intConst(0));
    5.23      __ cmove(lir_cond_notEqual, value_fixed, value, value_fixed, T_BYTE);
    5.24 +#endif
    5.25      value = value_fixed;
    5.26    }
    5.27    return value;
     6.1 --- a/src/share/vm/c1/c1_LIRGenerator.hpp	Tue Apr 10 10:21:49 2018 +0800
     6.2 +++ b/src/share/vm/c1/c1_LIRGenerator.hpp	Sat Jan 06 20:01:31 2018 +0800
     6.3 @@ -350,7 +350,7 @@
     6.4  #ifndef MIPS64
     6.5    void new_instance    (LIR_Opr  dst, ciInstanceKlass* klass, bool is_unresolved, LIR_Opr  scratch1, LIR_Opr  scratch2, LIR_Opr  scratch3,  LIR_Opr scratch4, LIR_Opr  klass_reg, CodeEmitInfo* info);
     6.6  #else
     6.7 -  void new_instance    (LIR_Opr  dst, ciInstanceKlass* klass, LIR_Opr  scratch1, LIR_Opr  scratch2, LIR_Opr  scratch3,  LIR_Opr scratch4, LIR_Opr  scratch5, LIR_Opr scratch6, LIR_Opr klass_reg, CodeEmitInfo* info);
     6.8 +  void new_instance    (LIR_Opr  dst, ciInstanceKlass* klass, bool is_unresolved, LIR_Opr  scratch1, LIR_Opr  scratch2, LIR_Opr  scratch3,  LIR_Opr scratch4, LIR_Opr  scratch5, LIR_Opr scratch6, LIR_Opr klass_reg, CodeEmitInfo* info);
     6.9  #endif
    6.10  
    6.11    // machine dependent

mercurial