Fix the matching of exceptions in llvmonly mode. Add a new AOT_JIT_INFO patch type...
[mono.git] / mono / sgen / gc-internal-agnostic.h
index 08c801750d6e0e9a1558257bc783b8f158fd90fb..6b8a1a3dda85bab21a230052341e579d1f390806 100644 (file)
 /* h indicates whether to hide or just tag.
  * (-!!h ^ p) is used instead of (h ? ~p : p) to avoid multiple mentions of p.
  */
-#define MONO_GC_HIDE_POINTER(p,t,h) ((gpointer)(((-(size_t)!!(h) ^ (size_t)(p)) & ~3UL) | (t & 3UL)))
-#define MONO_GC_REVEAL_POINTER(p,h) ((gpointer)((-(size_t)!!(h) ^ (size_t)(p)) & ~3UL))
+#define MONO_GC_HIDE_POINTER(p,t,h) ((gpointer)(((-(size_t)!!(h) ^ (size_t)(p)) & ~(size_t)3) | ((t) & (size_t)3)))
+#define MONO_GC_REVEAL_POINTER(p,h) ((gpointer)((-(size_t)!!(h) ^ (size_t)(p)) & ~(size_t)3))
 
-#define MONO_GC_POINTER_TAG(p) ((size_t)(p) & 3UL)
+#define MONO_GC_POINTER_TAG(p) ((size_t)(p) & (size_t)3)
 
 #define MONO_GC_HANDLE_OCCUPIED_MASK (1)
 #define MONO_GC_HANDLE_VALID_MASK (2)
@@ -121,19 +121,4 @@ void mono_gc_memmove_aligned (void *dest, const void *src, size_t size);
 
 FILE *mono_gc_get_logfile (void);
 
-/*
- * This causes the compile to extend the liveness of 'v' till the call to dummy_use
- */
-static inline void
-mono_gc_dummy_use (gpointer v) {
-#if defined(__GNUC__)
-       __asm__ volatile ("" : "=r"(v) : "r"(v));
-#elif defined(_MSC_VER)
-       static volatile gpointer ptr;
-       ptr = v;
-#else
-#error "Implement mono_gc_dummy_use for your compiler"
-#endif
-}
-
 #endif