ocaml/asmcomp
Benedikt Meurer 05627e0de4 Merge the new ARM backend into trunk (PR#5433).
Initial merge of the new ARM backend (commit ec5b444c7f) from my development
repository at https://github.com/bmeurer/ocaml-arm/tree/ec5b444c7f .

Compared to the old ARM backend, this one does the following:
- Support for both software and hardware floating-point (VFPv3).
- Properly supports interworking with Thumb/Thumb-2 code for both OCaml and C
  code.
- Supports dynamic linking and large memory models (PR#5049).
- Optional support for position-independent code via a command line option
  -fPIC. This is disabled by default and not required for natdynlink.
- Can emit both ARM and Thumb-2 code, with avg. code size savings of 28% for
  Thumb-2 (quite close the optimal 30% advertised by ARM Ltd.).
- Supports both AAPCS (armel) as well as extended VFP calling conventions
  (armhf).
- Supports several special ARM instructions to reduce code size and latency.
- Uses standard ARM EABI runtime functions instead of relying on GCC internals.
- Supports exception backtraces.
- Supports profiling using gprof.



git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12124 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-02-04 10:15:24 +00:00
..
amd64 [amd64] Don't override insert_op. 2012-02-04 10:00:09 +00:00
arm Merge the new ARM backend into trunk (PR#5433). 2012-02-04 10:15:24 +00:00
i386 [i386] Don't override insert_op. 2012-02-04 10:00:44 +00:00
power Also pass Cmm.memory_chunk to select_addressing. 2012-02-04 09:43:33 +00:00
sparc Also pass Cmm.memory_chunk to select_addressing. 2012-02-04 09:43:33 +00:00
.ignore uniform .ignore system 2011-07-20 15:37:36 +00:00
asmgen.ml Reverting bad commit. 2012-01-20 14:23:34 +00:00
asmgen.mli Reverting bad commit. 2012-01-20 14:23:34 +00:00
asmlibrarian.ml renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
asmlibrarian.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
asmlink.ml Reverting bad commit. 2012-01-20 14:23:34 +00:00
asmlink.mli Reverting bad commit. 2012-01-20 14:23:34 +00:00
asmpackager.ml Reverting bad commit. 2012-01-20 14:23:34 +00:00
asmpackager.mli Reverting bad commit. 2012-01-20 14:23:34 +00:00
clambda.ml renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
clambda.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
closure.ml Backported '%apply' and '%revapply' from 3.12.1+dev to 3.13+dev 2012-01-23 14:49:39 +00:00
closure.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
cmm.ml renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
cmm.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
cmmgen.ml Fix bug #5476: native code compilation of let rec on float arrays 2012-01-13 17:46:21 +00:00
cmmgen.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
cmx_format.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
codegen.ml renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
codegen.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
coloring.ml renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
coloring.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
comballoc.ml renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
comballoc.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
compilenv.ml renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
compilenv.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
debuginfo.ml renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
debuginfo.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
emit.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
emitaux.ml renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
emitaux.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
interf.ml renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
interf.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
linearize.ml renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
linearize.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
liveness.ml Reverting bad commit. 2012-01-20 14:23:34 +00:00
liveness.mli Reverting bad commit. 2012-01-20 14:23:34 +00:00
mach.ml renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
mach.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
printcmm.ml renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
printcmm.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
printlinear.ml renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
printlinear.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
printmach.ml renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
printmach.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
proc.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
reg.ml renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
reg.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
reload.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
reloadgen.ml renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
reloadgen.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
schedgen.ml renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
schedgen.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
scheduling.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
selectgen.ml Merge the new ARM backend into trunk (PR#5433). 2012-02-04 10:15:24 +00:00
selectgen.mli Also pass Cmm.memory_chunk to select_addressing. 2012-02-04 09:43:33 +00:00
selection.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
spill.ml renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
spill.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
split.ml renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00
split.mli renaming of Objective Caml to OCaml and cleanup of copyright headers 2011-07-27 14:17:02 +00:00