[02/15] arc: libc: Add support of 16-entry register file

Message ID 20240521095658.10311-3-kolerov93@gmail.com
State New
Headers
Series A series of fixes for ARC and libgloss update |

Commit Message

Yuriy Kolerov May 21, 2024, 9:56 a.m. UTC
  From: Claudiu Zissulescu <claziss@gmail.com>

ARC supports a restricted register file with 16 registers.
However, optimized routines support only a full register
file. Thus, fallback on default implementation in case
of 16-entry register file.

Signed-off-by: Claudiu Zissulescu <claziss@gmail.com>
---
 newlib/libc/machine/arc/memcmp-bs-norm.S   | 5 +++--
 newlib/libc/machine/arc/memcmp-stub.c      | 5 +++--
 newlib/libc/machine/arc/memcmp.S           | 5 +++--
 newlib/libc/machine/arc/memcpy-archs.S     | 5 +++--
 newlib/libc/machine/arc/memcpy-bs.S        | 5 +++--
 newlib/libc/machine/arc/memcpy-stub.c      | 5 +++--
 newlib/libc/machine/arc/memcpy.S           | 5 +++--
 newlib/libc/machine/arc/memset-archs.S     | 5 +++--
 newlib/libc/machine/arc/memset-bs.S        | 5 +++--
 newlib/libc/machine/arc/memset-stub.c      | 5 +++--
 newlib/libc/machine/arc/memset.S           | 5 +++--
 newlib/libc/machine/arc/strchr-bs-norm.S   | 5 +++--
 newlib/libc/machine/arc/strchr-bs.S        | 5 +++--
 newlib/libc/machine/arc/strchr-stub.c      | 5 +++--
 newlib/libc/machine/arc/strcmp-archs.S     | 5 +++--
 newlib/libc/machine/arc/strcmp-stub.c      | 5 +++--
 newlib/libc/machine/arc/strcmp.S           | 5 +++--
 newlib/libc/machine/arc/strcpy-bs-arc600.S | 5 +++--
 newlib/libc/machine/arc/strcpy-bs.S        | 5 +++--
 newlib/libc/machine/arc/strcpy-stub.c      | 5 +++--
 newlib/libc/machine/arc/strcpy.S           | 5 +++--
 newlib/libc/machine/arc/strlen-bs-norm.S   | 5 +++--
 newlib/libc/machine/arc/strlen-bs.S        | 5 +++--
 newlib/libc/machine/arc/strlen-stub.c      | 5 +++--
 newlib/libc/machine/arc/strlen.S           | 5 +++--
 newlib/libc/machine/arc/strncpy-bs.S       | 5 +++--
 newlib/libc/machine/arc/strncpy-stub.c     | 5 +++--
 newlib/libc/machine/arc/strncpy.S          | 5 +++--
 28 files changed, 84 insertions(+), 56 deletions(-)
  

Patch

diff --git a/newlib/libc/machine/arc/memcmp-bs-norm.S b/newlib/libc/machine/arc/memcmp-bs-norm.S
index be2464ac0..b136fdc33 100644
--- a/newlib/libc/machine/arc/memcmp-bs-norm.S
+++ b/newlib/libc/machine/arc/memcmp-bs-norm.S
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,8 @@ 
 /* This implementation is optimized for performance.  For code size a generic
    implementation of this function from newlib/libc/string/memcmp.c will be
    used.  */
-#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED)
+#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) \
+    && !defined (__ARC_RF16__)
 
 #include "asm.h"
 
diff --git a/newlib/libc/machine/arc/memcmp-stub.c b/newlib/libc/machine/arc/memcmp-stub.c
index 30c7884d2..872f57b01 100644
--- a/newlib/libc/machine/arc/memcmp-stub.c
+++ b/newlib/libc/machine/arc/memcmp-stub.c
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -29,7 +29,8 @@ 
 */
 
 
-#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)
+#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)	\
+  || defined (__ARC_RF16__)
 # include "../../string/memcmp.c"
 #else
 /* See memcmp-*.S.  */
diff --git a/newlib/libc/machine/arc/memcmp.S b/newlib/libc/machine/arc/memcmp.S
index 7c5a05882..30b7a7450 100644
--- a/newlib/libc/machine/arc/memcmp.S
+++ b/newlib/libc/machine/arc/memcmp.S
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,8 @@ 
 /* This implementation is optimized for performance.  For code size a generic
    implementation of this function from newlib/libc/string/memcmp.c will be
    used.  */
-#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED)
+#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) \
+    && !defined (__ARC_RF16__)
 
 #include "asm.h"
 
