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

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gdb-6.8/] [pre-binutils-2.20.1-sync/] [sim/] [testsuite/] [sim/] [v850/] [testutils.inc] - Diff between revs 157 and 223

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

Rev 157 Rev 223
SYS_exit = 1
SYS_exit = 1
SYS_write = 4
SYS_write = 4
        .bss
        .bss
        .space 64
        .space 64
_stack:
_stack:
        .data
        .data
pass_text:
pass_text:
        .string "pass\n"
        .string "pass\n"
fail_text:
fail_text:
        .string "fail\n"
        .string "fail\n"
        .text
        .text
        .global _start
        .global _start
_start:
_start:
        movhi   hi(_stack),     r0,     sp
        movhi   hi(_stack),     r0,     sp
        movea   lo(_stack),     sp,     sp
        movea   lo(_stack),     sp,     sp
        jr      start_test
        jr      start_test
        .macro  seti    val reg
        .macro  seti    val reg
        movhi   hi(\val),r0,\reg
        movhi   hi(\val),r0,\reg
        movea   lo(\val),\reg,\reg
        movea   lo(\val),\reg,\reg
        .endm
        .endm
_pass_1:
_pass_1:
        mov     SYS_write,r6
        mov     SYS_write,r6
        mov     1,r7
        mov     1,r7
        seti    pass_text,r8
        seti    pass_text,r8
        mov     5,r9
        mov     5,r9
        trap    31
        trap    31
        mov     0, r7
        mov     0, r7
        jr      _exit
        jr      _exit
_fail_1:
_fail_1:
        mov     SYS_write,r6
        mov     SYS_write,r6
        mov     1,r7
        mov     1,r7
        seti    fail_text,r8
        seti    fail_text,r8
        mov     5,r9
        mov     5,r9
        trap    31
        trap    31
        mov     1, r7
        mov     1, r7
        jr      _exit
        jr      _exit
_exit:
_exit:
        mov     SYS_exit, r6
        mov     SYS_exit, r6
        mov     0, r8
        mov     0, r8
        mov     0, r9
        mov     0, r9
        trap    31
        trap    31
_pass:
_pass:
        jr      _pass_1
        jr      _pass_1
_fail:
_fail:
        jr      _fail_1
        jr      _fail_1
        .macro  pass
        .macro  pass
        jr      _pass
        jr      _pass
        .endm
        .endm
        .macro  fail
        .macro  fail
        jr      _fail
        jr      _fail
        .endm
        .endm
        # These pass or fail if the given flag is set or not set
        # These pass or fail if the given flag is set or not set
        # Currently, it assumed that the code of any test is going to
        # Currently, it assumed that the code of any test is going to
        # be less than 256 bytes.  Else, we'll have to use a
        # be less than 256 bytes.  Else, we'll have to use a
        # branch-around-jump design instead.
        # branch-around-jump design instead.
        .macro  pass_c
        .macro  pass_c
        bc      _pass
        bc      _pass
        .endm
        .endm
        .macro  fail_c
        .macro  fail_c
        bc      _fail
        bc      _fail
        .endm
        .endm
        .macro  pass_nc
        .macro  pass_nc
        bnc     _pass
        bnc     _pass
        .endm
        .endm
        .macro  fail_nc
        .macro  fail_nc
        bnc     _fail
        bnc     _fail
        .endm
        .endm
        .macro  pass_z
        .macro  pass_z
        bz      _pass
        bz      _pass
        .endm
        .endm
        .macro  fail_z
        .macro  fail_z
        bz      _fail
        bz      _fail
        .endm
        .endm
        .macro  pass_nz
        .macro  pass_nz
        bnz     _pass
        bnz     _pass
        .endm
        .endm
        .macro  fail_nz
        .macro  fail_nz
        bnz     _fail
        bnz     _fail
        .endm
        .endm
        .macro  pass_v
        .macro  pass_v
        bv      _pass
        bv      _pass
        .endm
        .endm
        .macro  fail_v
        .macro  fail_v
        bv      _fail
        bv      _fail
        .endm
        .endm
        .macro  pass_nv
        .macro  pass_nv
        bnv     _pass
        bnv     _pass
        .endm
        .endm
        .macro  fail_nv
        .macro  fail_nv
        bnv     _fail
        bnv     _fail
        .endm
        .endm
        .macro  pass_s
        .macro  pass_s
        bn      _pass
        bn      _pass
        .endm
        .endm
        .macro  fail_s
        .macro  fail_s
        bn      _fail
        bn      _fail
        .endm
        .endm
        .macro  pass_ns
        .macro  pass_ns
        bp      _pass
        bp      _pass
        .endm
        .endm
        .macro  fail_ns
        .macro  fail_ns
        bp      _fail
        bp      _fail
        .endm
        .endm
        .macro  pass_sat
        .macro  pass_sat
        bsa     _pass
        bsa     _pass
        .endm
        .endm
        .macro  fail_sat
        .macro  fail_sat
        bsa     _fail
        bsa     _fail
        .endm
        .endm
        .macro  pass_nsat
        .macro  pass_nsat
        bsa     1f
        bsa     1f
        br      _pass
        br      _pass
