diff options
author | Moritz Angermann <moritz.angermann@gmail.com> | 2020-10-22 12:08:34 +0800 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2021-06-05 10:29:57 -0400 |
commit | 3b1aa7dba7c006b473855a6b199b15fa3a3d77a0 (patch) | |
tree | 631816f4aef8d28ee596b51b70a0a0ba2df12230 /includes/stg/MachRegs.h | |
parent | 8c90e6c758769b068aea2891b26cc17577b6d36a (diff) | |
download | haskell-3b1aa7dba7c006b473855a6b199b15fa3a3d77a0.tar.gz |
Adds AArch64 Native Code Generator
In which we add a new code generator to the Glasgow Haskell
Compiler. This codegen supports ELF and Mach-O targets, thus covering
Linux, macOS, and BSDs in principle. It was tested only on macOS and
Linux. The NCG follows a similar structure as the other native code
generators we already have, and should therfore be realtively easy to
follow.
It supports most of the features required for a proper native code
generator, but does not claim to be perfect or fully optimised. There
are still opportunities for optimisations.
Metric Decrease:
ManyAlternatives
ManyConstructors
MultiLayerModules
PmSeriesG
PmSeriesS
PmSeriesT
PmSeriesV
T10421
T10421a
T10858
T11195
T11276
T11303b
T11374
T11822
T12227
T12545
T12707
T13035
T13253
T13253-spj
T13379
T13701
T13719
T14683
T14697
T15164
T15630
T16577
T17096
T17516
T17836
T17836b
T17977
T17977b
T18140
T18282
T18304
T18478
T18698a
T18698b
T18923
T1969
T3064
T5030
T5321FD
T5321Fun
T5631
T5642
T5837
T783
T9198
T9233
T9630
T9872d
T9961
WWRec
Metric Increase:
T4801
Diffstat (limited to 'includes/stg/MachRegs.h')
-rw-r--r-- | includes/stg/MachRegs.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/includes/stg/MachRegs.h b/includes/stg/MachRegs.h index 4b0991891e..d50969b66a 100644 --- a/includes/stg/MachRegs.h +++ b/includes/stg/MachRegs.h @@ -548,7 +548,7 @@ the stack. See Note [Overlapping global registers] for implications. r30 | LR | The Link Register r29 | FP | The Frame Pointer r19-r28 | | Callee-saved registers - r18 | | The Platform Register, if needed; + r18 | | The Platform Register, if needed; | | or temporary register r17 | IP1 | The second intra-procedure-call temporary register r16 | IP0 | The first intra-procedure-call scratch register |