src/cpu/mips/vm/macroAssembler_mips.cpp

changeset 9144
cecfc245b19a
parent 9136
7ed87d5663da
child 9149
f977b3d18c61
     1.1 --- a/src/cpu/mips/vm/macroAssembler_mips.cpp	Mon Jun 11 17:42:16 2018 +0800
     1.2 +++ b/src/cpu/mips/vm/macroAssembler_mips.cpp	Tue Jun 12 13:58:17 2018 +0800
     1.3 @@ -125,7 +125,7 @@
     1.4        MacroAssembler masm(&cb);
     1.5  #define __ masm.
     1.6        __ b(target);
     1.7 -      __ nop();
     1.8 +      __ delayed()->nop();
     1.9        __ nop();
    1.10        __ nop();
    1.11        __ nop();
    1.12 @@ -188,11 +188,11 @@
    1.13  void MacroAssembler::general_jump(address target) {
    1.14    if (reachable_from_cache(target)) {
    1.15      j(target);
    1.16 -    nop();
    1.17 +    delayed()->nop();
    1.18    } else {
    1.19      set64(T9, (long)target);
    1.20      jr(T9);
    1.21 -    nop();
    1.22 +    delayed()->nop();
    1.23    }
    1.24  }
    1.25  
    1.26 @@ -216,11 +216,11 @@
    1.27      nop();
    1.28      nop();
    1.29      j(target);
    1.30 -    nop();
    1.31 +    delayed()->nop();
    1.32    } else {
    1.33      patchable_set48(T9, (long)target);
    1.34      jr(T9);
    1.35 -    nop();
    1.36 +    delayed()->nop();
    1.37    }
    1.38  }
    1.39  
    1.40 @@ -231,11 +231,11 @@
    1.41  void MacroAssembler::general_call(address target) {
    1.42    if (reachable_from_cache(target)) {
    1.43      jal(target);
    1.44 -    nop();
    1.45 +    delayed()->nop();
    1.46    } else {
    1.47      set64(T9, (long)target);
    1.48      jalr(T9);
    1.49 -    nop();
    1.50 +    delayed()->nop();
    1.51    }
    1.52  }
    1.53  
    1.54 @@ -259,11 +259,11 @@
    1.55      nop();
    1.56      nop();
    1.57      jal(target);
    1.58 -    nop();
    1.59 +    delayed()->nop();
    1.60    } else {
    1.61      patchable_set48(T9, (long)target);
    1.62      jalr(T9);
    1.63 -    nop();
    1.64 +    delayed()->nop();
    1.65    }
    1.66  }
    1.67  
    1.68 @@ -347,7 +347,7 @@
    1.69    Label not_taken;
    1.70  
    1.71    bne(rs, rt, not_taken);
    1.72 -  nop();
    1.73 +  delayed()->nop();
    1.74  
    1.75    jmp_far(L);
    1.76  
    1.77 @@ -358,7 +358,7 @@
    1.78    Label not_taken;
    1.79  
    1.80    beq(rs, rt, not_taken);
    1.81 -  nop();
    1.82 +  delayed()->nop();
    1.83  
    1.84    jmp_far(L);
    1.85  
    1.86 @@ -369,7 +369,7 @@
    1.87    Label not_taken;
    1.88  
    1.89    bc1f(not_taken);
    1.90 -  nop();
    1.91 +  delayed()->nop();
    1.92  
    1.93    jmp_far(L);
    1.94  
    1.95 @@ -380,7 +380,7 @@
    1.96    Label not_taken;
    1.97  
    1.98    bc1t(not_taken);
    1.99 -  nop();
   1.100 +  delayed()->nop();
   1.101  
   1.102    jmp_far(L);
   1.103  
   1.104 @@ -819,7 +819,7 @@
   1.105    }
   1.106  
   1.107    jr(T9);
   1.108 -  nop();
   1.109 +  delayed()->nop();
   1.110  }
   1.111  void MacroAssembler::mov_metadata(Address dst, Metadata* obj) {
   1.112    int oop_index;
   1.113 @@ -1591,7 +1591,7 @@
   1.114      lb(AT, in_progress);
   1.115    }
   1.116    beq(AT, R0, done);
   1.117 -  nop();
   1.118 +  delayed()->nop();
   1.119  
   1.120    // Do we need to load the previous value?
   1.121    if (obj != noreg) {
   1.122 @@ -1600,7 +1600,7 @@
   1.123  
   1.124    // Is the previous value null?
   1.125    beq(pre_val, R0, done);
   1.126 -  nop();
   1.127 +  delayed()->nop();
   1.128  
   1.129    // Can we store original value in the thread's buffer?
   1.130    // Is index == 0?
   1.131 @@ -1608,7 +1608,7 @@
   1.132  
   1.133    ld(tmp, index);
   1.134    beq(tmp, R0, runtime);
   1.135 -  nop();
   1.136 +  delayed()->nop();
   1.137  
   1.138    daddiu(tmp, tmp, -1 * wordSize);
   1.139    sd(tmp, index);
   1.140 @@ -1618,7 +1618,7 @@
   1.141    // Record the previous value
   1.142    sd(pre_val, tmp, 0);
   1.143    beq(R0, R0, done);
   1.144 -  nop();
   1.145 +  delayed()->nop();
   1.146  
   1.147    bind(runtime);
   1.148    // save the live input values
   1.149 @@ -1692,12 +1692,12 @@
   1.150    xorr(AT, store_addr, new_val);
   1.151    dsrl(AT, AT, HeapRegion::LogOfHRGrainBytes);
   1.152    beq(AT, R0, done);
   1.153 -  nop();
   1.154 +  delayed()->nop();
   1.155  
   1.156  
   1.157    // crosses regions, storing NULL?
   1.158    beq(new_val, R0, done);
   1.159 -  nop();
   1.160 +  delayed()->nop();
   1.161  
   1.162    // storing region crossing non-NULL, is card already dirty?
   1.163    const Register card_addr = tmp;
   1.164 @@ -1713,13 +1713,13 @@
   1.165    lb(AT, card_addr, 0);
   1.166    daddiu(AT, AT, -1 * (int)G1SATBCardTableModRefBS::g1_young_card_val());
   1.167    beq(AT, R0, done);
   1.168 -  nop();
   1.169 +  delayed()->nop();
   1.170  
   1.171    sync();
   1.172    lb(AT, card_addr, 0);
   1.173    daddiu(AT, AT, -1 * (int)(int)CardTableModRefBS::dirty_card_val());
   1.174    beq(AT, R0, done);
   1.175 -  nop();
   1.176 +  delayed()->nop();
   1.177  
   1.178  
   1.179    // storing a region crossing, non-NULL oop, card is clean.
   1.180 @@ -1729,7 +1729,7 @@
   1.181  
   1.182    lw(AT, queue_index);
   1.183    beq(AT, R0, runtime);
   1.184 -  nop();
   1.185 +  delayed()->nop();
   1.186    daddiu(AT, AT, -1 * wordSize);
   1.187    sw(AT, queue_index);
   1.188    ld(tmp2, buffer);
   1.189 @@ -1743,7 +1743,7 @@
   1.190    sw(card_addr, tmp2, 0);
   1.191  #endif
   1.192    beq(R0, R0, done);
   1.193 -  nop();
   1.194 +  delayed()->nop();
   1.195  
   1.196    bind(runtime);
   1.197    // save the live input values
   1.198 @@ -4031,10 +4031,10 @@
   1.199  
   1.200      if (peel) {
   1.201        beq(intf_klass, method_result, found_method);
   1.202 -      nop();
   1.203 +      delayed()->nop();
   1.204      } else {
   1.205        bne(intf_klass, method_result, search);
   1.206 -      nop();
   1.207 +      delayed()->nop();
   1.208        // (invert the test to fall through to found_method...)
   1.209      }
   1.210  
   1.211 @@ -4046,7 +4046,7 @@
   1.212      // the receiver class doesn't implement the interface, and wasn't the
   1.213      // same as when the caller was compiled.
   1.214      beq(method_result, R0, L_no_such_interface);
   1.215 -    nop();
   1.216 +    delayed()->nop();
   1.217      daddiu(scan_temp, scan_temp, scan_step);
   1.218    }
   1.219  

mercurial