2005-12-11 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / mini / tramp-s390.c
index b3db6364f8badca9244d42b5cabb250167028880..47453ea4413a0a099689e00b2fd120a8de97cb1b 100644 (file)
@@ -145,7 +145,8 @@ s390_magic_trampoline (MonoMethod *method, guchar *code, char *sp)
 {
        gpointer addr;
        gint32 displace;
-       int reg, base;
+       int reg;
+       guchar* base;
        unsigned short opcode;
        char *fname;
        MonoJitInfo *codeJi, 
@@ -158,7 +159,7 @@ s390_magic_trampoline (MonoMethod *method, guchar *code, char *sp)
        if (code) {
 
                /* The top bit needs to be ignored on S/390 */
-               (guint32) code &= 0x7fffffff;
+               code = (guchar*)((guint32)code & 0x7fffffff);
 
                fname  = mono_method_full_name (method, TRUE);
                codeJi = mono_jit_info_table_find (mono_domain_get(), code);
@@ -173,10 +174,10 @@ s390_magic_trampoline (MonoMethod *method, guchar *code, char *sp)
                                        reg      = *code >> 4;
                                        displace = *((short *)code) & 0x0fff;
                                        if (reg > 5) 
-                                               base = *((int *) (sp + S390_REG_SAVE_OFFSET+
+                                               base = *((guchar **) (sp + S390_REG_SAVE_OFFSET+
                                                                       sizeof(int)*(reg-6)));
                                        else
-                                               base = *((int *) (sp + CREATE_GR_OFFSET+
+                                               base = *((guchar **) (sp + CREATE_GR_OFFSET+
                                                                       sizeof(int)*(reg-2)));
 
                                        if ((method->klass->valuetype) &&