[Git][ghc/ghc][wip/supersven/ghc-9.10-riscv-ncg] 10 commits: Add RISCV64 Native Code Generator (NCG)

Sven Tennie (@supersven) gitlab at gitlab.haskell.org
Sun Aug 4 15:44:22 UTC 2024



Sven Tennie pushed to branch wip/supersven/ghc-9.10-riscv-ncg at Glasgow Haskell Compiler / GHC


Commits:
f257b937 by Sven Tennie at 2024-08-04T17:43:22+02:00
Add RISCV64 Native Code Generator (NCG)

This architecture wasn't supported before.

Co-authored-by: Moritz Angermann <moritz.angermann at gmail.com>

- - - - -
7b0b8aa7 by Sven Tennie at 2024-08-04T17:43:48+02:00
async001: Adjust for slower computers

Increase the delay a bit to be able to run this test on slower
computers (e.g. RISCV64 LicheePi 4a.)

- - - - -
4b2fdc43 by Sven Tennie at 2024-08-04T17:43:48+02:00
Add RTS linker for RISCV64

This architecture wasn't supported before.

- - - - -
6e0292bf by Sven Tennie at 2024-08-04T17:43:48+02:00
Ignore divbyzero test for RISCV64

The architecture's behaviour differs from the test's expectations. See
comment in code why this is okay.

- - - - -
39675a4f by Sven Tennie at 2024-08-04T17:43:48+02:00
Enable MulMayOflo_full test for RISCV64

It works and thus can be tested.

- - - - -
f1b65dad by Sven Tennie at 2024-08-04T17:43:48+02:00
LibffiAdjustor: Ensure code caches are flushed (RISCV64)

RISCV64 needs a specific code flushing sequence (involving fence.i) when
new code is created/loaded.

- - - - -
9e521b6c by Sven Tennie at 2024-08-04T17:43:48+02:00
Add additional linker symbols for builtins (RISCV64)

We're relying on some GCC/Clang builtins. These need to be visible to
the linker (and not be stripped away.)

- - - - -
601e3122 by Sven Tennie at 2024-08-04T17:43:48+02:00
Add GHCi support for RISCV64

As we got a RTS linker for this architecture now, we can enable GHCi for
it.

- - - - -
e6647776 by Sven Tennie at 2024-08-04T17:43:48+02:00
Set codeowners of the RISCV64 NCG

- - - - -
1b473a35 by Sven Tennie at 2024-08-04T17:43:48+02:00
Add test for C calling convention

Ensure that parameters and return values are correctly processed. A
dedicated test (like this) helps to get the subtleties of calling
conventions easily right.

- - - - -


10 changed files:

- CODEOWNERS
- compiler/CodeGen.Platform.h
- compiler/GHC/Cmm/CLabel.hs
- compiler/GHC/CmmToAsm.hs
- compiler/GHC/CmmToAsm/Dwarf/Constants.hs
- compiler/GHC/CmmToAsm/PIC.hs
- + compiler/GHC/CmmToAsm/RV64.hs
- + compiler/GHC/CmmToAsm/RV64/CodeGen.hs
- + compiler/GHC/CmmToAsm/RV64/Cond.hs
- + compiler/GHC/CmmToAsm/RV64/Instr.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/3f3f5a70ec30eb0eeefd3d7e80aed08cc3513ed9...1b473a3516a42c3e857eddb4f89e5330aa7e1143

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/3f3f5a70ec30eb0eeefd3d7e80aed08cc3513ed9...1b473a3516a42c3e857eddb4f89e5330aa7e1143
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20240804/6d64f94f/attachment-0001.html>


More information about the ghc-commits mailing list