76 lines
1.5 KiB
ArmAsm
76 lines
1.5 KiB
ArmAsm
#################################################################
|
|
# #
|
|
# Copyright 2001, 2009 Fidelity Information Services, Inc #
|
|
# #
|
|
# This source code contains the intellectual property #
|
|
# of its copyright holder(s), and is made available #
|
|
# under a license. If you do not know the terms of #
|
|
# the license, please stop and do not read further. #
|
|
# #
|
|
#################################################################
|
|
|
|
# PAGE ,132
|
|
.title op_contain.s
|
|
|
|
# .386
|
|
# .MODEL FLAT, C
|
|
|
|
.include "linkage.si"
|
|
.INCLUDE "mval_def.si"
|
|
|
|
.sbttl op_contain
|
|
# PAGE +
|
|
.text
|
|
sav_eax = -4
|
|
sav_edx = -8
|
|
|
|
.extern matchc
|
|
.extern n2s
|
|
.extern underr
|
|
|
|
# PUBLIC op_contain
|
|
ENTRY op_contain
|
|
enter $8, $0
|
|
pushl %edi
|
|
pushl %esi
|
|
pushl %ebx
|
|
|
|
movl %edx, sav_edx(%ebp)
|
|
mv_force_defined %eax, l1
|
|
movl %eax, sav_eax(%ebp)
|
|
mv_force_str %eax, l2
|
|
|
|
movl sav_edx(%ebp), %edx
|
|
mv_force_defined %edx, l3
|
|
movl %edx, sav_edx(%ebp)
|
|
mv_force_str %edx, l4
|
|
|
|
pushl $1 # pieces argument but have to pass its addr
|
|
movl %esp, %edx
|
|
subl $4, %esp # returned value
|
|
movl %esp, %eax
|
|
pushl %edx # parm 6
|
|
pushl %eax # parm 5
|
|
movl sav_eax(%ebp), %eax
|
|
movl sav_edx(%ebp), %edx
|
|
pushl mval_a_straddr(%eax) # parm 4
|
|
movl mval_l_strlen(%eax), %eax
|
|
pushl %eax # parm 3
|
|
pushl mval_a_straddr(%edx) # parm 2
|
|
movl mval_l_strlen(%edx), %eax
|
|
pushl %eax # parm 1
|
|
call matchc
|
|
leal 24(%esp), %esp # remove args
|
|
popl %eax # return value
|
|
popl %edx # updated pieces value (ignored)
|
|
cmpl $0, %eax
|
|
|
|
popl %ebx
|
|
popl %esi
|
|
popl %edi
|
|
leave
|
|
ret
|
|
# op_contain ENDP
|
|
|
|
# END
|