From 62a73a2f2787c19c6e1fe92b43ddee6c0e2f6eac Mon Sep 17 00:00:00 2001 From: Roman Zippel Date: Mon, 24 Sep 2007 21:00:22 +0000 Subject: * config/m68k/m68k.c (notice_update_cc): Recognize fp compare (moved from fp compare patterns). * config/m68k/m68k.md (cmp, cmp_68881, cmp_cf): Cleanup predicates to relieve reload. (conditional_trap): Reject conditional trap with fp condition. * gcc/config/m68k/predicates.md (fp_src_operand): New, reject certain constants early. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@128727 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/config/m68k/m68k.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gcc/config/m68k/m68k.c') diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index c8e5a6f4a05..1f6b4f9fde7 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -3513,6 +3513,13 @@ notice_update_cc (rtx exp, rtx insn) if (((cc_status.value1 && FP_REG_P (cc_status.value1)) || (cc_status.value2 && FP_REG_P (cc_status.value2)))) cc_status.flags = CC_IN_68881; + if (cc_status.value2 && GET_CODE (cc_status.value2) == COMPARE + && GET_MODE_CLASS (GET_MODE (XEXP (cc_status.value2, 0))) == MODE_FLOAT) + { + cc_status.flags = CC_IN_68881; + if (!FP_REG_P (XEXP (cc_status.value2, 0))) + cc_status.flags |= CC_REVERSED; + } } const char * -- cgit v1.2.3