From 20dfc1ec0a87c69917b2bf73919e44061bfe1b31 Mon Sep 17 00:00:00 2001 From: Michael McLoughlin Date: Fri, 20 Sep 2024 22:38:35 -0400 Subject: [PATCH 1/3] handle mul_bits in bits_coerce_narrow --- libASL/transforms.ml | 1 + 1 file changed, 1 insertion(+) diff --git a/libASL/transforms.ml b/libASL/transforms.ml index 6ad43183..0c197591 100644 --- a/libASL/transforms.ml +++ b/libASL/transforms.ml @@ -1188,6 +1188,7 @@ module IntToBits = struct (match name_of_FIdent f with | "add_bits" -> ChangeDoChildrenPost (narrow_args (), fun x -> Expr_Slices (x, [sl])) | "sub_bits" -> ChangeDoChildrenPost (narrow_args (), fun x -> Expr_Slices (x, [sl])) + | "mul_bits" -> ChangeDoChildrenPost (narrow_args (), fun x -> Expr_Slices (x, [sl])) | _ -> ChangeDoChildrenPost (narrow inner, fun x -> Expr_Slices (x, [sl])) ) | _ -> DoChildren From 8d5ea9040e983a78c563947c3501ddbcee1db1f3 Mon Sep 17 00:00:00 2001 From: Michael McLoughlin Date: Fri, 20 Sep 2024 22:42:58 -0400 Subject: [PATCH 2/3] update comment --- libASL/transforms.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libASL/transforms.ml b/libASL/transforms.ml index 0c197591..5ddae29b 100644 --- a/libASL/transforms.ml +++ b/libASL/transforms.ml @@ -1183,7 +1183,7 @@ module IntToBits = struct in let narrow_args () = Expr_TApply (f, [expr_of_int wd'], List.map narrow es) in - (* for add and sub expressions, we only need the lowest n bits in order + (* for some arithmetic expressions, we only need the lowest n bits in order to have n bits of precision in the output. *) (match name_of_FIdent f with | "add_bits" -> ChangeDoChildrenPost (narrow_args (), fun x -> Expr_Slices (x, [sl])) From 9ec746d519394bf0d54f109dac091db771b23258 Mon Sep 17 00:00:00 2001 From: Michael McLoughlin Date: Sun, 22 Sep 2024 15:27:20 -0400 Subject: [PATCH 3/3] update testdata --- tests/aslt/test_cntlm.t | 48 ++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/tests/aslt/test_cntlm.t b/tests/aslt/test_cntlm.t index 35d09f25..4b209c5c 100644 --- a/tests/aslt/test_cntlm.t +++ b/tests/aslt/test_cntlm.t @@ -17495,41 +17495,41 @@ strip opcode information before passing to antlr. "0x1adc2ad6" Stmt_Assign(LExpr_Array(LExpr_Var("_R"),22),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("asr_bits.0",[32;10],[Expr_Slices(Expr_Array(Expr_Var("_R"),22),[Slice_LoWd(0,32)]);Expr_TApply("ZeroExtend.0",[5;10],[Expr_Slices(Expr_Array(Expr_Var("_R"),28),[Slice_LoWd(0,5)]);10])]);64])) "0x1b007e94" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),20),Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_TApply("mul_bits.0",[64],[Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),20),[Slice_LoWd(0,32)]);64]);Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),0),[Slice_LoWd(0,32)]);64])]),[Slice_LoWd(0,32)]);64])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),20),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("mul_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),20),[Slice_LoWd(0,32)]);Expr_Slices(Expr_Array(Expr_Var("_R"),0),[Slice_LoWd(0,32)])]);64])) "0x1b014c61" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),1),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("add_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),19),[Slice_LoWd(0,32)]);Expr_Slices(Expr_TApply("mul_bits.0",[64],[Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),3),[Slice_LoWd(0,32)]);64]);Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),1),[Slice_LoWd(0,32)]);64])]),[Slice_LoWd(0,32)])]);64])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),1),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("add_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),19),[Slice_LoWd(0,32)]);Expr_TApply("mul_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),3),[Slice_LoWd(0,32)]);Expr_Slices(Expr_Array(Expr_Var("_R"),1),[Slice_LoWd(0,32)])])]);64])) "0x1b021022" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),2),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("add_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),4),[Slice_LoWd(0,32)]);Expr_Slices(Expr_TApply("mul_bits.0",[64],[Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),1),[Slice_LoWd(0,32)]);64]);Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),2),[Slice_LoWd(0,32)]);64])]),[Slice_LoWd(0,32)])]);64])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),2),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("add_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),4),[Slice_LoWd(0,32)]);Expr_TApply("mul_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),1),[Slice_LoWd(0,32)]);Expr_Slices(Expr_Array(Expr_Var("_R"),2),[Slice_LoWd(0,32)])])]);64])) "0x1b027c00" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),0),Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_TApply("mul_bits.0",[64],[Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),0),[Slice_LoWd(0,32)]);64]);Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),2),[Slice_LoWd(0,32)]);64])]),[Slice_LoWd(0,32)]);64])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),0),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("mul_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),0),[Slice_LoWd(0,32)]);Expr_Slices(Expr_Array(Expr_Var("_R"),2),[Slice_LoWd(0,32)])]);64])) "0x1b027c21" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),1),Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_TApply("mul_bits.0",[64],[Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),1),[Slice_LoWd(0,32)]);64]);Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),2),[Slice_LoWd(0,32)]);64])]),[Slice_LoWd(0,32)]);64])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),1),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("mul_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),1),[Slice_LoWd(0,32)]);Expr_Slices(Expr_Array(Expr_Var("_R"),2),[Slice_LoWd(0,32)])]);64])) "0x1b029800" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),0),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("sub_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),6),[Slice_LoWd(0,32)]);Expr_Slices(Expr_TApply("mul_bits.0",[64],[Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),0),[Slice_LoWd(0,32)]);64]);Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),2),[Slice_LoWd(0,32)]);64])]),[Slice_LoWd(0,32)])]);64])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),0),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("sub_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),6),[Slice_LoWd(0,32)]);Expr_TApply("mul_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),0),[Slice_LoWd(0,32)]);Expr_Slices(Expr_Array(Expr_Var("_R"),2),[Slice_LoWd(0,32)])])]);64])) "0x1b029882" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),2),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("sub_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),6),[Slice_LoWd(0,32)]);Expr_Slices(Expr_TApply("mul_bits.0",[64],[Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),4),[Slice_LoWd(0,32)]);64]);Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),2),[Slice_LoWd(0,32)]);64])]),[Slice_LoWd(0,32)])]);64])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),2),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("sub_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),6),[Slice_LoWd(0,32)]);Expr_TApply("mul_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),4),[Slice_LoWd(0,32)]);Expr_Slices(Expr_Array(Expr_Var("_R"),2),[Slice_LoWd(0,32)])])]);64])) "0x1b037c00" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),0),Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_TApply("mul_bits.0",[64],[Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),0),[Slice_LoWd(0,32)]);64]);Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),3),[Slice_LoWd(0,32)]);64])]),[Slice_LoWd(0,32)]);64])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),0),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("mul_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),0),[Slice_LoWd(0,32)]);Expr_Slices(Expr_Array(Expr_Var("_R"),3),[Slice_LoWd(0,32)])]);64])) "0x1b047c24" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),4),Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_TApply("mul_bits.0",[64],[Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),1),[Slice_LoWd(0,32)]);64]);Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),4),[Slice_LoWd(0,32)]);64])]),[Slice_LoWd(0,32)]);64])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),4),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("mul_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),1),[Slice_LoWd(0,32)]);Expr_Slices(Expr_Array(Expr_Var("_R"),4),[Slice_LoWd(0,32)])]);64])) "0x1b048463" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),3),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("sub_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),1),[Slice_LoWd(0,32)]);Expr_Slices(Expr_TApply("mul_bits.0",[64],[Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),3),[Slice_LoWd(0,32)]);64]);Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),4),[Slice_LoWd(0,32)]);64])]),[Slice_LoWd(0,32)])]);64])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),3),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("sub_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),1),[Slice_LoWd(0,32)]);Expr_TApply("mul_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),3),[Slice_LoWd(0,32)]);Expr_Slices(Expr_Array(Expr_Var("_R"),4),[Slice_LoWd(0,32)])])]);64])) "0x1b077c63" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),3),Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_TApply("mul_bits.0",[64],[Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),3),[Slice_LoWd(0,32)]);64]);Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),7),[Slice_LoWd(0,32)]);64])]),[Slice_LoWd(0,32)]);64])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),3),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("mul_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),3),[Slice_LoWd(0,32)]);Expr_Slices(Expr_Array(Expr_Var("_R"),7),[Slice_LoWd(0,32)])]);64])) "0x1b079842" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),2),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("sub_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),6),[Slice_LoWd(0,32)]);Expr_Slices(Expr_TApply("mul_bits.0",[64],[Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),2),[Slice_LoWd(0,32)]);64]);Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),7),[Slice_LoWd(0,32)]);64])]),[Slice_LoWd(0,32)])]);64])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),2),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("sub_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),6),[Slice_LoWd(0,32)]);Expr_TApply("mul_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),2),[Slice_LoWd(0,32)]);Expr_Slices(Expr_Array(Expr_Var("_R"),7),[Slice_LoWd(0,32)])])]);64])) "0x1b087c21" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),1),Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_TApply("mul_bits.0",[64],[Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),1),[Slice_LoWd(0,32)]);64]);Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),8),[Slice_LoWd(0,32)]);64])]),[Slice_LoWd(0,32)]);64])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),1),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("mul_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),1),[Slice_LoWd(0,32)]);Expr_Slices(Expr_Array(Expr_Var("_R"),8),[Slice_LoWd(0,32)])]);64])) "0x1b08bc21" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),1),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("sub_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),15),[Slice_LoWd(0,32)]);Expr_Slices(Expr_TApply("mul_bits.0",[64],[Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),1),[Slice_LoWd(0,32)]);64]);Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),8),[Slice_LoWd(0,32)]);64])]),[Slice_LoWd(0,32)])]);64])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),1),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("sub_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),15),[Slice_LoWd(0,32)]);Expr_TApply("mul_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),1),[Slice_LoWd(0,32)]);Expr_Slices(Expr_Array(Expr_Var("_R"),8),[Slice_LoWd(0,32)])])]);64])) "0x1b0b7c63" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),3),Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_TApply("mul_bits.0",[64],[Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),3),[Slice_LoWd(0,32)]);64]);Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),11),[Slice_LoWd(0,32)]);64])]),[Slice_LoWd(0,32)]);64])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),3),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("mul_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),3),[Slice_LoWd(0,32)]);Expr_Slices(Expr_Array(Expr_Var("_R"),11),[Slice_LoWd(0,32)])]);64])) "0x1b138c44" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),4),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("sub_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),3),[Slice_LoWd(0,32)]);Expr_Slices(Expr_TApply("mul_bits.0",[64],[Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),2),[Slice_LoWd(0,32)]);64]);Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),19),[Slice_LoWd(0,32)]);64])]),[Slice_LoWd(0,32)])]);64])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),4),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("sub_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),3),[Slice_LoWd(0,32)]);Expr_TApply("mul_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),2),[Slice_LoWd(0,32)]);Expr_Slices(Expr_Array(Expr_Var("_R"),19),[Slice_LoWd(0,32)])])]);64])) "0x1b138c86" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),6),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("sub_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),3),[Slice_LoWd(0,32)]);Expr_Slices(Expr_TApply("mul_bits.0",[64],[Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),4),[Slice_LoWd(0,32)]);64]);Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),19),[Slice_LoWd(0,32)]);64])]),[Slice_LoWd(0,32)])]);64])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),6),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("sub_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),3),[Slice_LoWd(0,32)]);Expr_TApply("mul_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),4),[Slice_LoWd(0,32)]);Expr_Slices(Expr_Array(Expr_Var("_R"),19),[Slice_LoWd(0,32)])])]);64])) "0x1b1b5f3b" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),27),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("add_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),23),[Slice_LoWd(0,32)]);Expr_Slices(Expr_TApply("mul_bits.0",[64],[Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),25),[Slice_LoWd(0,32)]);64]);Expr_TApply("ZeroExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),27),[Slice_LoWd(0,32)]);64])]),[Slice_LoWd(0,32)])]);64])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),27),Expr_TApply("ZeroExtend.0",[32;64],[Expr_TApply("add_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),23),[Slice_LoWd(0,32)]);Expr_TApply("mul_bits.0",[32],[Expr_Slices(Expr_Array(Expr_Var("_R"),25),[Slice_LoWd(0,32)]);Expr_Slices(Expr_Array(Expr_Var("_R"),27),[Slice_LoWd(0,32)])])]);64])) "0x1e214c00" Stmt_VarDeclsNoInit(Type_Bits(32),["If6__4"]) Stmt_If(Expr_TApply("eq_bits.0",[1],[Expr_Field(Expr_Var("PSTATE"),"N");'1']),[ @@ -126894,17 +126894,17 @@ strip opcode information before passing to antlr. "0x9ad92356" Stmt_Assign(LExpr_Array(LExpr_Var("_R"),22),Expr_TApply("lsl_bits.0",[64;12],[Expr_Array(Expr_Var("_R"),26);Expr_TApply("ZeroExtend.0",[6;12],[Expr_Slices(Expr_Array(Expr_Var("_R"),25),[Slice_LoWd(0,6)]);12])])) "0x9b027c21" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),1),Expr_Slices(Expr_TApply("mul_bits.0",[128],[Expr_TApply("ZeroExtend.0",[64;128],[Expr_Array(Expr_Var("_R"),1);128]);Expr_TApply("ZeroExtend.0",[64;128],[Expr_Array(Expr_Var("_R"),2);128])]),[Slice_LoWd(0,64)])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),1),Expr_TApply("mul_bits.0",[64],[Expr_Array(Expr_Var("_R"),1);Expr_Array(Expr_Var("_R"),2)])) "0x9b030819" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),25),Expr_TApply("add_bits.0",[64],[Expr_Array(Expr_Var("_R"),2);Expr_Slices(Expr_TApply("mul_bits.0",[128],[Expr_TApply("ZeroExtend.0",[64;128],[Expr_Array(Expr_Var("_R"),0);128]);Expr_TApply("ZeroExtend.0",[64;128],[Expr_Array(Expr_Var("_R"),3);128])]),[Slice_LoWd(0,64)])])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),25),Expr_TApply("add_bits.0",[64],[Expr_Array(Expr_Var("_R"),2);Expr_TApply("mul_bits.0",[64],[Expr_Array(Expr_Var("_R"),0);Expr_Array(Expr_Var("_R"),3)])])) "0x9b067c21" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),1),Expr_Slices(Expr_TApply("mul_bits.0",[128],[Expr_TApply("ZeroExtend.0",[64;128],[Expr_Array(Expr_Var("_R"),1);128]);Expr_TApply("ZeroExtend.0",[64;128],[Expr_Array(Expr_Var("_R"),6);128])]),[Slice_LoWd(0,64)])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),1),Expr_TApply("mul_bits.0",[64],[Expr_Array(Expr_Var("_R"),1);Expr_Array(Expr_Var("_R"),6)])) "0x9b067c42" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),2),Expr_Slices(Expr_TApply("mul_bits.0",[128],[Expr_TApply("ZeroExtend.0",[64;128],[Expr_Array(Expr_Var("_R"),2);128]);Expr_TApply("ZeroExtend.0",[64;128],[Expr_Array(Expr_Var("_R"),6);128])]),[Slice_LoWd(0,64)])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),2),Expr_TApply("mul_bits.0",[64],[Expr_Array(Expr_Var("_R"),2);Expr_Array(Expr_Var("_R"),6)])) "0x9b077c21" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),1),Expr_Slices(Expr_TApply("mul_bits.0",[128],[Expr_TApply("ZeroExtend.0",[64;128],[Expr_Array(Expr_Var("_R"),1);128]);Expr_TApply("ZeroExtend.0",[64;128],[Expr_Array(Expr_Var("_R"),7);128])]),[Slice_LoWd(0,64)])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),1),Expr_TApply("mul_bits.0",[64],[Expr_Array(Expr_Var("_R"),1);Expr_Array(Expr_Var("_R"),7)])) "0x9b147e74" - Stmt_Assign(LExpr_Array(LExpr_Var("_R"),20),Expr_Slices(Expr_TApply("mul_bits.0",[128],[Expr_TApply("ZeroExtend.0",[64;128],[Expr_Array(Expr_Var("_R"),19);128]);Expr_TApply("ZeroExtend.0",[64;128],[Expr_Array(Expr_Var("_R"),20);128])]),[Slice_LoWd(0,64)])) + Stmt_Assign(LExpr_Array(LExpr_Var("_R"),20),Expr_TApply("mul_bits.0",[64],[Expr_Array(Expr_Var("_R"),19);Expr_Array(Expr_Var("_R"),20)])) "0x9b207c22" Stmt_Assign(LExpr_Array(LExpr_Var("_R"),2),Expr_TApply("mul_bits.0",[64],[Expr_TApply("SignExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),1),[Slice_LoWd(0,32)]);64]);Expr_TApply("SignExtend.0",[32;64],[Expr_Slices(Expr_Array(Expr_Var("_R"),0),[Slice_LoWd(0,32)]);64])])) "0x9b207c60"