On Thu, Jun 28, 2007 at 01:55:24PM +1000, Hasjim Williams wrote: > > On Wed, 27 Jun 2007 12:31:42 +0200, "Rask Ingemann Lambertsen" > <[EMAIL PROTECTED]> said:
> > Additionally, look at SELECT_CC_MODE and TARGET_CC_MODE_COMPATIBLE. That should be TARGET_CC_MODES_COMPATIBLE. > > The significance of defining a CCmode is that is says that comparisons > > done in that mode set the flags in a specific way. > > Thanks. This really clears things up for me. For the moment, I will > leave conditional execution disabled for EVERYTHING when compiling for > MaverickCrunch. I think so too. Once you get the hang of using CCmodes, you can try something like ;; General predication pattern (define_cond_exec [(match_operator 0 "maverick_comparison_operator" [(match_operand:CCMAV 1 "cc_register" "") (const_int 0)])] "TARGET_32BIT" "" ) (define_cond_exec [(match_operator 0 "arm_comparison_operator" [(match_operand 1 "non_maverick_cc_register" "") (const_int 0)])] "TARGET_32BIT" "" ) where "maverick_comparison_operator" matches those operators map to a predicate, get_arm_condition_code() modified to understand CCMAVmode so print_operand() will print the correct mnemonics and a new non_maverick_cc_register which doesn't match MaverickCrunch specific CCmodes. -- Rask Ingemann Lambertsen