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.
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;
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;
;; 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"))