aboutsummaryrefslogtreecommitdiffstats
path: root/backend/PrintAsm.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
| * Section handling: finer control of variable initializationXavier Leroy2021-02-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Distinguish between: - uninitialized variables, which can go in COMM if supported - variables initialized with fixed, numeric quantities, which can go in a readonly section if "const" - variables initialized with symbol addresses which may need relocation, which cannot go in a readonly section even if "const", but can go in a special "const_data" section. Also: on macOS, use ".const" instead of ".literal8" for literals, as not all literals have size 8.
* | thread local declarations now workDavid Monniaux2020-02-241-1/+1
|/
* Compatibility with OCaml 4.08 (#302)Xavier Leroy2019-07-081-2/+1
| | | | | | | | | | | | | | | | * Do not use `Pervasives.xxx` qualified names Starting with OCaml 4.08, `Pervasives` is deprecated in favor of `Stdlib`, and uses of `Pervasives` cause fatal warnings. This commit uses unqualified names instead, as no ambiguity occurs. * Clarify "open" statements OCaml 4.08.0 has stricter warnings concerning open statements that shadow module names. Closes: #300
* Print only debug info for printed functions.Bernhard Schommer2019-04-161-1/+2
| | | | | | | | | | | Functions that are removed from the compilation unit, for example inline functions without extern, should not produce debug information. This commit reuses the mechanism used for variables in order to track additionally the printed functions. Therefore the printed variable versions are exchanged for a printed symbol version. Bug 26234
* Add newline directly on list in annot.Bernhard Schommer2018-03-131-2/+1
| | | | | | | This should avoid cluttering the assembler output with .ascii "\n" lines if the annotation ends with a string and make for a better readability. Bug 23169
* Reactivated and improved ais annotations.Bernhard Schommer2018-03-061-10/+14
| | | | | | | | | | | | | | | | | | The ais annotations are now handled in a separate file shared between all architectures. Also two different variants of replacements are supported, %e which expands to ais expressions and %l which also expands to an ais expression but is guaranted to be usable as l-value in the ais annotation. Otherwise the new warning is Wrong_is_parameter is generated. Also an error message is generated if floating point variables are used in ais annotations since a3 does not support them at the moment. Additionally an error message is generated for plain volatile variables used, since they will enforce a volatile load and result in the value being passed to the annotation instead of the address as other global variables.
* Remove no longer used function. Bug 22525Bernhard Schommer2017-11-101-1/+0
|
* Use address for printing address constant. Bug 22525Bernhard Schommer2017-11-091-2/+3
|
* Generalize print_init.Bernhard Schommer2017-11-091-1/+40
| | | | | | The powerpc version of print_init can be used without problems for all backends. Bug 22525
* Remove superfluous function.Bernhard Schommer2017-11-061-2/+2
| | | | | The new_label function is alway equal to PrintAsmaux.new_label. Bug 22472
* New support for inserting ais-annotations.Bernhard Schommer2017-10-191-0/+18
| | | | | | | | | | | | The ais annotations can be inserted via the new ais variants of the builtin annotation. They mainly differe in that they have an address format specifier '%addr' which will be replaced by the adress in the binary. The implementation simply prints a label for the builtin call alongside a the text of the annotation as comment and inserts the annotation together as acii string in a separate section 'ais_annotations' and replaces the usages of the address format specifiers by the address of the label of the builtin call.
* Do not generate code for "inline definitions"Bernhard Schommer2017-04-071-1/+3
| | | | | | | | | ISO C99 states that "inline defintions", functions with inline specifier that are not extern, does not provide an external definition and another compilation unit can contain an external definition. Thus in the case of non-static inline functions no code should be generated. Bug 21343
* Remove unused openBernhard Schommer2017-02-061-1/+0
|
* Use 64 bit address in debug information.Bernhard Schommer2016-11-101-0/+1
| | | | | Address constants need to be 64bit also in the debug information. Bug 20335
* Activate advanced debug information for arm, ia32.Bernhard Schommer2016-06-281-3/+3
| | | | | | The configuration advanced debug is removed and now full debug information is also generated for ia32 and arm. Bug 17609
* Deactivate warning 27 and added back removed code.Bernhard Schommer2016-03-151-1/+1
| | | | | | The code was mostly there for documentation effort. So warning 27 is deactivated again. Bug 18349
* Code cleanup.Bernhard Schommer2016-03-101-4/+3
| | | | | | Removed some unused variables, functions etc. and resolved some problems which occur if all warnings except 3,4,9 and 29 are active. Bug 18394.
* First step to implemente address ranges for the gnu backend.Bernhard Schommer2015-10-151-3/+3
| | | | | | | | | In contrast to the dcc, the gcc uses address ranges to express non-contiguous range of addresses. As a first step we set the start and end addresses for the different address ranges for the compilation unit by using the start and end addresses of functions. Bug 17392.
* More verbose debug printer.Bernhard Schommer2015-10-141-1/+1
| | | | | | | | Like, for example the clang, CompCert now prints a more detailed descriptions of the debug information in the assembler file. For each abbreviation and debug entry the dwarf attributes and their encodings are added. Bug 17392.
* bug 17392: remove trailing whitespace in source filesMichael Schmidt2015-10-141-5/+5
|
* First try of debug information for gcc.Bernhard Schommer2015-10-021-3/+3
|
* Cleanup of now no longer needed functions.Bernhard Schommer2015-10-011-1/+0
|
* Only print locations for symbols that are present in the assembler.Bernhard Schommer2015-10-011-1/+2
|
* Change the way the debug sections are printed.Bernhard Schommer2015-09-281-10/+11
| | | | | | If a user uses the #pragma use_section for functions the diab linker requires a separate debug_info section for each entry. This commit adds functionality to emulate this behavior.
* Added printing the reference address for the LocRef and started refactoring oldBernhard Schommer2015-09-271-6/+1
| | | | | | | | Debuging code. The old functions to store the symbol for the Global variables and retrive this is no longer needed since the atom is stored in DebugInformation. Also the Debug.Abbrev module is no longer needed.
* Added support for the locations of stack allocated local variables.Bernhard Schommer2015-09-251-3/+5
| | | | | This commit adds furher support for location information for local variables and starts with the implementation of the debug_loc section.
* First version with computation of dwarf info from debug info.Bernhard Schommer2015-09-171-5/+4
| | | | | Introduced a new dwarf generation from the information collected in the DebugInformation and removed the old CtODwarf translation.
* Move more functionality in the new interface.Bernhard Schommer2015-09-161-7/+5
| | | | | | Added functions to add more information to the debuging interface, like the struct layout with offsets, bitifiled layout and removed the no longer needed mapping from stamp to atom.
* Revert "Startet implementation of new Debug interface."Bernhard Schommer2015-09-101-2/+2
| | | | This reverts commit 861292a6c5e58b4f78bef207c717b801b3fc1fed.
* Startet implementation of new Debug interface.Bernhard Schommer2015-09-061-2/+2
| | | | | | Added a new file debug/Debug.ml which will be the interface between for generating and printing the debuging information. Currently it contains only the code for the line directived.
* Added symbol functions for printing of the location for global variables.Bernhard Schommer2015-08-211-2/+6
|
* Do not search for high and low pc of inlined functions.Bernhard Schommer2015-07-021-1/+1
|
* Merged PrintAnnot into PrintAsmaux.Bernhard Schommer2015-05-141-3/+3
|
* Use globl also for global variables.Bernhard Schommer2015-05-071-1/+1
|
* Added translation fucntion for declarations and fundefinitions.Bernhard Schommer2015-03-231-4/+38
|
* Activating the printing of the debug information for supported architecture.Bernhard Schommer2015-03-191-2/+6
|
* Added function to convert C types into their dwarf represnation.Bernhard Schommer2015-03-181-1/+1
|
* Started implementing the printing functions for the debug info. Added a ↵Bernhard Schommer2015-03-161-1/+6
| | | | global target dependend option to activate the printing only for targets wher it works.
* Started integrating the debug printing in the common backend_printer.Bernhard Schommer2015-03-111-0/+1
|
* Removed unused sel_target, changed cygwin symbol names and changed the ↵Bernhard Schommer2015-02-191-3/+1
| | | | default function aligment to be target dependent.
* Added an elf prefix to all common elf functions in PrintAsmaux.Bernhard Schommer2015-02-181-4/+4
|
* Changed print_fun/var_info to be functions instead of booleans.Bernhard Schommer2015-02-181-4/+2
|
* Removed some style issues.Bernhard Schommer2015-02-181-65/+71
|
* Changed arm backend to the common backend printer.Bernhard Schommer2015-02-091-1/+1
|
* Changed the ASM printer of the powerpc to the generalized backend.Bernhard Schommer2015-02-051-0/+99