< prev index next >

src/hotspot/cpu/sparc/templateTable_sparc.cpp

8199604_cardtablemodrefbs_rename

72           assert(Assembler::is_simm13(offset), "fix this code");                                                                     
73           __ store_heap_oop(val, base, offset);                                                                                      
74         } else {                                                                                                                     
75           __ store_heap_oop(val, base, index);                                                                                       
76         }                                                                                                                            
77 
78         // No need for post barrier if storing NULL                                                                                  
79         if (val != G0) {                                                                                                             
80           if (precise) {                                                                                                             
81             if (index == noreg) {                                                                                                    
82               __ add(base, offset, base);                                                                                            
83             } else {                                                                                                                 
84               __ add(base, index, base);                                                                                             
85             }                                                                                                                        
86           }                                                                                                                          
87           __ g1_write_barrier_post(base, new_val, tmp);                                                                              
88         }                                                                                                                            
89       }                                                                                                                              
90       break;                                                                                                                         
91 #endif // INCLUDE_ALL_GCS                                                                                                            
92     case BarrierSet::CardTableModRef:                                                                                                
93       {                                                                                                                              
94         if (index == noreg ) {                                                                                                       
95           assert(Assembler::is_simm13(offset), "fix this code");                                                                     
96           __ store_heap_oop(val, base, offset);                                                                                      
97         } else {                                                                                                                     
98           __ store_heap_oop(val, base, index);                                                                                       
99         }                                                                                                                            
100         // No need for post barrier if storing NULL                                                                                  
101         if (val != G0) {                                                                                                             
102           if (precise) {                                                                                                             
103             if (index == noreg) {                                                                                                    
104               __ add(base, offset, base);                                                                                            
105             } else {                                                                                                                 
106               __ add(base, index, base);                                                                                             
107             }                                                                                                                        
108           }                                                                                                                          
109           __ card_write_barrier_post(base, val, tmp);                                                                                
110         }                                                                                                                            
111       }                                                                                                                              

72           assert(Assembler::is_simm13(offset), "fix this code");
73           __ store_heap_oop(val, base, offset);
74         } else {
75           __ store_heap_oop(val, base, index);
76         }
77 
78         // No need for post barrier if storing NULL
79         if (val != G0) {
80           if (precise) {
81             if (index == noreg) {
82               __ add(base, offset, base);
83             } else {
84               __ add(base, index, base);
85             }
86           }
87           __ g1_write_barrier_post(base, new_val, tmp);
88         }
89       }
90       break;
91 #endif // INCLUDE_ALL_GCS
92     case BarrierSet::CardTableBarrierSet:
93       {
94         if (index == noreg ) {
95           assert(Assembler::is_simm13(offset), "fix this code");
96           __ store_heap_oop(val, base, offset);
97         } else {
98           __ store_heap_oop(val, base, index);
99         }
100         // No need for post barrier if storing NULL
101         if (val != G0) {
102           if (precise) {
103             if (index == noreg) {
104               __ add(base, offset, base);
105             } else {
106               __ add(base, index, base);
107             }
108           }
109           __ card_write_barrier_post(base, val, tmp);
110         }
111       }
< prev index next >