Update.
authorUlrich Drepper <drepper@redhat.com>
Tue, 4 May 2004 18:26:59 +0000 (18:26 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 4 May 2004 18:26:59 +0000 (18:26 +0000)
2004-04-22  David Mosberger  <davidm@hpl.hp.com>

* sysdeps/ia64/strcat.c: New file.
* sysdeps/ia64/strcat.S: Delete.

ChangeLog
sysdeps/ia64/strcat.S [deleted file]
sysdeps/ia64/strcat.c [new file with mode: 0644]

index 38abed4..c246a2c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-04-22  David Mosberger  <davidm@hpl.hp.com>
+
+       * sysdeps/ia64/strcat.c: New file.
+       * sysdeps/ia64/strcat.S: Delete.
+
 2004-05-04  Jakub Jelinek  <jakub@redhat.com>
 
        * sysdeps/unix/sysv/linux/ia64/sysdep.S (USE___THREAD): Remove
diff --git a/sysdeps/ia64/strcat.S b/sysdeps/ia64/strcat.S
deleted file mode 100644 (file)
index 8b4999e..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/* IA-64 assembly version of the standard strcat() function.
-   This file is part of the GNU C Library.
-   Copyright (C) 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
-   Contributed by Dan Pop <Dan.Pop@cern.ch>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-/* Return: dest
-
-   Inputs:
-        in0:    dest
-        in1:    src
-
-   A straightforword implementation: strcpy(dest + strlen(dest), src).
-
-   Could be marginally optimised by inlining the code of strcpy() and
-   strlen(), to avoid the two function calls.  OTOH, by not doing that,
-   we avoid L1I cache pollution (code using strcat() is likely to also
-   use strcpy() and strlen(), so we already have a copy of these functions
-   in the cache).  */
-
-#include <sysdep.h>
-#undef ret
-
-#define src    in1
-#define dest   in0
-#define save_b0        loc0
-#define save_pfs loc1
-#define tmp    loc2
-#define rc     ret0
-
-ENTRY(strcat)
-       .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(2)
-       alloc   save_pfs = ar.pfs, 2, 3, 2, 0
-       mov     save_b0 = b0
-       .body
-       mov     out0 = dest
-       mov     tmp = gp ;;
-       br.call.sptk.many b0 = HIDDEN_JUMPTARGET(strlen)# ;; // rc = strlen(dest);
-        mov    gp = tmp
-       add     out0 = dest, rc
-       mov     out1 = src
-       br.call.sptk.many b0 = HIDDEN_JUMPTARGET(strcpy)# ;; // strcpy(dest + strlen(dest), src)
-       mov     gp = tmp
-       mov     rc = dest
-       mov     b0 = save_b0
-       mov     ar.pfs = save_pfs
-       br.ret.sptk.many b0
-END(strcat)
-libc_hidden_builtin_def (strcat)
diff --git a/sysdeps/ia64/strcat.c b/sysdeps/ia64/strcat.c
new file mode 100644 (file)
index 0000000..8633aa0
--- /dev/null
@@ -0,0 +1,27 @@
+/* Copyright (C) 2004 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <string.h>
+
+char *
+strcat (char *dest, const char *src)
+{
+  strcpy (dest + strlen (dest), src);
+  return dest;
+}
+libc_hidden_builtin_def (strcat)