2004-03-11 Kazu Hirata <kazu@cs.umass.edu>
* libc/sys/h8300hms/Makefile.am (lib_a_SOURCES): Replace _exit.c with _exit.S. * libc/sys/h8300hms/Makefile.in: Regenerate. * libc/sys/h8300hms/_exit.c: Remove. * libc/sys/h8300hms/_exit.S: New.
This commit is contained in:
parent
967641f2aa
commit
2c4ef10a55
|
@ -1,3 +1,11 @@
|
||||||
|
2004-03-11 Kazu Hirata <kazu@cs.umass.edu>
|
||||||
|
|
||||||
|
* libc/sys/h8300hms/Makefile.am (lib_a_SOURCES): Replace
|
||||||
|
_exit.c with _exit.S.
|
||||||
|
* libc/sys/h8300hms/Makefile.in: Regenerate.
|
||||||
|
* libc/sys/h8300hms/_exit.c: Remove.
|
||||||
|
* libc/sys/h8300hms/_exit.S: New.
|
||||||
|
|
||||||
2004-03-09 Thomas Pfaff <tpfaff@gmx.net>
|
2004-03-09 Thomas Pfaff <tpfaff@gmx.net>
|
||||||
|
|
||||||
* libc/stdio/findfp.c (__sfp): Rename lock to __sfp_lock.
|
* libc/stdio/findfp.c (__sfp): Rename lock to __sfp_lock.
|
||||||
|
|
|
@ -6,7 +6,7 @@ INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
|
||||||
|
|
||||||
noinst_LIBRARIES = lib.a
|
noinst_LIBRARIES = lib.a
|
||||||
|
|
||||||
lib_a_SOURCES = syscalls.c _exit.c sbrk.c misc.c crt1.c \
|
lib_a_SOURCES = syscalls.c _exit.S sbrk.c misc.c crt1.c \
|
||||||
close.S fstat.S lseek.S open.S read.S stat.S write.S
|
close.S fstat.S lseek.S open.S read.S stat.S write.S
|
||||||
|
|
||||||
all: crt0.o
|
all: crt0.o
|
||||||
|
|
|
@ -89,7 +89,7 @@ INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
|
||||||
|
|
||||||
noinst_LIBRARIES = lib.a
|
noinst_LIBRARIES = lib.a
|
||||||
|
|
||||||
lib_a_SOURCES = syscalls.c _exit.c sbrk.c misc.c crt1.c close.S fstat.S lseek.S open.S read.S stat.S write.S
|
lib_a_SOURCES = syscalls.c _exit.S sbrk.c misc.c crt1.c close.S fstat.S lseek.S open.S read.S stat.S write.S
|
||||||
|
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I ../../..
|
ACLOCAL_AMFLAGS = -I ../../..
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
#include "setarch.h"
|
||||||
|
|
||||||
|
/* `sleep' is passed an argument in r0 that indicates the reason
|
||||||
|
the program is exiting. The format of r0 is defined in
|
||||||
|
devo/include/wait.h. */
|
||||||
|
|
||||||
|
/* extern void _exit (int rc); */
|
||||||
|
|
||||||
|
.section .text
|
||||||
|
.align 2
|
||||||
|
.global __exit
|
||||||
|
__exit:
|
||||||
|
mov.w #0xdead,r1
|
||||||
|
mov.w #0xbeef,r2
|
||||||
|
mov.b r0l,r0h
|
||||||
|
sub.b r0l,r0l
|
||||||
|
sleep
|
|
@ -1,35 +0,0 @@
|
||||||
/* FIXME: which one? */
|
|
||||||
|
|
||||||
#include <_ansi.h>
|
|
||||||
|
|
||||||
/* `sleep' is passed an argument in r0 that indicates the reason
|
|
||||||
the program is exiting. The format of r0 is defined in devo/include/wait.h.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void
|
|
||||||
_DEFUN (_exit,(rc),
|
|
||||||
int rc)
|
|
||||||
{
|
|
||||||
short rc2;
|
|
||||||
|
|
||||||
rc2 = 0xdead;
|
|
||||||
asm("mov.w %0,r1" : : "r" (rc2) : "r1");
|
|
||||||
rc2 = 0xbeef;
|
|
||||||
asm("mov.w %0,r2" : : "r" (rc2) : "r2");
|
|
||||||
rc2 = rc << 8;
|
|
||||||
asm("mov.w %0,r0\n\tsleep" : : "r" (rc2) : "r0");
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
_DEFUN (__exit,(rc),
|
|
||||||
int rc)
|
|
||||||
{
|
|
||||||
short rc2;
|
|
||||||
|
|
||||||
rc2 = 0xdead;
|
|
||||||
asm("mov.w %0,r1" : : "r" (rc2) : "r1");
|
|
||||||
rc2 = 0xbeef;
|
|
||||||
asm("mov.w %0,r2" : : "r" (rc2) : "r2");
|
|
||||||
rc2 = rc << 8;
|
|
||||||
asm("mov.w %0,r0\n\tsleep" : : "r" (rc2) : "r0");
|
|
||||||
}
|
|
Loading…
Reference in New Issue