diff --git a/newlib/libc/machine/arc/memcpy-archs.S b/newlib/libc/machine/arc/memcpy-archs.S
index 84e766ad8..f30dafd4f 100644
--- a/newlib/libc/machine/arc/memcpy-archs.S
+++ b/newlib/libc/machine/arc/memcpy-archs.S
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,8 @@ 
 /* This implementation is optimized for performance.  For code size a generic
    implementation of this function from newlib/libc/string/memcpy.c will be
    used.  */
-#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED)
+#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) \
+    && !defined (__ARC_RF16__)
 
 #include "asm.h"
 
diff --git a/newlib/libc/machine/arc/memcpy-bs.S b/newlib/libc/machine/arc/memcpy-bs.S
index 5a224eb8b..6c86adf1d 100644
--- a/newlib/libc/machine/arc/memcpy-bs.S
+++ b/newlib/libc/machine/arc/memcpy-bs.S
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,8 @@ 
 /* This implementation is optimized for performance.  For code size a generic
    implementation of this function from newlib/libc/string/memcpy.c will be
    used.  */
-#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED)
+#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) \
+    && !defined (__ARC_RF16__)
 
 #include "asm.h"
 
diff --git a/newlib/libc/machine/arc/memcpy-stub.c b/newlib/libc/machine/arc/memcpy-stub.c
index cc46c2d08..207fe8dbc 100644
--- a/newlib/libc/machine/arc/memcpy-stub.c
+++ b/newlib/libc/machine/arc/memcpy-stub.c
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -29,7 +29,8 @@ 
 */
 
 
-#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)
+#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)	\
+  || defined (__ARC_RF16__)
 # include "../../string/memcpy.c"
 #else
 /* See memcpy-*.S.  */
diff --git a/newlib/libc/machine/arc/memcpy.S b/newlib/libc/machine/arc/memcpy.S
index 6452f975e..d31bb2c12 100644
--- a/newlib/libc/machine/arc/memcpy.S
+++ b/newlib/libc/machine/arc/memcpy.S
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,8 @@ 
 /* This implementation is optimized for performance.  For code size a generic
    implementation of this function from newlib/libc/string/memcpy.c will be
    used.  */
-#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED)
+#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) \
+    && !defined (__ARC_RF16__)
 
 #include "asm.h"
 
diff --git a/newlib/libc/machine/arc/memset-archs.S b/newlib/libc/machine/arc/memset-archs.S
index dc912aa77..1204cc0d7 100644
--- a/newlib/libc/machine/arc/memset-archs.S
+++ b/newlib/libc/machine/arc/memset-archs.S
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,8 @@ 
 /* This implementation is optimized for performance.  For code size a generic
    implementation of this function from newlib/libc/string/memset.c will be
    used.  */
-#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED)
+#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) \
+    && !defined (__ARC_RF16__)
 
 #include "asm.h"
 
diff --git a/newlib/libc/machine/arc/memset-bs.S b/newlib/libc/machine/arc/memset-bs.S
index 0206668ac..0b5e43651 100644
--- a/newlib/libc/machine/arc/memset-bs.S
+++ b/newlib/libc/machine/arc/memset-bs.S
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,8 @@ 
 /* This implementation is optimized for performance.  For code size a generic
    implementation of this function from newlib/libc/string/memset.c will be
    used.  */
-#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED)
+#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) \
+    && !defined (__ARC_RF16__)
 
 #include "asm.h"
 
diff --git a/newlib/libc/machine/arc/memset-stub.c b/newlib/libc/machine/arc/memset-stub.c
index 981ca1f30..d285eb463 100644
--- a/newlib/libc/machine/arc/memset-stub.c
+++ b/newlib/libc/machine/arc/memset-stub.c
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -29,7 +29,8 @@ 
 */
 
 
-#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)
+#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)	\
+  || defined (__ARC_RF16__)
 # include "../../string/memset.c"
 #else
 /* See memset-*.S.  */
diff --git a/newlib/libc/machine/arc/memset.S b/newlib/libc/machine/arc/memset.S
index 126d9ff7c..229205da1 100644
--- a/newlib/libc/machine/arc/memset.S
+++ b/newlib/libc/machine/arc/memset.S
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,8 @@ 
 /* This implementation is optimized for performance.  For code size a generic
    implementation of this function from newlib/libc/string/memset.c will be
    used.  */
-#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED)
+#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) \
+    && !defined (__ARC_RF16__)
 
 #include "asm.h"
 
diff --git a/newlib/libc/machine/arc/strchr-bs-norm.S b/newlib/libc/machine/arc/strchr-bs-norm.S
index e69ac6c82..2cd7e7fdb 100644
--- a/newlib/libc/machine/arc/strchr-bs-norm.S
+++ b/newlib/libc/machine/arc/strchr-bs-norm.S
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,8 @@ 
 /* This implementation is optimized for performance.  For code size a generic
    implementation of this function from newlib/libc/string/strchr.c will be
    used.  */
