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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gdb-7.2/] [gdb/] [testsuite/] [gdb.asm/] [sh.inc] - Rev 841

Compare with Previous | Blame | View Log

# You'll find a bunch of nop opcodes in the below macros.  They are
# there to keep the code correctly aligned.  Be careful to maintain
# them when changing the code.

        comment "subroutine declare"
        .purgem gdbasm_declare
        .macro gdbasm_declare name
        .align  1
        .global \name
\name:
        .endm

        comment "subroutine prologue"
        .macro gdbasm_enter
        mov.l   r14,@-r15
        sts.l   pr,@-r15
        mov     r15,r14
        nop
        .endm

        comment "subroutine epilogue"
        .macro gdbasm_leave
        mov     r14,r15
        lds.l   @r15+,pr
        mov.l   @r15+,r14
        rts
        nop
        nop
        .endm

        comment "subroutine end"
        .purgem gdbasm_end
        .macro gdbasm_end name
        .size   \name, .-_foo1
        .align  1
        .endm

        comment "subroutine call"
        .macro gdbasm_call subr
        mov.l   .Lconst\@,r1
        bra     .Lafterconst\@
        nop
        nop
.Lconst\@:
        .align  2
        .long   \subr
        .align  1
.Lafterconst\@:
        jsr     @r1
        nop
        .endm

        .macro gdbasm_several_nops
        nop
        nop
        nop
        nop
        .endm

        comment "exit (0)"
        .macro gdbasm_exit0
        sleep
        nop
        .endm

        comment "crt0 startup"
        .macro gdbasm_startup
        mov.l   .stackaddr,r15
        bra     .afterstackaddr
        nop
        nop
        .align 2
.stackaddr:
        .long   196608          ! 0x30000
        .align  1
.afterstackaddr:
        .endm

        comment "Declare a data variable"
        .purgem gdbasm_datavar
        .macro gdbasm_datavar name value
        .data
        .align 2
        .type   \name, @object
        .size   \name, 4
\name:
        .long   \value
        .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.