From 2bf34f3c5e65508a793c3b2c6981b0ecad5ac0e7 Mon Sep 17 00:00:00 2001 From: xleroy Date: Mon, 29 Jul 2013 12:49:47 +0000 Subject: Update cchecklink w/ new Asm instructions Pmulh* git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2301 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- checklink/Asm_printers.ml | 2 ++ checklink/Check.ml | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) (limited to 'checklink') diff --git a/checklink/Asm_printers.ml b/checklink/Asm_printers.ml index 8bc8caf..794d47a 100644 --- a/checklink/Asm_printers.ml +++ b/checklink/Asm_printers.ml @@ -185,6 +185,8 @@ let string_of_instruction = function | Pmtlr (i0) -> "Pmtlr(" ^ string_of_ireg i0 ^ ")" | Pmulli (i0, i1, c2) -> "Pmulli(" ^ string_of_ireg i0 ^ ", " ^ string_of_ireg i1 ^ ", " ^ string_of_constant c2 ^ ")" | Pmullw (i0, i1, i2) -> "Pmullw(" ^ string_of_ireg i0 ^ ", " ^ string_of_ireg i1 ^ ", " ^ string_of_ireg i2 ^ ")" +| Pmulhw (i0, i1, i2) -> "Pmulhw(" ^ string_of_ireg i0 ^ ", " ^ string_of_ireg i1 ^ ", " ^ string_of_ireg i2 ^ ")" +| Pmulhwu (i0, i1, i2) -> "Pmulhwu(" ^ string_of_ireg i0 ^ ", " ^ string_of_ireg i1 ^ ", " ^ string_of_ireg i2 ^ ")" | Pnand (i0, i1, i2) -> "Pnand(" ^ string_of_ireg i0 ^ ", " ^ string_of_ireg i1 ^ ", " ^ string_of_ireg i2 ^ ")" | Pnor (i0, i1, i2) -> "Pnor(" ^ string_of_ireg i0 ^ ", " ^ string_of_ireg i1 ^ ", " ^ string_of_ireg i2 ^ ")" | Por (i0, i1, i2) -> "Por(" ^ string_of_ireg i0 ^ ", " ^ string_of_ireg i1 ^ ", " ^ string_of_ireg i2 ^ ")" diff --git a/checklink/Check.ml b/checklink/Check.ml index 4097267..be1360d 100644 --- a/checklink/Check.ml +++ b/checklink/Check.ml @@ -2104,6 +2104,28 @@ let rec compare_code ccode ecode pc: checker = fun fw -> >>= recur_simpl | _ -> error end + | Pmulhw(rd, r1, r2) -> + begin match ecode with + | MULHWx(rD, rA, rB, rc) :: es -> + OK(fw) + >>= match_iregs rd rD + >>= match_iregs r1 rA + >>= match_iregs r2 rB + >>= match_bools false rc + >>= recur_simpl + | _ -> error + end + | Pmulhwu(rd, r1, r2) -> + begin match ecode with + | MULHWUx(rD, rA, rB, rc) :: es -> + OK(fw) + >>= match_iregs rd rD + >>= match_iregs r1 rA + >>= match_iregs r2 rB + >>= match_bools false rc + >>= recur_simpl + | _ -> error + end | Pnand(rd, r1, r2) -> begin match ecode with | NANDx(rS, rA, rB, rc) :: es -> -- cgit v1.2.3