| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
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).
|
|
|
|
| |
Using binary search loops expanded at point of use.
|
| |
|
|
|
|
| |
__builtin_fabs has already been expanded in backend/Selection.v .
|
|
|
|
| |
We check that this builtin function is only called from within a variadic
function and has the correct number of arguments.
|
| |
|
|
|
|
|
| |
Added error descriptions for the new syntax errors introduced by
'_Static_assert'.
|
| |
|