Alain Frisch
804007bfc5
Support for AMD64, Intel syntax (i.e. MVSC 64 port).
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/raise_variants@14234 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-10-15 14:13:26 +00:00
Alain Frisch
164c307ae3
Support for raise variants in ocamlopt. Only amd64 for now.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/raise_variants@14226 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-10-14 14:33:27 +00:00
Fabrice Le Fessant
9b53f8b10d
Re-add configure option -with-frame-pointers
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13738 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-06-03 18:03:59 +00:00
Fabrice Le Fessant
97bc1fa9e2
Reverting -with-frame-pointers
...
Fails to compile alt-ergo without frame-pointers. No time to debug
before tonight, so I revert and will merge again after fixing the
problem.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13732 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-06-03 06:29:33 +00:00
Fabrice Le Fessant
1b2667b9f2
Add -with-frame-pointers to ./configure
...
This option can be used to tell the native compiler that it should
update frame pointers, so that debuggers and profiling tools
(especially Linux perf) can use them. For now, it is only supported
by the Unix/amd64 port.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13730 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-06-03 04:42:42 +00:00
Damien Doligez
0f6e0a35fb
fix broken bswap on MSVC64
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13653 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-05-07 09:36:53 +00:00
Gabriel Scherer
75b8c0184f
PR#5933 type-specialize 'let compare = compare' on ints and strings
...
According to the reporter 'sliquister', type-specialized comparison
can nearly halve compilation time in some cases. This patch applies
type-specialization throughout the OCaml distribution sources, so not
all changes will have performance utility, but in this case I think
it's best to be consistent, as I see no downside to the change.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13410 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-03-19 07:22:12 +00:00
Damien Doligez
c63f9e0957
fix a few problems with whitespace and over-long lines
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13393 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-03-09 22:38:52 +00:00
Benedikt Meurer
6fad047cc0
PR#5181: Merge common floating point constants in ocamlopt.
...
Instead of generating a unique quadword constant for each and every
floating point constant use within a function, we now collect the floating
point constants on a per-module basis, and generate only one quadword
per floating point constant.
This affects only the amd64 and i386 ports (both Unix/Linux/OS X and Windows).
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13149 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-21 18:33:32 +00:00
Benedikt Meurer
45bc825115
Fix whitespace in emitted AMD64 code.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13144 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-20 10:37:55 +00:00
Fabrice Le Fessant
89bdc10350
PR#5774: Add bswap primitives for amd64
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13106 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-11-29 09:55:00 +00:00
Fabrice Le Fessant
ec7ac9cb3d
PR#5771: Add primitives for reading 2, 4, 8 bytes in strings and bigarrays
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13087 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-11-09 16:15:29 +00:00
Fabrice Le Fessant
d34a734947
PR#5795: Generate sqrtsd opcode instead of external call to sqrt on amd64
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13086 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-11-09 13:26:43 +00:00
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
9ac1d4937b
PR#5707: in AMD64 port, exchange the roles of r10-r11 and r12-r13,
...
so that r10 and r11 are no longer used for parameter passing,
and can therefore be destroyed by the dynamic loader without harm.
(Cherry-picked from version/4.00, commit 12907).
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12908 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-09-08 16:53:39 +00:00
Damien Doligez
997a678d5e
clean up TABs and whitespace
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12799 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-07-30 18:04:46 +00:00
Fabrice Le Fessant
f0eff81679
Merge commit 12664 from 4.00 on trunk/
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12665 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-07-09 08:46:10 +00:00
Alain Frisch
4ae32488d8
Fix unused open warning.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12502 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-05-29 12:32:54 +00:00
Alain Frisch
a0a14c08fa
Enable and fix more warnings.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12498 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-05-29 11:47:28 +00:00
Xavier Leroy
ceabedc058
PR#5603: wrong .file directives generated by ocamlopt -g
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12449 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-05-12 09:51:45 +00:00
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
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
78e2ed88d8
[amd64] Don't override insert_op.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12122 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-02-04 10:00:09 +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
ac0aa0778d
PR#5179: giant steps towards a Mingw64 port.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11927 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-12-21 16:31:01 +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
e10723e701
Merged proc_nt.ml into proc.ml in directories asmcomp/i386 and asmcomp/amd64.
...
This avoids much code duplication and is a baby step towards Mingw-64 bits
support (PR#5179). (There will be no need to create a third proc_xxx.ml
file for this configuration.)
Also, in amd64/emit_nt.mlp, the ml64 assembler didn't like my label subtractions, so I put the jumptable in code area instead of in data area.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11319 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-12-16 17:02:48 +00:00
Xavier Leroy
854afdd4e9
Reverted most of previous change re: local labels in AMD64/MacOSX.
...
The wretched MacOSX "ld -shared" (under 10.6 at least) balks on
subtracting two local labels, while it deigns subtracting two
nonlocal labels.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11224 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-10-15 09:44:07 +00:00
Xavier Leroy
fc82a408a3
AMD64/MacOSX code generator: make local asm labels really local. (L100 instead of .L100)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11221 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-10-15 08:55:43 +00:00
Xavier Leroy
012bc6eb1d
PR#5319: Lswitch compilation for Win64 / MSVC. (Untested.)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11201 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-09-18 07:52:55 +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
Xavier Leroy
80384c6d84
PR#5237: incorrect .size directives generated for x86-32 and x86-64
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@10981 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-03-13 13:36:00 +00:00
Xavier Leroy
7fbcc30f3f
AMD64/MacOS X: wrong symbol names for caml_negf_mask and caml_absf_mask in -shared mode
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@10488 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-06-02 08:55:35 +00:00
Xavier Leroy
9d27a7fc8e
Slightly better code generated for floating-point comparisons.
...
Windows-MSVC port updated as well but not tested yet.
The testsuite contains appropriate tests (in tests/basic/equality.ml).
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@10460 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-05-24 15:26:23 +00:00
Jacques Garrigue
ee36e1d1c5
merge branches/override
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@10250 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-04-08 03:58:41 +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
Damien Doligez
ed32f569e3
merge changes from ocaml3110 to ocaml3111rc0
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9270 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2009-05-20 11:52:42 +00:00
Xavier Leroy
ace551abfb
PR#4759: bad merge of emit_call, etc
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9215 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2009-03-31 11:50:48 +00:00
Damien Doligez
1f95b17570
merge changes from 3.10.2merged to 3.11.0
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9153 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2008-12-03 18:09:09 +00:00
Xavier Leroy
1f93465a0e
PR#4564 (partial): mark stack as non-executable on Linux/ELF
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8962 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2008-08-01 08:04:57 +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
Alain Frisch
3958a92c72
Merge the natdynlink branch into HEAD.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8477 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2007-11-06 15:16:56 +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
66b5626778
Stack backtraces for Win64/AMD64 (bug fixes)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7942 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2007-03-01 10:26:51 +00:00
Xavier Leroy
d42ff170b6
Stack backtraces for Win64/AMD64 (not tested yet)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7941 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2007-03-01 10:12:38 +00:00
Damien Doligez
f700284aac
fusion des changements 3.09.3 -> release309_merge310
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7849 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2007-02-09 13:31:15 +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