The emit_write_barrier function respects the new calling convention of the storing write barrier.
Registered the mono_gc_wbarrier_generic_store icall instead of the old nostore.
Added locking for the unmanaged write barrier from  mono_gc_wbarrier_generic_store().
Reference storing should now work on all architectures.
Created a storing write barrier function that stores the reference as volatile, for usage within ves_icall_System_Threading_Volatile_Write_T.
Interlocked exchanges on pointers to objects are now performed through the GC code, passing the function that does the exchange as an argument. This function, together with the write barrier will be called within locks on interruption.
The nostoring write barrier is no longer exposed to code outside the GC. Only storing write barriers should be used.
Fixed the code to properly use the new managed storing write barrier implementation.
The native x86 wbarrier stores.
Native write barrier with trampolines ( Test )
Added cardtable marking to the trampoline write barrier ( Test )
The OP_CARD_TABLE_WBARRIER instruction implementation uses the write barrier trampoline.
Added ip checking for the native write barrier section when a thread is interrupted from stw or abort.
Storing write barrier for amd64.
The amd64 write barrier stores and is protected from interruptions.
Native write barrier for the ARM architecture.