aboutsummaryrefslogtreecommitdiffstats
path: root/backend/Asmexpandaux.ml
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' into merge_master_8.13.1Sylvain Boulmé2021-03-231-1/+1
|\ | | | | | | | | | | | | | | | | PARTIAL MERGE (PARTLY BROKEN). See unsolved conflicts in: aarch64/TO_MERGE and riscV/TO_MERGE WARNING: interface of va_args and assembly sections have changed
| * Changed cc_varargs to an option typeBernhard Schommer2020-12-251-1/+1
| | | | | | | | | | | | 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.
* | Merge branch 'mppa-cse2' of ↵David Monniaux2020-03-031-0/+4
|\ \ | |/ |/| | | gricad-gitlab.univ-grenoble-alpes.fr:sixcy/CompCert into mppa-work
| * compilation Asmexpandaux both for x86/ and mppa_k1c/Sylvain Boulmé2018-11-281-0/+4
| |
| * BROKEN - works for x86, not for k1 anymoreCyril SIX2018-11-261-5/+3
| |
| * Merge tag 'v3.4' into mppa_k1cCyril SIX2018-11-211-0/+32
| |\ | | | | | | | | | | | | Conflicts: .gitignore
| * | Extraction issueCyril SIX2018-09-061-7/+9
| | |
| * | MPPA - refactored instructionsCyril SIX2018-05-111-6/+6
| | |
* | | Refine the type of function results in AST.signatureXavier Leroy2020-02-211-1/+1
| |/ |/| | | | | | | | | | | | | | | | | Before it was "option typ". Now it is a proper inductive type that can also express small integer types (8/16-bit unsigned/signed integers). One benefit is that external functions get more precise types that control better their return values. As a consequence, the CompCert C type preservation property now holds unconditionally, without extra typing hypotheses on external functions.
* | Simplified code. Bug 24067Bernhard Schommer2018-09-121-8/+8
| |
* | Generate a nop instruction after some ais annotations (#137)Bernhard Schommer2018-09-121-0/+32
|/ | | | | | | | | | | | | | | | | | | | | | | | | | * Generate a nop instruction after ais annotations. In order to prevent the merging of ais annotations with following Labels a nop instruction is inserted, but only if the annotation is followed immediately by a label. The insertion of nop instructions is performed during the expansion of builtin and pseudo assembler instructions and is processor independent, by inserting a __builtin_nop built-in. * Add Pnop instruction to ARM, RISC-V, and x86 ARM as well as RISC-V don't have nop instructions that can be easily encoded by for example add with zero instructions. For x86 we used to use `mov X0, X0` for nop but this may not be as efficient as the true nop instruction. * Implement __builtin_nop on all supported target architectures. This builtin is not yet made available on the C side for all architectures. Bug 24067
* Extend builtin arguments with a pointer addition operatorXavier Leroy2017-07-061-1/+2
| | | | | | This extension enables more addressing modes to be encoded as builtin arguments and used in conjunction with volatile memory accesses. Current status: x86 port only, the only new addressing mode handled is reg + offset.
* Added interface for the Asmexpansion.Bernhard Schommer2016-03-161-0/+9
| | | | | | Hide the reference used internally behind the interface and added some functions to access the needed values. Bug 18394
* bug 17392: remove trailing whitespace in source filesMichael Schmidt2015-10-141-11/+11
|
* Changed definition of implem for debug information.Bernhard Schommer2015-10-121-2/+1
| | | | | | | Instead of making each filed mutuable we use a reference to a record of type implem. Now only the default implementation and the default debug information need to be upated to add a new function. Bug 17392.
* Changed expand_debug to emit less labels.Bernhard Schommer2015-10-121-0/+1
| | | | | | If a label is printed before a list of debug annotations we can use it for the debug annotations and don't need to add an extra label. Bug 17392
* Filled in missing functions for debug information on ia32.Bernhard Schommer2015-10-091-3/+24
| | | | | | Like for arm and ppc the functions for section names and start and end addresses of compilation units are defined and the print_annot function is moved to Asmexpandaux.ml.
* Moved expandation of debug information to Asmexpandaux.Bernhard Schommer2015-10-081-0/+69
| | | | | | The function is generalized to work for all backends and takes as additional arguments functions for the printing of the simple instructions and the translation function for the arguments.
* Merge branch 'asmexpand' of github.com:AbsInt/CompCertBernhard Schommer2015-06-261-0/+57
|
* Revert "Merge branch 'asmexpand' of github.com:AbsInt/CompCert"Bernhard Schommer2015-06-261-57/+0
| | | | | This reverts commit 777566e81b9762d6bdc773a1f63d56a7ac97433c, reversing changes made to daf9ac64fc9611ecf09d70560a6fa1ba80b9c9c1.
* Moved the printing of the builtin functions etc. into Asmexpand for ARM in ↵Bernhard Schommer2015-06-101-0/+57
the same way as it is done for PPC.