@FioraAeterna One big problem is that the Linux syscall ABI makes all registers call-saved, so they have to save/restore any kernel may use.
-
-
Replying to @RichFelker
@FioraAeterna If everything were call-clobbered that would help. But sheer over-long code paths are also a big part of the problem...1 reply 0 retweets 0 likes -
Replying to @RichFelker
@RichFelker@FioraAeterna Caller or callee, doesn't matter; used registers have to be saved.1 reply 0 retweets 0 likes -
Replying to @SamuelAFalvoII
@SamuelAFalvoII@FioraAeterna Caller doesn't have to save any ABI-call-clobbered registers it's not currently using. That's almost all.1 reply 0 retweets 0 likes -
Replying to @RichFelker
@RichFelker@FioraAeterna But in POSIX, anytime you return from a system call, you might have to dispatch to a signal handler, no?2 replies 0 retweets 0 likes -
Replying to @SamuelAFalvoII
@SamuelAFalvoII@FioraAeterna If the syscall was already entitled to clobber those regs, signal handler is entitled to just save junk.2 replies 0 retweets 0 likes -
Replying to @RichFelker
@RichFelker@FioraAeterna Fair enough; another question arises though: context switches. Many OSes use syscall returns to switch contexts.2 replies 0 retweets 0 likes -
Replying to @SamuelAFalvoII
@SamuelAFalvoII@FioraAeterna Again, if you switch contexts at syscall time & syscall clobbers regs, those regs don't need to be saved.1 reply 0 retweets 0 likes -
Replying to @RichFelker
@SamuelAFalvoII@FioraAeterna Registers only need to be saved when they're meaningful to the (asynchronously) interrupted task.1 reply 0 retweets 0 likes -
Replying to @RichFelker
@RichFelker@FioraAeterna There's no way to know what registers are needed by the (asynchronously) interrupted task.1 reply 0 retweets 0 likes
@SamuelAFalvoII @FioraAeterna Right. That's why for async interruption (e.g. timer interrupt), you have to save all. Doesn't apply @ syscall
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.