2001-11-29 Radek Doulik <rodo@ximian.com>
authorRadek Doulik <rodo@mono-cvs.ximian.com>
Thu, 29 Nov 2001 21:23:53 +0000 (21:23 -0000)
committerRadek Doulik <rodo@mono-cvs.ximian.com>
Thu, 29 Nov 2001 21:23:53 +0000 (21:23 -0000)
* ppc/tramp.c: use r12 which is volatile instead of non-volatile
r14 to avoid saving

svn path=/trunk/mono/; revision=1482

mono/arch/ChangeLog
mono/arch/ppc/tramp.c

index 4244698f59ce63a075893b2c86dd34d86a38920b..b78682c7a5b9c5d6724765d25ab0939e11490e33 100644 (file)
@@ -1,5 +1,8 @@
 2001-11-29  Radek Doulik  <rodo@ximian.com>
 
+       * ppc/tramp.c: use r12 which is volatile instead of non-volatile
+       r14 to avoid saving
+
        * Makefile.am (libmonoarch_la_LIBADD): added ppc to DIST_SUBDIRS
        generate libmonoarch for ppc
 
index 8dea8603ea5c17f6e2af22a89b8d6568d31be7fa..ce7b53b19a7f302dcc38fc6e31710ac58d0c44da 100644 (file)
@@ -197,7 +197,7 @@ emit_prolog (guint8 *p, guint stack_size)
        mr   (p, r31, r1);                        /* r31     <--- sp */
 
        /* handle our parameters */
-       mr   (p, r14, r6);                        /* keep "arguments" in register */
+       mr   (p, r12, r6);                        /* keep "arguments" in register */
        mr   (p, r0, r3);                         /* keep "callme" in register */
        stw  (p, r4, 8, r31);                     /* preserve "retval", sp[8] */
 
@@ -206,7 +206,7 @@ emit_prolog (guint8 *p, guint stack_size)
 
 #define SAVE_4_IN_GENERIC_REGISTER \
                        if (gr < GENERAL_REGS) { \
-                               lwz  (p, r3 + gr, i*16, r14); \
+                               lwz  (p, r3 + gr, i*16, r12); \
                                gr ++; \
                        } else { \
                                NOT_IMPLEMENTED; \
@@ -267,9 +267,9 @@ emit_save_parameters (guint8 *p, MonoMethod *method)
                case MONO_TYPE_I8:
                        if (gr < 7) {
                                g_warning ("check endianess");
-                               lwz  (p, r3 + gr, i*16, r14);
+                               lwz  (p, r3 + gr, i*16, r12);
                                gr ++;
-                               lwz  (p, r3 + gr, i*17, r14);
+                               lwz  (p, r3 + gr, i*17, r12);
                                gr ++;
                        } else {
                                NOT_IMPLEMENTED;