48 lines
1.2 KiB
ArmAsm
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
|