ppc64: Fix position of stack arguments to external C functions

when there are more than 8 parameters.
This commit is contained in:
Richard W.M. Jones 2012-06-06 12:22:35 +01:00
parent 963a64f016
commit 958f1c157a
4 changed files with 13 additions and 6 deletions

View File

@ -1,4 +1,4 @@
From 07d6360922923ddfa2fe7ff745bed5da27f98e05 Mon Sep 17 00:00:00 2001 From 8337a6ef4844c27b83ad89fed63a9ee94381457d Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 29 May 2012 20:47:07 +0100 Date: Tue, 29 May 2012 20:47:07 +0100
Subject: [PATCH 6/8] Add support for ppc64. Subject: [PATCH 6/8] Add support for ppc64.
@ -11,6 +11,9 @@ only for Macs, and I couldn't get it to work at all with IBM hardware.
This patch was collaborated on by several people, most notably This patch was collaborated on by several people, most notably
David Woodhouse. David Woodhouse.
Includes fix for position of stack arguments to external C functions
when there are more than 8 parameters (RHBZ#829187).
--- ---
asmcomp/power64/arch.ml | 83 ++++ asmcomp/power64/arch.ml | 83 ++++
asmcomp/power64/emit.mlp | 989 +++++++++++++++++++++++++++++++++++++++++ asmcomp/power64/emit.mlp | 989 +++++++++++++++++++++++++++++++++++++++++
@ -1117,7 +1120,7 @@ index 0000000..ba54e99
+ frame_descriptors := [] + frame_descriptors := []
diff --git a/asmcomp/power64/proc.ml b/asmcomp/power64/proc.ml diff --git a/asmcomp/power64/proc.ml b/asmcomp/power64/proc.ml
new file mode 100644 new file mode 100644
index 0000000..67f26ab index 0000000..119ad93
--- /dev/null --- /dev/null
+++ b/asmcomp/power64/proc.ml +++ b/asmcomp/power64/proc.ml
@@ -0,0 +1,241 @@ @@ -0,0 +1,241 @@
@ -1311,7 +1314,7 @@ index 0000000..67f26ab
+let loc_external_arguments = +let loc_external_arguments =
+ match Config.system with + match Config.system with
+ | "rhapsody" -> poweropen_external_conventions 0 7 100 112 + | "rhapsody" -> poweropen_external_conventions 0 7 100 112
+ | "elf" | "bsd" -> calling_conventions 0 7 100 107 outgoing 8 + | "elf" | "bsd" -> calling_conventions 0 7 100 107 outgoing 48
+ | _ -> assert false + | _ -> assert false
+ +
+let extcall_use_push = false +let extcall_use_push = false

View File

@ -1,4 +1,4 @@
From 22fadc3ed91cb380f7303e8a83ff5806d4576cb5 Mon Sep 17 00:00:00 2001 From d713da1390d4a74f78ca7e37834fa0a47932f948 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 29 May 2012 20:50:42 +0100 Date: Tue, 29 May 2012 20:50:42 +0100
Subject: [PATCH 7/8] New ARM backend, written by Benedikt Meurer (PR#5433). Subject: [PATCH 7/8] New ARM backend, written by Benedikt Meurer (PR#5433).

View File

@ -1,4 +1,4 @@
From e14375eca4f1ddd9d3b28c9b45ce4aca05070a95 Mon Sep 17 00:00:00 2001 From c103b9b4e7c0d50f29d8eec2c9e946d1d52970f5 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 5 Jun 2012 22:49:17 +0100 Date: Tue, 5 Jun 2012 22:49:17 +0100
Subject: [PATCH 8/8] Link dllthreads.so with -lpthread so that pthread_atfork Subject: [PATCH 8/8] Link dllthreads.so with -lpthread so that pthread_atfork

View File

@ -1,6 +1,6 @@
Name: ocaml Name: ocaml
Version: 3.12.1 Version: 3.12.1
Release: 10%{?dist} Release: 11%{?dist}
Summary: Objective Caml compiler and programming environment Summary: Objective Caml compiler and programming environment
@ -496,6 +496,10 @@ fi
%changelog %changelog
* Wed Jun 6 2012 Richard W.M. Jones <rjones@redhat.com> 3.12.1-11
- ppc64: Fix position of stack arguments to external C functions
when there are more than 8 parameters.
* Tue Jun 5 2012 Richard W.M. Jones <rjones@redhat.com> 3.12.1-10 * Tue Jun 5 2012 Richard W.M. Jones <rjones@redhat.com> 3.12.1-10
- Include patch to link dllthreads.so with -lpthread explicitly, to - Include patch to link dllthreads.so with -lpthread explicitly, to
fix problem with 'pthread_atfork' symbol missing (statically linked) fix problem with 'pthread_atfork' symbol missing (statically linked)