aboutsummaryrefslogtreecommitdiffstats
path: root/aarch64/Asmgen.v
Commit message (Collapse)AuthorAgeFilesLines
* fix aarch64 merge?Léo Gourdin2021-03-291-0/+466
|
* Merge branch 'master' into merge_master_8.13.1Sylvain Boulmé2021-03-231-467/+0
|\ | | | | | | | | | | | | | | | | 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
| * AArch64: macOS portXavier Leroy2020-12-261-2/+3
| | | | | | | | | | This commit adds support for macOS (and probably iOS) running on AArch64 / ARM 64-bit / "Apple silicon" processors.
* | Adding fp stores pairLéo Gourdin2021-01-201-0/+6
| |
* | Adding fp loads pairLéo Gourdin2021-01-201-4/+10
| |
* | Merge remote-tracking branch 'origin/aarch64-asmblockgenproof' into ↵Léo Gourdin2020-12-201-3/+2
|\ \ | | | | | | | | | aarch64-peephole
| * | Removing the PseudoAsm IRLéo Gourdin2020-12-131-3/+2
| | |
* | | Big improvment in peephole, changing LDP/STP semanticsLéo Gourdin2020-12-101-8/+8
|/ /
* | a first working draft on ldp/stp peepholeLéo Gourdin2020-12-041-10/+18
| |
* | Adding semantics for PldpLéo Gourdin2020-12-021-14/+21
| | | | | | This commit prepare the backend for a peephole optimization in Asmblock.
* | Removing OrigAsmgen by moving the necessary functions in Asmgen.v Léo Gourdin2020-11-251-0/+77
| |
* | Restoring asmgenproof on multiple labels issueLéo Gourdin2020-11-241-4/+4
| |
* | Dumb (identity) scheduling working and integratedLéo Gourdin2020-11-031-2/+2
| |
* | Author and stash single label Asmgenproof after mergeLéo Gourdin2020-11-021-0/+1
| |
* | Merge branch 'aarch64_block_multiple_labels' into aarch64-postpassLéo Gourdin2020-11-021-4/+4
|\ \
| * | Yarpgen C file to test multiple labels and corresponding codeLéo Gourdin2020-11-011-4/+4
| | | | | | | | | In this branch I remove the multiple label limitation to pass some tests but the proof is admitted !
* | | Preparation for postpass in aarch64 and refactoringLéo Gourdin2020-11-021-6/+7
|/ /
* | Bugfix in AsmgenLéo Gourdin2020-10-291-1/+1
| |
* | Found a bug in Asmgen about iregsp constructorLéo Gourdin2020-10-291-9/+9
| |
* | aarch64 compiles again (but ccomp generates incorrect assembly)Sylvain Boulmé2020-10-231-5/+5
| |
* | Adding buitin_args lemmasLéo Gourdin2020-10-211-1/+1
| | | | | | | | There was an issue with the register PC in the eval_BA constructor for builtin : we were not able to prove that the concerned reg was different from PC. This commit modify the definitions in Asmgen and Asmblock to support this, by replacing the parameter with a dreg instead of a preg.
* | Prove exec_body_dont_move_PCJustus Fasse2020-08-181-5/+5
| | | | | | | | | | | | Modify Asmblock.preg to combine iregsp and freg into dreg (dreg might be a misnomer since not all iregs are data regs) TODO: Adjust names of PArithP, PArithPP and the like
* | Simplify unfold_bblock and complete unfold_body's case in find_instr_bblockJustus Fasse2020-07-291-9/+2
| | | | | | | | | | | | | | The previous version of unfold_bblock was copied from kvx/Asm.v. kvx's version is slightly different in that for the (here removed) special case it does not put a semicolon to separate bundles. Since aarch64 does not have kvx's bundles the two versions should be equivalent.
* | backward decomposition of the proofSylvain Boulmé2020-07-221-1/+1
| |
* | Add dynamically checked assumption to simplify AsmgenproofJustus Fasse2020-07-211-9/+23
| | | | | | | | | | Previously Asmblock.label_pos and Asm.label_pos could point to different memory location for the same label.
* | "we must check that the generated code contains less than [2^32] ↵Justus Fasse2020-07-151-2/+3
| | | | | | | | | | | | instructions otherwise the offset part of the [PC] code pointer could wrap around, leading to incorrect executions" -- From the original aarch64/Asmgen.v
* | Generate both Pcsel and PfselJustus Fasse2020-07-131-1/+12
| | | | | | | | | | | | | | In Asmblock, Pcsel is used for both integer and floating-point conditional selection. A previous commit (c764ff84) had incorrectly reverted the merging of Pfsel into Pcsel.
* | Finish proof of Lemma symbol_high_lowJustus Fasse2020-07-091-3/+3
| |
* | Implement unfold function from Asmblock to AsmJustus Fasse2020-07-091-2/+299
| | | | | | | | | | | | | | | | Largely semi-automatically generated with vim regexes and macros. Right now the only interesting case is Pmovk: here we ckeck that on the Asmblock level the source and target register are the same. Then, we can safely translate to Asm's Pmovk which takes a single register (mutating it in-place).
* | restauring Coq compilation with STUBSSylvain Boulmé2020-06-221-2/+15
| |
* | [WIP: Coq compilation broken] Stub for AsmgenSylvain Boulmé2020-06-211-1162/+23
| |
* | disable leaf function removal of return address restoration due to memcpy ↵David Monniaux2020-03-271-2/+5
| | | | | | | | overwriting the return address register
* | Merge branch 'dm-leaf' of https://github.com/monniaux/CompCert into mppa-workDavid Monniaux2020-03-271-2/+4
|\ \
| * | removed RA restorationDavid Monniaux2020-03-251-2/+4
| |/
* | Merge branch 'dm-div2' of https://github.com/monniaux/CompCert into mppa-workDavid Monniaux2020-01-151-8/+14
|\ \
| * | 2-instruction signed division by two on Aarch64David Monniaux2020-01-151-8/+14
| |/
* | Merge branch 'master' of https://github.com/AbsInt/CompCert into ↵David Monniaux2019-12-091-1/+6
|\| | | | | | | mppa-work-upstream-merge
| * Fix for AArch64 alignment problem (#206)Bernhard Schommer2019-11-281-1/+6
| | | | | | | | | | | | | | | | | | In addressing modes for load and store instructions, the offset must be a multiple of the memory size being accessed. When accessing global variables, this may not be the case if the alignment of the variable is less than its size. Errors occur at link time. This PR extends the check for a representable offset for the addressing of global variables to also check whether the variable is correctly aligned. Only if both conditions are met can we generate the short sequence Padrp / ADadr. Otherwise we go through the generic loadsymbol sequence.
* | Merge tag 'v3.6_mppa_2019-09-20' of ↵David Monniaux2019-09-201-3/+8
|/ | | | gricad-gitlab.univ-grenoble-alpes.fr:sixcy/CompCert into mppa-non-trapping-load
* AArch64 portXavier Leroy2019-08-081-0/+1151
This commit adds a back-end for the AArch64 architecture, namely ARMv8 in 64-bit mode.