fis-gtm/sr_i386/g_msf.si

92 lines
2.0 KiB
Plaintext

#################################################################
# #
# Copyright 2001, 2011 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. #
# #
#################################################################
.sbttl g_msf.si
# PAGE +
#-----------------------------------------------
# Mumps stack frame manipulation macros
# for the GNU gas i386 assembler version
#-----------------------------------------------
msf_rvector_off = 0
msf_l_symtab_off = 4
msf_mpc_off = 8
msf_ctxt_off = 12
msf_temps_ptr_off = 16
msf_vartab_ptr_off = 20
msf_vartab_len_off = 24
msf_temp_mvals_off = 26
msf_old_frame_off = 28
msf_typ_off = 32
msf_flags_off = 34
msf_for_ctrl_stack = 36
msf_frame_size = 40
SFT_COUNT = 0x01
SFT_DM = 0x02
SFT_REP_OP = 0x04
SFT_ZBRK_ACT = 0x08
SFT_DEV_ACT = 0x10
SFT_ZTRAP = 0x20
SFT_EXTFUN = 0x40
SFT_ZSTEP_ACT = 0x80
SFT_ZINTR = 0x100
SFF_INDCE = 0x01
SFF_ZTRAP_ERR = 0x02
SFF_DEV_ACT_ERR = 0x04
SFF_CI = 0x08
SFF_ETRAP_ERR = 0x10
.sbttl g_msf.si putframe
.macro putframe
movl frame_pointer,%edx
movl %edi,msf_temps_ptr_off(%edx)
movl %esi,msf_l_symtab_off(%edx)
movl (%esp),%eax
movl %eax,msf_mpc_off(%edx)
.endm
.extern error_return
.sbttl g_msf.si getframe
.macro getframe
movl frame_pointer,%edi
movb msf_flags_off(%edi),%dl
andb $SFF_ETRAP_ERR,%dl
jz lab1\@
call error_return
lab1\@:
movl frame_pointer, %edx
movl msf_temps_ptr_off(%edx),%edi
movl msf_l_symtab_off(%edx),%esi
pushl msf_mpc_off(%edx)
.endm
.sbttl g_msf.si
mrt_jsb = 0
mrt_src_len = 12
mrt_src_addr = 16
mrt_rtn_len = 24
mrt_rtn_addr = 28
mrt_var_ptr = 32
mrt_var_len = 36
mrt_lab_ptr = 40
mrt_lab_len = 44
mrt_lnr_ptr = 48
mrt_lnr_len = 52
mrt_ptxt_ptr = 56
mrt_checksum = 60
mrt_compiler_qlf = 64
mrt_oldr_ptr = 68
mrt_curr_ptr = 72
mrt_tmp_mv = 76
mrt_tmp_sz = 78