[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#730830: ocaml on powerpcspe



Hi,

I'm adding this patch just for later reference. It fixes building of
4.01.0-2 on powerpcspe as native arch.

Roland
Index: ocaml-4.01.0/asmrun/power-elf.S
===================================================================
--- ocaml-4.01.0.orig/asmrun/power-elf.S	2013-11-30 20:32:23.399088089 +0100
+++ ocaml-4.01.0/asmrun/power-elf.S	2013-11-30 20:32:23.391088031 +0100
@@ -73,6 +73,7 @@
         stwu    27, 4(11)
         stwu    28, 4(11)
         addi    11, 1, 32 - 8
+#ifndef __NO_FPRS__
         stfdu   1, 8(11)
         stfdu   2, 8(11)
         stfdu   3, 8(11)
@@ -104,6 +105,7 @@
         stfdu   29, 8(11)
         stfdu   30, 8(11)
         stfdu   31, 8(11)
+#endif
     /* Call the GC */
         bl      caml_garbage_collection
     /* Reload new allocation pointer and allocation limit */
@@ -135,6 +137,7 @@
         lwzu    27, 4(11)
         lwzu    28, 4(11)
         addi    11, 1, 32 - 8
+#ifndef __NO_FPRS__
         lfdu    1, 8(11)
         lfdu    2, 8(11)
         lfdu    3, 8(11)
@@ -166,6 +169,7 @@
         lfdu    29, 8(11)
         lfdu    30, 8(11)
         lfdu    31, 8(11)
+#endif
     /* Return to caller, restarting the allocation */
         Loadglobal(0, caml_last_return_address, 11)
         addic   0, 0, -16     /* Restart the allocation (4 instructions) */
@@ -262,6 +266,7 @@
         stwu    29, 4(11)
         stwu    30, 4(11)
         stwu    31, 4(11)
+#ifndef __NO_FPRS__
         stfdu   14, 8(11)
         stfdu   15, 8(11)
         stfdu   16, 8(11)
@@ -280,6 +285,7 @@
         stfdu   29, 8(11)
         stfdu   30, 8(11)
         stfdu   31, 8(11)
+#endif
     /* Set up a callback link */
         addi    1, 1, -16
         Loadglobal(9, caml_bottom_of_stack, 11)
@@ -343,6 +349,7 @@
         lwzu    29, 4(11)
         lwzu    30, 4(11)
         lwzu    31, 4(11)
+#ifndef __NO_FPRS__
         lfdu    14, 8(11)
         lfdu    15, 8(11)
         lfdu    16, 8(11)
@@ -361,6 +368,7 @@
         lfdu    29, 8(11)
         lfdu    30, 8(11)
         lfdu    31, 8(11)
+#endif
     /* Reload return address */
         lwz     0, 256+4(1)
         mtlr    0
--- ocaml-4.01.0.orig/testsuite/tests/asmcomp/power-elf.S
+++ ocaml-4.01.0/testsuite/tests/asmcomp/power-elf.S
@@ -14,6 +14,49 @@
 /* GPR 14 at sp+16 ... GPR 31 at sp+84
    FPR 14 at sp+92 ... FPR 31 at sp+228 */
 
+#ifdef __NO_FPRS__
+#define Save_callee_save \
+        addic   11, 1, 16-4; \
+        stwu    14, 4(11); \
+        stwu    15, 4(11); \
+        stwu    16, 4(11); \
+        stwu    17, 4(11); \
+        stwu    18, 4(11); \
+        stwu    19, 4(11); \
+        stwu    20, 4(11); \
+        stwu    21, 4(11); \
+        stwu    22, 4(11); \
+        stwu    23, 4(11); \
+        stwu    24, 4(11); \
+        stwu    25, 4(11); \
+        stwu    26, 4(11); \
+        stwu    27, 4(11); \
+        stwu    28, 4(11); \
+        stwu    29, 4(11); \
+        stwu    30, 4(11); \
+        stwu    31, 4(11);
+
+#define Restore_callee_save \
+        addic   11, 1, 16-4; \
+        lwzu    14, 4(11); \
+        lwzu    15, 4(11); \
+        lwzu    16, 4(11); \
+        lwzu    17, 4(11); \
+        lwzu    18, 4(11); \
+        lwzu    19, 4(11); \
+        lwzu    20, 4(11); \
+        lwzu    21, 4(11); \
+        lwzu    22, 4(11); \
+        lwzu    23, 4(11); \
+        lwzu    24, 4(11); \
+        lwzu    25, 4(11); \
+        lwzu    26, 4(11); \
+        lwzu    27, 4(11); \
+        lwzu    28, 4(11); \
+        lwzu    29, 4(11); \
+        lwzu    30, 4(11); \
+        lwzu    31, 4(11);
+#else
 #define Save_callee_save \
         addic   11, 1, 16-4; \
         stwu    14, 4(11); \
@@ -91,6 +134,7 @@
         lfdu    29, 8(11); \
         lfdu    30, 8(11); \
         lfdu    31, 8(11)
+#endif
 
         .section ".text"
 

Reply to: