#7157 Fix all forgot saying delayed() when filling delay slot issues

Tue, 12 Jun 2018 13:58:17 +0800

author
zhaixiang
date
Tue, 12 Jun 2018 13:58:17 +0800
changeset 9144
cecfc245b19a
parent 9143
239e32ede77d
child 9145
ba534d861691

#7157 Fix all forgot saying delayed() when filling delay slot issues
Summary: enable check_delay and guarantee delay_state is at_delay_slot when filling delay slot
Reviewed-by: aoqi

src/cpu/mips/vm/assembler_mips.inline.hpp file | annotate | diff | comparison | revisions
src/cpu/mips/vm/c1_LIRAssembler_mips.cpp file | annotate | diff | comparison | revisions
src/cpu/mips/vm/c1_MacroAssembler_mips.cpp file | annotate | diff | comparison | revisions
src/cpu/mips/vm/interp_masm_mips_64.cpp file | annotate | diff | comparison | revisions
src/cpu/mips/vm/interpreterRT_mips_64.cpp file | annotate | diff | comparison | revisions
src/cpu/mips/vm/macroAssembler_mips.cpp file | annotate | diff | comparison | revisions
src/cpu/mips/vm/methodHandles_mips.cpp 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
src/cpu/mips/vm/sharedRuntime_mips_64.cpp file | annotate | diff | comparison | revisions
src/cpu/mips/vm/stubGenerator_mips_64.cpp file | annotate | diff | comparison | revisions
src/cpu/mips/vm/templateInterpreter_mips_64.cpp file | annotate | diff | comparison | revisions
src/cpu/mips/vm/templateTable_mips_64.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/cpu/mips/vm/assembler_mips.inline.hpp	Mon Jun 11 17:42:16 2018 +0800
     1.2 +++ b/src/cpu/mips/vm/assembler_mips.inline.hpp	Tue Jun 12 13:58:17 2018 +0800
     1.3 @@ -34,6 +34,7 @@
     1.4  
     1.5  inline void Assembler::check_delay() {
     1.6  # ifdef CHECK_DELAY
     1.7 +  guarantee(delay_state != at_delay_slot, "must say delayed() when filling delay slot");
     1.8    delay_state = no_delay;
     1.9  # endif
    1.10  }
     2.1 --- a/src/cpu/mips/vm/c1_LIRAssembler_mips.cpp	Mon Jun 11 17:42:16 2018 +0800
     2.2 +++ b/src/cpu/mips/vm/c1_LIRAssembler_mips.cpp	Tue Jun 12 13:58:17 2018 +0800
     2.3 @@ -297,15 +297,6 @@
     2.4    Register receiver = FrameMap::receiver_opr->as_register();
     2.5    Register ic_klass = IC_Klass;
     2.6  
     2.7 -  /*const int ic_cmp_size = LP64_ONLY(10) NOT_LP64(9);
     2.8 -  const bool do_post_padding = VerifyOops || UseCompressedOops;
     2.9 -  if (!do_post_padding) {
    2.10 -      // insert some nops so that the verified entry point is aligned on CodeEntryAlignment
    2.11 -      while ((__ offset() + ic_cmp_size) % CodeEntryAlignment != 0) {
    2.12 -    __ nop();
    2.13 -      }
    2.14 -  }*/
    2.15 -
    2.16    int offset = __ offset();
    2.17    __ inline_cache_check(receiver, IC_Klass);
    2.18    __ align(CodeEntryAlignment);
     3.1 --- a/src/cpu/mips/vm/c1_MacroAssembler_mips.cpp	Mon Jun 11 17:42:16 2018 +0800
     3.2 +++ b/src/cpu/mips/vm/c1_MacroAssembler_mips.cpp	Tue Jun 12 13:58:17 2018 +0800
     3.3 @@ -436,14 +436,6 @@
     3.4    bind(L);
     3.5    // assert(UseCompressedOops, "check alignment in emit_method_entry");
     3.6  }
     3.7 -/*
     3.8 -void C1_MacroAssembler::method_exit(bool restore_frame) {
     3.9 -  if (restore_frame) {
    3.10 -    leave();
    3.11 -  }
    3.12 -  jr(RA);
    3.13 -  delayed()->nop();
    3.14 -}*/
    3.15  
    3.16  
    3.17  void C1_MacroAssembler::build_frame(int frame_size_in_bytes, int bang_size_in_bytes) {
     4.1 --- a/src/cpu/mips/vm/interp_masm_mips_64.cpp	Mon Jun 11 17:42:16 2018 +0800
     4.2 +++ b/src/cpu/mips/vm/interp_masm_mips_64.cpp	Tue Jun 12 13:58:17 2018 +0800
     4.3 @@ -364,12 +364,12 @@
     4.4    Label has_counters;
     4.5    ld(mcs, method, in_bytes(Method::method_counters_offset()));
     4.6    bne(mcs, R0, has_counters);
     4.7 -  nop();
     4.8 +  delayed()->nop();
     4.9    call_VM(noreg, CAST_FROM_FN_PTR(address,
    4.10            InterpreterRuntime::build_method_counters), method);
    4.11    ld(mcs, method, in_bytes(Method::method_counters_offset()));
    4.12    beq(mcs, R0, skip);   // No MethodCounters allocated, OutOfMemory
    4.13 -  nop();
    4.14 +  delayed()->nop();
    4.15    bind(has_counters);
    4.16  }
    4.17  
    4.18 @@ -1035,7 +1035,7 @@
    4.19    daddu(tmp, tmp, AT);
    4.20    daddiu(tmp, tmp, in_bytes(ConstMethod::codes_offset()));
    4.21    beq(tmp, BCP, verify_continue);
    4.22 -  nop();
    4.23 +  delayed()->nop();
    4.24    call_VM_leaf(CAST_FROM_FN_PTR(address, InterpreterRuntime::verify_mdp), method, BCP, mdp);
    4.25    bind(verify_continue);
    4.26    pop(tmp);
    4.27 @@ -1078,7 +1078,7 @@
    4.28      Label L;
    4.29      slt(AT, tmp, R0);
    4.30      bne(AT, R0, L);
    4.31 -    nop();
    4.32 +    delayed()->nop();
    4.33      daddi(tmp, tmp, (int32_t) DataLayout::counter_increment);
    4.34      bind(L);
    4.35      sd(tmp, data);
    4.36 @@ -1114,7 +1114,7 @@
    4.37      Label L;
    4.38      slt(AT, tmp, R0);
    4.39      bne(AT, R0, L);
    4.40 -    nop();
    4.41 +    delayed()->nop();
    4.42      daddi(tmp, tmp, (int32_t) DataLayout::counter_increment);
    4.43      bind(L);
    4.44  
    4.45 @@ -1167,12 +1167,12 @@
    4.46    if (test_value_out == noreg) {
    4.47      ld(AT, Address(mdp_in, offset));
    4.48      bne(AT, value, not_equal_continue);
    4.49 -    nop();
    4.50 +    delayed()->nop();
    4.51    } else {
    4.52      // Put the test value into a register, so caller can use it:
    4.53      ld(test_value_out, Address(mdp_in, offset));
    4.54      bne(value, test_value_out, not_equal_continue);
    4.55 -    nop();
    4.56 +    delayed()->nop();
    4.57    }
    4.58  }
    4.59  
    4.60 @@ -1321,11 +1321,11 @@
    4.61      if (receiver_can_be_null) {
    4.62        Label not_null;
    4.63        bne(receiver, R0, not_null);
    4.64 -      nop();
    4.65 +      delayed()->nop();
    4.66        // We are making a call.  Increment the count.
    4.67        increment_mdp_data_at(mdp, in_bytes(CounterData::count_offset()));
    4.68        beq(R0, R0, skip_receiver_profile);
    4.69 -      nop();
    4.70 +      delayed()->nop();
    4.71        bind(not_null);
    4.72      }
    4.73  
    4.74 @@ -1386,7 +1386,7 @@
    4.75      int count_offset = in_bytes(VirtualCallData::receiver_count_offset(row));
    4.76      increment_mdp_data_at(mdp, count_offset);
    4.77      beq(R0, R0, done);
    4.78 -    nop();
    4.79 +    delayed()->nop();
    4.80      bind(next_test);
    4.81  
    4.82      if (test_for_null_also) {
    4.83 @@ -1396,22 +1396,22 @@
    4.84          // The only thing left to do is handle the null case.
    4.85          if (is_virtual_call) {
    4.86            beq(reg2, R0, found_null);
    4.87 -          nop();
    4.88 +          delayed()->nop();
    4.89            // Receiver did not match any saved receiver and there is no empty row for it.
    4.90            // Increment total counter to indicate polymorphic case.
    4.91            increment_mdp_data_at(mdp, in_bytes(CounterData::count_offset()));
    4.92            beq(R0, R0, done);
    4.93 -          nop();
    4.94 +          delayed()->nop();
    4.95            bind(found_null);
    4.96          } else {
    4.97            bne(reg2, R0, done);
    4.98 -          nop();
    4.99 +          delayed()->nop();
   4.100          }
   4.101          break;
   4.102        }
   4.103        // Since null is rare, make it be the branch-taken case.
   4.104        beq(reg2, R0, found_null);
   4.105 -      nop();
   4.106 +      delayed()->nop();
   4.107  
   4.108        // Put all the "Case 3" tests here.
   4.109        record_klass_in_profile_helper(receiver, mdp, reg2, start_row + 1, done, is_virtual_call);
   4.110 @@ -1433,7 +1433,7 @@
   4.111    set_mdp_data_at(mdp, count_offset, reg2);
   4.112    if (start_row > 0) {
   4.113      beq(R0, R0, done);
   4.114 -    nop();
   4.115 +    delayed()->nop();
   4.116    }
   4.117  }
   4.118  
   4.119 @@ -1500,7 +1500,7 @@
   4.120        update_mdp_by_offset(mdp,
   4.121                             in_bytes(RetData::bci_displacement_offset(row)));
   4.122        beq(R0, R0, profile_continue);
   4.123 -      nop();
   4.124 +      delayed()->nop();
   4.125        bind(next_test);
   4.126      }
   4.127  
   4.128 @@ -1642,31 +1642,31 @@
   4.129    // common case first
   4.130    addiu(AT, T9, -T_INT);
   4.131    beq(AT, R0, done);
   4.132 -  nop();
   4.133 +  delayed()->nop();
   4.134  
   4.135    // mask integer result to narrower return type.
   4.136    addiu(AT, T9, -T_BOOLEAN);
   4.137    bne(AT, R0, notBool);
   4.138 -  nop();
   4.139 +  delayed()->nop();
   4.140    andi(result, result, 0x1);
   4.141    beq(R0, R0, done);
   4.142 -  nop();
   4.143 +  delayed()->nop();
   4.144  
   4.145    bind(notBool);
   4.146    addiu(AT, T9, -T_BYTE);
   4.147    bne(AT, R0, notByte);
   4.148 -  nop();
   4.149 +  delayed()->nop();
   4.150    seb(result, result);
   4.151    beq(R0, R0, done);
   4.152 -  nop();
   4.153 +  delayed()->nop();
   4.154  
   4.155    bind(notByte);
   4.156    addiu(AT, T9, -T_CHAR);
   4.157    bne(AT, R0, notChar);
   4.158 -  nop();
   4.159 +  delayed()->nop();
   4.160    andi(result, result, 0xFFFF);
   4.161    beq(R0, R0, done);
   4.162 -  nop();
   4.163 +  delayed()->nop();
   4.164  
   4.165    bind(notChar);
   4.166    seh(result, result);
   4.167 @@ -1682,7 +1682,7 @@
   4.168    verify_oop(obj);
   4.169  
   4.170    bne(obj, R0, update);
   4.171 -  nop();
   4.172 +  delayed()->nop();
   4.173  
   4.174    push(T1);
   4.175    if (mdo_addr.index() == noreg) {
   4.176 @@ -1710,7 +1710,7 @@
   4.177    pop(T1);
   4.178  
   4.179    beq(R0, R0, next);
   4.180 -  nop();
   4.181 +  delayed()->nop();
   4.182  
   4.183    bind(update);
   4.184    load_klass(obj, obj);
   4.185 @@ -1727,12 +1727,12 @@
   4.186    li(AT, TypeEntries::type_klass_mask);
   4.187    andr(AT, obj, AT);
   4.188    beq(AT, R0, next);
   4.189 -  nop();
   4.190 +  delayed()->nop();
   4.191  
   4.192    li(AT, TypeEntries::type_unknown);
   4.193    andr(AT, AT, obj);
   4.194    bne(AT, R0, next);
   4.195 -  nop();
   4.196 +  delayed()->nop();
   4.197  
   4.198    if (mdo_addr.index() == noreg) {
   4.199      ld(AT, mdo_addr);
   4.200 @@ -1742,7 +1742,7 @@
   4.201      ld(AT, AT, mdo_addr.disp());
   4.202    }
   4.203    beq(AT, R0, none);
   4.204 -  nop();
   4.205 +  delayed()->nop();
   4.206  
   4.207  
   4.208    push(T1);
   4.209 @@ -1760,7 +1760,7 @@
   4.210    subu(AT, AT, T1);
   4.211    pop(T1);
   4.212    beq(AT, R0, none);
   4.213 -  nop();
   4.214 +  delayed()->nop();
   4.215  
   4.216    // There is a chance that the checks above (re-reading profiling
   4.217    // data from memory) fail if another thread has just set the
   4.218 @@ -1776,7 +1776,7 @@
   4.219    li(AT, TypeEntries::type_klass_mask);
   4.220    andr(AT, obj, AT);
   4.221    beq(AT, R0, next);
   4.222 -  nop();
   4.223 +  delayed()->nop();
   4.224  
   4.225    // different than before. Cannot keep accurate profile.
   4.226    push(T1);
   4.227 @@ -1804,7 +1804,7 @@
   4.228    }
   4.229    pop(T1);
   4.230    beq(R0, R0, next);
   4.231 -  nop();
   4.232 +  delayed()->nop();
   4.233  
   4.234  
   4.235    bind(none);
   4.236 @@ -1835,7 +1835,7 @@
   4.237      lb(AT, mdp, in_bytes(DataLayout::tag_offset()) - off_to_start);
   4.238      li(tmp, is_virtual ? DataLayout::virtual_call_type_data_tag : DataLayout::call_type_data_tag);
   4.239      bne(tmp, AT, profile_continue);
   4.240 -    nop();
   4.241 +    delayed()->nop();
   4.242  
   4.243  
   4.244      if (MethodData::profile_arguments()) {
   4.245 @@ -1864,7 +1864,7 @@
   4.246            li(AT, TypeStackSlotEntries::per_arg_count());
   4.247            slt(AT, tmp, AT);
   4.248            bne(AT, R0, done);
   4.249 -          nop();
   4.250 +          delayed()->nop();
   4.251          }
   4.252          ld(tmp, callee, in_bytes(Method::const_offset()));
   4.253  
   4.254 @@ -1949,18 +1949,18 @@
   4.255        lb(AT, _bcp_register, 0);
   4.256        daddiu(AT, AT, -1 * Bytecodes::_invokedynamic);
   4.257        beq(AT, R0, do_profile);
   4.258 -      nop();
   4.259 +      delayed()->nop();
   4.260  
   4.261        lb(AT, _bcp_register, 0);
   4.262        daddiu(AT, AT, -1 * Bytecodes::_invokehandle);
   4.263        beq(AT, R0, do_profile);
   4.264 -      nop();
   4.265 +      delayed()->nop();
   4.266  
   4.267        get_method(tmp);
   4.268        lb(tmp, tmp, Method::intrinsic_id_offset_in_bytes());
   4.269        li(AT, vmIntrinsics::_compiledLambdaForm);
   4.270        bne(tmp, AT, profile_continue);
   4.271 -      nop();
   4.272 +      delayed()->nop();
   4.273  
   4.274        bind(do_profile);
   4.275      }
   4.276 @@ -1985,7 +1985,7 @@
   4.277      // parameters. If it's negative we're not profiling any parameters
   4.278      lw(tmp1, mdp, in_bytes(MethodData::parameters_type_data_di_offset()) - in_bytes(MethodData::data_offset()));
   4.279      bltz(tmp1, profile_continue);
   4.280 -    nop();
   4.281 +    delayed()->nop();
   4.282  
   4.283      // Compute a pointer to the area for parameters from the offset
   4.284      // and move the pointer to the slot for the last
   4.285 @@ -2022,7 +2022,7 @@
   4.286      // go to next parameter
   4.287      decrement(tmp1, TypeStackSlotEntries::per_arg_count());
   4.288      bgtz(tmp1, loop);
   4.289 -    nop();
   4.290 +    delayed()->nop();
   4.291  
   4.292      bind(profile_continue);
   4.293    }
     5.1 --- a/src/cpu/mips/vm/interpreterRT_mips_64.cpp	Mon Jun 11 17:42:16 2018 +0800
     5.2 +++ b/src/cpu/mips/vm/interpreterRT_mips_64.cpp	Tue Jun 12 13:58:17 2018 +0800
     5.3 @@ -85,7 +85,7 @@
     5.4  
     5.5    Label L;
     5.6    __ bne(Rtmp1, R0, L);
     5.7 -  __ addu_long(Rtmp1, from(), Interpreter::local_offset_in_bytes(offset()));
     5.8 +  __ delayed()->daddiu(Rtmp1, from(), Interpreter::local_offset_in_bytes(offset()));
     5.9    __ move(Rtmp1, R0);
    5.10    __ bind(L);
    5.11  
     6.1 --- a/src/cpu/mips/vm/macroAssembler_mips.cpp	Mon Jun 11 17:42:16 2018 +0800
     6.2 +++ b/src/cpu/mips/vm/macroAssembler_mips.cpp	Tue Jun 12 13:58:17 2018 +0800
     6.3 @@ -125,7 +125,7 @@
     6.4        MacroAssembler masm(&cb);
     6.5  #define __ masm.
     6.6        __ b(target);
     6.7 -      __ nop();
     6.8 +      __ delayed()->nop();
     6.9        __ nop();
    6.10        __ nop();
    6.11        __ nop();
    6.12 @@ -188,11 +188,11 @@
    6.13  void MacroAssembler::general_jump(address target) {
    6.14    if (reachable_from_cache(target)) {
    6.15      j(target);
    6.16 -    nop();
    6.17 +    delayed()->nop();
    6.18    } else {
    6.19      set64(T9, (long)target);
    6.20      jr(T9);
    6.21 -    nop();
    6.22 +    delayed()->nop();
    6.23    }
    6.24  }
    6.25  
    6.26 @@ -216,11 +216,11 @@
    6.27      nop();
    6.28      nop();
    6.29      j(target);
    6.30 -    nop();
    6.31 +    delayed()->nop();
    6.32    } else {
    6.33      patchable_set48(T9, (long)target);
    6.34      jr(T9);
    6.35 -    nop();
    6.36 +    delayed()->nop();
    6.37    }
    6.38  }
    6.39  
    6.40 @@ -231,11 +231,11 @@
    6.41  void MacroAssembler::general_call(address target) {
    6.42    if (reachable_from_cache(target)) {
    6.43      jal(target);
    6.44 -    nop();
    6.45 +    delayed()->nop();
    6.46    } else {
    6.47      set64(T9, (long)target);
    6.48      jalr(T9);
    6.49 -    nop();
    6.50 +    delayed()->nop();
    6.51    }
    6.52  }
    6.53  
    6.54 @@ -259,11 +259,11 @@
    6.55      nop();
    6.56      nop();
    6.57      jal(target);
    6.58 -    nop();
    6.59 +    delayed()->nop();
    6.60    } else {
    6.61      patchable_set48(T9, (long)target);
    6.62      jalr(T9);
    6.63 -    nop();
    6.64 +    delayed()->nop();
    6.65    }
    6.66  }
    6.67  
    6.68 @@ -347,7 +347,7 @@
    6.69    Label not_taken;
    6.70  
    6.71    bne(rs, rt, not_taken);
    6.72 -  nop();
    6.73 +  delayed()->nop();
    6.74  
    6.75    jmp_far(L);
    6.76  
    6.77 @@ -358,7 +358,7 @@
    6.78    Label not_taken;
    6.79  
    6.80    beq(rs, rt, not_taken);
    6.81 -  nop();
    6.82 +  delayed()->nop();
    6.83  
    6.84    jmp_far(L);
    6.85  
    6.86 @@ -369,7 +369,7 @@
    6.87    Label not_taken;
    6.88  
    6.89    bc1f(not_taken);
    6.90 -  nop();
    6.91 +  delayed()->nop();
    6.92  
    6.93    jmp_far(L);
    6.94  
    6.95 @@ -380,7 +380,7 @@
    6.96    Label not_taken;
    6.97  
    6.98    bc1t(not_taken);
    6.99 -  nop();
   6.100 +  delayed()->nop();
   6.101  
   6.102    jmp_far(L);
   6.103  
   6.104 @@ -819,7 +819,7 @@
   6.105    }
   6.106  
   6.107    jr(T9);
   6.108 -  nop();
   6.109 +  delayed()->nop();
   6.110  }
   6.111  void MacroAssembler::mov_metadata(Address dst, Metadata* obj) {
   6.112    int oop_index;
   6.113 @@ -1591,7 +1591,7 @@
   6.114      lb(AT, in_progress);
   6.115    }
   6.116    beq(AT, R0, done);
   6.117 -  nop();
   6.118 +  delayed()->nop();
   6.119  
   6.120    // Do we need to load the previous value?
   6.121    if (obj != noreg) {
   6.122 @@ -1600,7 +1600,7 @@
   6.123  
   6.124    // Is the previous value null?
   6.125    beq(pre_val, R0, done);
   6.126 -  nop();
   6.127 +  delayed()->nop();
   6.128  
   6.129    // Can we store original value in the thread's buffer?
   6.130    // Is index == 0?
   6.131 @@ -1608,7 +1608,7 @@
   6.132  
   6.133    ld(tmp, index);
   6.134    beq(tmp, R0, runtime);
   6.135 -  nop();
   6.136 +  delayed()->nop();
   6.137  
   6.138    daddiu(tmp, tmp, -1 * wordSize);
   6.139    sd(tmp, index);
   6.140 @@ -1618,7 +1618,7 @@
   6.141    // Record the previous value
   6.142    sd(pre_val, tmp, 0);
   6.143    beq(R0, R0, done);
   6.144 -  nop();
   6.145 +  delayed()->nop();
   6.146  
   6.147    bind(runtime);
   6.148    // save the live input values
   6.149 @@ -1692,12 +1692,12 @@
   6.150    xorr(AT, store_addr, new_val);
   6.151    dsrl(AT, AT, HeapRegion::LogOfHRGrainBytes);
   6.152    beq(AT, R0, done);
   6.153 -  nop();
   6.154 +  delayed()->nop();
   6.155  
   6.156  
   6.157    // crosses regions, storing NULL?
   6.158    beq(new_val, R0, done);
   6.159 -  nop();
   6.160 +  delayed()->nop();
   6.161  
   6.162    // storing region crossing non-NULL, is card already dirty?
   6.163    const Register card_addr = tmp;
   6.164 @@ -1713,13 +1713,13 @@
   6.165    lb(AT, card_addr, 0);
   6.166    daddiu(AT, AT, -1 * (int)G1SATBCardTableModRefBS::g1_young_card_val());
   6.167    beq(AT, R0, done);
   6.168 -  nop();
   6.169 +  delayed()->nop();
   6.170  
   6.171    sync();
   6.172    lb(AT, card_addr, 0);
   6.173    daddiu(AT, AT, -1 * (int)(int)CardTableModRefBS::dirty_card_val());
   6.174    beq(AT, R0, done);
   6.175 -  nop();
   6.176 +  delayed()->nop();
   6.177  
   6.178  
   6.179    // storing a region crossing, non-NULL oop, card is clean.
   6.180 @@ -1729,7 +1729,7 @@
   6.181  
   6.182    lw(AT, queue_index);
   6.183    beq(AT, R0, runtime);
   6.184 -  nop();
   6.185 +  delayed()->nop();
   6.186    daddiu(AT, AT, -1 * wordSize);
   6.187    sw(AT, queue_index);
   6.188    ld(tmp2, buffer);
   6.189 @@ -1743,7 +1743,7 @@
   6.190    sw(card_addr, tmp2, 0);
   6.191  #endif
   6.192    beq(R0, R0, done);
   6.193 -  nop();
   6.194 +  delayed()->nop();
   6.195  
   6.196    bind(runtime);
   6.197    // save the live input values
   6.198 @@ -4031,10 +4031,10 @@
   6.199  
   6.200      if (peel) {
   6.201        beq(intf_klass, method_result, found_method);
   6.202 -      nop();
   6.203 +      delayed()->nop();
   6.204      } else {
   6.205        bne(intf_klass, method_result, search);
   6.206 -      nop();
   6.207 +      delayed()->nop();
   6.208        // (invert the test to fall through to found_method...)
   6.209      }
   6.210  
   6.211 @@ -4046,7 +4046,7 @@
   6.212      // the receiver class doesn't implement the interface, and wasn't the
   6.213      // same as when the caller was compiled.
   6.214      beq(method_result, R0, L_no_such_interface);
   6.215 -    nop();
   6.216 +    delayed()->nop();
   6.217      daddiu(scan_temp, scan_temp, scan_step);
   6.218    }
   6.219  
     7.1 --- a/src/cpu/mips/vm/methodHandles_mips.cpp	Mon Jun 11 17:42:16 2018 +0800
     7.2 +++ b/src/cpu/mips/vm/methodHandles_mips.cpp	Tue Jun 12 13:58:17 2018 +0800
     7.3 @@ -71,20 +71,20 @@
     7.4    BLOCK_COMMENT("verify_klass {");
     7.5    __ verify_oop(obj);
     7.6    __ beq(obj, R0, L_bad);
     7.7 -  __ nop();
     7.8 +  __ delayed()->nop();
     7.9    __ push(temp); //if (temp2 != noreg)  __ push(temp2);
    7.10  #define UNPUSH {  __ pop(temp); }
    7.11    __ load_klass(temp, obj);
    7.12    __ li(AT, (long)&klass_addr);
    7.13    __ ld(AT, AT, 0);
    7.14    __ beq(temp, AT, L_ok);
    7.15 -  __ nop();
    7.16 +  __ delayed()->nop();
    7.17    intptr_t super_check_offset = klass->super_check_offset();
    7.18    __ ld(temp, Address(temp, super_check_offset));
    7.19    __ li(AT, (long)&klass_addr);
    7.20    __ ld(AT, AT, 0);
    7.21    __ beq(AT, temp, L_ok);
    7.22 -  __ nop();
    7.23 +  __ delayed()->nop();
    7.24    UNPUSH;
    7.25    __ bind(L_bad);
    7.26    __ STOP(error_message);
    7.27 @@ -103,7 +103,7 @@
    7.28    __ andr(temp, temp, AT);
    7.29    __ move(AT, ref_kind);
    7.30    __ beq(temp, AT, L);
    7.31 -  __ nop();
    7.32 +  __ delayed()->nop();
    7.33    { char* buf = NEW_C_HEAP_ARRAY(char, 100, mtInternal);
    7.34      jio_snprintf(buf, 100, "verify_ref_kind expected %x", ref_kind);
    7.35      if (ref_kind == JVM_REF_invokeVirtual ||
    7.36 @@ -124,7 +124,7 @@
    7.37  
    7.38    Label L_no_such_method;
    7.39    __ beq(method, R0, L_no_such_method);
    7.40 -  __ nop();
    7.41 +  __ delayed()->nop();
    7.42  
    7.43    __ verify_method_ptr(method);
    7.44  
    7.45 @@ -143,10 +143,10 @@
    7.46      // Is a cmpl faster?
    7.47      __ lbu(AT, rthread, in_bytes(JavaThread::interp_only_mode_offset()));
    7.48      __ beq(AT, R0, run_compiled_code);
    7.49 -    __ nop();
    7.50 +    __ delayed()->nop();
    7.51      __ ld(T9, method, in_bytes(Method::interpreter_entry_offset()));
    7.52      __ jr(T9);
    7.53 -    __ nop();
    7.54 +    __ delayed()->nop();
    7.55      __ BIND(run_compiled_code);
    7.56    }
    7.57  
    7.58 @@ -154,12 +154,12 @@
    7.59                                                       Method::from_interpreted_offset();
    7.60    __ ld(T9, method, in_bytes(entry_offset));
    7.61    __ jr(T9);
    7.62 -  __ nop();
    7.63 +  __ delayed()->nop();
    7.64  
    7.65    __ bind(L_no_such_method);
    7.66    address wrong_method = StubRoutines::throw_AbstractMethodError_entry();
    7.67    __ jmp(wrong_method, relocInfo::runtime_call_type);
    7.68 -  __ nop();
    7.69 +  __ delayed()->nop();
    7.70  }
    7.71  
    7.72  void MethodHandles::jump_to_lambda_form(MacroAssembler* _masm,
    7.73 @@ -195,7 +195,7 @@
    7.74      Address recv_addr = __ argument_address(temp2, -1);
    7.75      __ ld(AT, recv_addr);
    7.76      __ beq(recv, AT, L);
    7.77 -    __ nop();
    7.78 +    __ delayed()->nop();
    7.79  
    7.80      recv_addr = __ argument_address(temp2, -1);
    7.81      __ ld(V0, recv_addr);
    7.82 @@ -242,7 +242,7 @@
    7.83      guarantee(Assembler::is_simm16(iid), "Oops, iid is not simm16! Change the instructions.");
    7.84      __ addiu(AT, AT, -1 * (int) iid);
    7.85      __ beq(AT, R0, L);
    7.86 -    __ nop();
    7.87 +    __ delayed()->nop();
    7.88      if (iid == vmIntrinsics::_linkToVirtual ||
    7.89          iid == vmIntrinsics::_linkToSpecial) {
    7.90        // could do this for all kinds, but would explode assembly code size
    7.91 @@ -419,7 +419,7 @@
    7.92          Label L_index_ok;
    7.93          __ slt(AT, R0, temp2_index);
    7.94          __ bne(AT, R0, L_index_ok);
    7.95 -        __ nop();
    7.96 +        __ delayed()->nop();
    7.97          __ STOP("no virtual index");
    7.98          __ BIND(L_index_ok);
    7.99        }
   7.100 @@ -451,7 +451,7 @@
   7.101          Label L;
   7.102          __ slt(AT, rbx_index, R0);
   7.103          __ beq(AT, R0, L);
   7.104 -        __ nop();
   7.105 +        __ delayed()->nop();
   7.106          __ STOP("invalid vtable index for MH.invokeInterface");
   7.107          __ bind(L);
   7.108        }
   7.109 @@ -484,7 +484,7 @@
   7.110        __ bind(L_incompatible_class_change_error);
   7.111        address icce_entry= StubRoutines::throw_IncompatibleClassChangeError_entry();
   7.112        __ jmp(icce_entry, relocInfo::runtime_call_type);
   7.113 -      __ nop();
   7.114 +      __ delayed()->nop();
   7.115      }
   7.116    }
   7.117  }
     8.1 --- a/src/cpu/mips/vm/mips_64.ad	Mon Jun 11 17:42:16 2018 +0800
     8.2 +++ b/src/cpu/mips/vm/mips_64.ad	Tue Jun 12 13:58:17 2018 +0800
     8.3 @@ -1522,7 +1522,7 @@
     8.4    Register   iCache = as_Register(ic_reg);
     8.5    __ load_klass(T9, receiver);
     8.6    __ beq(T9, iCache, L);
     8.7 -  __ nop();
     8.8 +  __ delayed()->nop();
     8.9  
    8.10    __ relocate(relocInfo::runtime_call_type);
    8.11    __ patchable_jump((address)SharedRuntime::get_ic_miss_stub());
    8.12 @@ -3362,7 +3362,7 @@
    8.13      /* 2013/7/22 Jin: Refer to X86_64's RDI */
    8.14      __ move(result, 0);
    8.15      __ b(done);
    8.16 -    __ nop();
    8.17 +    __ delayed()->nop();
    8.18  
    8.19      __ bind(miss);
    8.20      __ move(result, 1);
    8.21 @@ -6545,7 +6545,7 @@
    8.22  
    8.23      __ move(S3, oop);
    8.24      __ jr(target);
    8.25 -    __ nop();
    8.26 +    __ delayed()->nop();
    8.27    %}
    8.28  
    8.29    ins_pipe( pipe_jump );
    8.30 @@ -7583,7 +7583,7 @@
    8.31         __ b(L);
    8.32      else
    8.33         __ b(int(0));
    8.34 -    __ nop();
    8.35 +    __ delayed()->nop();
    8.36    %}
    8.37  
    8.38      ins_pipe( pipe_jump );
    8.39 @@ -7648,7 +7648,7 @@
    8.40        default:
    8.41          Unimplemented();
    8.42      }
    8.43 -    __ nop();
    8.44 +    __ delayed()->nop();
    8.45    %}
    8.46    ins_pipe( pipe_jump );
    8.47    ins_pc_relative(1);
    8.48 @@ -7713,7 +7713,7 @@
    8.49        default:
    8.50          Unimplemented();
    8.51      }
    8.52 -    __ nop();
    8.53 +    __ delayed()->nop();
    8.54    %}
    8.55    ins_pipe( pipe_jump );
    8.56    ins_pc_relative(1);
    8.57 @@ -7747,7 +7747,7 @@
    8.58        default:
    8.59          Unimplemented();
    8.60      }
    8.61 -    __ nop();
    8.62 +    __ delayed()->nop();
    8.63    %}
    8.64  
    8.65    ins_pipe( pipe_jump );
    8.66 @@ -7785,7 +7785,7 @@
    8.67        default:
    8.68          Unimplemented();
    8.69      }
    8.70 -    __ nop();
    8.71 +    __ delayed()->nop();
    8.72    %}
    8.73  
    8.74    ins_pc_relative(1);
    8.75 @@ -7824,7 +7824,7 @@
    8.76        default:
    8.77          Unimplemented();
    8.78      }
    8.79 -    __ nop();
    8.80 +    __ delayed()->nop();
    8.81    %}
    8.82  
    8.83    ins_pc_relative(1);
    8.84 @@ -7891,7 +7891,7 @@
    8.85        default:
    8.86            Unimplemented();
    8.87      }
    8.88 -    __ nop();
    8.89 +    __ delayed()->nop();
    8.90    %}
    8.91  
    8.92    ins_pc_relative(1);
    8.93 @@ -7928,7 +7928,7 @@
    8.94      default:
    8.95            Unimplemented();
    8.96      }
    8.97 -    __ nop();
    8.98 +    __ delayed()->nop();
    8.99    %}
   8.100  //TODO: pipe_branchP or create pipe_branchN LEE
   8.101    ins_pc_relative(1);
   8.102 @@ -7993,7 +7993,7 @@
   8.103      default:
   8.104        Unimplemented();
   8.105      }
   8.106 -    __ nop();
   8.107 +    __ delayed()->nop();
   8.108    %}
   8.109    ins_pc_relative(1);
   8.110    ins_pipe( pipe_alu_branch );
   8.111 @@ -8055,7 +8055,7 @@
   8.112        default:
   8.113          Unimplemented();
   8.114      }
   8.115 -    __ nop();
   8.116 +    __ delayed()->nop();
   8.117    %}
   8.118  
   8.119    ins_pc_relative(1);
   8.120 @@ -8120,7 +8120,7 @@
   8.121        default:
   8.122          Unimplemented();
   8.123      }
   8.124 -    __ nop();
   8.125 +    __ delayed()->nop();
   8.126    %}
   8.127  
   8.128    ins_pc_relative(1);
   8.129 @@ -8183,7 +8183,7 @@
   8.130        default:
   8.131          Unimplemented();
   8.132      }
   8.133 -    __ nop();
   8.134 +    __ delayed()->nop();
   8.135    %}
   8.136  
   8.137    ins_pc_relative(1);
   8.138 @@ -8242,7 +8242,7 @@
   8.139        default:
   8.140          Unimplemented();
   8.141      }
   8.142 -    __ nop();
   8.143 +    __ delayed()->nop();
   8.144    %}
   8.145  
   8.146    ins_pc_relative(1);
   8.147 @@ -8308,7 +8308,7 @@
   8.148        default:
   8.149            Unimplemented();
   8.150      }
   8.151 -    __ nop();
   8.152 +    __ delayed()->nop();
   8.153    %}
   8.154  
   8.155    ins_pc_relative(1);
   8.156 @@ -8363,7 +8363,7 @@
   8.157        default:
   8.158          Unimplemented();
   8.159      }
   8.160 -    __ nop();
   8.161 +    __ delayed()->nop();
   8.162      %}
   8.163  
   8.164    ins_pc_relative(1);
   8.165 @@ -8432,7 +8432,7 @@
   8.166        default:
   8.167          Unimplemented();
   8.168      }
   8.169 -    __ nop();
   8.170 +    __ delayed()->nop();
   8.171    %}
   8.172  
   8.173    ins_pc_relative(1);
   8.174 @@ -8655,7 +8655,7 @@
   8.175        default:
   8.176          Unimplemented();
   8.177      }
   8.178 -    __ nop();
   8.179 +    __ delayed()->nop();
   8.180    %}
   8.181  
   8.182  
   8.183 @@ -8723,7 +8723,7 @@
   8.184        default:
   8.185          Unimplemented();
   8.186      }
   8.187 -    __ nop();
   8.188 +    __ delayed()->nop();
   8.189    %}
   8.190  
   8.191    ins_pc_relative(1);
   8.192 @@ -8789,7 +8789,7 @@
   8.193        default:
   8.194          Unimplemented();
   8.195      }
   8.196 -    __ nop();
   8.197 +    __ delayed()->nop();
   8.198    %}
   8.199  
   8.200    ins_pc_relative(1);
   8.201 @@ -10277,41 +10277,41 @@
   8.202      switch(flag) {
   8.203        case 0x01: //equal
   8.204          __ bne(op1, op2, L);
   8.205 -        __ nop();
   8.206 +        __ delayed()->nop();
   8.207          __ mov_s(dst, src);
   8.208          __ bind(L);
   8.209          break;
   8.210        case 0x02: //not_equal
   8.211          __ beq(op1, op2, L);
   8.212 -        __ nop();
   8.213 +        __ delayed()->nop();
   8.214          __ mov_s(dst, src);
   8.215          __ bind(L);
   8.216          break;
   8.217        case 0x03: //great
   8.218          __ slt(AT, op2, op1);
   8.219          __ beq(AT, R0, L);
   8.220 -        __ nop();
   8.221 +        __ delayed()->nop();
   8.222          __ mov_s(dst, src);
   8.223          __ bind(L);
   8.224          break;
   8.225        case 0x04: //great_equal
   8.226          __ slt(AT, op1, op2);
   8.227          __ bne(AT, R0, L);
   8.228 -        __ nop();
   8.229 +        __ delayed()->nop();
   8.230          __ mov_s(dst, src);
   8.231          __ bind(L);
   8.232          break;
   8.233        case 0x05: //less
   8.234          __ slt(AT, op1, op2);
   8.235          __ beq(AT, R0, L);
   8.236 -        __ nop();
   8.237 +        __ delayed()->nop();
   8.238          __ mov_s(dst, src);
   8.239          __ bind(L);
   8.240          break;
   8.241        case 0x06: //less_equal
   8.242          __ slt(AT, op2, op1);
   8.243          __ bne(AT, R0, L);
   8.244 -        __ nop();
   8.245 +        __ delayed()->nop();
   8.246          __ mov_s(dst, src);
   8.247          __ bind(L);
   8.248         break;
   8.249 @@ -10342,41 +10342,41 @@
   8.250      switch(flag) {
   8.251        case 0x01: //equal
   8.252          __ bne(op1, op2, L);
   8.253 -        __ nop();
   8.254 +        __ delayed()->nop();
   8.255          __ mov_d(dst, src);
   8.256          __ bind(L);
   8.257          break;
   8.258        case 0x02: //not_equal
   8.259          __ beq(op1, op2, L);
   8.260 -        __ nop();
   8.261 +        __ delayed()->nop();
   8.262          __ mov_d(dst, src);
   8.263          __ bind(L);
   8.264          break;
   8.265        case 0x03: //great
   8.266          __ slt(AT, op2, op1);
   8.267          __ beq(AT, R0, L);
   8.268 -        __ nop();
   8.269 +        __ delayed()->nop();
   8.270          __ mov_d(dst, src);
   8.271          __ bind(L);
   8.272          break;
   8.273        case 0x04: //great_equal
   8.274          __ slt(AT, op1, op2);
   8.275          __ bne(AT, R0, L);
   8.276 -        __ nop();
   8.277 +        __ delayed()->nop();
   8.278          __ mov_d(dst, src);
   8.279          __ bind(L);
   8.280          break;
   8.281        case 0x05: //less
   8.282          __ slt(AT, op1, op2);
   8.283          __ beq(AT, R0, L);
   8.284 -        __ nop();
   8.285 +        __ delayed()->nop();
   8.286          __ mov_d(dst, src);
   8.287          __ bind(L);
   8.288          break;
   8.289        case 0x06: //less_equal
   8.290          __ slt(AT, op2, op1);
   8.291          __ bne(AT, R0, L);
   8.292 -        __ nop();
   8.293 +        __ delayed()->nop();
   8.294          __ mov_d(dst, src);
   8.295          __ bind(L);
   8.296          break;
   8.297 @@ -10407,41 +10407,41 @@
   8.298      switch(flag) {
   8.299        case 0x01: //equal
   8.300          __ bne(op1, op2, L);
   8.301 -        __ nop();
   8.302 +        __ delayed()->nop();
   8.303          __ mov_d(dst, src);
   8.304          __ bind(L);
   8.305          break;
   8.306        case 0x02: //not_equal
   8.307          __ beq(op1, op2, L);
   8.308 -        __ nop();
   8.309 +        __ delayed()->nop();
   8.310          __ mov_d(dst, src);
   8.311          __ bind(L);
   8.312          break;
   8.313        case 0x03: //great
   8.314          __ slt(AT, op2, op1);
   8.315          __ beq(AT, R0, L);
   8.316 -        __ nop();
   8.317 +        __ delayed()->nop();
   8.318          __ mov_d(dst, src);
   8.319          __ bind(L);
   8.320          break;
   8.321        case 0x04: //great_equal
   8.322          __ slt(AT, op1, op2);
   8.323          __ bne(AT, R0, L);
   8.324 -        __ nop();
   8.325 +        __ delayed()->nop();
   8.326          __ mov_d(dst, src);
   8.327          __ bind(L);
   8.328          break;
   8.329        case 0x05: //less
   8.330          __ slt(AT, op1, op2);
   8.331          __ beq(AT, R0, L);
   8.332 -        __ nop();
   8.333 +        __ delayed()->nop();
   8.334          __ mov_d(dst, src);
   8.335          __ bind(L);
   8.336          break;
   8.337        case 0x06: //less_equal
   8.338          __ slt(AT, op2, op1);
   8.339          __ bne(AT, R0, L);
   8.340 -        __ nop();
   8.341 +        __ delayed()->nop();
   8.342          __ mov_d(dst, src);
   8.343          __ bind(L);
   8.344          break;
   8.345 @@ -13106,7 +13106,7 @@
   8.346  
   8.347    ins_encode %{
   8.348     __ jr(RA);
   8.349 -   __ nop();
   8.350 +   __ delayed()->nop();
   8.351    %}
   8.352  
   8.353    ins_pipe( pipe_jump );
   8.354 @@ -13151,7 +13151,7 @@
   8.355      }
   8.356  
   8.357      __ jr(T9);
   8.358 -    __ nop();
   8.359 +    __ delayed()->nop();
   8.360  
   8.361    %}
   8.362    ins_pipe(pipe_jump);
   8.363 @@ -13185,7 +13185,7 @@
   8.364      __ move(exception_oop, oop);
   8.365  
   8.366      __ jr(target);
   8.367 -    __ nop();
   8.368 +    __ delayed()->nop();
   8.369    %}
   8.370    ins_pipe( pipe_jump );
   8.371  %}
     9.1 --- a/src/cpu/mips/vm/nativeInst_mips.cpp	Mon Jun 11 17:42:16 2018 +0800
     9.2 +++ b/src/cpu/mips/vm/nativeInst_mips.cpp	Tue Jun 12 13:58:17 2018 +0800
     9.3 @@ -1369,7 +1369,7 @@
     9.4      __ ori(T9, T9, (offset - 8) & 0xffff);
     9.5      __ daddu(T9, T9, RA);
     9.6      __ jr(T9);
     9.7 -    __ nop();
     9.8 +    __ delayed()->nop();
     9.9    }
    9.10  #else
    9.11    __ b(entry);
    10.1 --- a/src/cpu/mips/vm/sharedRuntime_mips_64.cpp	Mon Jun 11 17:42:16 2018 +0800
    10.2 +++ b/src/cpu/mips/vm/sharedRuntime_mips_64.cpp	Tue Jun 12 13:58:17 2018 +0800
    10.3 @@ -3770,7 +3770,7 @@
    10.4    __ st_ptr(R0, thread, in_bytes(JavaThread::vm_result_offset()));
    10.5    __ ld_ptr(V0, thread, in_bytes(Thread::pending_exception_offset()));
    10.6    __ jmp(StubRoutines::forward_exception_entry(), relocInfo::runtime_call_type);
    10.7 -  __ delayed() -> nop();
    10.8 +  __ delayed()->nop();
    10.9    // -------------
   10.10    // make sure all code is generated
   10.11    masm->flush();
    11.1 --- a/src/cpu/mips/vm/stubGenerator_mips_64.cpp	Mon Jun 11 17:42:16 2018 +0800
    11.2 +++ b/src/cpu/mips/vm/stubGenerator_mips_64.cpp	Tue Jun 12 13:58:17 2018 +0800
    11.3 @@ -705,7 +705,7 @@
    11.4            __ daddiu(count, count, -1);
    11.5            __ slt(AT, count, R0);
    11.6            __ beq(AT, R0, L_loop);
    11.7 -          __ nop();
    11.8 +          __ delayed()->nop();
    11.9          }
   11.10          break;
   11.11        default:
   11.12 @@ -1236,7 +1236,7 @@
   11.13        __ daddi(tmp3, tmp3, -16);
   11.14        __ daddi(AT, tmp3, -16);
   11.15        __ bgez(AT, l_8);
   11.16 -      __ sd(tmp6, tmp2, -8);
   11.17 +      __ delayed()->sd(tmp6, tmp2, -8);
   11.18      }
   11.19      __ bind(l_6);
   11.20  
   11.21 @@ -1259,7 +1259,7 @@
   11.22        __ daddi(tmp3, tmp3, -8);
   11.23        __ daddi(AT, tmp3, -8);
   11.24        __ bgez(AT, l_3);
   11.25 -      __ sw(tmp6, tmp2, -4);
   11.26 +      __ delayed()->sw(tmp6, tmp2, -4);
   11.27      }
   11.28  
   11.29      __ bind(l_1);
   11.30 @@ -1282,7 +1282,7 @@
   11.31        __ daddi(tmp3, tmp3, -4);
   11.32        __ daddi(AT, tmp3, -4);
   11.33        __ bgez(AT, l_5);
   11.34 -      __ sh(tmp6, tmp2, -2);
   11.35 +      __ delayed()->sh(tmp6, tmp2, -2);
   11.36      }
   11.37      // single element
   11.38      __ bind(l_4);
    12.1 --- a/src/cpu/mips/vm/templateInterpreter_mips_64.cpp	Mon Jun 11 17:42:16 2018 +0800
    12.2 +++ b/src/cpu/mips/vm/templateInterpreter_mips_64.cpp	Tue Jun 12 13:58:17 2018 +0800
    12.3 @@ -818,7 +818,7 @@
    12.4      __ ld(V0, SP, 0);
    12.5  
    12.6      __ beq(V0, R0, slow_path);
    12.7 -    __ nop();
    12.8 +    __ delayed()->nop();
    12.9  
   12.10      // Generate the G1 pre-barrier code to log the value of
   12.11      // the referent field in an SATB buffer.
    13.1 --- a/src/cpu/mips/vm/templateTable_mips_64.cpp	Mon Jun 11 17:42:16 2018 +0800
    13.2 +++ b/src/cpu/mips/vm/templateTable_mips_64.cpp	Tue Jun 12 13:58:17 2018 +0800
    13.3 @@ -1243,7 +1243,7 @@
    13.4      Label L_skip;
    13.5      __ andr(AT, T9, AT);
    13.6      __ beq(AT, R0, L_skip);
    13.7 -    __ nop();
    13.8 +    __ delayed()->nop();
    13.9      __ andi(FSR, FSR, 0x1);
   13.10      __ bind(L_skip);
   13.11  
   13.12 @@ -2009,7 +2009,7 @@
   13.13      Label has_counters;
   13.14      __ ld(AT, T3, in_bytes(Method::method_counters_offset()));  // use AT as MDO, TEMP
   13.15      __ bne(AT, R0, has_counters);
   13.16 -    __ nop();
   13.17 +    __ delayed()->nop();
   13.18      __ push(T3);
   13.19      //__ push(A7);
   13.20      __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::build_method_counters),
   13.21 @@ -2018,7 +2018,7 @@
   13.22      __ pop(T3);
   13.23      __ ld(AT, T3, in_bytes(Method::method_counters_offset()));  // use AT as MDO, TEMP
   13.24      __ beq(AT, R0, dispatch);
   13.25 -    __ nop();
   13.26 +    __ delayed()->nop();
   13.27      __ bind(has_counters);
   13.28  
   13.29      // increment back edge counter
   13.30 @@ -2843,7 +2843,7 @@
   13.31  
   13.32      Label notVolatile;
   13.33      __ beq(scratch, R0, notVolatile);
   13.34 -    __ nop();
   13.35 +    __ delayed()->nop();
   13.36      volatile_barrier();
   13.37      __ bind(notVolatile);
   13.38    }
   13.39 @@ -3136,7 +3136,7 @@
   13.40  
   13.41      Label notVolatile;
   13.42      __ beq(scratch, R0, notVolatile);
   13.43 -    __ nop();
   13.44 +    __ delayed()->nop();
   13.45      volatile_barrier();
   13.46      __ bind(notVolatile);
   13.47    }
   13.48 @@ -3327,7 +3327,7 @@
   13.49    {
   13.50      Label notVolatile;
   13.51      __ beq(scratch, R0, notVolatile);
   13.52 -    __ nop();
   13.53 +    __ delayed()->nop();
   13.54      volatile_barrier();
   13.55      __ bind(notVolatile);
   13.56    }
   13.57 @@ -3432,7 +3432,7 @@
   13.58  
   13.59      Label notVolatile;
   13.60      __ beq(scratch, R0, notVolatile);
   13.61 -    __ nop();
   13.62 +    __ delayed()->nop();
   13.63      volatile_barrier();
   13.64      __ bind(notVolatile);
   13.65    }
   13.66 @@ -3479,7 +3479,7 @@
   13.67    {
   13.68      Label notVolatile;
   13.69      __ beq(scratch, R0, notVolatile);
   13.70 -    __ nop();
   13.71 +    __ delayed()->nop();
   13.72      volatile_barrier();
   13.73      __ bind(notVolatile);
   13.74    }
   13.75 @@ -3529,7 +3529,7 @@
   13.76  
   13.77      Label notVolatile;
   13.78      __ beq(scratch, R0, notVolatile);
   13.79 -    __ nop();
   13.80 +    __ delayed()->nop();
   13.81      volatile_barrier();
   13.82      __ bind(notVolatile);
   13.83    }
   13.84 @@ -3575,7 +3575,7 @@
   13.85    {
   13.86      Label notVolatile;
   13.87      __ beq(scratch, R0, notVolatile);
   13.88 -    __ nop();
   13.89 +    __ delayed()->nop();
   13.90      volatile_barrier();
   13.91      __ bind(notVolatile);
   13.92    }
   13.93 @@ -3607,7 +3607,7 @@
   13.94  
   13.95      Label notVolatile;
   13.96      __ beq(scratch, R0, notVolatile);
   13.97 -    __ nop();
   13.98 +    __ delayed()->nop();
   13.99      volatile_barrier();
  13.100      __ bind(notVolatile);
  13.101    }
  13.102 @@ -3633,7 +3633,7 @@
  13.103    {
  13.104      Label notVolatile;
  13.105      __ beq(scratch, R0, notVolatile);
  13.106 -    __ nop();
  13.107 +    __ delayed()->nop();
  13.108      volatile_barrier();
  13.109      __ bind(notVolatile);
  13.110    }
  13.111 @@ -4374,7 +4374,7 @@
  13.112    // Collect counts on whether this test sees NULLs a lot or not.
  13.113    if (ProfileInterpreter) {
  13.114      __ beq(R0, R0, done);
  13.115 -    __ nop();
  13.116 +    __ delayed()->nop();
  13.117      __ bind(is_null);
  13.118      __ profile_null_seen(T3);
  13.119    } else {

mercurial