[PATCH 08/15] arc: libgloss: Clean registers before any use

kolerov93@gmail.com kolerov93@gmail.com
Tue May 21 09:56:51 GMT 2024


From: Yuriy Kolerov <kolerov93@gmail.com>

Signed-off-by: Yuriy Kolerov <kolerov93@gmail.com>
---
 libgloss/arc/crt0.S | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/libgloss/arc/crt0.S b/libgloss/arc/crt0.S
index 1999e602b..0c2a2bd26 100644
--- a/libgloss/arc/crt0.S
+++ b/libgloss/arc/crt0.S
@@ -178,6 +178,47 @@ __start:
 
 #endif /* !__ARC601__ */
 
+;;; Clear the registers.
+	mov_s	r0,0
+	mov_s	r1,0
+	mov_s	r2,0
+	mov_s	r3,0
+#ifndef __ARC_RF16__
+	mov	r4,0
+	mov	r5,0
+	mov	r6,0
+	mov	r7,0
+	mov	r8,0
+	mov	r9,0
+#endif
+	mov	r10,0
+	mov	r11,0
+	mov_s	r12,0
+	mov_s	r13,0
+	mov_s	r14,0
+	mov_s	r15,0
+#ifndef __ARC_RF16__
+	mov	r16,0
+	mov	r17,0
+	mov	r18,0
+	mov	r19,0
+	mov	r20,0
+	mov	r21,0
+	mov	r22,0
+	mov	r23,0
+	mov	r24,0
+	mov	r25,0
+#endif
+	mov	r27,0
+	;; SP (r28) is initialized
+#if defined (__ARCEM__) || defined (__ARCHS__)
+	mov	ilink,0
+	mov	r30,0
+#else
+	mov	ilink1,0
+	mov	ilink2,0
+#endif /* ARCv2 */
+
 	;; Call constructors
 	jl	@_init
 
-- 
2.39.2



More information about the Newlib mailing list