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

Reply via email to