| Index: runtime/vm/simulator_arm.h
 | 
| ===================================================================
 | 
| --- runtime/vm/simulator_arm.h	(revision 36258)
 | 
| +++ runtime/vm/simulator_arm.h	(working copy)
 | 
| @@ -94,11 +94,6 @@
 | 
|                 bool fp_return = false,
 | 
|                 bool fp_args = false);
 | 
|  
 | 
| -  // Implementation of atomic compare and exchange in the same synchronization
 | 
| -  // domain as other synchronization primitive instructions (e.g. ldrex, strex).
 | 
| -  static uword CompareExchange(uword* address,
 | 
| -                               uword compare_value,
 | 
| -                               uword new_value);
 | 
|  
 | 
|    // Runtime and native call support.
 | 
|    enum CallKind {
 | 
| @@ -208,39 +203,6 @@
 | 
|    inline intptr_t ReadW(uword addr, Instr* instr);
 | 
|    inline void WriteW(uword addr, intptr_t value, Instr* instr);
 | 
|  
 | 
| -  // Synchronization primitives support.
 | 
| -  void ClearExclusive();
 | 
| -  intptr_t ReadExclusiveW(uword addr, Instr* instr);
 | 
| -  intptr_t WriteExclusiveW(uword addr, intptr_t value, Instr* instr);
 | 
| -
 | 
| -  // TODO(regis): Remove exclusive access support machinery if not needed.
 | 
| -  // In Dart, there is at most one thread per isolate.
 | 
| -  // We keep track of 16 exclusive access address tags across all isolates.
 | 
| -  // Since we cannot simulate a native context switch, which clears
 | 
| -  // the exclusive access state of the local monitor (using the CLREX
 | 
| -  // instruction), we associate the isolate requesting exclusive access to the
 | 
| -  // address tag. Multiple isolates requesting exclusive access (using the LDREX
 | 
| -  // instruction) to the same address will result in multiple address tags being
 | 
| -  // created for the same address, one per isolate.
 | 
| -  // At any given time, each isolate is associated to at most one address tag.
 | 
| -  static Mutex* exclusive_access_lock_;
 | 
| -  static const int kNumAddressTags = 16;
 | 
| -  static struct AddressTag {
 | 
| -    Isolate* isolate;
 | 
| -    uword addr;
 | 
| -  } exclusive_access_state_[kNumAddressTags];
 | 
| -  static int next_address_tag_;
 | 
| -
 | 
| -  // Set access to given address to 'exclusive state' for current isolate.
 | 
| -  static void SetExclusiveAccess(uword addr);
 | 
| -
 | 
| -  // Returns true if the current isolate has exclusive access to given address,
 | 
| -  // returns false otherwise. In either case, set access to given address to
 | 
| -  // 'open state' for all isolates.
 | 
| -  // If given addr is NULL, set access to 'open state' for current
 | 
| -  // isolate (CLREX).
 | 
| -  static bool HasExclusiveAccessAndOpen(uword addr);
 | 
| -
 | 
|    // Executing is handled based on the instruction type.
 | 
|    void DecodeType01(Instr* instr);  // Both type 0 and type 1 rolled into one.
 | 
|    void DecodeType2(Instr* instr);
 | 
| 
 |