Commit Graph

575 Commits (4e8b7a4808f928e6dba47a2bb768c83dbd426d2d)

Author SHA1 Message Date
Xavier Leroy 36b07ae020 Preallocation des fermetures pour les fonctions closes
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2249 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1999-01-27 10:52:33 +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
Xavier Leroy 08a46a325c Bug de spilling lie aux exceptions levees par Icheckbound (signale par Fabrice Le Fessant)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2220 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-12-03 09:51:35 +00:00
Xavier Leroy 7f9ee6a995 MAJ portage Win32
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2218 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-12-02 14:39:27 +00:00
Xavier Leroy 16bc49829e Implementation de -cclib -lfoo pour Windows
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2214 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-12-02 10:58:22 +00:00
Xavier Leroy 80a18abcec fmovd -> 2 fmovs (car l'assembleur GNU ne comprend pas fmovd)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2197 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-11-26 09:34:46 +00:00
Xavier Leroy 0e6d40d981 Support pour le Dynlink natif de Fabrice Le Fessant
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2184 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-11-20 15:35:04 +00:00
Xavier Leroy b71badac85 Mips/Irix: passage en mode -n32. Mips/Ultrix: suppression
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2183 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-11-18 18:10: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
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 6c220cd9c1 Optimiser x + 0
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2164 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-11-11 09:38:40 +00:00
Xavier Leroy eed4e592d0 Bugs dans la propagation des constantes entieres
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2163 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-11-11 09:38:22 +00:00
Xavier Leroy 10231cade2 Ajout de l'option -cc
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2161 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-11-06 15:39:43 +00:00
Xavier Leroy 59cb8750d2 Simplification des modes d'adressage: suppression du mode Iindexed2, inefficace et genant le bon scheduling
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2133 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-10-20 15:27:27 +00:00
Xavier Leroy fc77f415d8 Scheduler les checkbound avant les load correspondants
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2123 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-10-19 17:21:45 +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
Xavier Leroy fefba26fcf Gerer le correctement sous Linux aussi, car ld 2.8.1 traite les multiples correctement
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2053 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-08-14 16:04:15 +00:00
Xavier Leroy fe0a2ee892 Retour a la strategie standard de gestion du
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2048 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-08-13 09:02:43 +00:00
Xavier Leroy 94dd3b1472 Exception Use_default inutile
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2037 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-08-08 10:21:02 +00:00
Xavier Leroy 057d9f6aa4 Debug de l'option -p
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2027 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-08-06 14:25:44 +00:00
Xavier Leroy 49521cb928 Ajout du profiling par gprof (ocamlopt -p)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2025 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-08-06 13:27:38 +00:00
Jérôme Vouillon 1e375a74dd Nouvelle syntaxe des classes
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1999 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-06-25 13:14:07 +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 5ac8854085 Eviter d'emettre des addi 1, 1, 0 en cas de fonction qui n'utilise pas la pile
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1988 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-06-22 12:43:04 +00:00
Xavier Leroy a859063f3b Utiliser movz[bw]l systematiquement, ne pas essayer de faire un load partiel dans un registre mis a zero. C'est moins bon pour le Pentium mais meilleur pour le Pentium Pro
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1987 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-06-22 12:40:04 +00:00
Xavier Leroy bae3ad8140 Retour au schema classique de compilation de Lswitch (pour atom, pixie, et outils semblables)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1986 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-06-22 12:38:57 +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 88e3910ce6 Eviter les let inutiles lors de l'inlining. Faire la propagation des constantes sur le corps des fonctions inlinees
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1977 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-06-09 13:40:10 +00:00
Xavier Leroy 6813c409c9 Portage SparcLinux
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1951 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-05-11 14:57:23 +00:00
Xavier Leroy bdcbaa9602 Propagation des constantes entieres
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1943 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-04-30 12:11:35 +00:00
Xavier Leroy e991e9442f Composer les passes du compilateur avec ++ pour eviter de garder des pointeurs vers des structures inutilisees
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1938 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-04-27 15:16:48 +00:00
Xavier Leroy 4f0bb3509a Scheduling plus agressif des loads et des stores
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1934 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-04-27 09:56:13 +00:00
Xavier Leroy 077c8f688d Bug dans direct_apply si l'expression de fonction a des effets et la fonction correspondante n'est pas close
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1912 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-04-08 11:35:20 +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 019ea317d1 Simplification compilation du let rec de valeurs. Meilleure compilation des boucles for.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1892 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-04-06 09:07:57 +00:00
Xavier Leroy 9d58fcda15 Cosmetique
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1891 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-04-06 09:07:06 +00:00
Damien Doligez c75800174b Portage Rhapsody, suite et fin
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1888 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-03-13 19:31:32 +00:00
Damien Doligez e6373b2028 Portage Rhapsody, suite
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1887 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-03-13 17:47:24 +00:00
Xavier Leroy 8a66e4a3cb Portage Rhapsody, suite
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1886 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-03-13 15:06:16 +00:00
Xavier Leroy e378bb74d8 Premier jet portage Rhapsody
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1885 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-03-13 13:57:35 +00:00
Xavier Leroy 01b52f7c7f Eviter les spills preventifs 'impossibles'
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1872 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-02-13 16:32:32 +00:00
Xavier Leroy c7f9a3da96 Meilleur traitement des paires de registres entiers
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1871 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-02-13 16:32:12 +00:00
Xavier Leroy 9986024d28 Ajouter startup dans les tables de segments
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1864 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-01-05 12:43:34 +00:00
Xavier Leroy 263f0a5b3b Corrige un bug et ameliore le code dans la selection des shifts
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1823 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-12-01 16:50:24 +00:00
Xavier Leroy 4b87c64279 Retour en arriere sur la modif des offsets dans les descripteurs de frames
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1811 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-11-27 16:28:21 +00:00
Xavier Leroy ba8856fa7b Suite a la nouvelle interface avec le GC: stocker les offsets dans les frame descriptors sans le 96 en plus
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1803 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-11-25 12:59:56 +00:00
Xavier Leroy c3984c6466 Contraintes de registres sur div et mod
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1774 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-11-17 14:45:22 +00:00
Xavier Leroy 86cd1df7ba Typo
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1773 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-11-17 14:21:05 +00:00
Xavier Leroy 9893221693 Retour de l'instruction add $imm, mem.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1767 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-11-14 11:02:05 +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 5f7de2a000 Plus de labels
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1758 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-11-10 18:22:59 +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
Damien Doligez e75acb1d8b Changement de type de List.iter.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1745 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-10-31 12:56:28 +00:00
Xavier Leroy 735af8a7e8 Code genere un poil plus efficace pour les decalages
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1721 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-10-15 09:20:44 +00:00
Xavier Leroy a735a1747a Nativeint.hexa ajoute deja le prefixe 0x
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1712 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-09-17 11:58:00 +00:00
Xavier Leroy 3e8feff2db Bug sous Linux avec les grosses constantes entieres
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1710 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-09-17 09:43:59 +00:00
Xavier Leroy 88054d9a98 MAJ portage Win32
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1698 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-09-02 16:01:39 +00:00
Xavier Leroy 23686e5320 Quelques cas manquants dans la compilation du letrec de valeurs
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1688 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-08-22 08:53:12 +00:00
Xavier Leroy aad8a09b88 Suppression de local_entry_point, maintenant inutile
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1686 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-08-21 09:37:05 +00:00
Xavier Leroy ceb5c77382 Ne pas charger 7 quand on appelle une fonction Caml. Si elle a besoin de , elle fait un br sur place au debut.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1684 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-31 05:24:10 +00:00
Xavier Leroy b2465b0dee add -n => sub n quand c'est profitable
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1683 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-31 03:50:32 +00:00
Xavier Leroy be4dd8dd1f Inutile de distinguer le nom du module dans les noms de fonctions
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1677 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-30 12:27:45 +00:00
Xavier Leroy 144a8147db Tabs
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1676 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-30 12:25:47 +00:00
Xavier Leroy 987344133e Meilleur code genere pour Ialloc
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1674 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-30 01:21:34 +00:00
Xavier Leroy 64d8dd8c42 Portage Alpha-Linux
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1672 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-30 01:12:19 +00:00
Xavier Leroy eaa525fb33 Suite du portage Linux
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1667 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-27 19:26:13 +00:00
Xavier Leroy eec9139cff Premieres adaptations pour l'assembleur GNU
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1666 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-27 15:08:39 +00:00
Xavier Leroy 572d7fce33 Etiquettes de donnees a partir de 100000 au lieu de 10000
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1665 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-27 09:44:27 +00:00
Xavier Leroy e14f372e05 Petite optimisation vis-a-vis du GC
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1664 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-27 09:43:09 +00:00
Xavier Leroy 4e28f4d9ec Utiliser . pour separer le nom du module dans les noms de fonctions
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1662 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-26 12:22:17 +00:00
Xavier Leroy 3edd5476e2 Analyse de flot pour recharger $gp
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1661 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-26 12:21:24 +00:00
Xavier Leroy 17a7506ff7 Retour aux conventions standard d'utilisation de $gp
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1658 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-26 09:01:28 +00:00
Xavier Leroy b28dcc9b0b Typo dans le symbole _data_end
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1657 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-24 16:02:09 +00:00
Xavier Leroy 5095724f32 Nouvelle architecture des parties dependantes du processeur
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1656 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-24 13:36: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
Xavier Leroy 4029d102d8 Bug de GC dans le let rec de valeurs: il ne faut pas ecraser l'en-tete
du bloc par celui du nouveau bloc.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1654 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-23 14:38:14 +00:00
Xavier Leroy 1f30b61e3f Pointeurs d'allocation dans %l5-%l7; considerer %g2-%g4 comme detruits par C
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1652 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-18 15:16:19 +00:00
Xavier Leroy a1d42ba48c Typos
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1650 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-18 13:47:40 +00:00
Xavier Leroy 7fc323c502 Revision de l'emploi des registres %g2...%g7
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1649 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-18 13:35:00 +00:00
Xavier Leroy b149e67a88 Nouveau module Marshal dans stdlib
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1633 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-02 18:16:15 +00:00
Damien Doligez a7ab31f37c Fix: pattern-matching non exaustif.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1626 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-06-23 14:34:15 +00:00
Damien Doligez 03ec746bf1 deTABisation
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1563 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-05-19 15:42:21 +00:00
Xavier Leroy fd5ac6e78e compilenv: changement gestion du CRC de l'interface
asmlink, proc*: Sys.command -> Ccomp.command


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1550 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-05-15 13:22:08 +00:00
Xavier Leroy 30f337081b Utiliser Config.native_partial_linker pour -output-obj
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1403 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-03-17 13:00:28 +00:00
Xavier Leroy 652ca9ca74 Horrible erreur dans is_simple_expr.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1376 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-03-13 13:14:10 +00:00
Xavier Leroy c8f445d899 Traitement des branchements conditionnels longs
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1328 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-03-07 16:07:33 +00:00
Xavier Leroy 917193dacd Premiere tentative de traitement des branchements conditionnels longs
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1327 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-03-07 15:32:54 +00:00
Xavier Leroy 6a0ea6385b Rendre desc mutable pour certains emetteurs de code (emit_hppa)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1326 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-03-07 15:32:26 +00:00
Xavier Leroy b7edfb670f Erreur dans Nativeint.cmp
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1324 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-03-05 15:35:50 +00:00
Xavier Leroy 274f164366 Representer les constantes entieres par le type Nativeint.t
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1311 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-03-04 10:19:51 +00:00
Xavier Leroy e8639e7208 Utiliser %r29 au lieu de %r1 pour passer la taille a caml_alloc et caml_call_gc
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1309 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-03-03 17:11:35 +00:00
Xavier Leroy 2b0be513f3 Simplification de emit_parts afin d'eviter les problemes de capture de noms avec plusieurs Clet sur le meme id dans la meme liste de sous-expressions
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1276 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-02-17 16:52:44 +00:00
Xavier Leroy 6b76f27803 Ajout de l'inlining
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1275 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-02-16 17:20:11 +00:00
Xavier Leroy 354fafbf3f Remise a jour du portage PowerPC/AIX: meilleur scheduling, reduction du nombre de TOC entries
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1265 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-02-14 11:01:56 +00:00
Xavier Leroy e7dee11f42 Traduction plus efficace des switches dont tous les cas sauf 1 ou 2
sont Ustaticfail.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1263 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-02-12 15:18:37 +00:00
Pierre Weis a6c6120f14 Changement des boi^tes de pretty-print
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1257 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-02-04 08:03:29 +00:00
Xavier Leroy d03774a5a0 Suite protage IRIX
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1255 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-02-03 14:41:42 +00:00
Xavier Leroy 48d0d44146 Suite du portage SGI
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1253 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-02-03 10:14:54 +00:00
Xavier Leroy e7c777c655 Debut portage SGI
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1249 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-02-01 17:40:41 +00:00
Xavier Leroy 381616258c Meilleur(?) scheduling de l'initialisation de $gp
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1233 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-01-02 14:15:23 +00:00
Xavier Leroy 3597ec5e9a cmmgen: partage des litteraux
closure: broutille


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1230 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-01-01 15:35:28 +00:00
Xavier Leroy c8a47a2be9 Interdire les stack-to-stack moves.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1222 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-12-10 16:47:02 +00:00
Xavier Leroy 1c3d3b17d2 Rectification portage AIX.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1190 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-11-13 13:25:56 +00:00
Xavier Leroy 59cc561027 asmlink: option pour produire un .o
autres: utilisation de Ccomp.create_archive.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1162 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-11-07 10:55:02 +00:00
Xavier Leroy bfa250606e Misc.lowercase -> String.uncapitalize
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1130 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-10-31 16:03:27 +00:00
Xavier Leroy 9a374eb4d6 Portage 680x0.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1093 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-10-24 16:14:57 +00:00
Xavier Leroy 126cd22562 Optimisation des fonctions tuplifiees.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1084 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-10-22 13:36:12 +00:00
Xavier Leroy 456b225d78 Ajout de directives .frame, .mask pour eviter les plantages lorsqu'une
fonction C decide de faire une exception (e.g. exp(-1e10)).


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1083 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-10-21 11:20:56 +00:00
Xavier Leroy bc96b0f934 Correction du mode d'adressage addr - ofs.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1076 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-10-16 15:21:51 +00:00
Xavier Leroy 706e26ad1b Utiliser un overflow trap pour detecter les acces hors des tableaux.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1070 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-10-09 13:36:48 +00:00
Xavier Leroy ca8981ba5b Sauver l'adresse courante quand on se branche a call_array_bound_error.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1058 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-10-08 09:31:24 +00:00
Xavier Leroy 6e80760004 Suppression du marquage des adresses de retour dans les stack frames
(ne gagne pas de temps sauf sur KB).


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1049 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-10-07 13:19:48 +00:00
Xavier Leroy 40d5f632ca Retour en arriere sur la modif du Lswitch -- ne fait guere de
difference, le probleme de debordement des sauts conditionnels demeure.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1033 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-09-27 09:29:21 +00:00
Xavier Leroy ae97b44fe5 Instruction Lswitch: utilisation d'une table de sauts classiques au
lieu du branch special, pour reduire la taille du code.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1032 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-09-27 08:47:16 +00:00
Xavier Leroy 87acf8c748 Augmenter la limite du nombre de tours d'allocation a 50
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1031 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-09-26 17:13:34 +00:00
Xavier Leroy 2d99580163 Ajout du module Types et d'infos d'environnement dans Typedtree.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1003 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-09-23 11:29:48 +00:00
Xavier Leroy f1baf28aa6 Decourager le spilling des registres introduits par reload.
Intel 386: suppression des stack-to-stack moves.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@994 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-09-18 14:16:16 +00:00
Xavier Leroy 6cb5ca0f1f Exception declaree 2 fois
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@993 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-09-18 13:29:07 +00:00
Xavier Leroy 4d78025b54 Fonctions de sortie des chaines deplacees entierement dans Emitaux.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@989 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-09-18 13:23:56 +00:00
Xavier Leroy bc5d0fad00 Recharger en registre le pointeur de code d'un appel calcule.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@988 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-09-18 12:45:15 +00:00
Xavier Leroy 720ef59b1c Portage Solaris/x86
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@987 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-09-18 12:43:46 +00:00
Xavier Leroy 8c48de9380 emit_i386, proc_i386: autorise les moves de pile vers pile.
proc_*: ajoute 1 parametre "round" aux fonctions reload_*.
asmgen: compter le nombre de rounds de reloading, s'arreter si excessif.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@981 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-09-11 15:59:11 +00:00
Xavier Leroy 7f3dd896c9 cmmgen: nettoyage de remove_unit (bug signale par Bruno Blanchet)
liveness: verifier les variables utilisees et non initialisees
selection: "optimisation" du cas Ctuple [].


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@938 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-07-25 13:15:16 +00:00
Xavier Leroy c63bb44380 Nettoyage terminologique
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@925 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-07-12 09:15:47 +00:00
Xavier Leroy 653515e094 Fin portage MkLinux
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@921 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-07-05 17:51:14 +00:00
Xavier Leroy eca6a87cff Simplification de la sequence d'appel du GC (pour Elf)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@919 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-07-04 11:44:25 +00:00
Xavier Leroy 76104a251c Suite du portage PowerPC/MkLinux
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@917 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-07-03 18:39:36 +00:00
Xavier Leroy 1130f59602 Adaptation a MkLinux du portage PowerPC
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@916 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-07-03 16:14:11 +00:00
Xavier Leroy f1d4573081 Readaptation du portage HPPA a NextStep
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@899 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-06-24 14:43:05 +00:00
Xavier Leroy fc52ff530a Portage HPUX, fin
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@898 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-06-24 13:24:38 +00:00
Xavier Leroy 77ff668587 Portage HPUX, suite
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@897 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-06-23 16:23:18 +00:00
Xavier Leroy 75cdd01fa3 Portage HPUX
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@895 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-06-23 09:27:14 +00:00
Xavier Leroy 0819dc8a4f Suite du portage HPUX
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@894 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-06-22 14:55:58 +00:00
Xavier Leroy 11b872d37a Portage HPUX, suite
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@892 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-06-22 11:35:42 +00:00
Xavier Leroy 54de7f5567 Suite portage HPUX
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@890 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-06-22 10:21:51 +00:00
Xavier Leroy b0f2f2e214 Debut de portage HPUX
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@888 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-06-22 07:52:51 +00:00
Xavier Leroy 499d278e36 Suppression de l'alignement a 16 pour le 486
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@887 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-06-22 07:52:38 +00:00
Xavier Leroy e54e23db16 Remise a jour.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@879 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-06-12 10:04:27 +00:00
Xavier Leroy 3702e4aa5d Faire "call" au lieu de "jmp" pour array_bound_error.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@865 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-06-04 16:01:29 +00:00
Xavier Leroy b6d70eb58b cmmgen: pour le let rec de valeur, passer par modify.
selection: simplification du cas "Cstore", plus de store multiple.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@861 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-06-04 15:12:08 +00:00
Xavier Leroy 316027b91c Linker le fichier camlstartup.o en premier (pour forcer le link des
.a, en particulier si -linkall).


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@842 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-05-28 12:38:26 +00:00
Xavier Leroy dc6ebc037f Coupure de Ipush_mem en deux instructions pour eviter une recursion croisee entre Arch et Cmm
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@838 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-05-24 15:17:03 +00:00
Xavier Leroy 48bc00c491 Bug dans la nouvelle sequence d'appel de caml_call_gc.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@826 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-05-17 15:59:09 +00:00
Xavier Leroy 2a309d688f Ne plus utiliser de registres flottants
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@825 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-05-16 19:39:26 +00:00
Xavier Leroy 33029f6ed5 Push des arguments d'un appel externe
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@820 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-05-16 14:17:59 +00:00
Xavier Leroy 8d9a5e598f Utilisation de push pour passer les arguments aux fonctions C.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@817 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-05-16 10:39:23 +00:00
Xavier Leroy 5ada8fe4cb Deplacement du code d'appel du GC a la fin de la fonction. (Meilleure
prediction du branchement.) Nouvelles conventions d'appel de
caml_call_gc (on ne passe plus la taille requise, mais on recommence
l'allocation au retour).


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@814 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-05-14 16:53:07 +00:00
Xavier Leroy db7b02911b Adaptation a OCaml
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@802 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-05-07 14:37:18 +00:00
Xavier Leroy 610f0aa0d0 MAJ pour OCaml
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@801 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-05-07 13:48:36 +00:00
Xavier Leroy 757bc07141 MAJ pour ocaml.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@800 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-05-07 13:09:26 +00:00
Xavier Leroy be79122e11 MAJ pour OCaml
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@797 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-05-07 09:36:54 +00:00
Xavier Leroy 2301d778e7 Renommage en Objective Caml
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@782 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-04-30 14:53:58 +00:00
Jérôme Vouillon 7974a9d8b1 Extension objets.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@756 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-04-22 11:15:41 +00:00
Xavier Leroy ed86e5adfa *_sparc: Ajout de NetBSD pour Sparc.
Autres: ajout d'un flag -linkall dans les bibliotheques.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@743 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-04-18 16:26:54 +00:00
Xavier Leroy a9aac029f6 Conserver l'alignement a 8 de la pile pendant intoffloat et floatofint.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@741 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-04-09 15:30:48 +00:00
Xavier Leroy 5dda3ea3b6 Rectifications du switch (ajout d'un test de borne).
Ajout de Pbittest.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@734 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-04-04 15:54:25 +00:00
Xavier Leroy 3f8f3d67f4 Toujours sauver et restaurer $gp si la fonction contient un try...with...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@703 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-03-15 17:35:35 +00:00
Xavier Leroy 669bf28452 Ajout des instructions negf et absf (negation flottante, valeur
absolue flottante).


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@682 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-03-07 13:45:17 +00:00
Xavier Leroy 152811c10c Ajout des fichiers specifiques machine pour le x86 sous NT
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@659 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-02-22 12:55:16 +00:00
Xavier Leroy 4944ea26b4 Faire "pop %esi" pour nettoyer un stack frame de taille 4 n'est pas
correct si on tailcall une fonction avec 5 parametres ou plus...
Suppression de cette optimisation stupide.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@652 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-02-22 10:24:14 +00:00
Xavier Leroy c5483309b5 Portage Windows NT/95.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@650 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-02-21 10:49:46 +00:00
Xavier Leroy 0b95ce66d8 proc_mips: as -nocpp
les autres: ajout de la table des segments de donnees structurees
produites par le generateur de code.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@645 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-02-20 10:59:12 +00:00
Xavier Leroy dc0b7b9b98 Modif. initialisation des structures toplevel
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@638 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-02-18 14:42:27 +00:00
Xavier Leroy 84ffb16ed7 Debut du portage Windows NT/95
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@636 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-02-15 16:19:09 +00:00
Xavier Leroy f66c567233 liveness: mettre dans les noeuds Iexit un live_across raisonnable.
split: pour les noeuds Iexit, utiliser i.live et non i.next.live.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@610 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-01-11 14:15:23 +00:00
Xavier Leroy 8edc1e2149 Rectif de float_needs
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@608 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-01-09 20:45:09 +00:00
Xavier Leroy b79f609a22 Utilisation de l'algo d'Ershov pour reduire les besoins en pile flottante.
Detection des debordements.
Ajout des instructions soustraction inversee / division inversee.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@607 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-01-09 18:18:11 +00:00
Xavier Leroy 05e3b8624a Rectification de l'acces aux parametres passes sur la pile
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@605 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-01-08 13:08:50 +00:00
Xavier Leroy 7938a9b552 Peaufinage de tailcall_imm
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@603 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-01-08 11:07:29 +00:00
Xavier Leroy 8f5e150e48 Nettoyage portage PowerPC. Ajout de Config.model.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@597 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-01-07 17:00:35 +00:00
Xavier Leroy 9c85a54888 Portage PowerPC
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@595 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-01-06 18:56:39 +00:00
Xavier Leroy 084a74c1da Si une sous-expr est compliquee et l'autre simple, les pops flottants sur le 386 se faisaient dans le mauvais ordre. Pour eviter ca, ajout de moves dans emit_parts si le resultat est dans des registres nommes.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@594 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-01-06 11:13:50 +00:00
Xavier Leroy b62b7f4933 Utilisation de Filename.temp_file au lieu de Misc.temp_file.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@583 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1996-01-04 12:49:06 +00:00
Xavier Leroy d25da17a85 Commentaire non pertinent
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@578 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-12-27 11:04:31 +00:00
Xavier Leroy 5e8035888a Ajout signaux pour HPPA
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@574 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-12-22 14:55:47 +00:00
Xavier Leroy db156ddbca %g7 contient l'adresse de young_limit et non pas sa valeur,
car c'est impossible sous SunOS 4 de modifier %g7 depuis le signal handler.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@566 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-12-21 13:20:23 +00:00
Xavier Leroy 0ad6877907 Signaux: premier jet
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@563 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-12-21 11:01:45 +00:00
Xavier Leroy b7267f4e87 Suite a l'optimisation des lets, un meme identificateur peut
apparaitre plusieurs fois dans la liste d'initialisation d'une
structure toplevel.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@560 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-12-20 14:27:04 +00:00
Xavier Leroy 888a713c5e Support pour callback.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@550 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-12-19 15:09:10 +00:00
Xavier Leroy 0a5c670df0 closure: decurryfication faite plus tot.
emit_alpha: switch compile de maniere plus compacte.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@547 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-12-19 10:18:05 +00:00
Xavier Leroy 06c105eff2 Retour en arriere sur les stores initialisants. Completement inefficace.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@546 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-12-17 16:24:34 +00:00
Xavier Leroy f6da05e9ad Scheduling plus agressif des remplissages de blocs alloues
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@545 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-12-17 15:45:28 +00:00
Xavier Leroy f43d797279 Fin du passage aux routines de bibliotheque .mul .div .mod
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@544 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-12-17 13:43:22 +00:00
Xavier Leroy 7791871296 Ne pas employer les instructions smul et sdiv. Appeler les fns de bibliotheque a la place
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@543 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-12-17 13:18:37 +00:00
Xavier Leroy 89c839060a Distinction Llet Strict / Llet Alias.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@533 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-12-15 09:55:46 +00:00
Xavier Leroy 9ceb1b4c9a Placement des tables de switch en zone donnee. Evite (parait-il) un conflit entre les caches I et D du Pentium
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@531 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-12-12 17:15:39 +00:00
Xavier Leroy cb5c1ec29e Utilisation de l'instruction fld1
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@530 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-12-11 10:01:20 +00:00
Xavier Leroy 514026d3fe Erreur dans Iintoffloat quand l'arg est au sommet de la pile
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@527 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-12-10 16:41:38 +00:00
Xavier Leroy f419b85ae6 Fin modifs des flottants pour le 386. Optimisation division et modulo par une puissance de 2
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@524 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-12-10 15:52:07 +00:00
Xavier Leroy 1f8a4f6da7 Reecriture du flottant I386 pour utiliser vraiment la pile de registres flottants
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@519 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-12-10 09:31:57 +00:00
Xavier Leroy 10574703f3 Fin modif detection acces hors borne.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@511 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-12-05 14:51:21 +00:00
Xavier Leroy b89eaae0b7 Modif du traitement des acces hors bornes.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@505 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-12-05 13:07:08 +00:00
Xavier Leroy 4ecc18b109 Bug sur les references vers des flottants deboxes
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@499 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-11-30 12:33:31 +00:00
Xavier Leroy 30e7ba9b7a 2 registres de plus pour les arguments.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@492 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-11-29 10:17:23 +00:00
Xavier Leroy 4e3fad8801 Recification des comparaisons flottantes IEEE.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@488 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-11-28 15:43:41 +00:00
Xavier Leroy 3686d2232a Debug des nouvelles comparaisons flottantes IEEE.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@484 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-11-28 14:42:48 +00:00
Xavier Leroy e5ef0b6f16 Changement des comparaisons flottantes pour etre conforme a IEEE.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@482 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-11-28 14:25:57 +00:00
Xavier Leroy d3397b6cb3 Garder les stamps de registres petits, car interf alloue en N^2 ou N est le plus grand stamp
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@479 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-11-27 19:41:15 +00:00
Xavier Leroy bff096758b interf: il faut garantir que toutes les preferences ont un poids > 0.
Une preference de poids 0 peut en effet rendre assignable un registre
interdit.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@475 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-11-27 14:12:14 +00:00
Xavier Leroy feac66d0ed MAJ pour la nouvelle convention de nommage des registres vivants (2n+1 au lieu de -1-n)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@470 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-11-26 20:17:06 +00:00
Xavier Leroy d5e6bca0cf MAJ commentaires conventions d'appel
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@468 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-11-26 14:41:02 +00:00
Xavier Leroy 09fc490852 Portage HP-PA
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@467 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-11-26 14:38:29 +00:00
Xavier Leroy 7c3be71ad9 Transformation des references en variables
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@463 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-11-25 15:38:43 +00:00
Xavier Leroy a468a7181d Utiliser FFREE au lieu de FINIT
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@462 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-11-25 15:37:33 +00:00
Xavier Leroy 6ded20c275 Corrections diverses
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@455 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-11-19 16:53:12 +00:00
Xavier Leroy 3a7f4f09aa Correction d'un bug dans discard_dead_code qui desequilibrait la pile
sur du code de la forme "try ...; raise Foo with Bar -> ..."


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@454 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-11-16 16:41:18 +00:00
Xavier Leroy 63bc0fd6b4 asmlibrarian: ne pas recopier les approximations dans le .cmxa
asmlink, compilenv: garder trace des .cmx non trouves
closure, cmmgen: ajout flag mutable sur Pmakeblock, qui desactive
  l'approximation pour e.g. les references vers des fonctions.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@426 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-11-09 13:21:49 +00:00
Xavier Leroy bd6a78bbe5 asmlink: balayage des fichiers dans le mauvais ordre.
emit_alpha: typo dans un nom d'instruction.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@402 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-11-06 11:04:55 +00:00
Xavier Leroy ac43578677 Amelioration du flottant dans la version Intel
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@397 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-11-05 17:28:42 +00:00
Xavier Leroy 38656255c9 Bug dans Iintoffloat: le control word n'etait pas restaure
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@395 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-11-03 17:22:25 +00:00
Xavier Leroy fb8ca52f35 MAJ fichiers .cvsignore apres renommage des compilos de bootstrap
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@390 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-11-02 14:14:53 +00:00
Xavier Leroy 62d65b8e2b Fin du portage pour Linux ELF.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@378 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-10-31 10:47:35 +00:00
Xavier Leroy f349d56122 Support pour Linux avec binaires ELF.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@377 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-10-31 09:27:04 +00:00
Xavier Leroy 9bfaeb0ed5 spill: ne pas compter les pseudo-registres deja alloues en pile.
split: ne pas renommer les pseudo-registres deja alloues


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@365 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-10-29 14:37:01 +00:00
Xavier Leroy 4f97e08558 cmmgen: damned, j'avais oublie une conversion de constante.
emit_sparc: typo.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@364 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-10-26 16:40:23 +00:00
Xavier Leroy a29f056eb7 cmmgen: faire attention aux debordements quand on convertit un entier
en sa representation 2n+1.
cmm, printcmm, emit*: ajout de Cintlit au type Cmm.data_item.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@360 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-10-26 16:23:25 +00:00
Xavier Leroy ccdeba9750 emit_i386: bugs dans l'utilisation de testl et dans l'optimisation de
Iload(byte)
autres: introduction du flag Proc.rotate_registers, histoire de tasser
  les registres sur l'Intel.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@358 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-10-25 14:54:47 +00:00
Xavier Leroy 2672272905 Modifs mineures de generation de code.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@357 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-10-25 13:21:30 +00:00
Xavier Leroy a66c3bed8d asmlink: ajout de std_exit au link.
proc_*: appel de fonctions C avec beaucoup d'arguments.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@345 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-10-23 16:55:01 +00:00
Xavier Leroy ef00b1aa1f Modif. de emit_string_literal parce que certains assembleurs (GAS 1.92
sous FreeBSD) lisent "\0033" comme un caractere de code 033 au lieu de
deux caracteres.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@334 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-10-16 16:19:36 +00:00
Xavier Leroy 7693edce30 Ajout d'un FINIT avant d'appeler une fonction C, de maniere a liberer
tous les registres flottants. Anciennement, on gardait jusqu'a 4
registres occupes, ce qui provoquait un plantage si la fonction C
appelee utilise plus de 4 registres flottants.
Du coup, on passe a 6 le nombre de registres flottants disponibles.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@331 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-10-15 18:55:43 +00:00
Xavier Leroy eda2f6449b Nouveau format de .cmo (utilisation de MD5, detection unsafe)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@326 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-10-09 13:37:11 +00:00
Xavier Leroy 65315f212c Verif de coherence des interfaces: permettre de linker plusieurs .cmo
avec le meme nom.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@320 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-10-04 20:52:43 +00:00
Xavier Leroy 986156eadf "with" -> "with type".
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@308 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-10-03 14:02:18 +00:00
Xavier Leroy ed5c3bffb8 On fait rentrer le cas Cstorechunk / Istore(chunk, ...) dans le cas
general des operations. De la sorte, la description du processeur peut
imposer des registres particuliers pour les arguments. C'est le cas du 386.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@286 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-09-25 14:40:58 +00:00
Xavier Leroy 3063276f8b closure: correction du bug de (fun x -> x) 1
cmmgen: rectification de make_stores pour le cas ou lememe nom est
defini plusieurs fois.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@276 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-09-19 13:32:17 +00:00
Xavier Leroy 09fb8169aa proc_sparc: ne pas appeler ranlib si solaris.
selection: traiter Istore multi-mot (utilise pour les let rec de valeurs).


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@271 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-09-14 11:52:12 +00:00
Xavier Leroy 264fa25adf Rectification du tag des tableaux de flottants.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@267 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-09-13 12:27:41 +00:00
Xavier Leroy a289240e96 Les decalages immediats ne sont selectionnes que si le decalage est
raisonnable.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@262 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-09-11 15:15:03 +00:00
Xavier Leroy bf26cf7612 Backtrack sur les branchements absolus. Produire du code PIC pour IRIX
est plus complique que ca (passer l'adresse de la fonction appelee
dans $25?)


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@237 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-08-30 15:36:59 +00:00
Xavier Leroy f31b8eda9f Debugging du code pour eviter les branchements absolus.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@235 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-08-30 14:16:45 +00:00
Xavier Leroy 9ae0f88869 Pour IRIX, generation de code sans branchements absolus.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@233 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-08-30 13:12:36 +00:00
Xavier Leroy 5f4c093fb3 Ajout du spill retarde dans les if...then...else.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@227 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-08-28 11:22:55 +00:00
Xavier Leroy e065657873 Erreur de syntaxe.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@220 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-08-25 10:00:30 +00:00
Xavier Leroy 4dc464a8f3 Les arguments de Lreturn ne sont pas critiques
(enfin, moins que l'adresse de retour...)


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@219 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-08-25 09:01:22 +00:00
Xavier Leroy a019da159a Introduction de Lreloadretaddr.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@217 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-08-25 08:46:03 +00:00
Xavier Leroy c9483f27bf Mise au point du portage Sparc avec scheduling.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@215 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-08-24 15:12:05 +00:00
Xavier Leroy 441a8baaae selection: simplification du cas Istore.
scheduling: nettoyages mineurs.
emit_*: inutile de masquer l'adresse de retour quand on fait un tailcall.
emit_sparc: remplissage manuel des delay slots
proc_alpha, proc_mips, proc_i386: suppression du scheduling.
proc_alpha: ne pas utiliser le registre $23.
proc_sparc: desactivation du scheduler externe


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@208 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-08-24 13:21:58 +00:00
Xavier Leroy 0b9972d50f Ajout du scheduler (a tester serieusement)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@202 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-08-13 09:31:50 +00:00
Xavier Leroy 937fece4e3 Introduction de Lcondbranch3.
coloring: plus de variete dans le choix d'un registre.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@201 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-08-12 14:26:23 +00:00
Xavier Leroy e4066357b1 Ajout des notices de copyright
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@195 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-08-09 15:06:35 +00:00
Xavier Leroy e2b3ef318d Portage Solaris. On prevoit plusieurs systemes pour une architecture.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@181 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-08-08 12:17:31 +00:00
Xavier Leroy d2ac820e41 emit_alpha: on gratte un cycle sur le Lswitch a 3 cas.
emit_sparc: bug dans le transfert reg flottant -> regs entiers non alignes.
emit_i386: faire pop apres l'appel d'une fonction C retournant un flottant;
        optimisation cmpl $0 -> testl
proc_i386: plus de contraintes sur div et mod.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@175 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-30 14:26:43 +00:00
Xavier Leroy 5e31133ad0 Alignement des flottants mis dans la pile.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@173 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-28 14:17:50 +00:00
Xavier Leroy 1e081aeae3 MAJ tags pour que Infix_tag soit impair.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@171 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-28 13:59:46 +00:00
Xavier Leroy ea3c75ad03 cmmgen: rectification acces generique aux tableaux de flottants.
emit_alpha: modifs mineures sur $gp.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@162 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-28 12:19:50 +00:00
Xavier Leroy ff10bd838d cmmgen: beaucoup plus d'unboxing de flottants.
emit_alpha: recharger ldgp apres un appel direct de fonction C.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@150 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-27 17:38:53 +00:00
Xavier Leroy 4878271adf Suppression de Cmodify / Imodify.
Strength reduction sur les multiplications, divisions, modulo de
puissances de 2.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@147 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-25 13:04:41 +00:00
Xavier Leroy 9a9e2b16c8 cmmgen: MAJ sur la representation des primitives.
proc: ajout du flag word_addressed.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@142 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-25 11:37:38 +00:00
Xavier Leroy 428f9d2303 emit_i386: MAJ et tests.
emit_alpha: utiliser subq pour les comparaisons + branchements.
linearize: suprression moves vides, discard_dead_code ds Lraise.
selection: try...with en tail position.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@135 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-24 12:44:17 +00:00
Xavier Leroy 6ee1e295c0 MAJ portage Sparc
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@131 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-20 08:30:16 +00:00
Xavier Leroy 15cad20a82 asmgen: changement signification option -S.
proc_sparc: appel du scheduler en place.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@127 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-20 07:51:11 +00:00
Xavier Leroy 9ea1269891 linearize: MAJ commentaires.
emit_mips: utilisation de lwc1 / stc1


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@124 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-19 09:56:51 +00:00
Xavier Leroy 2ee785a0c7 MAJ portage Sparc.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@122 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-18 17:40:23 +00:00
Xavier Leroy 94883083ab MAJ portage Sparc (a tester).
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@121 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-18 13:09:02 +00:00
Xavier Leroy fafb9d5084 Production des exceptions predefinies par le linker natif.
Masquage du bit "frame scanned" sur l'adresse de retour quand on fait
un tailcall.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@114 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-18 08:40:44 +00:00
Xavier Leroy b826ff65bc Ajout des tests Ieventest et Ioddtest dans Mach.operation
Meilleure traduction lambda -> C-- pour les definitions de structures
toplevel.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@109 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-17 16:10:15 +00:00
Xavier Leroy d0c03529e9 closure: suppression du parametre d'environnement si inutile.
cmmgen: prise en compte du flag -compact.
coloring: dissymetrisation des preferences.
interf: ne pas ajouter de preferences entre registres qui conflictent.
emit_mips: masquage du bit "deja scanne" sur les addresses de retour.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@105 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-13 17:16:20 +00:00
Xavier Leroy 7bb1e28d35 Correction de l'appel a call_gc.
Utilisation de j au lieu de jal pour lever une exception. (pixie-friendly?)


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@103 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-13 12:51:46 +00:00
Xavier Leroy 774ee4e145 cmmgen: compilation des decalages a droite.
selection: merge des resultats des branches d'un switch.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@99 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-13 09:00:54 +00:00
Xavier Leroy 882355e58b emit_alpha, asmlink: generation d'une directive .file.
closure: mecanique de partage des cas de switch revue.
cmmgen: on evite d'emettre plusieurs fois la meme fonction (peut se
produire suite a un departage de orpat).


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@95 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-12 15:32:09 +00:00
Xavier Leroy 06dd9ab2de emit_alpha: Idiv, Imod ont besoin de $gp.
interf: diminuer le poids des preferences dans les branches des
conditionnelles.
selection: mettre contains_calls a true s'il y a un trywith
(necessaire pour le Mips).
spill: backtrack sur le spilling retarde, qui ne marche pas du tout.
(Il retarde le spilling jusqu'apres un point de destruction!)


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@88 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-12 14:25:41 +00:00
Xavier Leroy eb0dbcb903 Ajout de asmlibrarian, MAJ de asmlink.
clambda, closure: meilleure detection des fonctions closes.
selection: correction de storechunk.
spill: spill retarde dans les conditionnelles.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@79 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-11 18:03:29 +00:00
Xavier Leroy 650284680e cmmgen: correction de Pnegfloat; modifs mineures dans l'adressage des tableaux.
proc_alpha: MAJ commentaires.
selection: les ops flottantes ne sont plus considerees comme "cheap",
pour leur laisser plus de temps pour se terminer.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@73 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-11 08:51:10 +00:00
Xavier Leroy c226d5efeb Branchement du GC de la version bytecode sur le compilateur natif
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@72 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-10 09:48:27 +00:00
Xavier Leroy bbbf6d0164 Ajout construction "checkbounds" dans C--.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@71 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-07 16:42:05 +00:00
Xavier Leroy 5c09b581c8 On rend $gp callee-save et on fait ldgp seulement si necessaire
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@70 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-07 16:14:06 +00:00
Xavier Leroy 88c9b7656e Ne rien reloader dans les arguments des appels de fonction.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@68 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-07 12:11:24 +00:00
Xavier Leroy 679ed6c0b3 Passage au truc d'Appel pour les fermetures de fonctions mutuellement
recursives.
Changement du layout de try ... with ...
Correction de bugs dans la generation des descripteurs de frames.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@64 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-07 12:07:07 +00:00
Xavier Leroy 48514aaca8 Integration du generateur de code et du compilateur.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@51 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-07-02 16:41:48 +00:00
Xavier Leroy 41bd2b6153 Fermetures representees en un seul bloc
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@49 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-06-22 10:11:18 +00:00
Xavier Leroy ba79d4bd1f Iloop est maintenant une boucle infinie, on en sort par catch...exit.
Ca supprime Ilooptest, Ialwaystrue, Ialwaysfalse.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@36 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-06-15 16:08:53 +00:00
Xavier Leroy 3ceaa85c72 Premiere version.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@34 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1995-06-15 08:17:29 +00:00