diff options
Diffstat (limited to 'libgloss/arc/crt0.S')
-rw-r--r-- | libgloss/arc/crt0.S | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/libgloss/arc/crt0.S b/libgloss/arc/crt0.S index 1999e60..0c2a2bd 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 |