diff options
Diffstat (limited to 'ecomp-c/libc-freestanding.c')
-rw-r--r-- | ecomp-c/libc-freestanding.c | 17 |
1 files changed, 2 insertions, 15 deletions
diff --git a/ecomp-c/libc-freestanding.c b/ecomp-c/libc-freestanding.c index 35f2e02..f37aa83 100644 --- a/ecomp-c/libc-freestanding.c +++ b/ecomp-c/libc-freestanding.c @@ -138,19 +138,6 @@ static __attribute__((noinline)) int syscall1( int id, int arg0 ) return retval; } -void __builtin_unreachable( void ); - -static __attribute__((noinline)) __attribute__((noreturn)) void syscall1noret( int id, int arg0 ) -{ - __asm__ volatile( "\ - push %%ebx\n\ - mov %0, %%eax\n\ - mov %1, %%ebx\n\ - int $0x80\n\ - pop %%ebx\n" : : "m"( id ), "m"( arg0 ) ); - __builtin_unreachable( ); -} - static __attribute__((noinline)) int syscall3( int id, int arg0, int arg1, int arg2 ) { int retval; @@ -177,9 +164,9 @@ static __attribute__((noinline)) int syscall3( int id, int arg0, int arg1, int a return retval; } -__attribute__((noreturn)) void exit( int status ) +void exit( int status ) { - syscall1noret( SYSCALL_EXIT, status ); + syscall1( SYSCALL_EXIT, status ); } static void strreverse( char *s ) |