mips libc updates for routerboard. we are not in sync with sources, except for the profiling changes, and turning off profiling on getcallerpc(). Reference: /n/atom/patch/applied2013/libcrb Date: Wed Jul 31 18:29:09 CES 2013 Signed-off-by: quanstro@quanstro.net --- /sys/src/libc/mips/vlrt.c Wed Jul 31 18:27:57 2013 +++ /sys/src/libc/mips/vlrt.c Wed Jul 31 18:27:58 2013 @@ -30,6 +30,7 @@ /* needed by profiler; can't be profiled. */ #pragma profile off + void _addv(Vlong *r, Vlong a, Vlong b) { @@ -55,8 +56,6 @@ r->lo = lo; r->hi = hi; } - -#pragma profile on void _d2v(Vlong *y, double d) --- /sys/src/libc/mips/tas.s Wed Jul 31 18:27:59 2013 +++ /sys/src/libc/mips/tas.s Wed Jul 31 18:27:59 2013 @@ -1,5 +1,5 @@ /* - * magnum user level lock code + * mips user level lock code */ #define LL(base, rt) WORD $((060<<26)|((base)<<21)|((rt)<<16)) @@ -7,7 +7,7 @@ #define NOOP WORD $0x27 #define COP3 WORD $(023<<26) - TEXT C_3ktas(SB), 1, $0 + TEXT C_3ktas(SB),$0 MOVW R1, R21 btas: MOVW R21, R1 @@ -17,7 +17,7 @@ BLTZ R1, btas RET - TEXT C_4ktas(SB), 1, $0 + TEXT C_4ktas(SB), $0 MOVW R1, R2 /* address of key */ tas1: MOVW $1, R3 @@ -26,8 +26,4 @@ SC(2, 3) NOOP BEQ R3, tas1 - RET - - TEXT C_fcr0(SB), $0 - MOVW FCR0, R1 RET --- /sys/src/libc/mips/mkfile Wed Jul 31 18:28:00 2013 +++ /sys/src/libc/mips/mkfile Wed Jul 31 18:28:00 2013 @@ -5,6 +5,7 @@ SFILES=\ argv0.s\ atom.s\ + c_fcr0.s\ getcallerpc.s\ getfcr.s\ main9.s\ --- /sys/src/libc/mips/c_fcr0.s Thu Jan 1 00:00:00 1970 +++ /sys/src/libc/mips/c_fcr0.s Wed Jul 31 18:28:01 2013 @@ -0,0 +1,3 @@ + TEXT C_fcr0(SB), $0 + MOVW FCR0, R1 + RET --- /sys/src/libc/mips/cycles.c Wed Jul 31 18:28:02 2013 +++ /sys/src/libc/mips/cycles.c Wed Jul 31 18:28:02 2013 @@ -1,7 +1,10 @@ #include #include -void cycles(uvlong*u) +#pragma profile off + +void +cycles(uvlong*u) { *u = 0LL; } --- /sys/src/libc/mips/atom.s Wed Jul 31 18:28:03 2013 +++ /sys/src/libc/mips/atom.s Wed Jul 31 18:28:03 2013 @@ -49,9 +49,3 @@ fail: MOVW $0, R1 RET - -/* general-purpose abort */ -_trap: - MOVD $0, R0 - MOVD 0(R0), R0 - RET --- /sys/src/libc/mips/main9p.s Wed Jul 31 18:28:04 2013 +++ /sys/src/libc/mips/main9p.s Wed Jul 31 18:28:04 2013 @@ -3,6 +3,7 @@ TEXT _mainp(SB), 1, $(16 + NPRIVATES*4) MOVW $setR30(SB), R30 + /* _tos = arg */ MOVW R1, _tos(SB) MOVW $p-64(SP), R1 @@ -10,9 +11,13 @@ MOVW $NPRIVATES, R1 MOVW R1, _nprivates(SB) + /* _profmain(); */ JAL _profmain(SB) - MOVW __prof+4(SB), R1 - MOVW R1, __prof+0(SB) + /* _tos->prof.pp = _tos->prof.next; */ + MOVW _tos(SB), R1 + MOVW 4(R1), R2 + MOVW R2, 0(R1) + /* main(argc, argv); */ MOVW inargc-4(FP), R1 MOVW $inargv+0(FP), R2 MOVW R1, 4(R29)