Commit Graph

43 Commits (8c0fb4317c3c7fad582a32c6b8dd4c24fa16660c)

Author SHA1 Message Date
Damien Doligez def31744f9 remove all $Id keywords
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13013 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-10-15 17:50:56 +00:00
Xavier Leroy 2eecf2d4c0 PR#5487: addition of CFI directives and a few filename/linenumber info to generated amd64 and i386 assembly files.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12179 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-02-21 17:41:02 +00:00
Damien Doligez e7f5b858c2 More renaming to OCaml
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12149 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-02-10 16:15:24 +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 89f48bff91 Implement insert_op using insert_op_debug in Selectgen.
This way we don't need to override insert_op AND insert_op_debug for
every port that cares about them.



git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12121 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-02-04 09:59:28 +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
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
Damien Doligez c91db736b1 merge changes from 3.12.0 to 3.12.1
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11123 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-07-20 09:17:07 +00:00
Damien Doligez 5e67123bf6 PR#4975: spelling mistakes "overriden" and "informations"
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@10450 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-05-21 12:00:49 +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
Xavier Leroy 1a7d4a3293 Added and used Reg.createv_like.
Selectgen: new methods regs_for, enables ports to store float values
in pairs of integer registers.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9210 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2009-03-31 09:44:50 +00:00
Xavier Leroy 4b5512c74c Stack backtraces on uncaught exceptions in native code (merge of the opt_backtrace branch)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7812 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2007-01-29 12:11:18 +00:00
Damien Doligez 1279ab4b76 fusion des changements 3.09.1 -> 3.09.2
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7382 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2006-04-16 23:28:22 +00:00
Xavier Leroy 40efd97fe1 Amelioration des flottants x86: utiliser %st(0) comme registre quand c'est possible, evitant ainsi des couples fstp/fld; ajout option -ffast-math
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5404 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2003-02-25 15:50:13 +00:00
Xavier Leroy 7e5e058030 Revu compilation des 'raise' et des 'exit' en position d'argument de fonction ou de primitives (PR#1367). A tester soigneusement
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5239 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2002-11-04 16:25:09 +00:00
Xavier Leroy 8012570164 Typo dans commentaire
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@3380 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2001-02-05 08:48:44 +00:00
Pierre Weis 2116da4220 Getting rid of obsolete boolean operators & and or
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@3359 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-12-28 13:07:42 +00:00
Xavier Leroy cbc5d92988 Meilleur traitement des fonctions tail rec avec des arguments en pile
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@3307 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-10-10 12:39:16 +00:00
Luc Maranget 89f252d93e or-pat avec variables et compil du switch
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@3303 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-10-02 14:08:30 +00:00
Luc Maranget d043fecf18 new or-pat compilation + exhaustiveness used in compilation
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@3273 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-08-11 19:50:59 +00:00
Xavier Leroy 68b5b9b5b5 Revu emit_stores pour pouvoir le redefinir pour certains processeurs
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@3217 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-06-29 11:44:36 +00:00
Xavier Leroy 4143a8675a Traiter correctement raise lorsqu'il apparait sous un operateur strict (e.g. 1 + raise E, cf. PR#79)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@3074 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-04-13 12:17:26 +00:00
Xavier Leroy 485d38567d Retour de Cconst_pointer et ajout de Cconst_natpointer (necessaires pour un bon typage du code C-- et donc des racines du GC, voire PR#58)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2972 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-03-17 13:24:17 +00:00
Xavier Leroy 90c6a0e491 Suppression de Cconst_pointer, redondant
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2945 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-03-12 13:06:57 +00:00
Xavier Leroy c02c135946 Introduction de Double_u (doubles alignes sur un mot) par opposition a Double (doubles alignes naturellement). A tester.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2937 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-03-10 14:31:06 +00:00
Damien Doligez 836c41cd32 Fix PR#48 (plus general)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2905 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-03-06 14:52:19 +00:00
Damien Doligez 624e44413d fix PR#48 (provisoire?)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2899 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-03-03 19:22:26 +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
Xavier Leroy 68cfc93add Catch-all inutile dans un filtrage
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2798 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-02-10 08:43:10 +00:00
Xavier Leroy 44f0f8a5a4 Traitement plus uniforme des load et des store. Ajout load/store sur int32 et float32
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2779 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-02-04 12:43:18 +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 57d1b406ce Ajout d'une passe supplementaire pour combiner les allocations qui apparaissent dans le meme bloc de base.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2361 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1999-05-15 15:04:46 +00:00
Xavier Leroy 2de70e9427 Dans Ialloc, traiter le cas ou l'offset par-rapport a l'allocation groupee n'est pas un immediat
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2331 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1999-03-04 11:09:45 +00:00
Xavier Leroy 5038f3cdb6 Ajout de Pervasives.ignore. List.remove -> List.remove_ass*
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2304 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1999-02-24 15:21:50 +00:00
Xavier Leroy dfff116874 Fusionner les allocations qui sont dans le meme basic block
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2269 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1999-02-04 15:29:34 +00:00
Xavier Leroy 83cd7cac3d Optimisation de la selection d'instruction (les checkbounds peuvent apparaitre dans des expressions simples, c'est bon pour le flottant Intel)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2224 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-12-03 17:28:53 +00:00
Pierre Weis 29ceedb180 Warning de la séquence
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2177 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-11-12 16:53:20 +00:00
Jérôme Vouillon 87b17301f4 Nouvelle syntaxe des classes
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1997 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-06-24 19:22:26 +00:00
Xavier Leroy 183fbec2d8 Reconnaitre les comparaisons cmpi const_pointer
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1978 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-06-09 13:40:34 +00:00
Xavier Leroy 268f9837e9 Meilleur traitement des branchements conditionnels en fin de boucle
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1893 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-04-06 09:08:26 +00:00
Xavier Leroy efca4a4c3e Adaptation private method -> method protected.
Davantage de method protected dans schedgen et selectgen.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1765 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-11-13 10:57:10 +00:00
Xavier Leroy 839a164991 Marquer le plus possible de methodes "private" et ne pas les exporter.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1755 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-11-06 17:25:24 +00:00
Xavier Leroy 119c8eeb67 Nouvelle architecture pour les fichiers dependant du processeur
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1655 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-24 11:49:12 +00:00