summaryrefslogtreecommitdiff
path: root/src/thread/mips/syscall_cp.s
AgeCommit message (Collapse)AuthorLines
2016-02-04in mips cancellable syscall asm, don't assume gp register is validRich Felker-2/+13
the old __cp_cancel code path loaded the address of __cancel from the GOT using the $gp register, which happened to be set to point to the correct GOT by the calling C function, but there is no ABI requirement that this happen. instead, go the roundabout way and compute the address of __cancel via pc-relative and gp-relative addressing starting with a fake return address generated by a bal instruction, which is the same trick crt1 uses to bootstrap.
2015-05-25mark mips cancellable syscall code as codeRich Felker-0/+3
otherwise disassemblers treat it as data.
2015-04-14consistently use hidden visibility for cancellable syscall internalsRich Felker-3/+8
in a few places, non-hidden symbols were referenced from asm in ways that assumed ld-time binding. while these is no semantic reason these symbols need to be hidden, fixing the references without making them hidden was going to be ugly, and hidden reduces some bloat anyway. in the asm files, .global/.hidden directives have been moved to the top to unclutter the actual code.
2015-02-20prepare cancellation syscall asm for possibility of __cancel returningRich Felker-8/+12
2012-09-15update mips cancellation-point syscall asm with 7-arg and r25 fixesRich Felker-2/+5
these fixes were already made to the normal syscall asm but not the cancellation point version.
2012-09-09fix mips syscall_cp_asm code (saved register usage)Rich Felker-2/+2
2012-07-11first attempt at making threads work on mipsRich Felker-0/+31