aboutsummaryrefslogtreecommitdiffstats
path: root/riscV/ExpansionOracle.ml
diff options
context:
space:
mode:
Diffstat (limited to 'riscV/ExpansionOracle.ml')
-rw-r--r--riscV/ExpansionOracle.ml10
1 files changed, 10 insertions, 0 deletions
diff --git a/riscV/ExpansionOracle.ml b/riscV/ExpansionOracle.ml
index b8a7f6e7..4f67b9af 100644
--- a/riscV/ExpansionOracle.ml
+++ b/riscV/ExpansionOracle.ml
@@ -885,6 +885,16 @@ let expanse (sb : superblock) code pm =
exp := orimm64 vn a1 dest n;
exp := extract_final vn !exp dest succ;
was_exp := true
+ | Iop (Oxorimm n, a1 :: nil, dest, succ) ->
+ if exp_debug then eprintf "Iop/Oxorimm\n";
+ exp := xorimm32 vn a1 dest n;
+ exp := extract_final vn !exp dest succ;
+ was_exp := true
+ | Iop (Oxorlimm n, a1 :: nil, dest, succ) ->
+ if exp_debug then eprintf "Iop/Oxorlimm\n";
+ exp := xorimm64 vn a1 dest n;
+ exp := extract_final vn !exp dest succ;
+ was_exp := true
| Iop (Ocast8signed, a1 :: nil, dest, succ) ->
if exp_debug then eprintf "Iop/cast8signed\n";
let op = Oshlimm (Int.repr (Z.of_sint 24)) in