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