[MIPS] Modify memset.S for mips32r6/mips64r6

Message ID 1419270604.27606.32.camel@ubuntu-sellcey
State Committed
Headers

Commit Message

Steve Ellcey Dec. 22, 2014, 5:50 p.m. UTC
  On Sat, 2014-12-20 at 00:23 +0000, Joseph Myers wrote:

> Please put this in a central place (a single header that defines 
> __mips_isa_rev to 0 if not already defined, for example) rather than 
> duplicating "defined" tests in different places ("defined" tests are 
> typo-prone and so discouraged in glibc).

Would sysdeps/unix/mips/sysdep.h be an appropriate place to define
__mips_isa_rev?  That header is already used by memcpy and memset.
I thought about using asm.h but that header is visible to users and
defining it there would be a visible change that could affect user
programs.  sysdep.h is internal to glibc and so does not have that
problem.

If we add it here there would be no changes needed to memcpy.S or
memset.S, though Ondrej had some useful performance comments I would
like to look at later (once we have the basic functionality checked in).

Steve Ellcey
sellcey@imgtec.com


2014-12-22  Steve Ellcey  <sellcey@imgtec.com>

	* sysdeps/unix/mips/sysdep.h (__mips_isa_rev): Set
	to zero if not already defined.
  

Comments

Joseph Myers Dec. 22, 2014, 5:58 p.m. UTC | #1
On Mon, 22 Dec 2014, Steve Ellcey wrote:

> Would sysdeps/unix/mips/sysdep.h be an appropriate place to define
> __mips_isa_rev?  That header is already used by memcpy and memset.
> I thought about using asm.h but that header is visible to users and
> defining it there would be a visible change that could affect user
> programs.  sysdep.h is internal to glibc and so does not have that
> problem.

Seems reasonable.  This sysdep.h patch is OK.  Does it fix all 
__mips_isa_rev -Wundef warnings in the build (for the older MIPS versions 
for which this was an issue) or do some files need changing to include 
sysdep.h.
  
Steve Ellcey Dec. 22, 2014, 6:43 p.m. UTC | #2
On Mon, 2014-12-22 at 17:58 +0000, Joseph Myers wrote:
> On Mon, 22 Dec 2014, Steve Ellcey wrote:
> 
> > Would sysdeps/unix/mips/sysdep.h be an appropriate place to define
> > __mips_isa_rev?  That header is already used by memcpy and memset.
> > I thought about using asm.h but that header is visible to users and
> > defining it there would be a visible change that could affect user
> > programs.  sysdep.h is internal to glibc and so does not have that
> > problem.
> 
> Seems reasonable.  This sysdep.h patch is OK.  Does it fix all 
> __mips_isa_rev -Wundef warnings in the build (for the older MIPS versions 
> for which this was an issue) or do some files need changing to include 
> sysdep.h.

It should fix all the _mips_isa_rev -Wundef warnings except for the
check I added last week to sysdeps/mips/machine-gmon.h.  Neither that
header nor gmon/mcount.c which uses that header includes sysdep.h.

Steve Ellcey
sellcey@imgtec.com
  

Patch

diff --git a/sysdeps/unix/mips/sysdep.h b/sysdeps/unix/mips/sysdep.h
index d59fac0..dc70c0f 100644
--- a/sysdeps/unix/mips/sysdep.h
+++ b/sysdeps/unix/mips/sysdep.h
@@ -78,4 +78,8 @@ 
 # define L(label) .L ## label
 #endif
 
+#ifndef __mips_isa_rev
+# define __mips_isa_rev 0
+#endif
+
 #endif