- Modify the ppc64 patch to reduce the delta between power64 and
upstream power backends. Note there is no functional change.
This commit is contained in:
parent
66cff0bf14
commit
f3cfaea67e
@ -9,7 +9,7 @@ http://git.debian.org/?p=pkg-ocaml-maint/packages/ocaml.git;a=tree;f=debian/ocam
|
||||
---
|
||||
ocamlbyteinfo.ml | 101 ++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
ocamlplugininfo.ml | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 210 insertions(+)
|
||||
2 files changed, 210 insertions(+), 0 deletions(-)
|
||||
create mode 100644 ocamlbyteinfo.ml
|
||||
create mode 100644 ocamlplugininfo.ml
|
||||
|
||||
@ -236,5 +236,5 @@ index 0000000..e28800f
|
||||
+ header.units
|
||||
+ end
|
||||
--
|
||||
1.7.10
|
||||
1.7.7.6
|
||||
|
||||
|
@ -7,7 +7,7 @@ The ones supplied by upstream OCaml are 8 years old. These newer
|
||||
versions recognize arm properly.
|
||||
---
|
||||
config/gnu/config.guess | 1037 +++++++++++++++++++++++++----------------------
|
||||
config/gnu/config.sub | 424 ++++++++++++++-----
|
||||
config/gnu/config.sub | 424 +++++++++++++++-----
|
||||
2 files changed, 876 insertions(+), 585 deletions(-)
|
||||
|
||||
diff --git a/config/gnu/config.guess b/config/gnu/config.guess
|
||||
@ -2579,5 +2579,5 @@ index d2e3557..e76eaf4 100755
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
--
|
||||
1.7.10
|
||||
1.7.7.6
|
||||
|
||||
|
@ -5,7 +5,7 @@ Subject: [PATCH 3/7] Don't add rpaths to libraries.
|
||||
|
||||
---
|
||||
tools/Makefile.shared | 3 ---
|
||||
1 file changed, 3 deletions(-)
|
||||
1 files changed, 0 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/tools/Makefile.shared b/tools/Makefile.shared
|
||||
index 247575a..05de46c 100644
|
||||
@ -22,5 +22,5 @@ index 247575a..05de46c 100644
|
||||
ocamlmklib.mlp >> ocamlmklib.ml
|
||||
|
||||
--
|
||||
1.7.10
|
||||
1.7.7.6
|
||||
|
||||
|
@ -5,7 +5,7 @@ Subject: [PATCH 4/7] configure: Allow user defined C compiler flags.
|
||||
|
||||
---
|
||||
configure | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
1 files changed, 4 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index 9be5199..d0a6b0f 100755
|
||||
@ -23,5 +23,5 @@ index 9be5199..d0a6b0f 100755
|
||||
|
||||
cclibs="$cclibs $mathlib"
|
||||
--
|
||||
1.7.10
|
||||
1.7.7.6
|
||||
|
||||
|
@ -9,7 +9,7 @@ Signed-off-by: Stephane Glondu <steph@glondu.net>
|
||||
---
|
||||
asmcomp/arm/emit.mlp | 1 +
|
||||
asmrun/arm.S | 12 ++++++++++++
|
||||
2 files changed, 13 insertions(+)
|
||||
2 files changed, 13 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/asmcomp/arm/emit.mlp b/asmcomp/arm/emit.mlp
|
||||
index 2003313..a4b2241 100644
|
||||
@ -124,5 +124,5 @@ index 164f731..1313e9c 100644
|
||||
/* Load address of [caml_array_bound_error] in r12 */
|
||||
ldr r12, .Lcaml_array_bound_error
|
||||
--
|
||||
1.7.10
|
||||
1.7.7.6
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From a9648ff01cea44e6892663e97c3c388686b4fcd7 Mon Sep 17 00:00:00 2001
|
||||
From 07d6360922923ddfa2fe7ff745bed5da27f98e05 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Tue, 29 May 2012 20:47:07 +0100
|
||||
Subject: [PATCH 6/7] Add support for ppc64.
|
||||
@ -9,20 +9,20 @@ appropriate hardware for testing.
|
||||
Note (2): Upstream powerpc directory has some support for ppc64, but
|
||||
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 David
|
||||
Woodhouse.
|
||||
This patch was collaborated on by several people, most notably
|
||||
David Woodhouse.
|
||||
---
|
||||
asmcomp/power64/arch.ml | 84 ++++
|
||||
asmcomp/power64/arch.ml | 83 ++++
|
||||
asmcomp/power64/emit.mlp | 989 +++++++++++++++++++++++++++++++++++++++++
|
||||
asmcomp/power64/proc.ml | 245 ++++++++++
|
||||
asmcomp/power64/proc.ml | 241 ++++++++++
|
||||
asmcomp/power64/reload.ml | 18 +
|
||||
asmcomp/power64/scheduling.ml | 66 +++
|
||||
asmcomp/power64/scheduling.ml | 65 +++
|
||||
asmcomp/power64/selection.ml | 103 +++++
|
||||
asmrun/Makefile | 6 +
|
||||
asmrun/power64-elf.S | 486 ++++++++++++++++++++
|
||||
asmrun/stack.h | 9 +
|
||||
configure | 5 +-
|
||||
10 files changed, 2010 insertions(+), 1 deletion(-)
|
||||
10 files changed, 2004 insertions(+), 1 deletions(-)
|
||||
create mode 100644 asmcomp/power64/arch.ml
|
||||
create mode 100644 asmcomp/power64/emit.mlp
|
||||
create mode 100644 asmcomp/power64/proc.ml
|
||||
@ -33,10 +33,10 @@ Woodhouse.
|
||||
|
||||
diff --git a/asmcomp/power64/arch.ml b/asmcomp/power64/arch.ml
|
||||
new file mode 100644
|
||||
index 0000000..93b5b18
|
||||
index 0000000..55dd593
|
||||
--- /dev/null
|
||||
+++ b/asmcomp/power64/arch.ml
|
||||
@@ -0,0 +1,84 @@
|
||||
@@ -0,0 +1,83 @@
|
||||
+(***********************************************************************)
|
||||
+(* *)
|
||||
+(* Objective Caml *)
|
||||
@ -49,7 +49,7 @@ index 0000000..93b5b18
|
||||
+(* *)
|
||||
+(***********************************************************************)
|
||||
+
|
||||
+(* $Id: ocaml-3.11.0-ppc64.patch,v 1.1 2008/11/20 15:30:55 rjones Exp $ *)
|
||||
+(* $Id: arch.ml 9547 2010-01-22 12:48:24Z doligez $ *)
|
||||
+
|
||||
+(* Specific operations for the PowerPC processor *)
|
||||
+
|
||||
@ -79,7 +79,7 @@ index 0000000..93b5b18
|
||||
+let big_endian = true
|
||||
+
|
||||
+let size_addr = 8
|
||||
+let size_int = 8
|
||||
+let size_int = size_addr
|
||||
+let size_float = 8
|
||||
+
|
||||
+(* Operations on addressing modes *)
|
||||
@ -120,10 +120,9 @@ index 0000000..93b5b18
|
||||
+ printreg arg.(0) printreg arg.(1) printreg arg.(2)
|
||||
+ | Ialloc_far n ->
|
||||
+ fprintf ppf "alloc_far %d" n
|
||||
+
|
||||
diff --git a/asmcomp/power64/emit.mlp b/asmcomp/power64/emit.mlp
|
||||
new file mode 100644
|
||||
index 0000000..95eb193
|
||||
index 0000000..ba54e99
|
||||
--- /dev/null
|
||||
+++ b/asmcomp/power64/emit.mlp
|
||||
@@ -0,0 +1,989 @@
|
||||
@ -139,7 +138,7 @@ index 0000000..95eb193
|
||||
+(* *)
|
||||
+(***********************************************************************)
|
||||
+
|
||||
+(* $Id: ocaml-3.11.0-ppc64.patch,v 1.1 2008/11/20 15:30:55 rjones Exp $ *)
|
||||
+(* $Id: emit.mlp 9547 2010-01-22 12:48:24Z doligez $ *)
|
||||
+
|
||||
+(* Emission of PowerPC assembly code *)
|
||||
+
|
||||
@ -1118,10 +1117,10 @@ index 0000000..95eb193
|
||||
+ frame_descriptors := []
|
||||
diff --git a/asmcomp/power64/proc.ml b/asmcomp/power64/proc.ml
|
||||
new file mode 100644
|
||||
index 0000000..95bf6c4
|
||||
index 0000000..67f26ab
|
||||
--- /dev/null
|
||||
+++ b/asmcomp/power64/proc.ml
|
||||
@@ -0,0 +1,245 @@
|
||||
@@ -0,0 +1,241 @@
|
||||
+(***********************************************************************)
|
||||
+(* *)
|
||||
+(* Objective Caml *)
|
||||
@ -1134,7 +1133,7 @@ index 0000000..95bf6c4
|
||||
+(* *)
|
||||
+(***********************************************************************)
|
||||
+
|
||||
+(* $Id: ocaml-3.11.0-ppc64.patch,v 1.1 2008/11/20 15:30:55 rjones Exp $ *)
|
||||
+(* $Id: proc.ml 9547 2010-01-22 12:48:24Z doligez $ *)
|
||||
+
|
||||
+(* Description of the Power PC *)
|
||||
+
|
||||
@ -1242,7 +1241,7 @@ index 0000000..95bf6c4
|
||||
+ end else begin
|
||||
+ loc.(i) <- stack_slot (make_stack !ofs) ty;
|
||||
+ end;
|
||||
+ ofs := !ofs + 8
|
||||
+ ofs := !ofs + size_int
|
||||
+ | Float ->
|
||||
+ if !float <= last_float then begin
|
||||
+ loc.(i) <- phys_reg !float;
|
||||
@ -1250,7 +1249,7 @@ index 0000000..95bf6c4
|
||||
+ end else begin
|
||||
+ loc.(i) <- stack_slot (make_stack !ofs) Float;
|
||||
+ end;
|
||||
+ ofs := !ofs + 8
|
||||
+ ofs := !ofs + size_float
|
||||
+ done;
|
||||
+ (loc, Misc.align !ofs 16)
|
||||
+ (* Keep stack 16-aligned. *)
|
||||
@ -1286,7 +1285,7 @@ index 0000000..95bf6c4
|
||||
+ let loc = Array.create (Array.length arg) Reg.dummy in
|
||||
+ let int = ref first_int in
|
||||
+ let float = ref first_float in
|
||||
+ let ofs = ref 112 in
|
||||
+ let ofs = ref (14 * size_addr) in
|
||||
+ for i = 0 to Array.length arg - 1 do
|
||||
+ match arg.(i).typ with
|
||||
+ Int | Addr as ty ->
|
||||
@ -1358,18 +1357,14 @@ index 0000000..95bf6c4
|
||||
+(* Calling the assembler *)
|
||||
+
|
||||
+let assemble_file infile outfile =
|
||||
+ let infile = Filename.quote infile
|
||||
+ and outfile = Filename.quote outfile in
|
||||
+ match Config.system with
|
||||
+ | "elf" ->
|
||||
+ Ccomp.command ("as -u -m ppc64 -o " ^ outfile ^ " " ^ infile)
|
||||
+ | _ -> assert false
|
||||
+ Ccomp.command (Config.asm ^ " -o " ^
|
||||
+ Filename.quote outfile ^ " " ^ Filename.quote infile)
|
||||
+
|
||||
+open Clflags;;
|
||||
+open Config;;
|
||||
diff --git a/asmcomp/power64/reload.ml b/asmcomp/power64/reload.ml
|
||||
new file mode 100644
|
||||
index 0000000..42d5d4d
|
||||
index 0000000..abcac6c
|
||||
--- /dev/null
|
||||
+++ b/asmcomp/power64/reload.ml
|
||||
@@ -0,0 +1,18 @@
|
||||
@ -1385,7 +1380,7 @@ index 0000000..42d5d4d
|
||||
+(* *)
|
||||
+(***********************************************************************)
|
||||
+
|
||||
+(* $Id: ocaml-3.11.0-ppc64.patch,v 1.1 2008/11/20 15:30:55 rjones Exp $ *)
|
||||
+(* $Id: reload.ml 2553 1999-11-17 18:59:06Z xleroy $ *)
|
||||
+
|
||||
+(* Reloading for the PowerPC *)
|
||||
+
|
||||
@ -1393,10 +1388,10 @@ index 0000000..42d5d4d
|
||||
+ (new Reloadgen.reload_generic)#fundecl f
|
||||
diff --git a/asmcomp/power64/scheduling.ml b/asmcomp/power64/scheduling.ml
|
||||
new file mode 100644
|
||||
index 0000000..d73e333
|
||||
index 0000000..b7bba9b
|
||||
--- /dev/null
|
||||
+++ b/asmcomp/power64/scheduling.ml
|
||||
@@ -0,0 +1,66 @@
|
||||
@@ -0,0 +1,65 @@
|
||||
+(***********************************************************************)
|
||||
+(* *)
|
||||
+(* Objective Caml *)
|
||||
@ -1409,7 +1404,7 @@ index 0000000..d73e333
|
||||
+(* *)
|
||||
+(***********************************************************************)
|
||||
+
|
||||
+(* $Id: ocaml-3.11.0-ppc64.patch,v 1.1 2008/11/20 15:30:55 rjones Exp $ *)
|
||||
+(* $Id: scheduling.ml 9547 2010-01-22 12:48:24Z doligez $ *)
|
||||
+
|
||||
+(* Instruction scheduling for the Power PC *)
|
||||
+
|
||||
@ -1462,10 +1457,9 @@ index 0000000..d73e333
|
||||
+end
|
||||
+
|
||||
+let fundecl f = (new scheduler)#schedule_fundecl f
|
||||
+
|
||||
diff --git a/asmcomp/power64/selection.ml b/asmcomp/power64/selection.ml
|
||||
new file mode 100644
|
||||
index 0000000..afc7649
|
||||
index 0000000..7b8e2a4
|
||||
--- /dev/null
|
||||
+++ b/asmcomp/power64/selection.ml
|
||||
@@ -0,0 +1,103 @@
|
||||
@ -1481,7 +1475,7 @@ index 0000000..afc7649
|
||||
+(* *)
|
||||
+(***********************************************************************)
|
||||
+
|
||||
+(* $Id: ocaml-3.11.0-ppc64.patch,v 1.1 2008/11/20 15:30:55 rjones Exp $ *)
|
||||
+(* $Id: selection.ml 10296 2010-04-22 12:51:06Z xleroy $ *)
|
||||
+
|
||||
+(* Instruction selection for the Power PC processor *)
|
||||
+
|
||||
@ -1534,7 +1528,7 @@ index 0000000..afc7649
|
||||
+ then (Iindexed2, Ctuple[e1; e2])
|
||||
+ else (Iindexed d, Cop(Cadda, [e1; e2]))
|
||||
+
|
||||
+method select_operation op args =
|
||||
+method! select_operation op args =
|
||||
+ match (op, args) with
|
||||
+ (* Prevent the recognition of (x / cst) and (x % cst) when cst is not
|
||||
+ a power of 2, which do not correspond to an instruction. *)
|
||||
@ -2132,5 +2126,5 @@ index d0a6b0f..6ed0a9c 100755
|
||||
aspp='gcc -c';;
|
||||
power,*,rhapsody) as="as -arch $model"
|
||||
--
|
||||
1.7.10
|
||||
1.7.7.6
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 03318d9e7ef402f137dd100fe31bd01c37c1b94f Mon Sep 17 00:00:00 2001
|
||||
From 5017142a41b2ea9b81d41ff7d513847b9df7bae9 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Tue, 29 May 2012 20:50:42 +0100
|
||||
Subject: [PATCH 7/7] New ARM backend, written by Benedikt Meurer (PR#5433).
|
||||
@ -8,9 +8,9 @@ Backported from upstream sources to 3.12.1 by RWMJ.
|
||||
asmcomp/amd64/selection.ml | 14 +-
|
||||
asmcomp/arm/arch.ml | 152 +++++++-
|
||||
asmcomp/arm/emit.mlp | 850 ++++++++++++++++++++++++++++--------------
|
||||
asmcomp/arm/proc.ml | 185 ++++++---
|
||||
asmcomp/arm/proc.ml | 185 +++++++---
|
||||
asmcomp/arm/reload.ml | 4 +-
|
||||
asmcomp/arm/scheduling.ml | 80 ++--
|
||||
asmcomp/arm/scheduling.ml | 80 +++--
|
||||
asmcomp/arm/selection.ml | 343 ++++++++++-------
|
||||
asmcomp/i386/selection.ml | 14 +-
|
||||
asmcomp/power/selection.ml | 2 +-
|
||||
@ -2291,7 +2291,7 @@ index ed15efb..0532d6b 100644
|
||||
(Asymbol s, d) ->
|
||||
(Ibased(s, d), Ctuple [])
|
||||
diff --git a/asmcomp/power64/selection.ml b/asmcomp/power64/selection.ml
|
||||
index afc7649..18b5318 100644
|
||||
index 7b8e2a4..d2325e1 100644
|
||||
--- a/asmcomp/power64/selection.ml
|
||||
+++ b/asmcomp/power64/selection.ml
|
||||
@@ -52,7 +52,7 @@ inherit Selectgen.selector_generic as super
|
||||
@ -3092,5 +3092,5 @@ index 6ed0a9c..4e07c92 100755
|
||||
esac
|
||||
|
||||
--
|
||||
1.7.10
|
||||
1.7.7.6
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
Name: ocaml
|
||||
Version: 3.12.1
|
||||
Release: 6%{?dist}
|
||||
Release: 8%{?dist}
|
||||
|
||||
Summary: Objective Caml compiler and programming environment
|
||||
|
||||
@ -504,6 +504,10 @@ fi
|
||||
|
||||
|
||||
%changelog
|
||||
* Wed May 29 2012 Richard W.M. Jones <rjones@redhat.com> 3.12.1-8
|
||||
- Modify the ppc64 patch to reduce the delta between power64 and
|
||||
upstream power backends. Note there is no functional change.
|
||||
|
||||
* Tue May 29 2012 Richard W.M. Jones <rjones@redhat.com> 3.12.1-6
|
||||
- Move patches to external git repo:
|
||||
http://git.fedorahosted.org/git/?p=fedora-ocaml.git
|
||||
|
Loading…
Reference in New Issue
Block a user