summaryrefslogtreecommitdiff
path: root/sysdeps/ia64
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-05-04 18:26:59 +0000
committerUlrich Drepper <drepper@redhat.com>2004-05-04 18:26:59 +0000
commitce118ec6f3f1dbca08e03d25492f71974e125251 (patch)
treeb44e46e8ae7c80462f0edd5564ac46fb45e0ac55 /sysdeps/ia64
parent50c2b6d7d991ac885725dce5f2e76669e24915c6 (diff)
Update.
2004-04-22 David Mosberger <davidm@hpl.hp.com> * sysdeps/ia64/strcat.c: New file. * sysdeps/ia64/strcat.S: Delete.
Diffstat (limited to 'sysdeps/ia64')
-rw-r--r--sysdeps/ia64/strcat.S63
-rw-r--r--sysdeps/ia64/strcat.c27
2 files changed, 27 insertions, 63 deletions
diff --git a/sysdeps/ia64/strcat.S b/sysdeps/ia64/strcat.S
deleted file mode 100644
index 8b4999e534..0000000000
--- a/sysdeps/ia64/strcat.S
+++ /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
index 0000000000..8633aa07b9
--- /dev/null
+++ b/sysdeps/ia64/strcat.c
@@ -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)