aboutsummaryrefslogtreecommitdiffstats
path: root/x86/ConstpropOp.vp
diff options
context:
space:
mode:
Diffstat (limited to 'x86/ConstpropOp.vp')
-rw-r--r--x86/ConstpropOp.vp8
1 files changed, 5 insertions, 3 deletions
diff --git a/x86/ConstpropOp.vp b/x86/ConstpropOp.vp
index 759d7c16..f0000a85 100644
--- a/x86/ConstpropOp.vp
+++ b/x86/ConstpropOp.vp
@@ -192,9 +192,11 @@ Nondetfunction addr_strength_reduction_64
Definition addr_strength_reduction
(addr: addressing) (args: list reg) (vl: list aval) :=
- if Archi.ptr64
- then addr_strength_reduction_64 addr args vl
- else addr_strength_reduction_32 addr args vl.
+ if Archi.ptr64 then
+ let addr_args' := addr_strength_reduction_64 addr args vl in
+ if addressing_valid (fst addr_args') then addr_args' else (addr, args)
+ else
+ addr_strength_reduction_32 addr args vl.
Definition make_addimm (n: int) (r: reg) :=
if Int.eq n Int.zero