bug-mes
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: libc-mini.a or libmes-builtins.a should also include integer divisio


From: Jan Nieuwenhuizen
Subject: Re: libc-mini.a or libmes-builtins.a should also include integer division algorithm ?
Date: Thu, 28 May 2020 16:23:51 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Danny Milosavljevic writes:

>> For comparison, GCC just emits a SIGFPE signal on division by zero
>> (I've tried).  That would mean that signal emission (or syscalls in
>> general) would have to be builtin, too.  But I guess that would be
>> OK.
>
> Some more details on what different compilers do:
>
> http://www.keil.com/support/man/docs/armcc/armcc_chr1359124235078.htm ... 
> wow, complicated.
>
>>__rt_raise(SIGFPE, DIVBYZERO)
>
> And another:
>
> https://stackoverflow.com/questions/6744453/how-to-track-down-a-sigfpe-arithmetic-exception?rq=1
>
>>    3 raise()  0x402720ac   
>>    2 __aeabi_uldivmod()  0x400bb0b8    
>>    1 __divsi3()  0x400b9880
>
>>    Integer division-by-zero errors can be trapped and identified by
>> re-implementing the appropriate C library helper functions. The
>> default behavior when division by zero occurs is that when the
>> signal function is used, or __rt_raise() or __aeabi_idiv0() are
>> re-implemented, __aeabi_idiv0() is called. Otherwise, the division
>> function returns zero. __aeabi_idiv0() raises SIGFPE with an
>> additional argument, DIVBYZERO.
>
> And to raise we'd use in mes:
>
> int
> raise (int signum)
> {
>   return _sys_call2 (SYS_kill, (long) getpid(), (long) signum);
> }
>
> pid_t
> getpid ()
> {
>   return _sys_call (SYS_getpid);
> }
>
> That's not so bad...
>
> (lib/linux/getpid.c and lib/posix/raise.c)
>
> But still, would be easier just not to implement a default div0
> handler and have the user or libc supply one--at least at first.

This is a great reference but yeah, I agree.  Let's keep it simple
first.

Janneke

-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | AvatarĀ® http://AvatarAcademy.com



reply via email to

[Prev in Thread] Current Thread [Next in Thread]