OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gdb/] [gdb-6.8/] [gdb-6.8.openrisc-2.1/] [sim/] [testsuite/] [frv-elf/] [cache.s] - Diff between revs 24 and 33

Only display areas with differences | Details | Blame | View Log

Rev 24 Rev 33
# run with --memory-region 0xff000000,4 --memory-region 0xfe000000,00404000
# run with --memory-region 0xff000000,4 --memory-region 0xfe000000,00404000
; Exit with return code
; Exit with return code
        .macro exit rc
        .macro exit rc
        setlos.p        #1,gr7
        setlos.p        #1,gr7
        setlos          \rc,gr8
        setlos          \rc,gr8
        tira            gr0,#0
        tira            gr0,#0
        .endm
        .endm
 
 
; Pass the test case
; Pass the test case
        .macro pass
        .macro pass
pass:
pass:
        setlos.p        #5,gr10
        setlos.p        #5,gr10
        setlos          #1,gr8
        setlos          #1,gr8
        setlos          #5,gr7
        setlos          #5,gr7
        sethi.p         %hi(passmsg),gr9
        sethi.p         %hi(passmsg),gr9
        setlo           %lo(passmsg),gr9
        setlo           %lo(passmsg),gr9
        tira            gr0,#0
        tira            gr0,#0
        exit            #0
        exit            #0
        .endm
        .endm
 
 
; Fail the testcase
; Fail the testcase
        .macro fail
        .macro fail
fail\@:
fail\@:
        setlos.p        #5,gr10
        setlos.p        #5,gr10
        setlos          #1,gr8
        setlos          #1,gr8
        setlos          #5,gr7
        setlos          #5,gr7
        sethi.p         %hi(failmsg),gr9
        sethi.p         %hi(failmsg),gr9
        setlo           %lo(failmsg),gr9
        setlo           %lo(failmsg),gr9
        tira            gr0,#0
        tira            gr0,#0
        exit            #1
        exit            #1
        .endm
        .endm
 
 
        .data
        .data
failmsg:
failmsg:
        .ascii "fail\n"
        .ascii "fail\n"
passmsg:
passmsg:
        .ascii "pass\n"
        .ascii "pass\n"
 
 
        .text
        .text
        .global _start
        .global _start
_start:
_start:
        movsg           hsr0,gr10       ; enable insn and data caches
        movsg           hsr0,gr10       ; enable insn and data caches
        sethi.p         0xc800,gr11     ; in copy-back mode
        sethi.p         0xc800,gr11     ; in copy-back mode
        setlo           0x0000,gr11
        setlo           0x0000,gr11
        or              gr10,gr11,gr10
        or              gr10,gr11,gr10
        movgs           gr10,hsr0
        movgs           gr10,hsr0
 
 
        sethi.p         0x7,sp
        sethi.p         0x7,sp
        setlo           0x0000,sp
        setlo           0x0000,sp
 
 
        ; fill the cache
        ; fill the cache
        sethi.p         %hi(done1),gr10
        sethi.p         %hi(done1),gr10
        setlo           %lo(done1),gr10
        setlo           %lo(done1),gr10
        movgs           gr10,lr
        movgs           gr10,lr
        setlos.p        0x1000,gr10
        setlos.p        0x1000,gr10
        setlos          0x0,gr11
        setlos          0x0,gr11
        movgs           gr10,lcr
        movgs           gr10,lcr
write1: st.p            gr11,@(sp,gr11)
write1: st.p            gr11,@(sp,gr11)
        addi.p          gr11,4,gr11
        addi.p          gr11,4,gr11
        bctrlr.p        1,0
        bctrlr.p        1,0
        bra             write1
        bra             write1
done1:
done1:
        ; read it back
        ; read it back
        sethi.p         %hi(done2),gr10
        sethi.p         %hi(done2),gr10
        setlo           %lo(done2),gr10
        setlo           %lo(done2),gr10
        movgs           gr10,lr
        movgs           gr10,lr
        setlos.p        0x1000,gr10
        setlos.p        0x1000,gr10
        setlos          0x0,gr11
        setlos          0x0,gr11
        movgs           gr10,lcr
        movgs           gr10,lcr
read1:  ld              @(sp,gr11),gr12
read1:  ld              @(sp,gr11),gr12
        cmp             gr11,gr12,icc0
        cmp             gr11,gr12,icc0
        bne             icc0,1,fail
        bne             icc0,1,fail
        addi.p          gr11,4,gr11
        addi.p          gr11,4,gr11
        bctrlr.p        1,0
        bctrlr.p        1,0
        bra             read1
        bra             read1
done2:
done2:
 
 
        ; fill the cache twice
        ; fill the cache twice
        sethi.p         %hi(done3),gr10
        sethi.p         %hi(done3),gr10
        setlo           %lo(done3),gr10
        setlo           %lo(done3),gr10
        movgs           gr10,lr
        movgs           gr10,lr
        setlos.p        0x2000,gr10
        setlos.p        0x2000,gr10
        setlos          0x0,gr11
        setlos          0x0,gr11
        movgs           gr10,lcr
        movgs           gr10,lcr
