From be24c3bebe32b41847338f2dc31c06b593ec1251 Mon Sep 17 00:00:00 2001 From: Kathy Gray Date: Mon, 31 Mar 2014 19:15:17 +0100 Subject: Extend constraint checking, and add casts for base of a vector shifts (i.e. from 0 to 32 etc, doesn't change order yet.). --- src/test/pattern.sail | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/test') diff --git a/src/test/pattern.sail b/src/test/pattern.sail index bc04590d..7bbfebf9 100644 --- a/src/test/pattern.sail +++ b/src/test/pattern.sail @@ -3,6 +3,9 @@ register nat n register nat x register nat y +typedef wordsize = forall Nat 'n, 'n IN {8,16,32}. [|'n|] +let forall Nat 'n. (wordsize<'n>) word = 8 + function nat main _ = { (* works - x and y are set to 42 *) @@ -14,7 +17,12 @@ function nat main _ = { case z -> { x := 99; x } }); - (* doesn't work - main returns 1 instead of 99 *) + switch word { + case 8 -> { x:= 32; } + case 16 -> { x:= 64; } + case 32 -> { x:= 128; } + }; + n := 3; switch n { case 0 -> { 21 } -- cgit v1.2.3