[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Help on memchr() EGLIBC assembly code



Hi all,

With a lot of patches (E)GLIBC 2.10 builds on alpha, but it fails on the
testsuite for the memchr() function, which is an optimized assembly code
on alpha. Unfortunately I don't speak alpha assembly very well, so help
is needed.

The problem is that the memchr() function on alpha uses prefetch, which
can cause a page boundary to be crossed, while the standards (POSIX and
C99) says it should stop when a match is found.

I have built a small testcase (see file attached), which contains the
code to trigger the bug and the assembly code of the memchr() function,
copied from EGLIBC.

It would be nice if someone can fix the assembly code so that the
prefetching does not create memory faults. Thanks in advance.

Cheers,
Aurelien

-- 
Aurelien Jarno	                        GPG: 1024D/F1BCDB73
aurelien@aurel32.net                 http://www.aurel32.net

Attachment: test-memchr.tar.gz
Description: Binary data


Reply to: