Fix bogons from XScale contribution
authorNick Clifton <nickc@redhat.com>
Mon, 4 Dec 2000 23:35:10 +0000 (23:35 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Mon, 4 Dec 2000 23:35:10 +0000 (23:35 +0000)
From-SVN: r38018

gcc/ChangeLog
gcc/config/arm/arm.c
gcc/config/arm/arm.md

index 9538f2d9dbbfa32b52c89a5eed5a538016fbaed2..657a78efac98c827fcf024e96c9c7c570157532f 100644 (file)
@@ -1,5 +1,11 @@
 2000-12-04  Nick Clifton  <nickc@redhat.com>
 
+       * config/arm/arm.c (arm_override_options): Test 'insn_flags' not
+       'tune_flags' for XScale nature.
+
+       * config/arm/arm.md (umulsidi3adddi): Restore "=&r" register
+       contraint, accidentally changed during XScale contribution.
+
        * config/arm/lib1funcs.asm (interwork_call_via_, call_via_): Do
        not create these functions if the target architecture does not
        support Thumb instructions.
index 32c772ab0ab82ae79fb307b468bb0225a463ce4a..c5388aee442534d13172360ea3a4685a15ab3a3e 100644 (file)
@@ -526,7 +526,7 @@ arm_override_options ()
       target_flags &= ~ARM_FLAG_APCS_FRAME;
     }
 
-  if (TARGET_HARD_FLOAT && (tune_flags & FL_XSCALE))
+  if (TARGET_HARD_FLOAT && (insn_flags & FL_XSCALE))
     {
       warning ("XScale does not support hardware FP instructions.");
       target_flags |= ARM_FLAG_SOFT_FLOAT;
@@ -587,11 +587,11 @@ arm_override_options ()
   arm_fast_multiply = (insn_flags & FL_FAST_MULT) != 0;
   arm_arch4         = (insn_flags & FL_ARCH4) != 0;
   arm_arch5         = (insn_flags & FL_ARCH5) != 0;
+  arm_is_xscale     = (insn_flags & FL_XSCALE) != 0;
   
   arm_ld_sched      = (tune_flags & FL_LDSCHED) != 0;
   arm_is_strong     = (tune_flags & FL_STRONG) != 0;
   thumb_code       = (TARGET_ARM == 0);
-  arm_is_xscale     = (tune_flags & FL_XSCALE) != 0;
   arm_is_6_or_7     = (((tune_flags & (FL_MODE26 | FL_MODE32))
                       && !(tune_flags & FL_ARCH4))) != 0;
   
index 5971cfab0ebe0a949c0900d01f9973bec2df5fbf..5e5262563c2d7d8d191ce00f4d4e32bf8aece9f4 100644 (file)
 ;; Unnamed template to match long long unsigned multiply-accumlate (umlal)
 
 (define_insn "*umulsidi3adddi"
-  [(set (match_operand:DI 0 "s_register_operand" "+&r")
+  [(set (match_operand:DI 0 "s_register_operand" "=&r")
        (plus:DI
         (mult:DI
          (zero_extend:DI (match_operand:SI 2 "s_register_operand" "%r"))