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

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gdb/] [gdb-6.8/] [sim/] [testsuite/] [sim/] [arm/] [thumb/] [testutils.inc] - Rev 26

Compare with Previous | Blame | View Log

# FIXME: wip, copied from ../testutils.inc
# r0-r3 are used as tmps, consider them call clobbered by these macros.
# This uses the angel rom monitor calls.
# ??? How do we use the \@ facility of .macros ???
# @ is the comment char!

        .macro a_mvi_h_gr reg, val
        ldr \reg,[pc]
        b . + 8
        .word \val
        .endm

        .macro mvaddr_h_gr reg, addr
        ldr \reg,[pc]
        b . + 8
        .word \val
        .endm

        .macro start
        .data
failmsg:
        .asciz "fail\n"
passmsg:
        .asciz "pass\n"
        .text

do_pass:
        ldr r1, passmsg_addr
        mov r0, #4
        swi #0x123456
        exit 0
passmsg_addr:
        .word passmsg

do_fail:
        ldr r1, failmsg_addr
        mov r0, #4
        swi #0x123456
        exit 1
failmsg_addr:
        .word failmsg

        .global _start
_start:
        .endm

# *** Other macros know pass/fail are 4 bytes in size!  Yuck.

        .macro pass
        b do_pass
        .endm

        .macro fail
        b do_fail
        .endm

        .macro exit rc
        mov r1, #\rc
        mov r0, #0x2a @ decimal 42
        swi #1
        # If that returns, punt with a sigill.
        stc 0,cr0,[r0]
        .endm

# Other macros know this only clobbers r0.
        .macro test_h_gr reg, val
        mvaddr_h_gr r0, \val
        cmp \reg, r0
        beq . + 8
        fail
        .endm

        .macro mvi_h_cc c, n, v, z
        ldi8 r0, 0
        ldi8 r1, 1
        .if xxx
        cmp r0, r1
        .else
        cmp r1, r0
        .endif
        .endm

        .macro test_h_cc c, n, v, z
        .if xxx
        bc . + 8
        fail
        .else
        bnc . + 8
        fail
        .endif
        .endm

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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