diff --git a/newlib/ChangeLog b/newlib/ChangeLog index ae3754746..413a30786 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,7 @@ +2014-03-21 Sabrina Ni + + * libc/machine/nds32/setjmp.S: Optimize. + 2014-03-07 Corinna Vinschen Jeff Johnston diff --git a/newlib/libc/machine/nds32/setjmp.S b/newlib/libc/machine/nds32/setjmp.S index 90b162ef8..906efab8f 100644 --- a/newlib/libc/machine/nds32/setjmp.S +++ b/newlib/libc/machine/nds32/setjmp.S @@ -78,10 +78,9 @@ longjmp: lmw.bim $r6, [$r0], $r14, 0x0 lmw.bim $r16, [$r0], $r19, 0xf #endif - /* If the value val is 0, 1 will be returned instead. */ - bnez $r1, 1f - movi $r1, 1 -1: - move $r0, $r1 + /* Set val as return value. If the value val is 0, 1 will be returned + instead. */ + movi $r0, 1 + cmovn $r0, $r1, $r1 /* r0=(r1!=0)? r1: r0 */ ret .size longjmp, .-longjmp