62 lines
1.6 KiB
ArmAsm
62 lines
1.6 KiB
ArmAsm
#################################################################
|
|
# #
|
|
# Copyright 2007, 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 "g_msf.si"
|
|
.include "linkage.si"
|
|
.INCLUDE "mval_def.si"
|
|
|
|
.sbttl op_contain
|
|
# PAGE +
|
|
.text
|
|
sav_rax = -8
|
|
sav_rdx = -16
|
|
|
|
.extern matchc
|
|
.extern n2s
|
|
|
|
# PUBLIC op_contain
|
|
ENTRY op_contain
|
|
enter $16,$0
|
|
movq REG64_RET1,sav_rdx(REG_FRAME_POINTER)
|
|
mv_force_defined REG64_RET0, l1
|
|
movq REG64_RET0,sav_rax(REG_FRAME_POINTER)
|
|
mv_force_str REG64_RET0, l2
|
|
movq sav_rdx(REG_FRAME_POINTER),REG64_RET1
|
|
mv_force_defined REG64_RET1, l3
|
|
movq REG64_RET1,sav_rdx(REG_FRAME_POINTER)
|
|
mv_force_str REG64_RET1, l4
|
|
subq $8,REG_SP
|
|
movq REG_SP,REG64_ARG5 # 6th Argument
|
|
movq $1,(REG_SP) # init arg to 1.
|
|
subq $8,REG_SP
|
|
movq REG_SP,REG64_ARG4 # 5th Argument
|
|
movq sav_rax(REG_FRAME_POINTER),REG64_RET0
|
|
movq sav_rdx(REG_FRAME_POINTER),REG64_RET1
|
|
movq mval_a_straddr(REG64_RET0),REG64_ARG3 # 4th Argument
|
|
movl mval_l_strlen(REG64_RET0),REG32_ARG2 # 3rd Argument
|
|
movq mval_a_straddr(REG64_RET1),REG64_ARG1 # 2nd Argument
|
|
movl mval_l_strlen(REG64_RET1),REG32_ARG0
|
|
call matchc
|
|
movl (REG_SP), REG32_RET0 # The 5th argument is a pointer to a int. So read only 4 bytes
|
|
addq $1, REG_SP
|
|
cmpl $0,REG32_RET0
|
|
leave
|
|
ret
|
|
# op_contain ENDP
|
|
|
|
# END
|