h8300 _exit

DJ Delorie dj@redhat.com
Wed Mar 15 08:59:00 GMT 2006


After the noted patch, it seems that _exit() ignores the argument
passed to it; assuming that the return code is in R0 (it's normally on
the stack).  Am I missing something, or has this really gone unnoticed
for two years?  Also, the .S version can't compensate for gcc's
-mquickcall, which changes the argument passing convention.

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.


#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



More information about the Newlib mailing list