Пример #1
0
 // visitor functions
 void do_StoreField     (StoreField*      x) {
     if (x->is_init_point()) {
         // putstatic is an initialization point so treat it as a wide kill
         kill_memory();
     } else {
         kill_field(x->field());
     }
 }
 // visitor functions
 void do_StoreField     (StoreField*      x) {
   if (x->is_init_point() ||  // putstatic is an initialization point so treat it as a wide kill
       // This is actually too strict and the JMM doesn't require
       // this in all cases (e.g. load a; volatile store b; load a)
       // but possible future optimizations might require this.
       x->field()->is_volatile()) {
     kill_memory();
   } else {
     kill_field(x->field(), x->needs_patching());
   }
 }
Пример #3
0
 void do_LoadField      (LoadField*       x) {
     if (x->is_init_point()) {
         // getstatic is an initialization point so treat it as a wide kill
         kill_memory();
     }
 }
Пример #4
0
 void do_Intrinsic      (Intrinsic*       x) {
     if (!x->preserves_state()) kill_memory();
 }
Пример #5
0
 void do_UnsafePutObject(UnsafePutObject* x) {
     kill_memory();
 }
Пример #6
0
 void do_UnsafePutRaw   (UnsafePutRaw*    x) {
     kill_memory();
 }
Пример #7
0
 void do_Invoke         (Invoke*          x) {
     kill_memory();
 }
Пример #8
0
 void do_MonitorExit    (MonitorExit*     x) {
     kill_memory();
 }
Пример #9
0
 void do_MonitorEnter   (MonitorEnter*    x) {
     kill_memory();
 }
 void do_LoadField      (LoadField*       x) {
   if (x->is_init_point() ||         // getstatic is an initialization point so treat it as a wide kill
       x->field()->is_volatile()) {  // the JMM requires this
     kill_memory();
   }
 }
 void do_UnsafeGetAndSetObject(UnsafeGetAndSetObject* x) { kill_memory(); }