From b8637f43b08b1407cde47fc0477a1100b617f71f Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Fri, 30 Nov 2012 09:31:38 +0000 Subject: * libc/machine/arm/strcmp.S (compute_return_value): Fix return value. * testsuite/newlib.string/strcmp-1.c (main): Add new test cases. --- newlib/libc/machine/arm/strcmp.S | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'newlib/libc/machine') diff --git a/newlib/libc/machine/arm/strcmp.S b/newlib/libc/machine/arm/strcmp.S index 6298bc98d..0a4057e3b 100644 --- a/newlib/libc/machine/arm/strcmp.S +++ b/newlib/libc/machine/arm/strcmp.S @@ -396,7 +396,17 @@ do_return: lsr r2, r2, r0 compute_return_value: - subs r0, r1, r2 + movs r0, #1 + cmp r1, r2 + /* The return value is computed as follows. + If r1>r2 then (C==1 and Z==0) and LS doesn't hold and r0 is #1 at return. + If r1