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

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-dev/] [fsf-gcc-snapshot-1-mar-12/] [or1k-gcc/] [boehm-gc/] [sparc_netbsd_mach_dep.s] - Diff between revs 721 and 783

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

Rev 721 Rev 783
!       SPARCompiler 3.0 and later apparently no longer handles
!       SPARCompiler 3.0 and later apparently no longer handles
!       asm outside functions.  So we need a separate .s file
!       asm outside functions.  So we need a separate .s file
!       This is only set up for SunOS 4.
!       This is only set up for SunOS 4.
!       Assumes this is called before the stack contents are
!       Assumes this is called before the stack contents are
!       examined.
!       examined.
 
 
#include "machine/asm.h"
#include "machine/asm.h"
 
 
        .seg    "text"
        .seg    "text"
        .globl  _C_LABEL(GC_save_regs_in_stack)
        .globl  _C_LABEL(GC_save_regs_in_stack)
        .globl  _C_LABEL(GC_push_regs)
        .globl  _C_LABEL(GC_push_regs)
_C_LABEL(GC_save_regs_in_stack):
_C_LABEL(GC_save_regs_in_stack):
_C_LABEL(GC_push_regs):
_C_LABEL(GC_push_regs):
        ta      0x3   ! ST_FLUSH_WINDOWS
        ta      0x3   ! ST_FLUSH_WINDOWS
        mov     %sp,%o0
        mov     %sp,%o0
        retl
        retl
        nop
        nop
 
 
        .globl  _C_LABEL(GC_clear_stack_inner)
        .globl  _C_LABEL(GC_clear_stack_inner)
_C_LABEL(GC_clear_stack_inner):
_C_LABEL(GC_clear_stack_inner):
        mov     %sp,%o2         ! Save sp
        mov     %sp,%o2         ! Save sp
        add     %sp,-8,%o3      ! p = sp-8
        add     %sp,-8,%o3      ! p = sp-8
        clr     %g1             ! [g0,g1] = 0
        clr     %g1             ! [g0,g1] = 0
        add     %o1,-0x60,%sp   ! Move sp out of the way,
        add     %o1,-0x60,%sp   ! Move sp out of the way,
                                ! so that traps still work.
                                ! so that traps still work.
                                ! Includes some extra words
                                ! Includes some extra words
                                ! so we can be sloppy below.
                                ! so we can be sloppy below.
loop:
loop:
        std     %g0,[%o3]       ! *(long long *)p = 0
        std     %g0,[%o3]       ! *(long long *)p = 0
        cmp     %o3,%o1
        cmp     %o3,%o1
        bgu     loop            ! if (p > limit) goto loop
        bgu     loop            ! if (p > limit) goto loop
        add     %o3,-8,%o3      ! p -= 8 (delay slot)
        add     %o3,-8,%o3      ! p -= 8 (delay slot)
        retl
        retl
        mov     %o2,%sp         ! Restore sp., delay slot
        mov     %o2,%sp         ! Restore sp., delay slot
 
 

powered by: WebSVN 2.1.0

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