From 73ab7968d862c4d4d883fb3d3215353eba905b0f Mon Sep 17 00:00:00 2001 From: Michael Schmidt Date: Fri, 15 Dec 2017 00:01:30 +0100 Subject: Introduce 'cmn' instruction and optimize compare-with-immediate when negated immediates can be encoded. --- arm/Asmgen.v | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'arm/Asmgen.v') diff --git a/arm/Asmgen.v b/arm/Asmgen.v index ed64e2f0..1d2f360f 100644 --- a/arm/Asmgen.v +++ b/arm/Asmgen.v @@ -242,12 +242,16 @@ Definition transl_cond do r1 <- ireg_of a1; OK (if is_immed_arith n then Pcmp r1 (SOimm n) :: k + else if is_immed_arith (Int.neg n) then + Pcmn r1 (SOimm (Int.neg n)) :: k else loadimm IR14 n (Pcmp r1 (SOreg IR14) :: k)) | Ccompuimm c n, a1 :: nil => do r1 <- ireg_of a1; OK (if is_immed_arith n then Pcmp r1 (SOimm n) :: k + else if is_immed_arith (Int.neg n) then + Pcmn r1 (SOimm (Int.neg n)) :: k else loadimm IR14 n (Pcmp r1 (SOreg IR14) :: k)) | Ccompf cmp, a1 :: a2 :: nil => -- cgit