diff options
author | Cyril SIX <cyril.six@kalray.eu> | 2020-12-07 15:35:20 +0100 |
---|---|---|
committer | Cyril SIX <cyril.six@kalray.eu> | 2020-12-07 15:35:20 +0100 |
commit | 23da7b35d0edf98f271401ac93a1fa06adb062a2 (patch) | |
tree | 036672f28d72d8d583886b2503607ce661825e9b /kvx/Asmexpand.ml | |
parent | 60ff1e39bac5ab35c46698cbc1ed7a76fc936cab (diff) | |
download | compcert-kvx-23da7b35d0edf98f271401ac93a1fa06adb062a2.tar.gz compcert-kvx-23da7b35d0edf98f271401ac93a1fa06adb062a2.zip |
Fixing test/regression for KVXv3.8_kvx
Diffstat (limited to 'kvx/Asmexpand.ml')
-rw-r--r-- | kvx/Asmexpand.ml | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/kvx/Asmexpand.ml b/kvx/Asmexpand.ml index 5d4fd2f5..1e76a355 100644 --- a/kvx/Asmexpand.ml +++ b/kvx/Asmexpand.ml @@ -359,7 +359,7 @@ let expand_bswap32 d s = let open Asmvliw in emit (Psrliw(GPR32, s, _8)); emit Psemi; emit (Pandiw(GPR32, GPR32, coqint_of_camlint 0xFFl)); emit Psemi; emit (Pslliw(GPR32, GPR32, _16)); emit Psemi; - emit (Porw(GPR16, GPR16, GPR31)); emit Psemi; + emit (Porw(GPR16, GPR16, GPR32)); emit Psemi; emit (Psrliw(GPR32, s, _16)); emit Psemi; emit (Pandiw(GPR32, GPR32, coqint_of_camlint 0xFFl)); emit Psemi; emit (Pslliw(GPR32, GPR32, _8)); emit Psemi; @@ -399,8 +399,14 @@ let expand_builtin_inline name args res = let open Asmvliw in (* Vararg stuff *) | "__builtin_va_start", [BA(IR a)], _ -> expand_builtin_va_start a + | "__builtin_kvx_clzw", [BA(IR a)], BR(IR res) -> + emit (Pclzw(res, a)) | "__builtin_clzll", [BA(IR a)], BR(IR res) -> emit (Pclzll(res, a)) + | "__builtin_kvx_ctzw", [BA(IR a)], BR(IR res) -> + emit (Pctzw(res, a)) + | "__builtin_ctzll", [BA(IR a)], BR(IR res) -> + emit (Pctzll(res, a)) | "__builtin_kvx_stsud", [BA(IR a1); BA(IR a2)], BR(IR res) -> emit (Pstsud(res, a1, a2)) | "__builtin_kvx_get", [BA_int(n)], BR(IR res) -> |