aboutsummaryrefslogtreecommitdiffstats
path: root/kvx/Asmexpand.ml
diff options
context:
space:
mode:
authorCyril SIX <cyril.six@kalray.eu>2020-12-07 15:35:20 +0100
committerCyril SIX <cyril.six@kalray.eu>2020-12-07 15:35:20 +0100
commit23da7b35d0edf98f271401ac93a1fa06adb062a2 (patch)
tree036672f28d72d8d583886b2503607ce661825e9b /kvx/Asmexpand.ml
parent60ff1e39bac5ab35c46698cbc1ed7a76fc936cab (diff)
downloadcompcert-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.ml8
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) ->