Messages in this thread | | | Subject | Re: 2.3.30pre1 syscall w/6 args support? | From | Andi Kleen <> | Date | 08 Dec 1999 03:20:09 +0100 |
| |
Linus Torvalds <torvalds@transmeta.com> writes: > > In fact, I would argue that the proper way to handle this is: > > - no sysenter capability on the CPU: use "int 0x80": > > magic_address: > movl 4(%esp),%ebx > movl 8(%esp),%ecx > movl 12(%esp),%edx > movl 16(%esp),%esi > movl 20(%esp),%edi > movl 24(%esp),%ebp > int $0x80 > ret
This just destroyed all registers, so the syscall stub would need to save them redundantly (entry.S does it anyways). With multiple magic addresses per syscall-with-N-arguments it gets more ugly.
The obvious micro optimization of reversing the order of the register loads and using magic_address+(6-NARGS)*4 would probably not scale too well to IA64 magic.
Also it costs you one TLB entry.
-Andi
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |