From 7b64da89ba1a942bdbdde8dfba63805ae3d2fbc3 Mon Sep 17 00:00:00 2001 From: Richard Earnshaw <erich@gnu.org> Date: Thu, 12 Dec 1996 10:53:05 +0000 Subject: [PATCH] (arm_gen_constant, case IOR,XOR): Don't invert a constant if loading it into a temporary. From-SVN: r13290 --- gcc/config/arm/arm.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 97ad6ed800d3..fb4705cf4054 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -701,8 +701,8 @@ arm_gen_constant (code, mode, val, target, source, subtargets, generate) case IOR: case XOR: - /* If we have IOR or XOR, and the inverse of the constant can be loaded - in a single instruction, and we can find a temporary to put it in, + /* If we have IOR or XOR, and the constant can be loaded in a + single instruction, and we can find a temporary to put it in, then this can be done in two instructions instead of 3-4. */ if (subtargets || (reload_completed && ! reg_mentioned_p (target, source))) @@ -713,8 +713,7 @@ arm_gen_constant (code, mode, val, target, source, subtargets, generate) { rtx sub = subtargets ? gen_reg_rtx (mode) : target; - emit_insn (gen_rtx (SET, VOIDmode, sub, - GEN_INT (ARM_SIGN_EXTEND (~ val)))); + emit_insn (gen_rtx (SET, VOIDmode, sub, GEN_INT (val))); emit_insn (gen_rtx (SET, VOIDmode, target, gen_rtx (code, mode, source, sub))); }