ack/mach/vax4/libem/strlb.s
1985-01-18 14:30:03 +00:00

27 lines
569 B
ArmAsm

# $Header$
.globl .strlb
# Store the value that is on the stack in fp.
# Compute ap.
.strlb:
movl (sp)+,r3
movl (sp)+,fp
pushl r3
movl $20,ap # Compute argumentbase from local base.
# Distance is 5 longwords + the number of
# registers saved.
movl $1,r3 # Now check register save mask
movl $12,r2
L1:
bitl r3,6(fp)
beql L2
addl2 $4,ap # Add 1 longword for each register saved
L2:
ashl $1,r3,r3
sobgeq r2,L1
extzv $14,$2,6(fp),r3 # Now find out about the stack alignment
# between fp and ap
addl2 r3,ap # add alignment
addl2 fp,ap
rsb