Hi,
With respect to the MPFR build error, (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58578), is movs appropraite as shown below? When _err1 is negative the condition is evaluating it to be true.
/* C Codeoes */ if (_err1 > 0) {
/* working code */ .loc 1 67 0 cmp r3, #0 ble .L6
/* not working code*/ .loc 1 67 0 movs r3, r3, asl #1 ble .L6
When I looked at the ARM documents, I found the following
Condition flags ------------------- If S is specified, for MOV instructions:
1. update the N and Z flags according to the result
2. can update the C flag during the calculation of Operand2 (see Flexible second operand)
3. do not affect the V flag.
And also le Signed less than or equal. (Z==1) || (N!=V)
Does this means we cant movs at comparision.
http://gcc.gnu.org/ml/gcc-patches/2013-02/msg00861.html added this and I guess it is intentional.
Am I missing anything here?
Thanks, Kugan
linaro-toolchain@lists.linaro.org