X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fthread%2Fsh%2Fsyscall_cp.s;h=bb848ef3b671429b101c247cf28d898b58cd66eb;hb=bf14ef193b4203aa9a8b173faeeea06d98397f65;hp=5677b9c0a9a751819eaec9cd5c5b3e1562725fee;hpb=aacd348637e38795dd7ae3c7c8c908d8c0cd24fd;p=musl diff --git a/src/thread/sh/syscall_cp.s b/src/thread/sh/syscall_cp.s index 5677b9c0..bb848ef3 100644 --- a/src/thread/sh/syscall_cp.s +++ b/src/thread/sh/syscall_cp.s @@ -1,32 +1,29 @@ .text +.global __cp_begin +.hidden __cp_begin +.global __cp_end +.hidden __cp_end +.global __cp_cancel +.hidden __cp_cancel +.hidden __cancel .global __syscall_cp_asm +.hidden __syscall_cp_asm .type __syscall_cp_asm, @function __syscall_cp_asm: -.global __cp_begin __cp_begin: mov.l @r4, r4 tst r4, r4 - bt 2f - - mov.l L1, r0 - braf r0 - nop -1: - -.align 2 -L1: .long __cancel@PLT-(1b-.) - -2: mov r5, r3 + bf __cp_cancel + mov r5, r3 mov r6, r4 mov r7, r5 mov.l @r15, r6 mov.l @(4,r15), r7 mov.l @(8,r15), r0 mov.l @(12,r15), r1 - trapa #22 + trapa #31 -.global __cp_end __cp_end: ! work around hardware bug or r0, r0 @@ -37,3 +34,12 @@ __cp_end: rts nop + +__cp_cancel: + mov.l 2f, r0 + braf r0 + nop +1: + +.align 2 +2: .long __cancel@PCREL-(1b-.)