Commit Graph

38 Commits (864e8554aeef0cb1078a39a4750c02ee8e25b87d)

Author SHA1 Message Date
Xavier Leroy 79eab1a6e2 PR#5513: protect against min_int / -1 crashing on x86
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12187 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-02-24 10:13:02 +00:00
Benedikt Meurer e76218f17d [arm] Update copyright notices as suggested by Xavier.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12125 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-02-05 08:47:16 +00:00
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
Benedikt Meurer fb327a7c2b Also pass Cmm.memory_chunk to select_addressing.
The rational behind this change is that for the ARM instruction sets, the
valid range for address offsets depends on the type of data being loaded
or stored.



git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12120 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-02-04 09:43:33 +00:00
Xavier Leroy ca0c236919 PR#4869: rare collisions between assembly labels for code and data
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11887 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-12-18 10:00:56 +00:00
Xavier Leroy 958c48049f PR#5336: add .type directives in ARM code
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11203 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-09-18 08:09:34 +00:00
Damien Doligez 3b507dd1aa renaming of Objective Caml to OCaml and cleanup of copyright headers
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11156 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-07-27 14:17:02 +00:00
Xavier Leroy 207b0ec0b5 PR#5029: typo in names of lib functions for float32<->float64 conversion.
PT#5027: method! to avoid warning.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@10295 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-04-22 12:39:40 +00:00
Xavier Leroy 26b9064703 PR#5030: start data labels higher. Also, use emit_floatNN_directive.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@10293 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-04-22 09:33:18 +00:00
Damien Doligez 04b1656222 clean up spaces and tabs
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9547 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-01-22 12:48:24 +00:00
Damien Doligez bdc0fadee2 merge changes from release/3.11.1 to release/3.11.2
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9540 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-01-20 16:26:46 +00:00
Xavier Leroy 4e50c497a8 Updating the ARM port, continued:
- Reserve register r9 and treat r10 as callee-save, as per the EABI.
- Treatment of alloc_limit register.
- Fixed bug in inlined allocation sequence.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9252 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2009-05-04 13:46:46 +00:00
Xavier Leroy 5732a03e65 Updated ARM port to new ABI (EABI), with software floating-point.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9211 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2009-03-31 09:45:55 +00:00
Damien Doligez 9ea5edac9a merge changes 3.10.0 -> 3.10.1
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8768 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2008-01-11 16:13:18 +00:00
Xavier Leroy 9ccb911666 Can select which assembler to use at configuration time (PR#4171)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8462 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2007-10-30 12:37:16 +00:00
Xavier Leroy 0b9f496f6f Constantes flottantes +0.0 / -0.0 (PR#2480)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6277 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2004-05-03 12:46:51 +00:00
Damien Doligez 258c929f64 PR#1914,PR#1956, suppression du portage Mac OS 9
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6060 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2004-01-05 20:26:19 +00:00
Damien Doligez 5a678d29f5 depollution suite (PR#1914 et PR#1956)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6045 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2004-01-01 16:42:43 +00:00
Xavier Leroy 7abcc8799e Ajout des litteraux de type int32, nativeint, int64
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5510 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2003-04-25 12:27:31 +00:00
Xavier Leroy 2413371d18 Prevoir d'avoir des options de ligne de commande specifiques a un processeur
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5304 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2002-11-29 15:03:37 +00:00
Xavier Leroy 9178881f44 Introduction et utilisation de Cglobal_symbol pour declarer explicitement les symboles de donnees qui doivent etre globaux
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5296 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2002-11-24 15:55:26 +00:00
Damien Doligez 851b9cb158 deps
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5020 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2002-07-22 16:38:07 +00:00
Xavier Leroy bae1b84692 Faire Filename.quote sur les noms de fichiers passes au compilo C, etc (PR#896)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@4516 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2002-03-12 16:17:53 +00:00
Xavier Leroy 71cf31f0e2 Ajout du packaging d'unites de compilation (option -pack)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@4367 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2002-02-08 16:55:44 +00:00
Xavier Leroy c16439d286 Suite revision immediats entiers (PR#327,#328)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@3482 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2001-04-02 08:14:51 +00:00
Xavier Leroy 0ae4bc9821 Revu gestion des immediats entiers (PR#327,#328) -- non teste
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@3480 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2001-03-30 12:22:32 +00:00
Pierre Weis 9abfff060e Suppression de Formatmsg, réécriture des messages à l'aide de Format.fprintf
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@3123 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-04-21 08:13:22 +00:00
Xavier Leroy d2d789e8a8 MAJ load/store revus
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@3047 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-04-06 14:19:46 +00:00
Xavier Leroy 1cac403368 Ajout des modules Int32, Int64 et Nativeint
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2807 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-02-11 15:09:27 +00:00
Pierre Weis 39553e9972 Révision de l'impression à l'aide de format: utilisation de printf
pour condenser les programmes et aussi préparer une future (éventuelle)
internationalisation d'Objective Caml.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2796 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-02-08 20:00:06 +00:00
Damien Doligez ddc7d63689 tabs -> spaces
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2639 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1999-11-29 19:16:30 +00:00
Xavier Leroy cc0f32b054 Changement de la licence
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2553 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1999-11-17 18:59:06 +00:00
Xavier Leroy a048d42b10 Ajout du module Formatmsg pour rediriger les messages du systeme vers stdout ou stderr suivant le contexte
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2486 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1999-11-08 17:06:33 +00:00
Xavier Leroy 03f01569a7 Bien traiter Ialloc de plus de 1024 octets
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2338 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1999-03-04 15:03:28 +00:00
Xavier Leroy 939d9b30a9 En ocamlopt, les acces hors bornes levent Invalid_argument au lieu de planter le programme. Itou pour les fonctions C qui appellent invalid_argument. Teste sur Intel, a tester sur les autres
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2165 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-11-11 15:35:48 +00:00
Xavier Leroy 66ae9423a7 Portage ARM
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2120 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-10-15 16:10:53 +00:00
Xavier Leroy fca1be1fdd Suite du portage ARM
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2119 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-10-14 17:08:57 +00:00
Xavier Leroy 57c704d739 Portage ARM -- premier jet
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2113 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-10-09 14:43:30 +00:00