> Actually, I'm not sure on "for sure". If we define the kernel to > retain t regs over syscall, there is no need to touch the syscall stubs. > The problem is essentially that the old stub did this: > > brk: > syscall > la t0 _C_LABEL > sw v0 0(t0) > > and the new one: > > brk: > la t0 _C_LABEL > syscall > sw v0 0(t0)
http://cvsweb.NetBSD.org/bsdweb.cgi/src/lib/libc/arch/mips/sys/brk.S.diff?r1=1.16&r2=1.17 --- - lw v0, _C_LABEL(__minbrk) + PTR_LA t0, _C_LABEL(__minbrk) + PTR_L v0, 0(t0) syscall - sw a0, _C_LABEL(__curbrk) - move v0, zero + PTR_S a0, 0(t0) + move v0, zero --- Should we still preserve t0 for __minbrk?? --- Izumi Tsutsui