1:
1:
        .endm
        .endm
        .macro  fail_nsat
        .macro  fail_nsat
        bsa     1f
        bsa     1f
        br      _fail
        br      _fail
1:
1:
        .endm
        .endm
        # These pass/fail if the given register has/hasn't the specified value in it.
        # These pass/fail if the given register has/hasn't the specified value in it.
        .macro  pass_req        reg val
        .macro  pass_req        reg val
        seti    \val,r10
        seti    \val,r10
        cmp     r10,\reg
        cmp     r10,\reg
        be      _pass
        be      _pass
        .endm
        .endm
        .macro  pass_rne        reg val
        .macro  pass_rne        reg val
        seti    \val,r10
        seti    \val,r10
        cmp     r10,\reg
        cmp     r10,\reg
        bne     _pass
        bne     _pass
        .endm
        .endm
        .macro  fail_req        reg val
        .macro  fail_req        reg val
        seti    \val,r10
        seti    \val,r10
        cmp     r10,\reg
        cmp     r10,\reg
        be      _fail
        be      _fail
        .endm
        .endm
        .macro  fail_rne        reg val
        .macro  fail_rne        reg val
        seti    \val,r10
        seti    \val,r10
        cmp     r10,\reg
        cmp     r10,\reg
        bne     _fail
        bne     _fail
        .endm
        .endm
# convenience version
# convenience version
        .macro  reg     reg val
        .macro  reg     reg val
        seti    \val,r10
        seti    \val,r10
        cmp     r10,\reg
        cmp     r10,\reg
        bne     _fail
        bne     _fail
        .endm
        .endm
z    = 1
z    = 1
nz   = 0
nz   = 0
s    = 2
s    = 2
ns   = 0
ns   = 0
v    = 4
v    = 4
nv   = 0
nv   = 0
c    = 8
c    = 8
nc   = 0
nc   = 0
sat  = 16
sat  = 16
nsat = 0
nsat = 0
# sat c v s z
# sat c v s z
        .macro  flags   fval
        .macro  flags   fval
        stsr    psw, r10
        stsr    psw, r10
        movea   +(\fval), r0, r9
        movea   +(\fval), r0, r9
        andi    31, r10, r10
        andi    31, r10, r10
        cmp     r9, r10
        cmp     r9, r10
        bne     _fail
        bne     _fail
        .endm
        .endm
        .macro  noflags
        .macro  noflags
        stsr    psw, r10
        stsr    psw, r10
        andi    ~0x1f, r10, r10
        andi    ~0x1f, r10, r10
        ldsr    r10, psw
        ldsr    r10, psw
        .endm
        .endm
        .macro  allflags
        .macro  allflags
        stsr    psw, r10
        stsr    psw, r10
        ori     0x1f, r10, r10
        ori     0x1f, r10, r10
        ldsr    r10, psw
        ldsr    r10, psw
        .endm
        .endm
start_test:
start_test:
 
 

powered by: WebSVN 2.1.0

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