OpenCores
URL https://opencores.org/ocsvn/eco32/eco32/trunk

Subversion Repositories eco32

[/] [eco32/] [tags/] [eco32-0.23/] [hwtests/] [memtest2/] [memtest2.s] - Diff between revs 14 and 157

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 14 Rev 157
;
;
; memtest2.s -- memory test
; memtest2.s -- memory test
;
;
 
 
; $2 temporary
; $2 temporary
; $3 tbl address
; $3 tbl address
; $4 mem address
; $4 mem address
; $5 tbl count
; $5 tbl count
; $6 mem count
; $6 mem count
; $7 error
; $7 error
; $8 I/O base
; $8 I/O base
; $9 value read
; $9 value read
; $10 reference value
; $10 reference value
 
 
        .set    mem_base,0xC0000000
        .set    mem_base,0xC0000000
        .set    mem_size,1024*1024
        .set    mem_size,1024*1024
        .set    io_base,0xF0300000
        .set    io_base,0xF0300000
 
 
        ;
        ;
        ; write memory
        ; write memory
        ;
        ;
write:
write:
        add     $4,$0,mem_base
        add     $4,$0,mem_base
        add     $6,$0,mem_size
        add     $6,$0,mem_size
        add     $3,$0,tbl
        add     $3,$0,tbl
        add     $5,$0,257
        add     $5,$0,257
wrloop:
wrloop:
        ldbu    $2,$3,0
        ldbu    $2,$3,0
        stb     $2,$4,0
        stb     $2,$4,0
        add     $3,$3,1
        add     $3,$3,1
        sub     $5,$5,1
        sub     $5,$5,1
        bne     $5,$0,wrloop1
        bne     $5,$0,wrloop1
        add     $3,$0,tbl
        add     $3,$0,tbl
        add     $5,$0,257
        add     $5,$0,257
wrloop1:
wrloop1:
        add     $4,$4,1
        add     $4,$4,1
        sub     $6,$6,1
        sub     $6,$6,1
        bne     $6,$0,wrloop
        bne     $6,$0,wrloop
        ;
        ;
        ; read memory
        ; read memory
        ;
        ;
read:
read:
        add     $4,$0,mem_base
        add     $4,$0,mem_base
        add     $6,$0,mem_size
        add     $6,$0,mem_size
        add     $3,$0,tbl
        add     $3,$0,tbl
        add     $5,$0,257
        add     $5,$0,257
        add     $7,$0,0
        add     $7,$0,0
rdloop:
rdloop:
        ; always check byte
        ; always check byte
byte:
byte:
        ldbu    $9,$4,0
        ldbu    $9,$4,0
        ldbu    $10,$3,0
        ldbu    $10,$3,0
        beq     $9,$10,byteok
        beq     $9,$10,byteok
        add     $7,$0,1
        add     $7,$0,1
byteok:
byteok:
        ; possibly check halfword
        ; possibly check halfword
half:
half:
        and     $2,$4,1
        and     $2,$4,1
        bne     $2,$0,halfok
        bne     $2,$0,halfok
        ldhu    $9,$4,0
        ldhu    $9,$4,0
        ldbu    $10,$3,0
        ldbu    $10,$3,0
        jal     shft8
        jal     shft8
        ldbu    $2,$3,1
        ldbu    $2,$3,1
        or      $10,$10,$2
        or      $10,$10,$2
        beq     $9,$10,halfok
        beq     $9,$10,halfok
        add     $7,$0,1
        add     $7,$0,1
halfok:
halfok:
        ; possibly check word
        ; possibly check word
word:
word:
        and     $2,$4,3
        and     $2,$4,3
        bne     $2,$0,wordok
        bne     $2,$0,wordok
        ldw     $9,$4,0
        ldw     $9,$4,0
        ldbu    $10,$3,0
        ldbu    $10,$3,0
        jal     shft8
        jal     shft8
        ldbu    $2,$3,1
        ldbu    $2,$3,1
        or      $10,$10,$2
        or      $10,$10,$2
        jal     shft8
        jal     shft8
        ldbu    $2,$3,2
        ldbu    $2,$3,2
        or      $10,$10,$2
        or      $10,$10,$2
        jal     shft8
        jal     shft8
        ldbu    $2,$3,3
        ldbu    $2,$3,3
        or      $10,$10,$2
        or      $10,$10,$2
        beq     $9,$10,wordok
        beq     $9,$10,wordok
        add     $7,$0,1
        add     $7,$0,1
