fis-gtm/sr_x86_64/ci_restart.s

48 lines
1.2 KiB
ArmAsm

#################################################################
# #
# Copyright 2007 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 ci_restart.s
.sbttl ci_restart
# .386
# .MODEL FLAT, C
.include "g_msf.si"
.include "linkage.si"
.DATA
.extern param_list
.text
ENTRY ci_restart
movq param_list(REG_IP),REG64_ARG2
movl 8(REG64_ARG2),REG32_ARG3
cmpl $0,REG32_ARG3 # if (argcnt > 0) {
jle L0
leaq 48(REG64_ARG2),REG64_ARG2
movq 0(REG64_ARG2),REG64_ARG5
subl $1,REG32_ARG3
leaq 8(REG64_ARG2),REG64_ARG1
leaq 8(REG_SP),REG64_ARG0
REP
movsq # }
L0: movq param_list(REG_IP),REG64_ACCUM
movl 8(REG64_ACCUM),REG32_ARG4 #argcnt
movl 40(REG64_ACCUM),REG32_ARG3 #mask
movq 32(REG64_ACCUM),REG64_ARG2 #retaddr
movq 24(REG64_ACCUM),REG64_ARG1 #labaddr
movq 16(REG64_ACCUM),REG64_ARG0 #rtnaddr
jmp *(REG64_ACCUM)
ret
# ci_restart ENDP
# END