From 58c7f5045c9cf1b64311fd7a168ed3b496666bb0 Mon Sep 17 00:00:00 2001 From: xleroy Date: Tue, 21 Jun 2011 15:53:05 +0000 Subject: Recognition of rlwimi instruction (useful for bitfield assignment) git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1676 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- powerpc/Asmgen.v | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'powerpc/Asmgen.v') diff --git a/powerpc/Asmgen.v b/powerpc/Asmgen.v index 4370753b..cecc13e9 100644 --- a/powerpc/Asmgen.v +++ b/powerpc/Asmgen.v @@ -320,6 +320,13 @@ Definition transl_op Psrw (ireg_of r) (ireg_of a1) (ireg_of a2) :: k | Orolm amount mask, a1 :: nil => Prlwinm (ireg_of r) (ireg_of a1) amount mask :: k + | Oroli amount mask, a1 :: a2 :: nil => + if mreg_eq a1 r then (**r should always be true *) + Prlwimi (ireg_of r) (ireg_of a2) amount mask :: k + else + Pmr GPR0 (ireg_of a1) :: + Prlwimi GPR0 (ireg_of a2) amount mask :: + Pmr (ireg_of r) GPR0 :: k | Onegf, a1 :: nil => Pfneg (freg_of r) (freg_of a1) :: k | Oabsf, a1 :: nil => -- cgit