yann@402
|
1 |
From:
|
yann@402
|
2 |
http://sources.redhat.com/ml/libc-alpha/2005-07/msg00051.html
|
yann@402
|
3 |
http://sources.redhat.com/ml/crossgcc/2005-10/msg00035.html
|
yann@402
|
4 |
|
yann@402
|
5 |
Message-ID: <434576E1.6020305@sscd.de>
|
yann@402
|
6 |
Date: Thu, 06 Oct 2005 21:11:29 +0200
|
yann@402
|
7 |
From: Alexander Sieb <sieb at sscd dot de>
|
yann@402
|
8 |
To: crossgcc at sourceware dot org
|
yann@402
|
9 |
Subject: Crosstool sh4-linux-gcc-4.0.2-glibc-2.3.5 patches
|
yann@402
|
10 |
|
yann@402
|
11 |
On sh[34]-linux, memset function does not work if 2nd argument is negative
|
yann@402
|
12 |
and 3rd argument is greater than 12.
|
yann@402
|
13 |
for example, memset(ptr, "\xda", 20) sets 0xff instead of 0xda.
|
yann@402
|
14 |
|
yann@402
|
15 |
Attached patch fixes this problem.
|
yann@402
|
16 |
|
yann@402
|
17 |
* sysdeps/sh/memset.S (memset): Correct 2nd argument handling.
|
yann@402
|
18 |
|
yann@402
|
19 |
--- glibc-2.3.5.old/sysdeps/sh/memset.S 29 Apr 2003 22:47:18 -0000 1.4
|
yann@402
|
20 |
+++ glibc-2.3.5/sysdeps/sh/memset.S 23 Jul 2005 08:37:21 -0000
|
yann@402
|
21 |
@@ -28,6 +28,7 @@ ENTRY(memset)
|
yann@402
|
22 |
bt.s L_byte_loop_init
|
yann@402
|
23 |
mov r4,r7
|
yann@402
|
24 |
|
yann@402
|
25 |
+ extu.b r5,r5
|
yann@402
|
26 |
swap.b r5,r1
|
yann@402
|
27 |
or r1,r5
|
yann@402
|
28 |
swap.w r5,r1
|
yann@402
|
29 |
|
yann@402
|
30 |
Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
|