all kernels: declare _tas() to prevent pulling in libc version (for libmemdraw)
This commit is contained in:
parent
e2a6e622c7
commit
5458506881
12 changed files with 14 additions and 36 deletions
|
@ -449,6 +449,7 @@ TEXT getcallerpc(SB), $-4
|
|||
RET
|
||||
|
||||
TEXT tas(SB), $-4
|
||||
TEXT _tas(SB), $-4
|
||||
MOVW R0, R1
|
||||
MOVW $0xDEADDEAD, R0
|
||||
MOVW R0, R3
|
||||
|
|
|
@ -266,6 +266,7 @@ dcf1:
|
|||
RETURN
|
||||
|
||||
TEXT tas(SB), $0
|
||||
TEXT _tas(SB), $0
|
||||
SYNC
|
||||
MOVW R3, R4
|
||||
MOVW $0xdead,R5
|
||||
|
|
|
@ -115,6 +115,7 @@ TEXT islo(SB), 1, $-4
|
|||
RET
|
||||
|
||||
TEXT tas(SB), $-4
|
||||
TEXT _tas(SB), $-4
|
||||
spintas:
|
||||
LDREX(0,1)
|
||||
CMP.S $0, R1
|
||||
|
|
|
@ -690,6 +690,7 @@ TEXT islo(SB), $0
|
|||
* Test-And-Set
|
||||
*/
|
||||
TEXT tas(SB), $0
|
||||
TEXT _tas(SB), $0
|
||||
MOVL $0xDEADDEAD, AX
|
||||
MOVL lock+0(FP), BX
|
||||
XCHGL AX, (BX) /* lock->key */
|
||||
|
|
|
@ -520,6 +520,7 @@ TEXT islo(SB), 1, $-4
|
|||
* Synchronisation
|
||||
*/
|
||||
TEXT tas(SB), 1, $-4
|
||||
TEXT _tas(SB), 1, $-4
|
||||
MOVL $0xdeaddead, AX
|
||||
XCHGL AX, (RARG) /* */
|
||||
RET
|
||||
|
|
|
@ -346,6 +346,7 @@ icf1:
|
|||
RETURN
|
||||
|
||||
TEXT tas(SB), $0
|
||||
TEXT _tas(SB), $0
|
||||
MOVW R3, R4
|
||||
MOVW $0xdead, R5
|
||||
tas1:
|
||||
|
|
|
@ -721,8 +721,8 @@ TEXT fcr31(SB), $0 /* fp csr */
|
|||
* Emulate 68020 test and set: load linked / store conditional
|
||||
*/
|
||||
|
||||
TEXT _tas(SB), $0
|
||||
TEXT tas(SB), $0
|
||||
TEXT _tas(SB), $0
|
||||
MOVW R1, R2 /* address of key */
|
||||
tas1:
|
||||
MOVW $1, R3
|
||||
|
|
|
@ -843,7 +843,8 @@ GLOBL cpus_proceed+0(SB), $4
|
|||
|
||||
#include "cache.v7.s"
|
||||
|
||||
TEXT cas+0(SB),0,$12 /* r0 holds p */
|
||||
TEXT cas(SB),0,$12
|
||||
TEXT cmpswap(SB),0,$12 /* r0 holds p */
|
||||
MOVW ov+4(FP), R1
|
||||
MOVW nv+8(FP), R2
|
||||
spin:
|
||||
|
@ -863,6 +864,7 @@ fail:
|
|||
RET
|
||||
|
||||
TEXT tas(SB), $-4 /* _tas(ulong *) */
|
||||
TEXT _tas(SB), $-4
|
||||
/* returns old (R0) after modifying (R0) */
|
||||
MOVW R0,R5
|
||||
DMB
|
||||
|
|
|
@ -920,12 +920,6 @@ confinit(void)
|
|||
imagmem->maxsize = kpages;
|
||||
}
|
||||
|
||||
int
|
||||
cmpswap(long *addr, long old, long new)
|
||||
{
|
||||
return cas((int *)addr, old, new);
|
||||
}
|
||||
|
||||
void
|
||||
advertwfi(void) /* advertise my wfi status */
|
||||
{
|
||||
|
|
|
@ -195,30 +195,12 @@ TEXT fpclear(SB), $0 /* clear pending exceptions */
|
|||
* Test-And-Set
|
||||
*/
|
||||
TEXT tas(SB), $0
|
||||
TEXT _tas(SB), $0
|
||||
MOVL $0xDEADDEAD, AX
|
||||
MOVL lock+0(FP), BX
|
||||
XCHGL AX, (BX) /* lock->key */
|
||||
RET
|
||||
|
||||
TEXT _xinc(SB), $0 /* void _xinc(long*); */
|
||||
MOVL l+0(FP), AX
|
||||
LOCK; INCL 0(AX)
|
||||
RET
|
||||
|
||||
TEXT _xdec(SB), $0 /* long _xdec(long*); */
|
||||
MOVL l+0(FP), BX
|
||||
XORL AX, AX
|
||||
LOCK; DECL 0(BX)
|
||||
JLT _xdeclt
|
||||
JGT _xdecgt
|
||||
RET
|
||||
_xdecgt:
|
||||
INCL AX
|
||||
RET
|
||||
_xdeclt:
|
||||
DECL AX
|
||||
RET
|
||||
|
||||
TEXT getstack(SB), $0
|
||||
MOVL SP, AX
|
||||
RET
|
||||
|
|
|
@ -237,7 +237,8 @@ TEXT gotolabel(SB), $-4
|
|||
MOVW $1, R0
|
||||
RET
|
||||
|
||||
TEXT cas(SB), $0
|
||||
TEXT cas(SB), $0
|
||||
TEXT cmpswap(SB), $0
|
||||
MOVW ov+4(FP), R1
|
||||
MOVW nv+8(FP), R2
|
||||
spincas:
|
||||
|
@ -256,6 +257,7 @@ fail:
|
|||
RET
|
||||
|
||||
TEXT tas(SB), $0
|
||||
TEXT _tas(SB), $0
|
||||
MOVW $0xDEADDEAD, R2
|
||||
_tas1:
|
||||
LDREX (R0), R1
|
||||
|
|
|
@ -70,14 +70,6 @@ procsetup(Proc *p)
|
|||
p->pcycles = -p->kentry;
|
||||
}
|
||||
|
||||
int
|
||||
cmpswap(long *a, long b, long c)
|
||||
{
|
||||
extern int cas(int *, int, int);
|
||||
|
||||
return cas((int *) a, b, c);
|
||||
}
|
||||
|
||||
void
|
||||
kexit(Ureg *)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue