diff --git a/libgloss/ChangeLog b/libgloss/ChangeLog index c04d9c710..9ea622f58 100644 --- a/libgloss/ChangeLog +++ b/libgloss/ChangeLog @@ -1,3 +1,8 @@ +2012-10-27 Anthony Green + + * moxie/crt0.S (_start): Call memset with correct + ABI. + 2012-10-03 DJ Delorie * rl78/crt0.S (_interrupt_vector_table): Convert from CPP macros diff --git a/libgloss/moxie/crt0.S b/libgloss/moxie/crt0.S index e166895ac..44616a82e 100644 --- a/libgloss/moxie/crt0.S +++ b/libgloss/moxie/crt0.S @@ -19,18 +19,15 @@ .type __start,@function __start: _start: - ldi.l $sp, (_stack-12)/* load up stack pointer with space - for stack frame. */ + ldi.l $sp, _stack /* set the top of stack */ xor $fp, $fp /* zero fp to allow unwinders to stop */ /* zero the bss area */ ldi.l $r0, __bss_start__ - ldi.l $r1, __bss_end__ - sub.l $r1, $r0 - sto.l 8($sp), $r1 - ldi.l $r1, 0 + xor $r1, $r1 + ldi.l $r2, __bss_end__ + sub.l $r2, $r0 jsra memset - inc $sp, 12 /* Call _init to invoke static constructors, etc. */ jsra _init diff --git a/newlib/ChangeLog b/newlib/ChangeLog index 1c44191d0..2cc87ac1d 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,7 @@ +2012-10-27 Anthony Green + + * libc/machine/moxie/setjmp.S (setjmp): Minor optimization. + 2012-10-26 Corinna Vinschen * libc/include/sys/signal.h (sigset_t): Don't define when building diff --git a/newlib/libc/machine/moxie/setjmp.S b/newlib/libc/machine/moxie/setjmp.S index 991b91566..6c2c015e3 100644 --- a/newlib/libc/machine/moxie/setjmp.S +++ b/newlib/libc/machine/moxie/setjmp.S @@ -51,7 +51,7 @@ setjmp: sto.l 0x34($r0), $r13 sto.l 0x38($r0), $sp sto.l 0x3c($r0), $fp - ldi.l $r0, 0x00 + xor $r0, $r0 ret .Lend1: .size setjmp,.Lend1-setjmp