58 lines
1.2 KiB
ArmAsm
58 lines
1.2 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_fnget.s
|
||
|
|
||
|
# .386
|
||
|
# .MODEL FLAT, C
|
||
|
|
||
|
.include "linkage.si"
|
||
|
.INCLUDE "mval_def.si"
|
||
|
|
||
|
.sbttl op_fnget
|
||
|
# PAGE +
|
||
|
# ------------------------------------
|
||
|
# op_fnget.s
|
||
|
#
|
||
|
# Mumps $Get function
|
||
|
# ------------------------------------
|
||
|
|
||
|
# edx - src. mval
|
||
|
# eax - dest. mval
|
||
|
|
||
|
.text
|
||
|
# PUBLIC op_fnget
|
||
|
ENTRY op_fnget
|
||
|
cmpl $0,%edx
|
||
|
je l5 # if arg = 0, set type and len
|
||
|
mv_if_notdefined %edx, l5
|
||
|
|
||
|
# Copy the mval from [edx] to [eax].
|
||
|
pushl %edi
|
||
|
pushl %esi
|
||
|
movl $mval_byte_len,%ecx
|
||
|
movl %edx,%esi
|
||
|
movl %eax,%edi
|
||
|
REP
|
||
|
movsb
|
||
|
andw $~mval_m_aliascont, mval_w_mvtype(%eax) # Don't propagate alias container flag
|
||
|
popl %esi
|
||
|
popl %edi
|
||
|
ret
|
||
|
|
||
|
l5: movw $mval_m_str,mval_w_mvtype(%eax) # string type
|
||
|
movl $0,mval_l_strlen(%eax) # dest. str. len. = 0
|
||
|
ret
|
||
|
# op_fnget ENDP
|
||
|
|
||
|
# END
|