URL
https://opencores.org/ocsvn/mips_enhanced/mips_enhanced/trunk
Subversion Repositories mips_enhanced
[/] [mips_enhanced/] [trunk/] [grlib-gpl-1.0.19-b3188/] [software/] [leon3/] [cacheasm.S] - Rev 2
Compare with Previous | Blame | View Log
.text
.align 64
.global _line0, , _line1, _line2, _line3
.global line0, line1, line2, line3
_line0:
line0:
nop; nop; nop; nop; nop; nop; retl; nop;
_line1:
line1:
nop; nop; nop; nop; nop; nop; retl; nop;
_line2:
line2:
nop; nop; nop; nop; nop; nop; retl; nop;
_line3:
line3:
nop; nop; nop; nop; nop; nop; retl; nop;
.global chkitags
chkitags:
1:
lda [%o0] 0xc, %o2
subcc %o0, %o1, %o0
bge 1b
or %o2, %o3, %o3
retl
mov %o3, %o0
.global chkdtags
chkdtags:
1:
lda [%o0] 0xe, %o2
subcc %o0, %o1, %o0
bge 1b
or %o2, %o3, %o3
retl
mov %o3, %o0
.global ifill
ifill:
subcc %o0, 4, %o0
1:
sta %g0, [%o0] 0xd
subcc %o0, 4, %o0
sta %g0, [%o0] 0xd
subcc %o0, 4, %o0
sta %g0, [%o0] 0xd
subcc %o0, 4, %o0
sta %g0, [%o0] 0xd
sta %g0, [%o0] 0xc
subcc %o0, 4, %o0
bg 1b
nop
retl
nop
.global dfill
dfill:
subcc %o0, 4, %o0
1:
sta %g0, [%o0] 0xf
subcc %o0, 4, %o0
sta %g0, [%o0] 0xf
subcc %o0, 4, %o0
sta %g0, [%o0] 0xf
subcc %o0, 4, %o0
sta %g0, [%o0] 0xf
sta %g0, [%o0] 0xe
subcc %o0, 4, %o0
bg 1b
nop
retl
nop
.global ddramtest1
ddramtest1:
mov %o0, %o4
mov %o2, %o3
1:
subcc %o4, 8, %o4
bg 1b
std %o2, [%o4 + %o1]
mov %o0, %o4
1:
subcc %o4, 8, %o4
bg 1b
ldd [%o4 + %o1], %g0
mov %o0, %o4
subcc %o4, 4, %o4
ld [%o4 + %o1], %o3
2:
subcc %o3, %o2, %g0
bne 6f
subcc %o4, 4, %o4
bg,a 2b
ld [%o4 + %o1], %o3
retl
mov 0, %o0
6: mov 1, %o0
.global ddramtest2
ddramtest2:
mov %o0, %o4
mov %o2, %o3
1:
subcc %o4, 8, %o4
bg 1b
std %o2, [%o4 + %o1]
mov %o0, %o4
subcc %o4, 4, %o4
ld [%o4 + %o1], %o3
2:
subcc %o3, %o2, %g0
bne 6f
subcc %o4, 4, %o4
bg,a 2b
ld [%o4 + %o1], %o3
retl
mov 0, %o0
6: mov 1, %o0
.global idramtest
idramtest:
mov %o0, %o4 ! init data ram
subcc %o4, 4, %o4
sta %o1, [%o4] 0xd
1:
lda [%o4] 0xd, %o5
subcc %o5, %o1, %g0
bne 6f
subcc %o4, 4, %o4
bg 1b
sta %o1, [%o4] 0xd
retl
mov 0, %o0
6: mov 1, %o0
.global itramtest
itramtest:
mov %o0, %o5 ! init data ram
subcc %o5, %o2, %o5
sta %o3, [%o5] 0xc
1:
lda [%o5] 0xc, %o4
xor %o4, %o3, %o4
andcc %o4, %o1, %o4
bne 6f
subcc %o5, %o2, %o5
bg 1b
sta %o3, [%o5] 0xc
retl
mov 0, %o0
6: mov 1, %o0
.global dtramtest
dtramtest:
mov %o0, %o5 ! init data ram
subcc %o5, %o3, %o5
sta %o4, [%o1 + %o5] 0xe
1:
lda [%o1 + %o5] 0xe, %g2
xor %g2, %o4, %g2
andcc %g2, %o2, %g2
bne 6f
subcc %o5, %o3, %o5
bg 1b
sta %o4, [%o1 + %o5] 0xe
retl
mov 0, %o0
6: mov 1, %o0