plan9fox/sys
cinap_lenrek 20b7a19c58 pc64: preserve user extern registers R14 and R15 across syscalls, use Ureg.bp (RARG) for syscall number
the 6c compiler reserves R14 and R15 for extern register variables,
which is used by the kernel to hold the m and up pointers. until
now, the meaning of R14 and R15 was undefined for userspace and
extern register would not work as the kernel trashes R14 and R15
on syscalls. with this change, user extern registers R14 and R15
are zeroed on exec and otherwise preserved across syscalls. so
userspace *could* use them for per process variables like the
kernel does.

use Ureg.bp (RARG) for syscall number instead of Ureg.ax. this is
less confusing and mirrors the amd64 calling convention.
2014-07-20 22:49:02 +02:00
..
doc /sys/doc: permissions for cleanps, mkdirlist, mkfilelist 2012-10-20 19:09:54 +02:00
games/lib fortunes: Subject: ftp(1) User-Agent 2014-06-29 15:01:44 -04:00
include pool: declare pooldump in pool.h. the manual says it is public. 2014-06-09 12:17:45 -07:00
lib ndb/common: add ipv6-icmp, ipv6-nonxt, ipv6-opts, bootps 2014-07-03 12:03:40 -04:00
man a.out(6): sync definitions 2014-07-17 23:22:48 -07:00
src pc64: preserve user extern registers R14 and R15 across syscalls, use Ureg.bp (RARG) for syscall number 2014-07-20 22:49:02 +02:00