wordok:
wordok:
        ; next address
        ; next address
        add     $3,$3,1
        add     $3,$3,1
        sub     $5,$5,1
        sub     $5,$5,1
        bne     $5,$0,rdloop1
        bne     $5,$0,rdloop1
        add     $3,$0,tbl
        add     $3,$0,tbl
        add     $5,$0,257
        add     $5,$0,257
rdloop1:
rdloop1:
        add     $4,$4,1
        add     $4,$4,1
        sub     $6,$6,1
        sub     $6,$6,1
        bne     $6,$0,rdloop
        bne     $6,$0,rdloop
        ;
        ;
        ; show result
        ; show result
        ;
        ;
        bne     $7,$0,error
        bne     $7,$0,error
ok:
ok:
        add     $7,$0,'.'
        add     $7,$0,'.'
        jal     out
        jal     out
        j       halt
        j       halt
error:
error:
        add     $7,$0,'?'
        add     $7,$0,'?'
        jal     out
        jal     out
        j       halt
        j       halt
        ;
        ;
        ; finally, halt
        ; finally, halt
        ;
        ;
halt:
halt:
        j       halt
        j       halt
 
 
shft8:
shft8:
        add     $10,$10,$10
        add     $10,$10,$10
        add     $10,$10,$10
        add     $10,$10,$10
        add     $10,$10,$10
        add     $10,$10,$10
        add     $10,$10,$10
        add     $10,$10,$10
        add     $10,$10,$10
        add     $10,$10,$10
        add     $10,$10,$10
        add     $10,$10,$10
        add     $10,$10,$10
        add     $10,$10,$10
        add     $10,$10,$10
        add     $10,$10,$10
        jr      $31
        jr      $31
 
 
out:
out:
        add     $8,$0,io_base
        add     $8,$0,io_base
out1:
out1:
        ldw     $9,$8,8
        ldw     $9,$8,8
        and     $9,$9,1
        and     $9,$9,1
        beq     $9,$0,out1
        beq     $9,$0,out1
        stw     $7,$8,12
        stw     $7,$8,12
        jr      $31
        jr      $31
 
 
