aboutsummaryrefslogtreecommitdiffstats
path: root/arm
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-08-28 22:39:41 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-08-28 22:39:41 +0200
commit23a129e18ae930de5f40df59307c48c68d62d8d7 (patch)
tree403387a98ea9da32d70ac5b5607d5be30fa0ee42 /arm
parent780ad9d001af651a49d7470e963ed9a49ee11a4c (diff)
parent192bd462233d0284fa3d5f8e8994a514b549713e (diff)
downloadcompcert-kvx-23a129e18ae930de5f40df59307c48c68d62d8d7.tar.gz
compcert-kvx-23a129e18ae930de5f40df59307c48c68d62d8d7.zip
Merge branch 'master' of https://github.com/AbsInt/CompCert into mppa-work-upstream-merge
Diffstat (limited to 'arm')
-rw-r--r--arm/Asmexpand.ml5
1 files changed, 5 insertions, 0 deletions
diff --git a/arm/Asmexpand.ml b/arm/Asmexpand.ml
index d9424d11..a4ec0c5d 100644
--- a/arm/Asmexpand.ml
+++ b/arm/Asmexpand.ml
@@ -304,6 +304,11 @@ let expand_builtin_va_start r =
let expand_builtin_inline name args res =
match name, args, res with
(* Integer arithmetic *)
+ | "__builtin_bswap64" , [BA_splitlong(BA(IR ah), BA(IR al))],
+ BR_splitlong(BR(IR rh), BR(IR rl)) ->
+ expand_int64_arith (rl = al) rl (fun rl ->
+ emit (Prev (rl, ah));
+ emit (Prev (rh, al)))
| ("__builtin_bswap" | "__builtin_bswap32"), [BA(IR a1)], BR(IR res) ->
emit (Prev (res, a1))
| "__builtin_bswap16", [BA(IR a1)], BR(IR res) ->