Syscall x86 convention in Devlopers' Handbook

Seo Townsend seotownsend at icloud.com
Sat Sep 6 19:40:51 UTC 2014


Hey guys, this is my first time in this mailing list so I’m not fully aware of all the procedures…

I was looking through the developer handbook and noticed that the Developer’s Handbook section on Assembly for x86 doesn’t make any mention of the change in the syscall calling convention from i386 to x86-64 and I can’t seem to find this documented anywhere.  The documentation does mention “FreeBSD kernel uses the C calling convention” (11.3.1) but doesn’t point out that the C calling convention changed from i386 to x86-64; and the architecture listed for 11 is generically (x86 Assembly Language Programming).  

Thoughts?  Some ideas I had are:
(1). Change “x86 Assembly Language Programming” to “i386 Assembly” - This would clear up the disambiguity of the 32bit architecture and 64bit architecture.
(2). Add a footnote to (11.3.1) with “If you are using x86-64, please note that the calling convention for both C and syscall changed from pushing arguments on the stack to using a list of ordered registered as outlined in the System V AMD64 ABI specification”
(3). I would not mind eventually adding a section for “x86-64 assembly” for (11.3.2) if I could get someone to help mentor me.

Thanks
seotownsend


More information about the freebsd-doc mailing list