tbl:
tbl:
        .byte   0x45,0x23,0x98,0x48,0xDC,0x5C,0x94,0x58
        .byte   0x45,0x23,0x98,0x48,0xDC,0x5C,0x94,0x58
        .byte   0x1F,0x7C,0x58,0xD7,0x41,0x1E,0xA9,0xE1
        .byte   0x1F,0x7C,0x58,0xD7,0x41,0x1E,0xA9,0xE1
        .byte   0x00,0x62,0x08,0x27,0x23,0xE9,0xCD,0x43
        .byte   0x00,0x62,0x08,0x27,0x23,0xE9,0xCD,0x43
        .byte   0x0F,0x25,0xF9,0x72,0xC2,0xD7,0xC4,0x07
        .byte   0x0F,0x25,0xF9,0x72,0xC2,0xD7,0xC4,0x07
        .byte   0xFB,0x5D,0x50,0xD7,0xBA,0xE4,0x30,0xD9
        .byte   0xFB,0x5D,0x50,0xD7,0xBA,0xE4,0x30,0xD9
        .byte   0x61,0x89,0xB1,0xA3,0xA8,0x5A,0x84,0xA8
        .byte   0x61,0x89,0xB1,0xA3,0xA8,0x5A,0x84,0xA8
        .byte   0xBD,0x8C,0xD0,0xE0,0x76,0x9E,0x24,0x86
        .byte   0xBD,0x8C,0xD0,0xE0,0x76,0x9E,0x24,0x86
        .byte   0xC4,0x1D,0xF8,0x86,0xF5,0xBD,0x8D,0xF0
        .byte   0xC4,0x1D,0xF8,0x86,0xF5,0xBD,0x8D,0xF0
        .byte   0x1A,0xDD,0xC8,0xD4,0xC2,0xF8,0xAD,0x23
        .byte   0x1A,0xDD,0xC8,0xD4,0xC2,0xF8,0xAD,0x23
        .byte   0x82,0x5F,0xC6,0x2A,0xB9,0x4A,0xD3,0x77
        .byte   0x82,0x5F,0xC6,0x2A,0xB9,0x4A,0xD3,0x77
        .byte   0xD7,0xA4,0x58,0x4E,0x42,0x7C,0xD4,0x06
        .byte   0xD7,0xA4,0x58,0x4E,0x42,0x7C,0xD4,0x06
        .byte   0x9A,0xCC,0x8D,0x8F,0x89,0x1B,0x7F,0xA4
        .byte   0x9A,0xCC,0x8D,0x8F,0x89,0x1B,0x7F,0xA4
        .byte   0xF9,0x48,0x78,0xBB,0x40,0x26,0xDE,0xC3
        .byte   0xF9,0x48,0x78,0xBB,0x40,0x26,0xDE,0xC3
        .byte   0x85,0xA5,0xED,0x3F,0xF0,0xC1,0xB7,0xC7
        .byte   0x85,0xA5,0xED,0x3F,0xF0,0xC1,0xB7,0xC7
        .byte   0x65,0x0F,0x15,0xA8,0x8C,0xE9,0xAF,0x26
        .byte   0x65,0x0F,0x15,0xA8,0x8C,0xE9,0xAF,0x26
        .byte   0xB6,0x3C,0xB6,0x40,0x57,0x35,0xE4,0x50
        .byte   0xB6,0x3C,0xB6,0x40,0x57,0x35,0xE4,0x50
        .byte   0x7E,0x5D,0x0B,0xBF,0x84,0xEA,0x82,0x0A
        .byte   0x7E,0x5D,0x0B,0xBF,0x84,0xEA,0x82,0x0A
        .byte   0x8F,0x70,0x4A,0x7F,0x31,0x02,0x47,0x96
        .byte   0x8F,0x70,0x4A,0x7F,0x31,0x02,0x47,0x96
        .byte   0x12,0x5D,0x3F,0x9E,0x47,0xEE,0xC5,0xFD
        .byte   0x12,0x5D,0x3F,0x9E,0x47,0xEE,0xC5,0xFD
        .byte   0x2B,0x7B,0x3E,0x82,0xB1,0x23,0xD3,0x2F
        .byte   0x2B,0x7B,0x3E,0x82,0xB1,0x23,0xD3,0x2F
        .byte   0x81,0xDF,0xEE,0x06,0xCA,0x70,0x11,0x59
        .byte   0x81,0xDF,0xEE,0x06,0xCA,0x70,0x11,0x59
        .byte   0xE0,0x5B,0xD9,0x11,0x5E,0x21,0xA8,0x70
        .byte   0xE0,0x5B,0xD9,0x11,0x5E,0x21,0xA8,0x70
        .byte   0x7E,0xE7,0x0E,0xC5,0xD6,0xD4,0xC3,0x01
        .byte   0x7E,0xE7,0x0E,0xC5,0xD6,0xD4,0xC3,0x01
        .byte   0x4F,0x01,0x84,0x01,0x24,0x57,0x30,0xA5
        .byte   0x4F,0x01,0x84,0x01,0x24,0x57,0x30,0xA5
        .byte   0x37,0x1E,0xAC,0x01,0x8F,0xBD,0x5A,0x70
        .byte   0x37,0x1E,0xAC,0x01,0x8F,0xBD,0x5A,0x70
        .byte   0x18,0x34,0x82,0x77,0x55,0x2A,0xE7,0xD3
        .byte   0x18,0x34,0x82,0x77,0x55,0x2A,0xE7,0xD3
        .byte   0x12,0xF6,0x99,0xE8,0xCA,0x5C,0xEA,0x1A
        .byte   0x12,0xF6,0x99,0xE8,0xCA,0x5C,0xEA,0x1A
        .byte   0x5D,0x6E,0x1B,0x82,0xC5,0x4B,0x28,0xFD
        .byte   0x5D,0x6E,0x1B,0x82,0xC5,0x4B,0x28,0xFD
        .byte   0x6A,0xD4,0xFE,0xFA,0x91,0x59,0x6A,0xAA
        .byte   0x6A,0xD4,0xFE,0xFA,0x91,0x59,0x6A,0xAA
        .byte   0x8D,0xEC,0x21,0xE3,0x17,0x09,0xB7,0x29
        .byte   0x8D,0xEC,0x21,0xE3,0x17,0x09,0xB7,0x29
        .byte   0xFF,0x50,0x12,0xC9,0xAC,0xFC,0xE3,0x0A
        .byte   0xFF,0x50,0x12,0xC9,0xAC,0xFC,0xE3,0x0A
        .byte   0x6B,0xFF,0x8D,0x31,0x4A,0xB5,0x2E,0xB5
        .byte   0x6B,0xFF,0x8D,0x31,0x4A,0xB5,0x2E,0xB5
        .byte   0x8A
        .byte   0x8A
augment:
augment:
        .byte   0x45,0x23,0x98
        .byte   0x45,0x23,0x98
 
 

powered by: WebSVN 2.1.0

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