-#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED)
+#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) \
+    && !defined (__ARC_RF16__)
 
 /* ARC700 has a relatively long pipeline and branch prediction, so we want
    to avoid branches that are hard to predict.  On the other hand, the
diff --git a/newlib/libc/machine/arc/strchr-bs.S b/newlib/libc/machine/arc/strchr-bs.S
index eb61a3a32..125d1f771 100644
--- a/newlib/libc/machine/arc/strchr-bs.S
+++ b/newlib/libc/machine/arc/strchr-bs.S
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,8 @@ 
 /* This implementation is optimized for performance.  For code size a generic
    implementation of this function from newlib/libc/string/strchr.c will be
    used.  */
-#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED)
+#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) \
+    && !defined (__ARC_RF16__)
 
 #include "asm.h"
 
diff --git a/newlib/libc/machine/arc/strchr-stub.c b/newlib/libc/machine/arc/strchr-stub.c
index 8d84a8255..ea7a3b4a5 100644
--- a/newlib/libc/machine/arc/strchr-stub.c
+++ b/newlib/libc/machine/arc/strchr-stub.c
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -29,7 +29,8 @@ 
 */
 
 
-#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)
+#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)	\
+  || defined (__ARC_RF16__)
 # include "../../string/strchr.c"
 #else
 /* See strchr-*.S.  */
diff --git a/newlib/libc/machine/arc/strcmp-archs.S b/newlib/libc/machine/arc/strcmp-archs.S
index 6cccf2773..543cebc4e 100644
--- a/newlib/libc/machine/arc/strcmp-archs.S
+++ b/newlib/libc/machine/arc/strcmp-archs.S
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,8 @@ 
 /* This implementation is optimized for performance.  For code size a generic
    implementation of this function from newlib/libc/string/strcmp.c will be
    used.  */
-#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED)
+#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) \
+    && !defined (__ARC_RF16__)
 
 #include "asm.h"
 
diff --git a/newlib/libc/machine/arc/strcmp-stub.c b/newlib/libc/machine/arc/strcmp-stub.c
index 19528e333..ab85b792f 100644
--- a/newlib/libc/machine/arc/strcmp-stub.c
+++ b/newlib/libc/machine/arc/strcmp-stub.c
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -29,7 +29,8 @@ 
 */
 
 
-#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)
+#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)	\
+  || defined (__ARC_RF16__)
 # include "../../string/strcmp.c"
 #else
 /* See strcmp-*.S.  */
diff --git a/newlib/libc/machine/arc/strcmp.S b/newlib/libc/machine/arc/strcmp.S
index 40a9e943f..32a651ed8 100644
--- a/newlib/libc/machine/arc/strcmp.S
+++ b/newlib/libc/machine/arc/strcmp.S
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,8 @@ 
 /* This implementation is optimized for performance.  For code size a generic
    implementation of this function from newlib/libc/string/strcmp.c will be
    used.  */
-#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED)
+#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) \
+    && !defined (__ARC_RF16__)
 
 #include "asm.h"
 
diff --git a/newlib/libc/machine/arc/strcpy-bs-arc600.S b/newlib/libc/machine/arc/strcpy-bs-arc600.S
index e80ffe535..2979702de 100644
--- a/newlib/libc/machine/arc/strcpy-bs-arc600.S
+++ b/newlib/libc/machine/arc/strcpy-bs-arc600.S
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,8 @@ 
 /* This implementation is optimized for performance.  For code size a generic
    implementation of this function from newlib/libc/string/strcpy.c will be
    used.  */
-#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED)
+#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) \
+    && !defined (__ARC_RF16__)
 
 #include "asm.h"
 
diff --git a/newlib/libc/machine/arc/strcpy-bs.S b/newlib/libc/machine/arc/strcpy-bs.S
index 26ac6c78d..d8c36abb6 100644
--- a/newlib/libc/machine/arc/strcpy-bs.S
+++ b/newlib/libc/machine/arc/strcpy-bs.S
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,8 @@ 
 /* This implementation is optimized for performance.  For code size a generic
    implementation of this function from newlib/libc/string/strcpy.c will be
    used.  */
-#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED)
+#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) \
+    && !defined (__ARC_RF16__)
 
 #include "asm.h"
 
diff --git a/newlib/libc/machine/arc/strcpy-stub.c b/newlib/libc/machine/arc/strcpy-stub.c
index 80ea0e81d..d3b182f85 100644
--- a/newlib/libc/machine/arc/strcpy-stub.c
+++ b/newlib/libc/machine/arc/strcpy-stub.c
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -29,7 +29,8 @@ 
 */
 
 
-#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)
+#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)	\
+  || defined (__ARC_RF16__)
 # include "../../string/strcpy.c"
 #else
 /* See strcpy-*.S.  */
diff --git a/newlib/libc/machine/arc/strcpy.S b/newlib/libc/machine/arc/strcpy.S
index e379b7930..132bd168c 100644
--- a/newlib/libc/machine/arc/strcpy.S
+++ b/newlib/libc/machine/arc/strcpy.S
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,8 @@ 
 /* This implementation is optimized for performance.  For code size a generic
    implementation of this function from newlib/libc/string/strcpy.c will be
    used.  */
-#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED)
+#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) \
+    && !defined (__ARC_RF16__)
 
 #include "asm.h"
 
diff --git a/newlib/libc/machine/arc/strlen-bs-norm.S b/newlib/libc/machine/arc/strlen-bs-norm.S
index 5f8db32cc..89c6fcd68 100644
--- a/newlib/libc/machine/arc/strlen-bs-norm.S
+++ b/newlib/libc/machine/arc/strlen-bs-norm.S
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,8 @@ 
 /* This implementation is optimized for performance.  For code size a generic
    implementation of this function from newlib/libc/string/strlen.c will be
    used.  */
-#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED)
+#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) \
+    && !defined (__ARC_RF16__)
 
 #include "asm.h"
 #if (defined (__ARC700__) || defined (__ARCEM__) || defined (__ARCHS__)) \
diff --git a/newlib/libc/machine/arc/strlen-bs.S b/newlib/libc/machine/arc/strlen-bs.S
index 59c350482..15caa830c 100644
--- a/newlib/libc/machine/arc/strlen-bs.S
+++ b/newlib/libc/machine/arc/strlen-bs.S
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,8 @@ 
 /* This implementation is optimized for performance.  For code size a generic
    implementation of this function from newlib/libc/string/strlen.c will be
    used.  */
-#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED)
+#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) \
+    && !defined (__ARC_RF16__)
 
 #include "asm.h"
 
diff --git a/newlib/libc/machine/arc/strlen-stub.c b/newlib/libc/machine/arc/strlen-stub.c
index 942e9be68..c52eecaa6 100644
--- a/newlib/libc/machine/arc/strlen-stub.c
+++ b/newlib/libc/machine/arc/strlen-stub.c
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -29,7 +29,8 @@ 
 */
 
 
-#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)
+#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)	\
+  || defined (__ARC_RF16__)
 # include "../../string/strlen.c"
 #else
 /* See strlen-*.S.  */
diff --git a/newlib/libc/machine/arc/strlen.S b/newlib/libc/machine/arc/strlen.S
index 67f820fe9..2072f3d15 100644
--- a/newlib/libc/machine/arc/strlen.S
+++ b/newlib/libc/machine/arc/strlen.S
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,8 @@ 
 /* This implementation is optimized for performance.  For code size a generic
    implementation of this function from newlib/libc/string/strlen.c will be
    used.  */
-#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED)
+#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) \
+    && !defined (__ARC_RF16__)
 
 #include "asm.h"
 
diff --git a/newlib/libc/machine/arc/strncpy-bs.S b/newlib/libc/machine/arc/strncpy-bs.S
index ec991524e..30770483c 100644
--- a/newlib/libc/machine/arc/strncpy-bs.S
+++ b/newlib/libc/machine/arc/strncpy-bs.S
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,8 @@ 
 /* This implementation is optimized for performance.  For code size a generic
    implementation of this function from newlib/libc/string/strncpy.c will be
    used.  */
-#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED)
+#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) \
+    && !defined (__ARC_RF16__)
 
 #include "asm.h"
 
diff --git a/newlib/libc/machine/arc/strncpy-stub.c b/newlib/libc/machine/arc/strncpy-stub.c
index 3f8f9db37..4a3a6073f 100644
--- a/newlib/libc/machine/arc/strncpy-stub.c
+++ b/newlib/libc/machine/arc/strncpy-stub.c
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -29,7 +29,8 @@ 
 */
 
 
-#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)
+#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED)	\
+  || defined (__ARC_RF16__)
 # include "../../string/strncpy.c"
 #else
 /* See strncpy-*.S.  */
diff --git a/newlib/libc/machine/arc/strncpy.S b/newlib/libc/machine/arc/strncpy.S
index b04f5895d..959f2a4d3 100644
--- a/newlib/libc/machine/arc/strncpy.S
+++ b/newlib/libc/machine/arc/strncpy.S
@@ -1,5 +1,5 @@ 
 /*
-   Copyright (c) 2015, Synopsys, Inc. All rights reserved.
+   Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved.
 
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,8 @@ 
 /* This implementation is optimized for performance.  For code size a generic
    implementation of this function from newlib/libc/string/strncpy.c will be
    used.  */
-#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED)
+#if !defined (__OPTIMIZE_SIZE__) && !defined (PREFER_SIZE_OVER_SPEED) \
+    && !defined (__ARC_RF16__)
 
 #include "asm.h"