mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-18 00:50:44 -08:00
New unit
StackScan for DIGITAL Alpha systems Copied from Perforce Change: 17345 ServerID: perforce.ravenbrook.com
This commit is contained in:
parent
132bc4331c
commit
dd688982cf
1 changed files with 42 additions and 0 deletions
42
mps/src/sso1al.s
Normal file
42
mps/src/sso1al.s
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# impl.s.sso1al: STACK SCANNING FOR DIGITAL UNIX / ALPHA
|
||||
#
|
||||
# $HopeName$
|
||||
# Copyright (C) 1997 Harlequin Group, all rights reserved
|
||||
#
|
||||
# .readership: Any MPS developer that is prepared to read Alpha
|
||||
# assembly code in DIGITAL UNIX 'as' syntax.
|
||||
#
|
||||
# See design.mps.sso1al for the design.
|
||||
|
||||
|
||||
.globl StackScan
|
||||
.globl TraceScanAreaTagged
|
||||
|
||||
.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 TraceScanAreaTagged 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,TraceScanAreaTagged
|
||||
ldgp $gp,0($26)
|
||||
# our result is TraceScanAreaTagged's result, so leave $0 untouched
|
||||
|
||||
ldq $26,0($sp)
|
||||
lda $sp,+64($sp)
|
||||
ret $31,($26),1
|
||||
.end StackScan
|
||||
Loading…
Add table
Add a link
Reference in a new issue