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: