< prev index next >

src/cpu/sparc/vm/templateTable_sparc.cpp

Print this page
rev 8396 : imported patch epsilon-base


  96       {
  97         if (index == noreg ) {
  98           assert(Assembler::is_simm13(offset), "fix this code");
  99           __ store_heap_oop(val, base, offset);
 100         } else {
 101           __ store_heap_oop(val, base, index);
 102         }
 103         // No need for post barrier if storing NULL
 104         if (val != G0) {
 105           if (precise) {
 106             if (index == noreg) {
 107               __ add(base, offset, base);
 108             } else {
 109               __ add(base, index, base);
 110             }
 111           }
 112           __ card_write_barrier_post(base, val, tmp);
 113         }
 114       }
 115       break;








 116     case BarrierSet::ModRef:
 117     case BarrierSet::Other:
 118       ShouldNotReachHere();
 119       break;
 120     default      :
 121       ShouldNotReachHere();
 122 
 123   }
 124 }
 125 
 126 
 127 //----------------------------------------------------------------------------------------------------
 128 // Platform-dependent initialization
 129 
 130 void TemplateTable::pd_initialize() {
 131   // (none)
 132 }
 133 
 134 
 135 //----------------------------------------------------------------------------------------------------




  96       {
  97         if (index == noreg ) {
  98           assert(Assembler::is_simm13(offset), "fix this code");
  99           __ store_heap_oop(val, base, offset);
 100         } else {
 101           __ store_heap_oop(val, base, index);
 102         }
 103         // No need for post barrier if storing NULL
 104         if (val != G0) {
 105           if (precise) {
 106             if (index == noreg) {
 107               __ add(base, offset, base);
 108             } else {
 109               __ add(base, index, base);
 110             }
 111           }
 112           __ card_write_barrier_post(base, val, tmp);
 113         }
 114       }
 115       break;
 116     case BarrierSet::Epsilon:
 117       if (index == noreg) {
 118         assert(Assembler::is_simm13(offset), "fix this code");
 119         __ store_heap_oop(val, base, offset);
 120       } else {
 121         __ store_heap_oop(val, base, index);
 122       }
 123       break;
 124     case BarrierSet::ModRef:
 125     case BarrierSet::Other:
 126       ShouldNotReachHere();
 127       break;
 128     default      :
 129       ShouldNotReachHere();
 130 
 131   }
 132 }
 133 
 134 
 135 //----------------------------------------------------------------------------------------------------
 136 // Platform-dependent initialization
 137 
 138 void TemplateTable::pd_initialize() {
 139   // (none)
 140 }
 141 
 142 
 143 //----------------------------------------------------------------------------------------------------


< prev index next >