1. Revert "Switch to -custom for bytecode tests."
This reverts commit 6b7f81caf5.
2. Revert "Fix Changelog."
This reverts commit d94488d7b5.
3.Revert "Fix testsuite: use binary channels."
This reverts commit 840f7ca506.
4. Revert "Fix testsuite: do not require a globally installed ocamlrun."
This reverts commit 0388ef46d9.
5. Revert "Merge branch 'trunk' of https://github.com/bvaugon/ocaml into bvaugon-trunk"
This reverts commit 1ff6db10bf, reversing
changes made to 89d116c514.
In PIC mode, Itailcall_imm should jumpt to the PLT of the called function.
Also: use %r7 rather than %r1 to pass the function pointer argument to caml_c_call. It can be that caml_c_call is in a different shared object than the caller. In this case, %r0 and %r1 can be destroyed by PLT stub code, according to the ELF ABI.
Move the cold path (the one that calls the GC when alloc_ptr < alloc_limit)
as much as possible to the end of the function.
Use la and lay to produce shorter code.
Following the previous commit, %r12 becomes usable as a normal register.
However it must be saved in caml_call_gc.
Independently: change Proc.loc_external_arguments to account for the
160 reserved bytes at bottom of stack. Then, caml_c_call and
emission of code for Iextcall(false) no longer need to account for
those reserved bytes.
Using the low bit of return addresses to mark already-scanned stack frames improves GC time on architectures that ignore this bit in 'return' instructions, like Power. Otherwise, as is the case for zSystem, clearing up this bit before every 'return' instruction costs too much in running time.
asmrun/stack.h: turn off the marking of return addresses for z
asmcomp/s390x/emit.mlp: suppress clearing of low bit of return addresses
This simplify the code, would have prevented GPR#205 and prepare ground
for upcoming improved backtrace generation.
From: Frédéric Bour <frederic.bour@lakaban.net>
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16367 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
And share backtrace.c between asmrun and byterun.
From: Frédéric Bour <frederic.bour@lakaban.net>
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16365 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
on POWER8.
- PPC64: concatenate jump tables so as to reduce the number of TOC entries
for jump table labels.
- Use simpler asm directives for filling the TOC.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/ppc64@16297 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
(Pierre Chambart)
It now reallocates and reinitialises the whole table only when it is
too small. This avoids quadratic behavior when loading a lot of module
with dynlink.
This was problematic on frama-c when inlining increase the code
size. The frame table initialisation took ~0.5 second. This is quite
noticeable on real examples where the whole frama-c analysis is ~1.5s
long.
Also allows to unregister a frametable.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16260 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Plus: force 2^12 alignment of the .opd section so that no page is common to the .opd and the .data sections. This causes output_value and other polymorphic primitives to misbehave.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/ppc64@16236 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
PPC: add some CFI directives and a bit of debug info.
testsuite/tests/asmcomp/power.S: update for PPC64le.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/ppc64@16227 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
- Removed MacOS X support, long dead.
- Added support for PowerPC 64 bits, big-endian, ELF v1 ABI
(tested, mostly works, some issues remain with marshaling of code pointers)
- Added support for PowerPC 64 bits, little-endian, ELF v2 ABI
(completely untested)
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/ppc64@16226 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02