Updating setjmp/longjmp

Warner Losh imp at bsdimp.com
Sun Jun 2 05:50:04 UTC 2013


On Jun 1, 2013, at 1:12 PM, Andrew Turner wrote:

> Hello,
> 
> I'm updating the setjmp/longjmp functions on ARM to reduce the diff to
> NetBSD and to store the VFP registers when they are available.
> 
> As part of this I will be removeing support for storing the FPA
> (floating point accelerator) registers. Does anyone have any objections
> to this?
> 
> The first patch is at [1]. It updates
> out code to remove the FPA support but doesn't yet add the VFP as that
> will require other libc changes.
> 
> (If you don't know what the FPA is this patch probably doesn't affect
> you, it was an old floating-point device in only a few chips. Modern
> CPUs use a different piece of hardware for floating point operations.)

Did we ever support this? Or were they used only for the floating point emulator that NetBSD had in their tree for a while, but that I don't think ever made it into ours since softfloat is faster....

> Andrew
> 
> [1] http://people.freebsd.org/~andrew/arm_setjmp.diff

This looks OK to the limit of my arm assembler knowledge, but why the switch from r3 to ip in longjmp?

Also, what's the difference between setjmp and_setgjmp? It's just saving the signal mask... Is there any benefit to merging? The meat of the functions are tiny, but there's all that boilerplate...

Warner

Warner




More information about the freebsd-arm mailing list