Message ID | 54B540B1.80800@arm.com |
---|---|
State | New |
Headers | show |
On 13/01/15 15:58, Renlin Li wrote: > Hi all, > > This patch update CLZ_DEFINED_VALUE_AT_ZERO and > CTZ_DEFINED_VALUE_AT_ZERO to make them return 2 in > arm back-end. > > Here are the explanations from GCC documentation: > > CLZ_DEFINED_VALUE_AT_ZERO (mode, value) > CTZ_DEFINED_VALUE_AT_ZERO (mode, value) > A C expression that indicates whether the architecture defines a value > for @code{clz} or @code{ctz} with a zero operand. > A result of 0 indicates the value is undefined. > If the value is defined for only the RTL expression, the macro should > evaluate to 1; if the value applies also to the corresponding optab > entry (which is normally the case if it expands directly into > the corresponding RTL), then the macro should evaluate to 2. > In the cases where the value is defined, @var{value} should be set to > this value. > > arm-none-eabi has been test on the model, no new issue. > Okay for trunk? > > gcc/ChangeLog: > > 2015-01-13 Renlin Li <renlin.li@arm.com> > > * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2. > (CTZ_DEFINED_VALUE_AT_ZERO): Ditto. > > OK. R.
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index d850982..83c9c33 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -2145,9 +2145,9 @@ extern int making_const_table; : reverse_condition (code)) #define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) \ - ((VALUE) = GET_MODE_UNIT_BITSIZE (MODE)) + ((VALUE) = GET_MODE_UNIT_BITSIZE (MODE), 2) #define CTZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) \ - ((VALUE) = GET_MODE_UNIT_BITSIZE (MODE)) + ((VALUE) = GET_MODE_UNIT_BITSIZE (MODE), 2) #define CC_STATUS_INIT \ do { cfun->machine->thumb1_cc_insn = NULL_RTX; } while (0)