diff options
author | Ben Gamari <ben@smart-cactus.org> | 2021-11-08 19:49:24 -0500 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2021-12-02 18:13:30 -0500 |
commit | adc7f108141a973b6dcb02a7836eed65d61230e8 (patch) | |
tree | 1cd71c61f7db938af1b2c5c039ffcd38d0cb0301 /.gitlab-ci.yml | |
parent | 9c65197e0aec9a4ee11e377dac52f459ac64067a (diff) | |
download | haskell-adc7f108141a973b6dcb02a7836eed65d61230e8.tar.gz |
nativeGen/aarch64: Fix handling of subword values
Here we rework the handling of sub-word operations in the AArch64
backend, fixing a number of bugs and inconsistencies. In short,
we now impose the invariant that all subword values are represented in
registers in zero-extended form. Signed arithmetic operations are then
responsible for sign-extending as necessary.
Possible future work:
* Use `CMP`s extended register form to avoid burning an instruction
in sign-extending the second operand.
* Track sign-extension state of registers to elide redundant sign
extensions in blocks with frequent sub-word signed arithmetic.
Diffstat (limited to '.gitlab-ci.yml')
0 files changed, 0 insertions, 0 deletions