1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-09 21:20:45 -08:00
emacs/mps/code/sso1al.s
Richard Brooksby c0bb4cd3cd Removing hopenames from the master sources.
This change will be integrated but ignored (-ay) to the gg-epcore/union sources, so that they retain HopeNames.

Copied from Perforce
 Change: 24911
 ServerID: perforce.ravenbrook.com
2001-12-07 13:19:25 +00:00

42 lines
978 B
ArmAsm

# impl.s.sso1al: STACK SCANNING FOR DIGITAL UNIX / ALPHA
#
# $Id$
# Copyright (c) 2001 Ravenbrook Limited.
#
# .readership: Any MPS developer that is prepared to read Alpha
# assembly code in DIGITAL UNIX 'as' syntax.
#
# See design.mps.sso1al for the design (exists).
.globl StackScan
.globl TraceScanArea
.ent StackScan
StackScan:
ldgp $gp,0($27) # faff with global pointer
lda $sp,-64($sp) # build and declare frame and saveregs
.frame $sp,64,$26
.mask 0x400FE00,-64
stq $26,0($sp) # dump ra and other regs so that they get fixed
stq $9,8($sp)
stq $10,16($sp)
stq $11,24($sp)
stq $12,32($sp)
stq $13,40($sp)
stq $14,48($sp)
stq $15,56($sp)
.prologue 1
# bis $31,$16,$16 1st arg to TraceScanArea is same as our 1st arg
bis $31,$17,$18 # area to be scanned is from $sp to StackBot
bis $31,$sp,$17
jsr $26,TraceScanArea
ldgp $gp,0($26)
# our result is TraceScanArea's result, so leave $0 untouched
ldq $26,0($sp)
lda $sp,+64($sp)
ret $31,($26),1
.end StackScan