all kernels: declare _tas() to prevent pulling in libc version (for libmemdraw)

This commit is contained in:
cinap_lenrek 2015-07-07 19:17:55 +02:00
parent e2a6e622c7
commit 5458506881
12 changed files with 14 additions and 36 deletions

View file

@ -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

View file

@ -266,6 +266,7 @@ dcf1:
RETURN
TEXT tas(SB), $0
TEXT _tas(SB), $0
SYNC
MOVW R3, R4
MOVW $0xdead,R5

View file

@ -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

View file

@ -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 */

View file

@ -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

View file

@ -346,6 +346,7 @@ icf1:
RETURN
TEXT tas(SB), $0
TEXT _tas(SB), $0
MOVW R3, R4
MOVW $0xdead, R5
tas1:

View file

@ -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

View file

@ -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

View file

@ -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 */
{

View file

@ -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

View file

@ -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

View file

@ -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 *)
{