fis-gtm/sr_i386/op_contain.s

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