Commit Graph

10087 Commits (376ea015745983a18f8e164be8d35e72b7f0c97b)

Author SHA1 Message Date
Alain Frisch ae216ad212 Let the binary backend split the sections.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15188 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-09-03 15:06:52 +00:00
Alain Frisch 9a414baa96 Allow a binary code emitter to avoid the creation of an assembly source file.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15187 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-09-03 14:46:53 +00:00
Jérémie Dimino a360747bc2 PR#6539: don't divide caml_major_heap_increment by the word size
(Patch by Daniel Richman)


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15186 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-09-03 14:08:15 +00:00
Jérémie Dimino d095ba7f89 PR#6540: update documentation of default values in gc.mli
(Patch by Daniel Richman)


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15185 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-09-03 13:35:48 +00:00
Alain Frisch 0652dda14d Factorize the sequencing of operations for setting up the assembly output, calling the assembler, closing/removing the assembly output.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15184 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-09-03 12:48:13 +00:00
Alain Frisch ac226bf931 The internal assembler emits to a file, not to a string.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15183 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-09-03 09:46:45 +00:00
Alain Frisch 62a834f455 Fix for Windows.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15182 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-09-02 16:04:55 +00:00
Alain Frisch e4ac6b651a Synchronize with trunk.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15181 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-09-02 15:08:52 +00:00
Alain Frisch 25178442c2 Only include Intel_* modules when arch is i386 or amd64.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15180 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-09-02 15:07:59 +00:00
Alain Frisch 46b8de0b24 emit_nt is not needed anymore.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15179 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-09-02 14:58:33 +00:00
Alain Frisch dfe5d892d9 Note.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15178 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-09-02 12:34:31 +00:00
Alain Frisch 6cd15407b4 Fix for msvc64.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15177 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-09-02 07:37:40 +00:00
Alain Frisch f39d50891a Fix for msvc64.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15176 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-09-02 07:36:59 +00:00
Alain Frisch 2cf427beb3 #6529: the checked flag is now part of pers_struct.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15174 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-09-01 12:28:48 +00:00
Alain Frisch 856122459e Synchronize with trunk.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15173 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-09-01 08:43:08 +00:00
Alain Frisch adcd0fe5c9 #6529: further optimize consistency check.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15171 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-09-01 08:36:47 +00:00
Xavier Leroy 132c529b75 Reflecting commit 15169 on version/4.02:
PR#6529: fix quadratic-time algorithm in Consistbl.extract.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15170 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-31 14:44:51 +00:00
Damien Doligez a18bc7950b merge changes of version/4.02 from r15121 to r15155
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15168 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-29 17:14:00 +00:00
Damien Doligez 499a573b7f merge changes of version/4.02 from r15121 to r15155
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15167 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-29 17:13:34 +00:00
Alain Frisch e36e77f7d7 Print instructions one by one to the assembly file (instead of printing everything in a single huge text buffer).
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15166 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-29 16:28:15 +00:00
Alain Frisch a6d6f6e084 Do not use hex syntax for 32-bit constants (if we want to use it, we must display it as 32-bit integers, not 64-bit).
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15165 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-29 15:45:38 +00:00
Alain Frisch 11942a03d2 Cosmetic.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15163 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-29 14:58:33 +00:00
Alain Frisch c2baf41654 Cleanup.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15162 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-29 14:50:22 +00:00
Alain Frisch 0ccd4d18b6 Add interfaces for intel_gas/intel_masm, remove dead code.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15161 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-29 14:46:00 +00:00
Alain Frisch 45f4535e99 Move the DSL part from intel_gas to its own module.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15160 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-29 14:40:25 +00:00
Alain Frisch e7ba464587 Add intel_proc.mli, get rid of arch64 bool ref, move StringSet/StringMap to misc.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15159 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-29 14:35:10 +00:00
Alain Frisch aab23e506e Share the masm criterion.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15158 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-29 14:01:23 +00:00
Alain Frisch 22e239cf91 Introducing a new module (pure interface) to define the AST of the intel assembly language.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15157 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-29 13:55:56 +00:00
Alain Frisch 2ce8520c2a Reindent + minor style tweaks.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15153 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-29 12:36:35 +00:00
Alain Frisch 8dc066e0b6 Revert (unrelated change).
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15151 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-29 12:23:08 +00:00
Alain Frisch 9248774af5 Synchronize with trunk.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15147 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-29 10:37:43 +00:00
Gabriel Scherer f5f3ae77a9 (in|out)_channel_of_descr: improve documentation (Christophe Troestler)
Following a discussion on the mailing list, it appears that more
explanation on the closing of channels created from file descriptors
is desirable.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15142 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-28 21:56:03 +00:00
Gabriel Scherer d875804d9c fix minor error-reporting bug
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15141 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-28 21:52:00 +00:00
Xavier Leroy b868c05ec9 PR#6517: use ISO C99 types {,u}int{32,64}_t in preference to our homegrown
types {,u}int{32,64}.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15131 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-27 09:58:33 +00:00
Damien Doligez cbfe627f92 merge changes from branch 4.02 from branching (rev 14852) to 4.02.0+rc1 (rev 15121)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15125 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-22 13:45:02 +00:00
Damien Doligez 09ad9c1abb add ocamldoc to check-typo; some mergeinfo that svn wants to commit
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15124 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-22 10:46:36 +00:00
Gabriel Scherer d02c8fbc55 new -opaque flag: ocamlopt creates .cmx without cross-module info
(Patch by Pierre Chambart and Gabriel Scherer)
(Ack'ed by Damien Doligez)

This enables a form of incremental compilation for ocamlopt: if
A depends on B, and B is compiled with `ocamlopt -opaque`, then minor
implementation changes in B that do not affect the module interface
will not require recompilation of A.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15105 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-18 13:28:34 +00:00
Fabrice Le Fessant c6d4264a09 import new intel emit branch
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15097 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-18 09:32:20 +00:00
Fabrice Le Fessant 78234a8b65 Create branch abstract_intel_emit from trunk r15095
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15096 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-18 09:17:56 +00:00
Fabrice Le Fessant a0bdce52f5 Fix PR#6516 in testsuite
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15095 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-17 21:11:18 +00:00
Gabriel Scherer 33a52ba692 minor typo spotted by Jeremy Yallop
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15093 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-16 20:30:27 +00:00
Gabriel Scherer 6d3318df9f I forgot about {Bytes,String}Labels.mapi; thanks Alain!
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15091 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-16 17:48:45 +00:00
Gabriel Scherer 1a87dee8e3 tools/objinfo: workaround change in binutils' <bfd.h>
(Report and fix by Christopher Zimmerman)

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15089 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-15 13:19:23 +00:00
Gabriel Scherer 6e08943af9 Refresh .gitignore
After svn:ignore changes, from any git-svn repository you can run

  git svn show-ignore > .gitignore

to synchronize the .gitignore content.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15087 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-15 11:09:33 +00:00
Gabriel Scherer 332fa731d7 Set SVN ignore properties for the new testsuite directories
SVN does not recursively apply ignore patterns, so after creating a
new directory one should not forget to set its svn:ignore property
(otherwise `svn status` will be quite noisy after a testsuite run).

For new test directories, I just copied the property of an existing
test in the following way:

  cd testsuite/tests/basic
  svn propget svn:ignore > /tmp/test-ignore
  cd ../<NEW-DIR>
  svn propset svn:ignore -F /tmp/test-ignore .



git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15086 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-15 11:03:00 +00:00
Xavier Leroy fcc2da3848 PR#6501: harden the native-code generator against certain uses of "%identity".
Technically: when a C-- let-bound variable is assigned to, update its type
so that it is the lub of the types of the initial value and all values
assigned to it, with the type ordering Int <: Addr.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15078 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-11 07:46:25 +00:00
Mark Shinwell e17e2b19da PR#6507: [caml_bottom_of_stack] incorrectly set
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15076 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-08 22:17:56 +00:00
Gabriel Scherer c8940948e0 More accurate wording about when Invalid_argument is raised for list functions.
(Patch by Jeremy Yallop)

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15074 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-08 16:15:13 +00:00
Gabriel Scherer c6d67e2bf9 remove redundant bound checking in Buffer.blit (patch by Philippe Wang)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15073 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-08 15:57:22 +00:00
Alain Frisch bfba47f922 Cherry pick 15071 from 4.02 (Fix #6510: Removal of shadowed constructors of extensible types can break the structure of definitions).
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15072 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-08 12:17:34 +00:00