write3: st.p            gr11,@(sp,gr11)
write3: st.p            gr11,@(sp,gr11)
        addi.p          gr11,4,gr11
        addi.p          gr11,4,gr11
        bctrlr.p        1,0
        bctrlr.p        1,0
        bra             write3
        bra             write3
done3:
done3:
        ; read it back
        ; read it back
        sethi.p         %hi(done4),gr10
        sethi.p         %hi(done4),gr10
        setlo           %lo(done4),gr10
        setlo           %lo(done4),gr10
        movgs           gr10,lr
        movgs           gr10,lr
        setlos.p        0x2000,gr10
        setlos.p        0x2000,gr10
        setlos          0x0,gr11
        setlos          0x0,gr11
        movgs           gr10,lcr
        movgs           gr10,lcr
read4:  ld              @(sp,gr11),gr12
read4:  ld              @(sp,gr11),gr12
        cmp             gr11,gr12,icc0
        cmp             gr11,gr12,icc0
        bne             icc0,1,fail
        bne             icc0,1,fail
        addi.p          gr11,4,gr11
        addi.p          gr11,4,gr11
        bctrlr.p        1,0
        bctrlr.p        1,0
        bra             read4
        bra             read4
done4:
done4:
        ; read it back in reverse
        ; read it back in reverse
        sethi.p         %hi(done5),gr10
        sethi.p         %hi(done5),gr10
        setlo           %lo(done5),gr10
        setlo           %lo(done5),gr10
        movgs           gr10,lr
        movgs           gr10,lr
        setlos.p        0x2000,gr10
        setlos.p        0x2000,gr10
        setlos          0x7ffc,gr11
        setlos          0x7ffc,gr11
        movgs           gr10,lcr
        movgs           gr10,lcr
read5:  ld              @(sp,gr11),gr12
read5:  ld              @(sp,gr11),gr12
        cmp             gr11,gr12,icc0
        cmp             gr11,gr12,icc0
        bne             icc0,1,fail
        bne             icc0,1,fail
        subi.p          gr11,4,gr11
        subi.p          gr11,4,gr11
        bctrlr.p        1,0
        bctrlr.p        1,0
        bra             read5
        bra             read5
done5:
done5:
 
 
        ; access data and insns in non-cache areas
        ; access data and insns in non-cache areas
        sethi.p         0x8038,gr11             ; bctrlr 0,0
        sethi.p         0x8038,gr11             ; bctrlr 0,0
        setlo           0x2000,gr11
        setlo           0x2000,gr11
 
 
        sethi.p         0xff00,gr10             ; documented area
        sethi.p         0xff00,gr10             ; documented area
        setlo           0x0000,gr10
        setlo           0x0000,gr10
        sti             gr11,@(gr10,0)
        sti             gr11,@(gr10,0)
        jmpl            @(gr10,gr0)
        jmpl            @(gr10,gr0)
 
 
        ;  enable RAM mode
        ;  enable RAM mode
        movsg           hsr0,gr10
        movsg           hsr0,gr10
        sethi.p         0x0040,gr12
        sethi.p         0x0040,gr12
        setlo           0x0000,gr12
        setlo           0x0000,gr12
        or              gr10,gr12,gr10
        or              gr10,gr12,gr10
        movgs           gr10,hsr0
        movgs           gr10,hsr0
 
 
        sethi.p         0xfe00,gr10             ; documented area
        sethi.p         0xfe00,gr10             ; documented area
        setlo           0x0400,gr10
        setlo           0x0400,gr10
        sti             gr11,@(gr10,0)
        sti             gr11,@(gr10,0)
        jmpl            @(gr10,gr0)
        jmpl            @(gr10,gr0)
 
 
        sethi.p         0xfe40,gr10             ; documented area
        sethi.p         0xfe40,gr10             ; documented area
        setlo           0x0400,gr10
        setlo           0x0400,gr10
        sti             gr11,@(gr10,0)
        sti             gr11,@(gr10,0)
        dcf             @(gr10,gr0)
        dcf             @(gr10,gr0)
        jmpl            @(gr10,gr0)
        jmpl            @(gr10,gr0)
 
 
        sethi.p         0x0007,gr10             ; non RAM area
        sethi.p         0x0007,gr10             ; non RAM area
        setlo           0x0000,gr10
        setlo           0x0000,gr10
        sti             gr11,@(gr10,0)
        sti             gr11,@(gr10,0)
        jmpl            @(gr10,gr0)
        jmpl            @(gr10,gr0)
 
 
        sethi.p         0xfe00,gr10             ; insn RAM area
        sethi.p         0xfe00,gr10             ; insn RAM area
        setlo           0x0000,gr10
        setlo           0x0000,gr10
        sti             gr11,@(gr10,0)
        sti             gr11,@(gr10,0)
        jmpl            @(gr10,gr0)
        jmpl            @(gr10,gr0)
 
 
        sethi.p         0xfe40,gr10             ; data RAM area
        sethi.p         0xfe40,gr10             ; data RAM area
        setlo           0x0000,gr10
        setlo           0x0000,gr10
        sti             gr11,@(gr10,0)
        sti             gr11,@(gr10,0)
        dcf             @(gr10,gr0)
        dcf             @(gr10,gr0)
        jmpl            @(gr10,gr0)
        jmpl            @(gr10,gr0)
 
 
        pass
        pass
fail:
fail:
        fail
        fail
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.