Fix big endian issue with cardtable and add code for mono_arch_context_get_int_reg
authorNeale Ferguson <neale@sinenomine.net>
Wed, 30 Mar 2011 16:52:24 +0000 (12:52 -0400)
committerNeale Ferguson <neale@sinenomine.net>
Wed, 30 Mar 2011 16:52:24 +0000 (12:52 -0400)
mono/metadata/sgen-cardtable.c
mono/mini/mini-s390x.c

index fc63424227011ba5c41f5c98c57ed289caf20c24..382d4e95faa77ec1608ab03d945e70d6da47febe 100644 (file)
@@ -326,7 +326,7 @@ find_card_offset (mword card)
 #elif defined(__x86_64__) && defined(__GNUC__)
        return (__builtin_ffsll (card) - 1) / 8;
 #elif defined(__s390x__)
-       return (__builtin_ffsll (card) - 1) / 8;
+       return (__builtin_ffsll (GUINT64_TO_LE(card)) - 1) / 8;
 #else
        // FIXME:
        g_assert_not_reached ();
index 2f8f7816466296a10968239ebf0c3c02914c595b..9ed850f119ad580cf0b0dec74866576ece904265 100644 (file)
@@ -5689,16 +5689,14 @@ mono_arch_get_patch_offset (guint8 *code)
 /*                                                                  */
 /* Function    -                                                   */
 /*                                                                 */
-/* Returns     - Offset for patch.                                 */
+/* Returns     - Return a register from the context.               */
 /*                                                                  */
 /*------------------------------------------------------------------*/
 
 mgreg_t
 mono_arch_context_get_int_reg (MonoContext *ctx, int reg)
 {
-       /* FIXME: implement */
-       g_assert_not_reached ();
-       return NULL;
+       return ((mgreg_t) ctx->uc_mcontext.gregs[reg]);
 }
 
 /*========================= End of Function ========================*/