17 lines
400 B
ArmAsm
17 lines
400 B
ArmAsm
|
# $Header$
|
||
|
|
||
|
.globl .strlb
|
||
|
.globl .gto
|
||
|
# Nonlocal goto.
|
||
|
# On the stack is a pointer to a block containing :
|
||
|
# 1. the new local base (ptr+8)
|
||
|
# 2. the new stack pointer (ptr+4)
|
||
|
# 3. the new program counter (ptr)
|
||
|
.gto:
|
||
|
movl (sp)+,r2
|
||
|
movl 4(r2),sp # Store new stack pointer
|
||
|
pushl (r2) # Push target address
|
||
|
pushl 8(r2) # Push new local base
|
||
|
jsb .strlb # Store in fp, compute ap
|
||
|
rsb
|