From cf3283f176797f9209e3a8b1d5cc76e38f67d471 Mon Sep 17 00:00:00 2001 From: Brian Campbell Date: Fri, 20 Apr 2018 10:54:01 +0100 Subject: Fix combined sign-extend-slice operation --- aarch64/mono/mono_rewrites.sail | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aarch64/mono/mono_rewrites.sail b/aarch64/mono/mono_rewrites.sail index 82eef96f..c9164b6c 100644 --- a/aarch64/mono/mono_rewrites.sail +++ b/aarch64/mono/mono_rewrites.sail @@ -118,7 +118,7 @@ val sext_slice : forall 'n 'm, 'n >= 0 & 'm >= 0. (bits('n), int, int) -> bits('m) effect pure function sext_slice(xs,i,l) = { - let xs = (xs & slice_mask(i,l)) >> i in + let xs = arith_shiftright(((xs & slice_mask(i,l)) << ('n - i - l)), 'n - l) in extsv(xs) } -- cgit v1.2.3