[coop] Avoid doing polling in native-to-managed wrappers, the poll can trigger before...
[mono.git] / mono / metadata / object-offsets.h
index b9ea2786eeda73ceb890927657ad790d41153371..2e753bcfe5d4e0ecd7b7c10f0a3bf7c472a63565 100644 (file)
@@ -76,7 +76,7 @@ DECL_OFFSET(MonoInternalThread, tid)
 DECL_OFFSET(MonoInternalThread, small_id)
 DECL_OFFSET(MonoInternalThread, static_data)
 
-DECL_OFFSET(MonoMulticastDelegate, prev)
+DECL_OFFSET(MonoMulticastDelegate, delegates)
 
 DECL_OFFSET(MonoTransparentProxy, rp)
 DECL_OFFSET(MonoTransparentProxy, remote_class)
@@ -141,6 +141,12 @@ DECL_OFFSET(MonoContinuation, return_sp)
 DECL_OFFSET(MonoContinuation, lmf)
 DECL_OFFSET(MonoContinuation, return_ip)
 
+DECL_OFFSET(MonoDelegateTrampInfo, invoke_impl)
+DECL_OFFSET(MonoDelegateTrampInfo, method_ptr)
+
+// Architecture-specific offsets
+// -----------------------------
+
 #if defined(TARGET_X86)
 DECL_OFFSET(MonoContext, eax)
 DECL_OFFSET(MonoContext, ebx)
@@ -161,23 +167,8 @@ DECL_OFFSET(MonoLMF, esi)
 DECL_OFFSET(MonoLMF, ebp)
 DECL_OFFSET(MonoLMF, eip)
 #elif defined(TARGET_AMD64)
-DECL_OFFSET(MonoContext, rax)
-DECL_OFFSET(MonoContext, rcx)
-DECL_OFFSET(MonoContext, rdx)
-DECL_OFFSET(MonoContext, rbx)
-DECL_OFFSET(MonoContext, rbp)
-DECL_OFFSET(MonoContext, rsi)
-DECL_OFFSET(MonoContext, rdi)
-DECL_OFFSET(MonoContext, rsp)
-DECL_OFFSET(MonoContext, r8)
-DECL_OFFSET(MonoContext, r9)
-DECL_OFFSET(MonoContext, r10)
-DECL_OFFSET(MonoContext, r11)
-DECL_OFFSET(MonoContext, r12)
-DECL_OFFSET(MonoContext, r13)
-DECL_OFFSET(MonoContext, r14)
-DECL_OFFSET(MonoContext, r15)
-DECL_OFFSET(MonoContext, rip)
+DECL_OFFSET(MonoContext, gregs)
+DECL_OFFSET(MonoContext, fregs)
 
 #ifdef TARGET_WIN32
 DECL_OFFSET(MonoLMF, lmf_addr)
@@ -187,23 +178,35 @@ DECL_OFFSET(MonoLMF, rsp)
 DECL_OFFSET(MonoLMF, rbp)
 DECL_OFFSET(MonoLMF, rip)
 
-DECL_OFFSET(SeqPointInfo, ss_tramp_addr)
-
 DECL_OFFSET(DynCallArgs, res)
 
-DECL_OFFSET(MonoLMFTramp, regs)
+DECL_OFFSET(MonoLMFTramp, ctx)
 DECL_OFFSET(MonoLMFTramp, lmf_addr)
+#elif defined(TARGET_ARM)
+DECL_OFFSET(MonoLMF, sp)
+DECL_OFFSET(MonoLMF, fp)
+DECL_OFFSET(MonoLMF, ip)
+DECL_OFFSET(MonoLMF, iregs)
+DECL_OFFSET(MonoLMF, fregs)
+#elif defined(TARGET_ARM64)
+DECL_OFFSET(MonoLMF, pc)
+DECL_OFFSET(MonoLMF, gregs)
+DECL_OFFSET(DynCallArgs, regs)
+DECL_OFFSET(DynCallArgs, fpregs)
+DECL_OFFSET(DynCallArgs, n_fpargs)
+DECL_OFFSET(DynCallArgs, n_fpret)
 #endif
 
+// Shared architecture offfsets
+// ----------------------------
+
 #if defined(TARGET_ARM) || defined(TARGET_ARM64)
 DECL_OFFSET (MonoContext, pc)
 DECL_OFFSET (MonoContext, regs)
 DECL_OFFSET (MonoContext, fregs)
 
-DECL_OFFSET(MonoLMF, method)
 DECL_OFFSET(MonoLMF, lmf_addr)
 
-DECL_OFFSET(SeqPointInfo, bp_addrs)
 DECL_OFFSET(SeqPointInfo, ss_trigger_page)
 
 DECL_OFFSET(DynCallArgs, res)
@@ -211,26 +214,21 @@ DECL_OFFSET(DynCallArgs, res2)
 #endif
 
 #if defined(TARGET_ARM)
-DECL_OFFSET(MonoLMF, sp)
-DECL_OFFSET(MonoLMF, fp)
-DECL_OFFSET(MonoLMF, ip)
-DECL_OFFSET(MonoLMF, iregs)
-DECL_OFFSET(MonoLMF, fregs)
-#elif defined(TARGET_ARM64)
-DECL_OFFSET(MonoLMF, pc)
-DECL_OFFSET(MonoLMF, gregs)
-DECL_OFFSET(DynCallArgs, fpregs)
-DECL_OFFSET(DynCallArgs, n_fpargs)
-DECL_OFFSET(DynCallArgs, n_fpret)
+DECL_OFFSET(MonoLMF, method)
 #endif
-       
-DECL_OFFSET(MonoDelegateTrampInfo, invoke_impl)
-DECL_OFFSET(MonoDelegateTrampInfo, method_ptr)
 
+#if defined(TARGET_AMD64) || defined(TARGET_ARM64)
+DECL_OFFSET(SeqPointInfo, ss_tramp_addr)
 #endif
 
+#if defined(TARGET_AMD64) || defined(TARGET_ARM) || defined(TARGET_ARM64)
+DECL_OFFSET(SeqPointInfo, bp_addrs)
 #endif
 
+#endif //DISABLE_JIT_OFFSETS
+
+#endif //USED_CROSS_COMPILER_OFFSETS
+
 #undef DECL_OFFSET
 #undef DECL_OFFSET2
 #undef DECL_ALIGN