| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Factor out the substitution of `$prefix` for `\$(PREFIX)`
using a shell function `expandprefix`.
|
|
|
|
|
| |
To control where man pages are installed.
The default `/usr/local/share/man` is good for Linux but BSD prefers `/usr/local/man`.
|
|
|
|
|
|
|
|
| |
The .const section cannot contain absolute references to symbols,
as these may need relocation and therefore must be writable.
This should be fixed more generally by distinguishing between initialization
data that contains absolute references to symbols and initialization data
that does not.
|
|
|
|
|
| |
This commit adds support for macOS (and probably iOS) running on
AArch64 / ARM 64-bit / "Apple silicon" processors.
|
|
|
|
|
| |
All the built-in types declared in $ARCH/CBuiltins.ml are now recognized
as type names initially.
|
|
|
|
|
| |
The extended register is now printed as an X register if the
extension mode is UXTX, and as a W register otherwise.
|
|
|
|
|
| |
The alignment was 2 bytes (like for ARM) but should be 4 bytes.
It was ignored by the GNU assembler, but the LLVM assembler warns.
|
|
|
|
|
| |
Fixed (non-variadic) arguments follow the standard calling conventions.
It's only the variadic arguments that need special treatment.
|
|
|
|
|
|
| |
Instead of being a simple boolean we now use an option type to record
the number of fixed (non-vararg) arguments. Hence, `None` means
not vararg, and `Some n` means `n` fixed arguments followed with varargs.
|
|
|
|
|
|
| |
To make sure it works if `gmake` is required.
Fixes: #381
|
|
|
|
|
|
|
|
| |
Start from reasonable defaults before updating them per-target.
Print more details in the final configuration summary.
Update the "manual" mode.
|
| |
|
|
|
|
|
|
|
|
|
| |
- Use `${toolprefix}ar` instead of `ar` so as to match the choice
of C compiler (as proposed by Michael Soegtrop in PR #380)
- Use the Diab archiver `dar` if configured for powerpc-eabi-diab
Closes: #380
|
|
|
|
|
|
|
|
| |
The wrong value was returned in EAX, instead of the address of the struct/union.
Report and fix by Zhenguo Yin.
Fixes: #377
|
|
|
|
|
|
| |
Outside of -interp mode, -main has no (known) effect but could be
confused for a linker option that sets the program's entrypoint, say.
It's safer to reject the option.
|
|
|
|
| |
Inlined built-in functions destroy GPR0
|
|
|
|
|
| |
Pflid destroys IR14
Inlined built-in functions destroy IR14
|
|
|
|
|
|
| |
Pfmovimms, Pfmovimmd destroy X16
Pbtbl preserves X17
Inlined built-in functions destroy X16 and X30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also remove the Ofloatofint, Ofloatofintu, and Ointuoffloat
PowerPC operations.
The pseudoinstructions were used to implement these operations,
as follows:
Pfcfi : Ofloatofint i.e. the conversion signed int32 -> float64
Pfcfiu : Ofloatofintu i.e. the conversion unsigned int32 -> float64
Pfctiu : Ointuoffloat i.e. the conversion float64 -> unsigned int32
These pseudoinstructions were expanded (in Asmexpand.ml) in terms of
Pfcfid : signed int64 -> float64
Pfctidz : float64 -> signed int64
and int32/int64 conversions.
This commit performs this expansion during instruction selection
(SelectOp.vp):
floatofint(n) becomes floatoflong(longofint(n))
floatofintu(n) becomes floatoflong(longuofint(n))
intuoffloat(n) becomes cast32unsigned(longoffloat(n))
Then there is no need for the 3 removed operations and the 3 removed
pseudoinstructions.
More importantly, the correctness of these expansions is now proved as
part of instruction selection, using the corresponding results from
Floats.v.
|
| |
|
|
|
|
|
| |
Stopping on warnings is useful for development builds, but unhelpful
for released software.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The semantics of the various selection functions are defined analogously
to the ones from the type generic sel function. The semantics for the
various high word multiplication functions is defined using the Integer
functions.
Bug 30035
|
|
|
|
|
| |
These comparisons are supported in the hybrid 64 bit mode.
Bug 30035
|
|
|
|
|
| |
The two built-in function map to the fmax and fmin instruction.
Bug 30035
|
| |
|
|
|
|
|
|
|
| |
When running unit tests with the CompCert reference interpreter, it's nice to be able to start execution at a given test function instead of having to write a main function.
This PR adds a -main command-line option to give the name of the entry point function. The default is still main. Frama-C has a similar option.
The function specified with -main is called with no arguments. If its return type is int, its return value is the exit status of the program. Otherwise, its return value is ignored and the program exits with status 0.
|
|
|
|
|
|
| |
This is the left inverse of `ident_to_string`.
Closes: #372
|
|
|
|
| |
It is specific to AbsInt's commercial version of CompCert.
|
|
|
|
|
|
| |
- Add support for the Win64 ABI to the x86_64 port
- Update vararg support to handle Win64 conventions
- Configure support for x86_64-cygwin64
|
|
|
|
| |
Use different combination of options for different test files.
|
|
|
|
|
|
| |
And also for the computations in name_temporary.
Overflowing OCaml's integer types is unlikely in actual use but
happened in the past owing to another mistake (see issue #370).
|
|
|
|
|
|
|
| |
Variables were confused for temporaries, causing the temporaries introduced
by this pass to be very big integers.
Fixes: #370
|
|
|
|
| |
configure flags -use-external-Flocq and -use external-MenhirLib.
|
| |
|
|
|
|
|
| |
Also: improve check for ptr - integer.
(Added by Xavier Leroy <xavier.leroy@college-de-france.fr>)
|
|
|
|
|
| |
Previous scripts were relying on the order in which apply's HO
unification performs reductions, for a goal that could be solved by
reflexivity.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
32-bit executables cannot be built since XCode 10.0 (sep 2018).
32-bit executables cannot be executed since MacOS 10.15 (oct 2019).
Better remove x86-32 support and fail at configuration time instead of
at the end of the build.
|
|
|
|
|
|
| |
Not all pre-processors concatenate string literal lists, however they
are allowed in _Static_assert. This is similar to the rules for inline
assembly etc.
|
| |
|
|
|
|
| |
__builtin_sqrt (no "f") is the name used by GCC and Clang.
|
|
|
|
|
|
| |
Share the testing code for built-in functions that are available on
all target platforms.
Improve testing of __builtin_clz* and __builtin_ctz*
|
|
|
|
| |
These functions are now available on all targets.
|
|
|
|
| |
Using the "rbit" instruction (reverse bits).
|