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 RET
TEXT tas(SB), $-4 TEXT tas(SB), $-4
TEXT _tas(SB), $-4
MOVW R0, R1 MOVW R0, R1
MOVW $0xDEADDEAD, R0 MOVW $0xDEADDEAD, R0
MOVW R0, R3 MOVW R0, R3

View file

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

View file

@ -115,6 +115,7 @@ TEXT islo(SB), 1, $-4
RET RET
TEXT tas(SB), $-4 TEXT tas(SB), $-4
TEXT _tas(SB), $-4
spintas: spintas:
LDREX(0,1) LDREX(0,1)
CMP.S $0, R1 CMP.S $0, R1

View file

@ -690,6 +690,7 @@ TEXT islo(SB), $0
* Test-And-Set * Test-And-Set
*/ */
TEXT tas(SB), $0 TEXT tas(SB), $0
TEXT _tas(SB), $0
MOVL $0xDEADDEAD, AX MOVL $0xDEADDEAD, AX
MOVL lock+0(FP), BX MOVL lock+0(FP), BX
XCHGL AX, (BX) /* lock->key */ XCHGL AX, (BX) /* lock->key */

View file

@ -520,6 +520,7 @@ TEXT islo(SB), 1, $-4
* Synchronisation * Synchronisation
*/ */
TEXT tas(SB), 1, $-4 TEXT tas(SB), 1, $-4
TEXT _tas(SB), 1, $-4
MOVL $0xdeaddead, AX MOVL $0xdeaddead, AX
XCHGL AX, (RARG) /* */ XCHGL AX, (RARG) /* */
RET RET

View file

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

View file

@ -721,8 +721,8 @@ TEXT fcr31(SB), $0 /* fp csr */
* Emulate 68020 test and set: load linked / store conditional * Emulate 68020 test and set: load linked / store conditional
*/ */
TEXT _tas(SB), $0
TEXT tas(SB), $0 TEXT tas(SB), $0
TEXT _tas(SB), $0
MOVW R1, R2 /* address of key */ MOVW R1, R2 /* address of key */
tas1: tas1:
MOVW $1, R3 MOVW $1, R3

View file

@ -843,7 +843,8 @@ GLOBL cpus_proceed+0(SB), $4
#include "cache.v7.s" #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 ov+4(FP), R1
MOVW nv+8(FP), R2 MOVW nv+8(FP), R2
spin: spin:
@ -863,6 +864,7 @@ fail:
RET RET
TEXT tas(SB), $-4 /* _tas(ulong *) */ TEXT tas(SB), $-4 /* _tas(ulong *) */
TEXT _tas(SB), $-4
/* returns old (R0) after modifying (R0) */ /* returns old (R0) after modifying (R0) */
MOVW R0,R5 MOVW R0,R5
DMB DMB

View file

@ -920,12 +920,6 @@ confinit(void)
imagmem->maxsize = kpages; imagmem->maxsize = kpages;
} }
int
cmpswap(long *addr, long old, long new)
{
return cas((int *)addr, old, new);
}
void void
advertwfi(void) /* advertise my wfi status */ advertwfi(void) /* advertise my wfi status */
{ {

View file

@ -195,30 +195,12 @@ TEXT fpclear(SB), $0 /* clear pending exceptions */
* Test-And-Set * Test-And-Set
*/ */
TEXT tas(SB), $0 TEXT tas(SB), $0
TEXT _tas(SB), $0
MOVL $0xDEADDEAD, AX MOVL $0xDEADDEAD, AX
MOVL lock+0(FP), BX MOVL lock+0(FP), BX
XCHGL AX, (BX) /* lock->key */ XCHGL AX, (BX) /* lock->key */
RET 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 TEXT getstack(SB), $0
MOVL SP, AX MOVL SP, AX
RET RET

View file

@ -237,7 +237,8 @@ TEXT gotolabel(SB), $-4
MOVW $1, R0 MOVW $1, R0
RET RET
TEXT cas(SB), $0 TEXT cas(SB), $0
TEXT cmpswap(SB), $0
MOVW ov+4(FP), R1 MOVW ov+4(FP), R1
MOVW nv+8(FP), R2 MOVW nv+8(FP), R2
spincas: spincas:
@ -256,6 +257,7 @@ fail:
RET RET
TEXT tas(SB), $0 TEXT tas(SB), $0
TEXT _tas(SB), $0
MOVW $0xDEADDEAD, R2 MOVW $0xDEADDEAD, R2
_tas1: _tas1:
LDREX (R0), R1 LDREX (R0), R1

View file

@ -70,14 +70,6 @@ procsetup(Proc *p)
p->pcycles = -p->kentry; 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 void
kexit(Ureg *) kexit(Ureg *)
{ {