Added a branch directory for ARM code.
This commit is contained in:
parent
831df3bc61
commit
6c3ea0fea2
|
@ -25,6 +25,11 @@ else()
|
||||||
set(arch "x86_64")
|
set(arch "x86_64")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
option(BUILD_FOR_ARM "Build for the ARM Architecture" OFF)
|
||||||
|
if(BUILD_FOR_ARM)
|
||||||
|
set(arch "arm")
|
||||||
|
endif()
|
||||||
|
|
||||||
# Choose where to get bootstrap sources.
|
# Choose where to get bootstrap sources.
|
||||||
set(GTM_DIST "" CACHE PATH "Existing GT.M Distribution")
|
set(GTM_DIST "" CACHE PATH "Existing GT.M Distribution")
|
||||||
if(GTM_DIST)
|
if(GTM_DIST)
|
||||||
|
@ -96,7 +101,11 @@ set(gen_xfer_desc 0)
|
||||||
if("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
|
if("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
|
||||||
list(APPEND gt_src_list sr_linux)
|
list(APPEND gt_src_list sr_linux)
|
||||||
if("${CMAKE_SIZEOF_VOID_P}" EQUAL 4)
|
if("${CMAKE_SIZEOF_VOID_P}" EQUAL 4)
|
||||||
|
if(BUILD_FOR_ARM)
|
||||||
|
list(APPEND gt_src_list sr_arm sr_x86_regs sr_unix_nsb)
|
||||||
|
else()
|
||||||
list(APPEND gt_src_list sr_i386 sr_x86_regs sr_unix_nsb)
|
list(APPEND gt_src_list sr_i386 sr_x86_regs sr_unix_nsb)
|
||||||
|
endif()
|
||||||
else()
|
else()
|
||||||
list(APPEND gt_src_list sr_x86_64 sr_x86_regs)
|
list(APPEND gt_src_list sr_x86_64 sr_x86_regs)
|
||||||
set(gen_xfer_desc 1)
|
set(gen_xfer_desc 1)
|
||||||
|
|
|
@ -0,0 +1,91 @@
|
||||||
|
/****************************************************************
|
||||||
|
* *
|
||||||
|
* Copyright 2001, 2012 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. *
|
||||||
|
* *
|
||||||
|
****************************************************************/
|
||||||
|
|
||||||
|
#include "mdef.h"
|
||||||
|
|
||||||
|
#include "gtm_string.h"
|
||||||
|
|
||||||
|
#include "i386.h"
|
||||||
|
#include "urx.h"
|
||||||
|
#include <rtnhdr.h>
|
||||||
|
#include "op.h"
|
||||||
|
#include <auto_zlink.h>
|
||||||
|
|
||||||
|
#define PEA_SZ 5
|
||||||
|
#define XFER_BYTE_SZ 3
|
||||||
|
#define XFER_LONG_SZ 6
|
||||||
|
#define INST_SZ 1
|
||||||
|
|
||||||
|
error_def(ERR_LABELUNKNOWN);
|
||||||
|
error_def(ERR_ROUTINEUNKNOWN);
|
||||||
|
|
||||||
|
rhdtyp *auto_zlink (unsigned char *pc, int4 **line)
|
||||||
|
{
|
||||||
|
char *adj_pc; /* address of PEA rtnref offset */
|
||||||
|
mstr rname;
|
||||||
|
mident_fixed rname_local;
|
||||||
|
urx_rtnref *rtnurx;
|
||||||
|
mval rtn;
|
||||||
|
rhdtyp *rhead;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
ModR_M modrm;
|
||||||
|
unsigned char byte;
|
||||||
|
} modrm_byte_byte, modrm_byte_long;
|
||||||
|
|
||||||
|
/* ASSUMPTION -- The instruction previous to the current mpc is a transfer table jump.
|
||||||
|
* This is either a byte or a int4 displacement off of ebx, instruction
|
||||||
|
* size either 3 or 6 (prefix byte, ModR/M byte, 8- or 32-bit offset).
|
||||||
|
*/
|
||||||
|
modrm_byte_byte.modrm.reg_opcode = I386_INS_CALL_Ev;
|
||||||
|
modrm_byte_byte.modrm.mod = I386_MOD32_BASE_DISP_8;
|
||||||
|
modrm_byte_byte.modrm.r_m = I386_REG_EBX;
|
||||||
|
modrm_byte_long.modrm.reg_opcode = I386_INS_CALL_Ev;
|
||||||
|
modrm_byte_long.modrm.mod = I386_MOD32_BASE_DISP_32;
|
||||||
|
modrm_byte_long.modrm.r_m = I386_REG_EBX;
|
||||||
|
if ((*(pc - XFER_BYTE_SZ) == I386_INS_Grp5_Prefix) && (*(pc - XFER_BYTE_SZ + 1) == modrm_byte_byte.byte))
|
||||||
|
{
|
||||||
|
assert(*(pc - XFER_BYTE_SZ - PEA_SZ) == I386_INS_PUSH_Iv);
|
||||||
|
adj_pc = (char *)pc - XFER_BYTE_SZ - PEA_SZ;
|
||||||
|
} else if ((*(pc - XFER_LONG_SZ) == I386_INS_Grp5_Prefix) && (*(pc - XFER_LONG_SZ + 1) == modrm_byte_long.byte))
|
||||||
|
{
|
||||||
|
assert(*(pc - XFER_LONG_SZ - PEA_SZ) == I386_INS_PUSH_Iv);
|
||||||
|
adj_pc = (char *)pc - XFER_LONG_SZ - PEA_SZ;
|
||||||
|
} else
|
||||||
|
GTMASSERT;
|
||||||
|
if (azl_geturxrtn(adj_pc + INST_SZ, &rname, &rtnurx))
|
||||||
|
{
|
||||||
|
assert((0 <= rname.len) && (MAX_MIDENT_LEN >= rname.len));
|
||||||
|
assert(rname.addr);
|
||||||
|
/* Copy rname into local storage because azl_geturxrtn sets rname.addr to an address that is
|
||||||
|
* freed during op_zlink and before the call to find_rtn_hdr.
|
||||||
|
*/
|
||||||
|
memcpy(rname_local.c, rname.addr, rname.len);
|
||||||
|
rname.addr = rname_local.c;
|
||||||
|
assert(rtnurx);
|
||||||
|
assert(*(adj_pc - PEA_SZ) == I386_INS_PUSH_Iv);
|
||||||
|
assert(azl_geturxlab(adj_pc - PEA_SZ + INST_SZ, rtnurx));
|
||||||
|
assert(!find_rtn_hdr(&rname));
|
||||||
|
rtn.mvtype = MV_STR;
|
||||||
|
rtn.str.len = rname.len;
|
||||||
|
rtn.str.addr = rname.addr;
|
||||||
|
op_zlink (&rtn, 0);
|
||||||
|
if (0 != (rhead = find_rtn_hdr(&rname))) /* note the assignment */
|
||||||
|
{
|
||||||
|
*line = *(int4 **)(adj_pc - PEA_SZ + INST_SZ);
|
||||||
|
if (!(*line))
|
||||||
|
rts_error(VARLSTCNT(1) ERR_LABELUNKNOWN);
|
||||||
|
return rhead;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rts_error(VARLSTCNT(1) ERR_ROUTINEUNKNOWN);
|
||||||
|
return NULL;
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
/****************************************************************
|
||||||
|
* *
|
||||||
|
* Copyright 2001,2012 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. *
|
||||||
|
* *
|
||||||
|
****************************************************************/
|
||||||
|
|
||||||
|
#include "mdef.h"
|
||||||
|
#include "error.h"
|
||||||
|
|
||||||
|
LITDEF err_msg cmerrors[] = {
|
||||||
|
"INVPROT", "Invalid protocol specified by remote partner", 0,
|
||||||
|
"REGNTFND", "Region referenced not initialized", 0,
|
||||||
|
"CMINTQUE", "Interlock failure accessing GT.CM server queue", 0,
|
||||||
|
"INVINTMSG", "Invalid interrupt message received.", 0,
|
||||||
|
"CMEXCDASTLM", "Exceeded AST limit. Cannot open database.", 0,
|
||||||
|
"CMSYSSRV", "Error doing system service, status:", 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
LITDEF int CMERR_INVPROT = 150568970;
|
||||||
|
LITDEF int CMERR_REGNTFND = 150568978;
|
||||||
|
LITDEF int CMERR_CMINTQUE = 150568988;
|
||||||
|
LITDEF int CMERR_INVINTMSG = 150568994;
|
||||||
|
LITDEF int CMERR_CMEXCDASTLM = 150569002;
|
||||||
|
LITDEF int CMERR_CMSYSSRV = 150569010;
|
||||||
|
|
||||||
|
GBLDEF err_ctl cmerrors_ctl = {
|
||||||
|
249,
|
||||||
|
"GTCM",
|
||||||
|
&cmerrors[0],
|
||||||
|
6};
|
|
@ -0,0 +1,73 @@
|
||||||
|
/****************************************************************
|
||||||
|
* *
|
||||||
|
* Copyright 2001,2012 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. *
|
||||||
|
* *
|
||||||
|
****************************************************************/
|
||||||
|
|
||||||
|
#include "mdef.h"
|
||||||
|
#include "error.h"
|
||||||
|
|
||||||
|
LITDEF err_msg cmierrors[] = {
|
||||||
|
"DCNINPROG", "Attempt to initiate operation while disconnect was in progress", 0,
|
||||||
|
"LNKNOTIDLE", "Attempt to initiate operation before previous operation completed", 0,
|
||||||
|
"ASSERT", "Assert failed !AD line !UL", 3,
|
||||||
|
"CMICHECK", "Internal CMI error. Report to your GT.M Support Channel.", 0,
|
||||||
|
"NETFAIL", "Failure of Net operation", 0,
|
||||||
|
"BADPORT", "Environment variable GTCM_TCP_PORT is not an integer", 0,
|
||||||
|
"NOTND", "tnd argument to cmi_init is NULL", 0,
|
||||||
|
"OVERRUN", "mbf argument in CLB is not large enough for packet", 0,
|
||||||
|
"NOSERVENT", "Sevices data lookup failure", 0,
|
||||||
|
"BADIPADDRPORT", "Bad specification of [ip address:port] in tnd", 0,
|
||||||
|
"REASON_CONNECT", "Incoming connection", 0,
|
||||||
|
"REASON_INTMSG", "Incoming urgent data", 0,
|
||||||
|
"REASON_DISCON", "Disconnect encountered", 0,
|
||||||
|
"REASON_ABORT", "Link aborted", 0,
|
||||||
|
"REASON_EXIT", "Exit", 0,
|
||||||
|
"REASON_PATHLOST", "Network path lost", 0,
|
||||||
|
"REASON_PROTOCOL", "Protocol error", 0,
|
||||||
|
"REASON_THIRDPARTY", "Thirdparty error", 0,
|
||||||
|
"REASON_TIMEOUT", "Network timeout", 0,
|
||||||
|
"REASON_NETSHUT", "Shutdown received", 0,
|
||||||
|
"REASON_REJECT", "Connection rejected", 0,
|
||||||
|
"REASON_IODONE", "I/O done", 0,
|
||||||
|
"REASON_OVERRUN", "Input overran buffer", 0,
|
||||||
|
"REASON_STATUS", "Status", 0,
|
||||||
|
"REASON_CONFIRM", "Confirm", 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
LITDEF int CMI_DCNINPROG = 150634508;
|
||||||
|
LITDEF int CMI_LNKNOTIDLE = 150634516;
|
||||||
|
LITDEF int CMI_ASSERT = 150634522;
|
||||||
|
LITDEF int CMI_CMICHECK = 150634532;
|
||||||
|
LITDEF int CMI_NETFAIL = 150634538;
|
||||||
|
LITDEF int CMI_BADPORT = 150634546;
|
||||||
|
LITDEF int CMI_NOTND = 150634556;
|
||||||
|
LITDEF int CMI_OVERRUN = 150634562;
|
||||||
|
LITDEF int CMI_NOSERVENT = 150634570;
|
||||||
|
LITDEF int CMI_BADIPADDRPORT = 150634578;
|
||||||
|
LITDEF int CMI_REASON_CONNECT = 150634586;
|
||||||
|
LITDEF int CMI_REASON_INTMSG = 150634594;
|
||||||
|
LITDEF int CMI_REASON_DISCON = 150634602;
|
||||||
|
LITDEF int CMI_REASON_ABORT = 150634610;
|
||||||
|
LITDEF int CMI_REASON_EXIT = 150634618;
|
||||||
|
LITDEF int CMI_REASON_PATHLOST = 150634626;
|
||||||
|
LITDEF int CMI_REASON_PROTOCOL = 150634634;
|
||||||
|
LITDEF int CMI_REASON_THIRDPARTY = 150634642;
|
||||||
|
LITDEF int CMI_REASON_TIMEOUT = 150634650;
|
||||||
|
LITDEF int CMI_REASON_NETSHUT = 150634658;
|
||||||
|
LITDEF int CMI_REASON_REJECT = 150634666;
|
||||||
|
LITDEF int CMI_REASON_IODONE = 150634674;
|
||||||
|
LITDEF int CMI_REASON_OVERRUN = 150634682;
|
||||||
|
LITDEF int CMI_REASON_STATUS = 150634690;
|
||||||
|
LITDEF int CMI_REASON_CONFIRM = 150634698;
|
||||||
|
|
||||||
|
GBLDEF err_ctl cmierrors_ctl = {
|
||||||
|
250,
|
||||||
|
"CMI",
|
||||||
|
&cmierrors[0],
|
||||||
|
25};
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,85 @@
|
||||||
|
/****************************************************************
|
||||||
|
* *
|
||||||
|
* Copyright 2001, 2012 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. *
|
||||||
|
* *
|
||||||
|
****************************************************************/
|
||||||
|
|
||||||
|
#include "mdef.h"
|
||||||
|
#include "xfer_enum.h"
|
||||||
|
#include "i386.h"
|
||||||
|
#include <rtnhdr.h> /* Needed by zbreak.h */
|
||||||
|
#include "zbreak.h"
|
||||||
|
|
||||||
|
zb_code *find_line_call(void *addr)
|
||||||
|
{
|
||||||
|
unsigned char *call_addr;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
ModR_M modrm;
|
||||||
|
unsigned char byte;
|
||||||
|
} modrm_byte;
|
||||||
|
|
||||||
|
call_addr = (unsigned char *)addr;
|
||||||
|
modrm_byte.byte = *(call_addr + 1);
|
||||||
|
if ((I386_INS_Grp5_Prefix == *call_addr) && (I386_INS_CALL_Ev == modrm_byte.modrm.reg_opcode))
|
||||||
|
{
|
||||||
|
call_addr++;
|
||||||
|
assert(I386_REG_EBX == modrm_byte.modrm.r_m);
|
||||||
|
call_addr++;
|
||||||
|
if (I386_MOD32_BASE_DISP_8 == modrm_byte.modrm.mod)
|
||||||
|
{
|
||||||
|
if ((xf_linestart * SIZEOF(int4) == *call_addr) ||
|
||||||
|
(xf_zbstart * SIZEOF(int4) == *call_addr))
|
||||||
|
return (zb_code *)call_addr;
|
||||||
|
call_addr++;
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
assert (I386_MOD32_BASE_DISP_32 == modrm_byte.modrm.mod);
|
||||||
|
return (zb_code *)addr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
modrm_byte.byte = *(call_addr + 1);
|
||||||
|
if ((I386_INS_PUSH_Ib == *call_addr) || (I386_INS_PUSH_Iv == *call_addr))
|
||||||
|
{
|
||||||
|
while ((I386_INS_PUSH_Ib == *call_addr) || (I386_INS_PUSH_Iv == *call_addr))
|
||||||
|
{
|
||||||
|
if (I386_INS_PUSH_Ib == *call_addr)
|
||||||
|
call_addr += 1 + SIZEOF(unsigned char);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
assert(I386_INS_PUSH_Iv == *call_addr);
|
||||||
|
call_addr += 1 + SIZEOF(int4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
modrm_byte.byte = *(call_addr + 1);
|
||||||
|
if ((I386_INS_Grp5_Prefix != *call_addr++) || (I386_INS_CALL_Ev != modrm_byte.modrm.reg_opcode))
|
||||||
|
return (zb_code *)addr;
|
||||||
|
assert((I386_MOD32_BASE_DISP_8 == modrm_byte.modrm.mod) || (I386_MOD32_BASE_DISP_32 == modrm_byte.modrm.mod));
|
||||||
|
assert(I386_REG_EBX == modrm_byte.modrm.r_m);
|
||||||
|
call_addr++;
|
||||||
|
if (I386_MOD32_BASE_DISP_8 == modrm_byte.modrm.mod)
|
||||||
|
{
|
||||||
|
if ((xf_linefetch * SIZEOF(int4) != *call_addr) && (xf_zbfetch * SIZEOF(int4) != *call_addr))
|
||||||
|
return (zb_code *)addr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ((I386_INS_Grp5_Prefix == *call_addr) && (I386_INS_CALL_Ev != modrm_byte.modrm.reg_opcode))
|
||||||
|
{
|
||||||
|
call_addr++;
|
||||||
|
assert((I386_MOD32_BASE_DISP_8 == modrm_byte.modrm.mod) || (I386_MOD32_BASE_DISP_32 == modrm_byte.modrm.mod));
|
||||||
|
assert(I386_REG_EBX == modrm_byte.modrm.r_m);
|
||||||
|
call_addr++;
|
||||||
|
if (I386_MOD32_BASE_DISP_8 == modrm_byte.modrm.mod)
|
||||||
|
{
|
||||||
|
if ((xf_linestart * SIZEOF(int4) != *call_addr) && (xf_zbstart * SIZEOF(int4) != *call_addr))
|
||||||
|
return (zb_code *)addr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return (zb_code *)call_addr;
|
||||||
|
}
|
|
@ -0,0 +1,139 @@
|
||||||
|
/****************************************************************
|
||||||
|
* *
|
||||||
|
* Copyright 2001,2012 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. *
|
||||||
|
* *
|
||||||
|
****************************************************************/
|
||||||
|
|
||||||
|
#include "mdef.h"
|
||||||
|
#include "error.h"
|
||||||
|
|
||||||
|
LITDEF err_msg gdeerrors[] = {
|
||||||
|
"BLKSIZ512", "Block size !AD rounds to !AD", 4,
|
||||||
|
"EXECOM", "Executing command file !AD", 2,
|
||||||
|
"FILENOTFND", "File !AD not found", 2,
|
||||||
|
"GDCREATE", "Creating Global Directory file !/ !AD", 2,
|
||||||
|
"GDECHECK", "Internal GDE consistency check", 0,
|
||||||
|
"GDUNKNFMT", "!AD !/ is not formatted as a Global Directory", 2,
|
||||||
|
"GDUPDATE", "Updating Global Directory file !/ !AD", 2,
|
||||||
|
"GDUSEDEFS", "Using defaults for Global Directory !/ !AD", 2,
|
||||||
|
"ILLCHAR", "!AD is not a legal character in this context", 2,
|
||||||
|
"INPINTEG", "Input integrity error -- aborting load", 0,
|
||||||
|
"KEYTOOBIG", "But record size !AD can only support key size !AD", 4,
|
||||||
|
"KEYSIZIS", "Key size is !AD", 2,
|
||||||
|
"KEYWRDAMB", "!AD is ambiguous for !AD", 4,
|
||||||
|
"KEYWRDBAD", "!AD is not a valid !AD", 4,
|
||||||
|
"LOADGD", "Loading Global Directory file !/ !AD", 2,
|
||||||
|
"LOGOFF", "No longer logging to file !AD", 2,
|
||||||
|
"LOGON", "Logging to file !AD", 2,
|
||||||
|
"LVSTARALON", "The * name cannot be deleted or renamed", 0,
|
||||||
|
"MAPBAD", "!AD !AD for !AD !AD does not exist", 8,
|
||||||
|
"MAPDUP", "!AD !AD and !AD both map to !AD !AD", 10,
|
||||||
|
"NAMSTARTBAD", "!AD must start with '%' or an alphabetic character", 2,
|
||||||
|
"NOACTION", "Not updating Global Directory !AD", 2,
|
||||||
|
"RPAREN", "List must end with right parenthesis or continue with comma", 0,
|
||||||
|
"NOEXIT", "Cannot exit because of verification failure", 0,
|
||||||
|
"NOLOG", "Logging is currently disabled!/ Log file is !AD.", 2,
|
||||||
|
"NOVALUE", "Qualifier !AD does not take a value", 2,
|
||||||
|
"NONEGATE", "Qualifier !AD cannot be negated", 2,
|
||||||
|
"OBJDUP", "!AD !AD already exists", 4,
|
||||||
|
"OBJNOTADD", "Not adding !AD !AD", 4,
|
||||||
|
"OBJNOTCHG", "Not changing !AD !AD", 4,
|
||||||
|
"OBJNOTFND", "!AD !AD does not exist", 4,
|
||||||
|
"OBJREQD", "!AD required", 2,
|
||||||
|
"PREFIXBAD", "!AD must start with an alphabetic character to be a !AD", 4,
|
||||||
|
"QUALBAD", "!AD is not a valid qualifier", 2,
|
||||||
|
"QUALDUP", "!AD qualifier appears more than once in the list", 2,
|
||||||
|
"QUALREQD", "!AD required", 2,
|
||||||
|
"RECTOOBIG", "Block size !AD and !AD reserved bytes limit record size to !AD", 6,
|
||||||
|
"RECSIZIS", "Record size is !AD", 2,
|
||||||
|
"REGIS", "in region !AD", 2,
|
||||||
|
"SEGIS", "in !AD segment !AD", 4,
|
||||||
|
"VALTOOBIG", "!AD is larger than the maximum of !AD for a !AD", 6,
|
||||||
|
"VALTOOLONG", "!AD exceeds the maximum length of !AD for a !AD", 6,
|
||||||
|
"VALTOOSMALL", "!AD is less than the minimum of !AD for a !AD", 6,
|
||||||
|
"VALUEBAD", "!AD is not a valid !AD", 4,
|
||||||
|
"VALUEREQD", "Qualifier !AD requires a value", 2,
|
||||||
|
"VERIFY", "Verification !AD", 2,
|
||||||
|
"BUFSIZIS", "Journal Buffer size is !AD", 2,
|
||||||
|
"BUFTOOSMALL", "But block size !AD requires buffer size !AD", 4,
|
||||||
|
"MMNOBEFORIMG", "MM segments do not support before image jounaling", 0,
|
||||||
|
"NOJNL", "!AD segments do not support journaling", 2,
|
||||||
|
"GDREADERR", "Error reading Global Directory: !AD", 2,
|
||||||
|
"GDNOTSET", "Global Directory not changed because the current GD cannot be written", 0,
|
||||||
|
"INVGBLDIR", "Invalid Global Directory spec: !AD.!/Continuing with !AD", 4,
|
||||||
|
"WRITEERROR", "Cannot exit because of write failure. Reason for failure: !AD", 2,
|
||||||
|
"NONASCII", "!AD is illegal for a !AD as it contains non-ASCII characters", 4,
|
||||||
|
"CRYPTNOMM", "!AD is an encrypted database. Cannot support MM access method.", 2,
|
||||||
|
"JNLALLOCGROW", "Increased Journal ALLOCATION from [!AD blocks] to [!AD blocks] to match AUTOSWITCHLIMIT for !AD !AD", 8,
|
||||||
|
"KEYFORBLK", "But block size !AD can only support key size !AD", 4,
|
||||||
|
};
|
||||||
|
|
||||||
|
LITDEF int GDE_BLKSIZ512 = 150503435;
|
||||||
|
LITDEF int GDE_EXECOM = 150503443;
|
||||||
|
LITDEF int GDE_FILENOTFND = 150503450;
|
||||||
|
LITDEF int GDE_GDCREATE = 150503459;
|
||||||
|
LITDEF int GDE_GDECHECK = 150503467;
|
||||||
|
LITDEF int GDE_GDUNKNFMT = 150503475;
|
||||||
|
LITDEF int GDE_GDUPDATE = 150503483;
|
||||||
|
LITDEF int GDE_GDUSEDEFS = 150503491;
|
||||||
|
LITDEF int GDE_ILLCHAR = 150503498;
|
||||||
|
LITDEF int GDE_INPINTEG = 150503508;
|
||||||
|
LITDEF int GDE_KEYTOOBIG = 150503515;
|
||||||
|
LITDEF int GDE_KEYSIZIS = 150503523;
|
||||||
|
LITDEF int GDE_KEYWRDAMB = 150503530;
|
||||||
|
LITDEF int GDE_KEYWRDBAD = 150503538;
|
||||||
|
LITDEF int GDE_LOADGD = 150503547;
|
||||||
|
LITDEF int GDE_LOGOFF = 150503555;
|
||||||
|
LITDEF int GDE_LOGON = 150503563;
|
||||||
|
LITDEF int GDE_LVSTARALON = 150503570;
|
||||||
|
LITDEF int GDE_MAPBAD = 150503579;
|
||||||
|
LITDEF int GDE_MAPDUP = 150503587;
|
||||||
|
LITDEF int GDE_NAMSTARTBAD = 150503594;
|
||||||
|
LITDEF int GDE_NOACTION = 150503603;
|
||||||
|
LITDEF int GDE_RPAREN = 150503610;
|
||||||
|
LITDEF int GDE_NOEXIT = 150503619;
|
||||||
|
LITDEF int GDE_NOLOG = 150503627;
|
||||||
|
LITDEF int GDE_NOVALUE = 150503634;
|
||||||
|
LITDEF int GDE_NONEGATE = 150503642;
|
||||||
|
LITDEF int GDE_OBJDUP = 150503650;
|
||||||
|
LITDEF int GDE_OBJNOTADD = 150503658;
|
||||||
|
LITDEF int GDE_OBJNOTCHG = 150503666;
|
||||||
|
LITDEF int GDE_OBJNOTFND = 150503674;
|
||||||
|
LITDEF int GDE_OBJREQD = 150503682;
|
||||||
|
LITDEF int GDE_PREFIXBAD = 150503690;
|
||||||
|
LITDEF int GDE_QUALBAD = 150503698;
|
||||||
|
LITDEF int GDE_QUALDUP = 150503706;
|
||||||
|
LITDEF int GDE_QUALREQD = 150503714;
|
||||||
|
LITDEF int GDE_RECTOOBIG = 150503723;
|
||||||
|
LITDEF int GDE_RECSIZIS = 150503731;
|
||||||
|
LITDEF int GDE_REGIS = 150503739;
|
||||||
|
LITDEF int GDE_SEGIS = 150503747;
|
||||||
|
LITDEF int GDE_VALTOOBIG = 150503755;
|
||||||
|
LITDEF int GDE_VALTOOLONG = 150503762;
|
||||||
|
LITDEF int GDE_VALTOOSMALL = 150503771;
|
||||||
|
LITDEF int GDE_VALUEBAD = 150503778;
|
||||||
|
LITDEF int GDE_VALUEREQD = 150503786;
|
||||||
|
LITDEF int GDE_VERIFY = 150503795;
|
||||||
|
LITDEF int GDE_BUFSIZIS = 150503803;
|
||||||
|
LITDEF int GDE_BUFTOOSMALL = 150503811;
|
||||||
|
LITDEF int GDE_MMNOBEFORIMG = 150503819;
|
||||||
|
LITDEF int GDE_NOJNL = 150503827;
|
||||||
|
LITDEF int GDE_GDREADERR = 150503835;
|
||||||
|
LITDEF int GDE_GDNOTSET = 150503843;
|
||||||
|
LITDEF int GDE_INVGBLDIR = 150503851;
|
||||||
|
LITDEF int GDE_WRITEERROR = 150503859;
|
||||||
|
LITDEF int GDE_NONASCII = 150503866;
|
||||||
|
LITDEF int GDE_CRYPTNOMM = 150503874;
|
||||||
|
LITDEF int GDE_JNLALLOCGROW = 150503883;
|
||||||
|
LITDEF int GDE_KEYFORBLK = 150503891;
|
||||||
|
|
||||||
|
GBLDEF err_ctl gdeerrors_ctl = {
|
||||||
|
248,
|
||||||
|
"GDE",
|
||||||
|
&gdeerrors[0],
|
||||||
|
58};
|
|
@ -0,0 +1,428 @@
|
||||||
|
/****************************************************************
|
||||||
|
* *
|
||||||
|
* Copyright 2001, 2012 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. *
|
||||||
|
* *
|
||||||
|
****************************************************************/
|
||||||
|
|
||||||
|
#include "mdef.h"
|
||||||
|
|
||||||
|
#include "gtm_unistd.h"
|
||||||
|
#include "gtm_stdio.h"
|
||||||
|
#include "gtm_string.h"
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
#include <rtnhdr.h>
|
||||||
|
#include "compiler.h"
|
||||||
|
#include "urx.h"
|
||||||
|
#include "objlabel.h" /* needed for masscomp.h */
|
||||||
|
#include "masscomp.h"
|
||||||
|
#include "gtmio.h"
|
||||||
|
#include "incr_link.h"
|
||||||
|
#include "min_max.h" /* MIDENT_CMP needs MIN */
|
||||||
|
#include "cmd_qlf.h" /* needed for CQ_UTF8 */
|
||||||
|
#include "gtm_text_alloc.h"
|
||||||
|
|
||||||
|
/* INCR_LINK - read and process a mumps object module. Link said module to currently executing image */
|
||||||
|
|
||||||
|
LITREF char gtm_release_name[];
|
||||||
|
LITREF int4 gtm_release_name_len;
|
||||||
|
|
||||||
|
static char *code;
|
||||||
|
GBLREF mident_fixed zlink_mname;
|
||||||
|
GBLREF boolean_t gtm_utf8_mode;
|
||||||
|
|
||||||
|
error_def(ERR_INVOBJ);
|
||||||
|
error_def(ERR_LOADRUNNING);
|
||||||
|
error_def(ERR_TEXT);
|
||||||
|
|
||||||
|
#define RELREAD 50 /* number of relocation entries to buffer */
|
||||||
|
typedef struct res_list_struct
|
||||||
|
{
|
||||||
|
struct res_list_struct *next, *list;
|
||||||
|
unsigned int addr, symnum;
|
||||||
|
} res_list;
|
||||||
|
|
||||||
|
void res_free(res_list *root);
|
||||||
|
bool addr_fix(int file, struct exec *fhead, urx_rtnref *urx_lcl, rhdtyp *code);
|
||||||
|
void zl_error(int4 file, int4 err, int4 err2, int4 len, char *addr);
|
||||||
|
|
||||||
|
bool incr_link(int file_desc)
|
||||||
|
{
|
||||||
|
rhdtyp *hdr, *old_rhead;
|
||||||
|
int code_size, save_errno, cnt;
|
||||||
|
int4 rhd_diff, read_size;
|
||||||
|
char *literal_ptr;
|
||||||
|
var_tabent *curvar;
|
||||||
|
char module_name[SIZEOF(mident_fixed)];
|
||||||
|
lab_tabent *lbt_ent, *lbt_bot, *lbt_top, *olbt_ent, *olbt_bot, *olbt_top, *curlab;
|
||||||
|
urx_rtnref urx_lcl_anchor;
|
||||||
|
int order;
|
||||||
|
struct exec file_hdr;
|
||||||
|
|
||||||
|
urx_lcl_anchor.len = 0;
|
||||||
|
urx_lcl_anchor.addr = 0;
|
||||||
|
urx_lcl_anchor.lab = 0;
|
||||||
|
urx_lcl_anchor.next = 0;
|
||||||
|
code = NULL;
|
||||||
|
DOREADRL(file_desc, &file_hdr, SIZEOF(file_hdr), read_size);
|
||||||
|
if (read_size != SIZEOF(file_hdr))
|
||||||
|
{
|
||||||
|
if (-1 == read_size)
|
||||||
|
{
|
||||||
|
save_errno = errno;
|
||||||
|
zl_error(file_desc, ERR_INVOBJ, ERR_TEXT, strlen(STRERROR(save_errno)),
|
||||||
|
STRERROR(save_errno));
|
||||||
|
} else
|
||||||
|
zl_error(file_desc, ERR_INVOBJ, ERR_TEXT, RTS_ERROR_TEXT("reading file header"));
|
||||||
|
} else if (OMAGIC != file_hdr.a_magic)
|
||||||
|
zl_error(file_desc, ERR_INVOBJ, ERR_TEXT, RTS_ERROR_TEXT("bad magic"));
|
||||||
|
else if (OBJ_LABEL != file_hdr.a_stamp)
|
||||||
|
return FALSE; /* wrong version */
|
||||||
|
assert(0 == file_hdr.a_bss);
|
||||||
|
code_size = file_hdr.a_text + file_hdr.a_data;
|
||||||
|
code = GTM_TEXT_ALLOC(code_size);
|
||||||
|
DOREADRL(file_desc, code, code_size, read_size);
|
||||||
|
if (read_size != code_size)
|
||||||
|
{
|
||||||
|
if (-1 == read_size)
|
||||||
|
{
|
||||||
|
save_errno = errno;
|
||||||
|
zl_error(file_desc, ERR_INVOBJ, ERR_TEXT, strlen(STRERROR(save_errno)), STRERROR(save_errno)); /* BYPASSOK */
|
||||||
|
} else
|
||||||
|
zl_error(file_desc, ERR_INVOBJ, ERR_TEXT, RTS_ERROR_TEXT("reading code"));
|
||||||
|
}
|
||||||
|
hdr = (rhdtyp *)code;
|
||||||
|
if (memcmp(&hdr->jsb[0], "GTM_CODE", SIZEOF(hdr->jsb)))
|
||||||
|
zl_error(file_desc, ERR_INVOBJ, ERR_TEXT, RTS_ERROR_TEXT("missing GTM_CODE"));
|
||||||
|
if ((hdr->compiler_qlf & CQ_UTF8) && !gtm_utf8_mode)
|
||||||
|
zl_error(file_desc, ERR_INVOBJ, ERR_TEXT,
|
||||||
|
RTS_ERROR_TEXT("Object compiled with CHSET=UTF-8 which is different from $ZCHSET"));
|
||||||
|
if (!(hdr->compiler_qlf & CQ_UTF8) && gtm_utf8_mode)
|
||||||
|
zl_error(file_desc, ERR_INVOBJ, ERR_TEXT,
|
||||||
|
RTS_ERROR_TEXT("Object compiled with CHSET=M which is different from $ZCHSET"));
|
||||||
|
literal_ptr = code + file_hdr.a_text;
|
||||||
|
for (cnt = hdr->vartab_len, curvar = VARTAB_ADR(hdr); cnt; --cnt, ++curvar)
|
||||||
|
{ /* relocate the variable table */
|
||||||
|
assert(0 < curvar->var_name.len);
|
||||||
|
curvar->var_name.addr += (uint4)literal_ptr;
|
||||||
|
}
|
||||||
|
for (cnt = hdr->labtab_len, curlab = LABTAB_ADR(hdr); cnt; --cnt, ++curlab)
|
||||||
|
/* relocate the label table */
|
||||||
|
curlab->lab_name.addr += (uint4)literal_ptr;
|
||||||
|
if (!addr_fix(file_desc, &file_hdr, &urx_lcl_anchor, hdr))
|
||||||
|
{
|
||||||
|
urx_free(&urx_lcl_anchor);
|
||||||
|
zl_error(file_desc, ERR_INVOBJ, ERR_TEXT, RTS_ERROR_TEXT("address fixup failure"));
|
||||||
|
}
|
||||||
|
if (!zlput_rname(hdr))
|
||||||
|
{
|
||||||
|
urx_free(&urx_lcl_anchor);
|
||||||
|
/* Copy routine name to local variable because zl_error free's it. */
|
||||||
|
memcpy(&module_name[0], hdr->routine_name.addr, hdr->routine_name.len);
|
||||||
|
zl_error(file_desc, 0, ERR_LOADRUNNING, hdr->routine_name.len, &module_name[0]);
|
||||||
|
}
|
||||||
|
urx_add(&urx_lcl_anchor);
|
||||||
|
old_rhead = (rhdtyp *)hdr->old_rhead_ptr;
|
||||||
|
lbt_bot = (lab_tabent *)((char *)hdr + hdr->labtab_ptr);
|
||||||
|
lbt_top = lbt_bot + hdr->labtab_len;
|
||||||
|
while (old_rhead)
|
||||||
|
{
|
||||||
|
lbt_ent = lbt_bot;
|
||||||
|
olbt_bot = (lab_tabent *)((char *)old_rhead + old_rhead->labtab_ptr);
|
||||||
|
olbt_top = olbt_bot + old_rhead->labtab_len;
|
||||||
|
for (olbt_ent = olbt_bot; olbt_ent < olbt_top; olbt_ent++)
|
||||||
|
{
|
||||||
|
for (; lbt_ent < lbt_top; lbt_ent++)
|
||||||
|
{
|
||||||
|
MIDENT_CMP(&olbt_ent->lab_name, &lbt_ent->lab_name, order);
|
||||||
|
if (order <= 0)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ((lbt_ent < lbt_top) && !order)
|
||||||
|
{
|
||||||
|
olbt_ent->lab_ln_ptr = lbt_ent->lab_ln_ptr;
|
||||||
|
olbt_ent->has_parms = lbt_ent->has_parms;
|
||||||
|
} else
|
||||||
|
olbt_ent->lab_ln_ptr = 0;
|
||||||
|
}
|
||||||
|
rhd_diff = (char *)hdr - (char *)old_rhead;
|
||||||
|
old_rhead->src_full_name = hdr->src_full_name;
|
||||||
|
old_rhead->routine_name = hdr->routine_name;
|
||||||
|
old_rhead->vartab_len = hdr->vartab_len;
|
||||||
|
old_rhead->vartab_ptr = hdr->vartab_ptr + rhd_diff;
|
||||||
|
old_rhead->ptext_ptr = hdr->ptext_ptr + rhd_diff;
|
||||||
|
old_rhead->current_rhead_ptr = rhd_diff;
|
||||||
|
old_rhead->temp_mvals = hdr->temp_mvals;
|
||||||
|
old_rhead->temp_size = hdr->temp_size;
|
||||||
|
old_rhead = (rhdtyp *) old_rhead->old_rhead_ptr;
|
||||||
|
}
|
||||||
|
urx_resolve(hdr, lbt_bot, lbt_top);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool addr_fix(int file, struct exec *fhead, urx_rtnref *urx_lcl, rhdtyp *code)
|
||||||
|
{
|
||||||
|
res_list *res_root, *new_res, *res_temp, *res_temp1;
|
||||||
|
char *symbols, *sym_temp, *sym_temp1, *symtop, *res_addr;
|
||||||
|
struct relocation_info rel[RELREAD];
|
||||||
|
int numrel, rel_read, i, string_size, sym_size;
|
||||||
|
size_t status;
|
||||||
|
mident_fixed rtnid, labid;
|
||||||
|
mstr rtn_str;
|
||||||
|
rhdtyp *rtn;
|
||||||
|
lab_tabent *label, *labtop;
|
||||||
|
bool labsym;
|
||||||
|
urx_rtnref *urx_rp;
|
||||||
|
urx_addr *urx_tmpaddr;
|
||||||
|
|
||||||
|
res_root = 0;
|
||||||
|
numrel = (fhead->a_trsize + fhead->a_drsize) / SIZEOF(struct relocation_info);
|
||||||
|
if (numrel * SIZEOF(struct relocation_info) != fhead->a_trsize + fhead->a_drsize)
|
||||||
|
return FALSE;
|
||||||
|
for ( ; numrel;)
|
||||||
|
{
|
||||||
|
rel_read = numrel < RELREAD ? numrel : RELREAD;
|
||||||
|
DOREADRC(file, rel, rel_read * SIZEOF(struct relocation_info), status);
|
||||||
|
if (0 != status)
|
||||||
|
{
|
||||||
|
res_free(res_root);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
numrel -= rel_read;
|
||||||
|
for (i = 0; i < rel_read; i++)
|
||||||
|
{
|
||||||
|
if (rel[i].r_extern)
|
||||||
|
{
|
||||||
|
new_res = (res_list *)malloc(SIZEOF(*new_res));
|
||||||
|
new_res->symnum = rel[i].r_symbolnum;
|
||||||
|
new_res->addr = rel[i].r_address;
|
||||||
|
new_res->next = new_res->list = 0;
|
||||||
|
/* Insert the relocation entry in symbol number order on the unresolved chain */
|
||||||
|
if (!res_root)
|
||||||
|
res_root = new_res;
|
||||||
|
else
|
||||||
|
{ res_temp = res_root;
|
||||||
|
res_temp1 = 0;
|
||||||
|
while (res_temp)
|
||||||
|
{
|
||||||
|
if (res_temp->symnum >= new_res->symnum)
|
||||||
|
break;
|
||||||
|
res_temp1 = res_temp;
|
||||||
|
res_temp = res_temp->next;
|
||||||
|
}
|
||||||
|
if (res_temp)
|
||||||
|
{ if (res_temp->symnum == new_res->symnum)
|
||||||
|
{
|
||||||
|
new_res->list = res_temp->list;
|
||||||
|
res_temp->list = new_res;
|
||||||
|
} else
|
||||||
|
{ if (res_temp1)
|
||||||
|
{
|
||||||
|
new_res->next = res_temp1->next;
|
||||||
|
res_temp1->next = new_res;
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
assert(res_temp == res_root);
|
||||||
|
new_res->next = res_root;
|
||||||
|
res_root = new_res;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
res_temp1->next = new_res;
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
*(unsigned int *)(((char *)code) + rel[i].r_address) += (unsigned int)code;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* All relocations within the routine should have been done, so copy the routine_name */
|
||||||
|
assert(code->routine_name.len < SIZEOF(zlink_mname.c));
|
||||||
|
memcpy(&zlink_mname.c[0], code->routine_name.addr, code->routine_name.len);
|
||||||
|
zlink_mname.c[code->routine_name.len] = 0;
|
||||||
|
if (!res_root)
|
||||||
|
return TRUE;
|
||||||
|
if ((off_t)-1 == lseek(file, (off_t)fhead->a_syms, SEEK_CUR))
|
||||||
|
{ res_free(res_root);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
DOREADRC(file, &string_size, SIZEOF(string_size), status);
|
||||||
|
if (0 != status)
|
||||||
|
{
|
||||||
|
res_free(res_root);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
string_size -= SIZEOF(string_size);
|
||||||
|
symbols = malloc(string_size);
|
||||||
|
DOREADRC(file, symbols, string_size, status);
|
||||||
|
if (0 != status)
|
||||||
|
{
|
||||||
|
free(symbols);
|
||||||
|
res_free(res_root);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
/* Match up unresolved entries with the null terminated symbol name entries from the
|
||||||
|
* symbol text pool we just read in.
|
||||||
|
*/
|
||||||
|
sym_temp = sym_temp1 = symbols;
|
||||||
|
symtop = symbols + string_size;
|
||||||
|
for (i = 0; res_root; i++)
|
||||||
|
{
|
||||||
|
while (i < res_root->symnum)
|
||||||
|
{ /* Forward symbol space until our symnum index (i) matches the symbol we are processing in res_root */
|
||||||
|
while (*sym_temp)
|
||||||
|
{
|
||||||
|
if (sym_temp >= symtop)
|
||||||
|
{
|
||||||
|
free(symbols);
|
||||||
|
res_free(res_root);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
sym_temp++;
|
||||||
|
}
|
||||||
|
sym_temp++;
|
||||||
|
sym_temp1 = sym_temp;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
assert (i == res_root->symnum);
|
||||||
|
/* Find end of routine name that we care about */
|
||||||
|
while (('.' != *sym_temp1) && *sym_temp1)
|
||||||
|
{ if (sym_temp1 >= symtop)
|
||||||
|
{
|
||||||
|
free(symbols);
|
||||||
|
res_free(res_root);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
sym_temp1++;
|
||||||
|
}
|
||||||
|
sym_size = sym_temp1 - sym_temp;
|
||||||
|
assert(sym_size <= MAX_MIDENT_LEN);
|
||||||
|
memcpy(&rtnid.c[0], sym_temp, sym_size);
|
||||||
|
rtnid.c[sym_size] = 0;
|
||||||
|
if ('_' == rtnid.c[0])
|
||||||
|
rtnid.c[0] = '%';
|
||||||
|
assert((sym_size != mid_len(&zlink_mname)) || (0 != memcmp(&zlink_mname.c[0], &rtnid.c[0], sym_size)));
|
||||||
|
rtn_str.addr = &rtnid.c[0];
|
||||||
|
rtn_str.len = sym_size;
|
||||||
|
rtn = find_rtn_hdr(&rtn_str); /* Routine already resolved? */
|
||||||
|
sym_size = 0;
|
||||||
|
labsym = FALSE;
|
||||||
|
if (*sym_temp1 == '.')
|
||||||
|
{ /* If symbol is for a label, find the end of the label name */
|
||||||
|
sym_temp1++;
|
||||||
|
sym_temp = sym_temp1;
|
||||||
|
while (*sym_temp1)
|
||||||
|
{
|
||||||
|
if (sym_temp1 >= symtop)
|
||||||
|
{
|
||||||
|
free(symbols);
|
||||||
|
res_free(res_root);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
sym_temp1++;
|
||||||
|
}
|
||||||
|
sym_size = sym_temp1 - sym_temp;
|
||||||
|
assert(sym_size <= MAX_MIDENT_LEN);
|
||||||
|
memcpy(&labid.c[0], sym_temp, sym_size);
|
||||||
|
labid.c[sym_size] = 0;
|
||||||
|
if ('_' == labid.c[0])
|
||||||
|
labid.c[0] = '%';
|
||||||
|
labsym = TRUE;
|
||||||
|
}
|
||||||
|
sym_temp1++;
|
||||||
|
sym_temp = sym_temp1;
|
||||||
|
if (rtn)
|
||||||
|
{ /* The routine part at least is known */
|
||||||
|
if (labsym)
|
||||||
|
{ /* Look our target label up in the routines label table */
|
||||||
|
label = (lab_tabent *)((char *)rtn + rtn->labtab_ptr);
|
||||||
|
labtop = label + rtn->labtab_len;
|
||||||
|
for (; label < labtop && ((sym_size != label->lab_name.len)
|
||||||
|
|| memcmp(&labid.c[0], label->lab_name.addr, sym_size)); label++)
|
||||||
|
;
|
||||||
|
if (label < labtop)
|
||||||
|
res_addr = (char *)&label->LABENT_LNR_OFFSET;
|
||||||
|
else
|
||||||
|
res_addr = 0;
|
||||||
|
} else
|
||||||
|
res_addr = (char *)rtn;
|
||||||
|
if (res_addr)
|
||||||
|
{ /* The external symbol definition is available. Resolve all references to it */
|
||||||
|
res_temp = res_root->next;
|
||||||
|
while (res_root)
|
||||||
|
{
|
||||||
|
*(uint4 *)(((char *)code) + res_root->addr) = (unsigned int)res_addr;
|
||||||
|
res_temp1 = res_root->list;
|
||||||
|
free(res_root);
|
||||||
|
res_root = res_temp1;
|
||||||
|
}
|
||||||
|
res_root = res_temp;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* This symbol is unknown. Put on the (local) unresolved extern chain -- either for labels or routines */
|
||||||
|
urx_rp = urx_putrtn(rtn_str.addr, rtn_str.len, urx_lcl);
|
||||||
|
res_temp = res_root->next;
|
||||||
|
while (res_root)
|
||||||
|
{
|
||||||
|
if (labsym)
|
||||||
|
urx_putlab(&labid.c[0], sym_size, urx_rp, ((char *)code) + res_root->addr);
|
||||||
|
else
|
||||||
|
{ urx_tmpaddr = (urx_addr *)malloc(SIZEOF(urx_addr));
|
||||||
|
urx_tmpaddr->next = urx_rp->addr;
|
||||||
|
urx_tmpaddr->addr = (INTPTR_T *)(((char *)code) + res_root->addr);
|
||||||
|
urx_rp->addr = urx_tmpaddr;
|
||||||
|
}
|
||||||
|
res_temp1 = res_root->list;
|
||||||
|
free(res_root);
|
||||||
|
res_root = res_temp1;
|
||||||
|
}
|
||||||
|
res_root = res_temp;
|
||||||
|
}
|
||||||
|
free(symbols);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void res_free(res_list *root)
|
||||||
|
{
|
||||||
|
res_list *temp;
|
||||||
|
|
||||||
|
while (root)
|
||||||
|
{ while (root->list)
|
||||||
|
{ temp = root->list->list;
|
||||||
|
free(root->list);
|
||||||
|
root->list = temp;
|
||||||
|
}
|
||||||
|
temp = root->next;
|
||||||
|
free(root);
|
||||||
|
root = temp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ZL_ERROR - perform cleanup and signal errors found in zlinking a mumps object module
|
||||||
|
* err - an error code that accepts no arguments and
|
||||||
|
* err2 - an error code that accepts two arguments (!AD)
|
||||||
|
*/
|
||||||
|
void zl_error(int4 file, int4 err, int4 err2, int4 len, char *addr)
|
||||||
|
{
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
if (code)
|
||||||
|
{
|
||||||
|
GTM_TEXT_FREE(code);
|
||||||
|
code = NULL;
|
||||||
|
}
|
||||||
|
CLOSEFILE_RESET(file, rc); /* resets "file" to FD_INVALID */
|
||||||
|
if ((0 != err) && (0 != err2))
|
||||||
|
rts_error(VARLSTCNT(6) err, 0, err2, 2, len, addr);
|
||||||
|
else if (0 != err)
|
||||||
|
rts_error(VARLSTCNT(1) err);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
assert(0 != err2);
|
||||||
|
rts_error(VARLSTCNT(4) err2, 2, len, addr);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,81 @@
|
||||||
|
/****************************************************************
|
||||||
|
* *
|
||||||
|
* 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. *
|
||||||
|
* *
|
||||||
|
****************************************************************/
|
||||||
|
|
||||||
|
#include "mdef.h"
|
||||||
|
|
||||||
|
#include "gtm_string.h"
|
||||||
|
|
||||||
|
#include "error.h"
|
||||||
|
#include <rtnhdr.h>
|
||||||
|
#include "op.h"
|
||||||
|
#include "i386.h"
|
||||||
|
#include "inst_flush.h"
|
||||||
|
#include "gtmci.h"
|
||||||
|
#include "gtm_text_alloc.h"
|
||||||
|
|
||||||
|
#define CALL_SIZE 5
|
||||||
|
#define CODE_SIZE (3 * CALL_SIZE)
|
||||||
|
#define CODE_LINES 3
|
||||||
|
|
||||||
|
/* The code created and returned by make_cimode() is executed in the frame GTM$CI at level 1 of
|
||||||
|
* every nested call-in environment. For every M routine being called-in from C, GTM$CI code
|
||||||
|
* will setup argument registers/stack and executes the M routine. When the M routine returns
|
||||||
|
* from its final QUIT, GTM$CI returns to gtm_ci(). make_cimode generates machine equivalents
|
||||||
|
* for the following operations in that order:
|
||||||
|
*
|
||||||
|
* CALL ci_restart :setup register/stack arguments from 'param_list' and transfer control
|
||||||
|
* to op_extcall/op_extexfun which return only after the M routine finishes and QUITs.
|
||||||
|
* CALL ci_ret_code :transfer control from the M routine back to C (gtm_ci). Never returns.
|
||||||
|
* CALL opp_ret :an implicit QUIT although it is never executed.
|
||||||
|
*
|
||||||
|
* Before GTM$CI executes, it is assumed that the global 'param_list' has been populated with
|
||||||
|
* argument/return mval*.
|
||||||
|
*/
|
||||||
|
rhdtyp *make_cimode(void)
|
||||||
|
{
|
||||||
|
static rhdtyp *base_address = NULL;
|
||||||
|
lab_tabent *lbl;
|
||||||
|
int *lnr;
|
||||||
|
unsigned char *code;
|
||||||
|
|
||||||
|
if (NULL != base_address)
|
||||||
|
return base_address;
|
||||||
|
base_address = (rhdtyp *)GTM_TEXT_ALLOC(SIZEOF(rhdtyp) + CODE_SIZE + SIZEOF(lab_tabent) + CODE_LINES * SIZEOF(int4));
|
||||||
|
memset(base_address,0,SIZEOF(rhdtyp) + CODE_SIZE + SIZEOF(lab_tabent) + CODE_LINES * SIZEOF(int4));
|
||||||
|
base_address->routine_name.len = STR_LIT_LEN(GTM_CIMOD);
|
||||||
|
base_address->routine_name.addr = GTM_CIMOD;
|
||||||
|
base_address->ptext_ptr = SIZEOF(rhdtyp);
|
||||||
|
base_address->vartab_ptr =
|
||||||
|
base_address->labtab_ptr = SIZEOF(rhdtyp) + CODE_SIZE; /* hdr + code */
|
||||||
|
base_address->lnrtab_ptr = SIZEOF(rhdtyp) + CODE_SIZE + SIZEOF(lab_tabent);
|
||||||
|
base_address->labtab_len = 1;
|
||||||
|
base_address->lnrtab_len = CODE_LINES;
|
||||||
|
code = (unsigned char *) base_address + base_address->ptext_ptr;
|
||||||
|
*code++ = I386_INS_CALL_Jv;
|
||||||
|
*((int4 *)code) = (int4)((unsigned char *)ci_restart - (code + SIZEOF(int4)));
|
||||||
|
code += SIZEOF(int4);
|
||||||
|
*code++ = I386_INS_CALL_Jv; /* a CALL to return control from M to ci_ret_code() which in turn returns to gtm_ci() */
|
||||||
|
*((int4 *)code) = (int4)((unsigned char *)ci_ret_code - (code + SIZEOF(int4)));
|
||||||
|
code += SIZEOF(int4);
|
||||||
|
*code++ = I386_INS_JMP_Jv;
|
||||||
|
*((int4 *)code) = (int4)((unsigned char *)opp_ret - (code + SIZEOF(int4)));
|
||||||
|
code += SIZEOF(int4);
|
||||||
|
lbl = (lab_tabent *)((int) base_address + base_address->labtab_ptr);
|
||||||
|
lbl->lab_ln_ptr = base_address->lnrtab_ptr;
|
||||||
|
lnr = (int *)((int)base_address + base_address->lnrtab_ptr);
|
||||||
|
*lnr++ = base_address->ptext_ptr;
|
||||||
|
*lnr++ = base_address->ptext_ptr;
|
||||||
|
*lnr++ = base_address->ptext_ptr + 2 * CALL_SIZE;
|
||||||
|
assert(code - ((unsigned char *)base_address + base_address->ptext_ptr) == CODE_SIZE);
|
||||||
|
zlput_rname(base_address);
|
||||||
|
inst_flush(base_address, SIZEOF(rhdtyp) + CODE_SIZE + SIZEOF(lab_tabent) + CODE_LINES * SIZEOF(int4));
|
||||||
|
return base_address;
|
||||||
|
}
|
|
@ -0,0 +1,67 @@
|
||||||
|
/****************************************************************
|
||||||
|
* *
|
||||||
|
* 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. *
|
||||||
|
* *
|
||||||
|
****************************************************************/
|
||||||
|
|
||||||
|
#include "mdef.h"
|
||||||
|
|
||||||
|
#include "gtm_string.h"
|
||||||
|
|
||||||
|
#include "error.h"
|
||||||
|
#include <rtnhdr.h>
|
||||||
|
#include "op.h"
|
||||||
|
#include "i386.h"
|
||||||
|
#include "inst_flush.h"
|
||||||
|
#include "dm_setup.h"
|
||||||
|
#include "gtm_text_alloc.h"
|
||||||
|
|
||||||
|
#define CALL_SIZE 5
|
||||||
|
#define CODE_SIZE 3*CALL_SIZE
|
||||||
|
#define CODE_LINES 3
|
||||||
|
|
||||||
|
rhdtyp *make_dmode(void)
|
||||||
|
{
|
||||||
|
rhdtyp *base_address;
|
||||||
|
lab_tabent *lbl;
|
||||||
|
int *lnr;
|
||||||
|
unsigned char *code;
|
||||||
|
/* dummy code + label entry + line entries */
|
||||||
|
base_address = (rhdtyp *)GTM_TEXT_ALLOC(SIZEOF(rhdtyp) + CODE_SIZE + SIZEOF(lab_tabent) + CODE_LINES * SIZEOF(int4));
|
||||||
|
memset(base_address,0,SIZEOF(rhdtyp) + CODE_SIZE + SIZEOF(lab_tabent) + CODE_LINES*SIZEOF(int4));
|
||||||
|
base_address->routine_name.len = STR_LIT_LEN(GTM_DMOD);
|
||||||
|
base_address->routine_name.addr = GTM_DMOD;
|
||||||
|
base_address->ptext_ptr = SIZEOF(rhdtyp);
|
||||||
|
base_address->vartab_ptr =
|
||||||
|
base_address->labtab_ptr = SIZEOF(rhdtyp) + CODE_SIZE; /* hdr + code */
|
||||||
|
base_address->lnrtab_ptr = SIZEOF(rhdtyp) + CODE_SIZE + SIZEOF(lab_tabent);
|
||||||
|
base_address->labtab_len = 1;
|
||||||
|
base_address->lnrtab_len = CODE_LINES;
|
||||||
|
code = (unsigned char *) base_address + base_address->ptext_ptr;
|
||||||
|
*code++ = I386_INS_CALL_Jv;
|
||||||
|
*((int4 *)code) = (int4)((unsigned char *)dm_setup - (code + SIZEOF(int4)));
|
||||||
|
code += SIZEOF(int4);
|
||||||
|
*code++ = I386_INS_CALL_Jv; /* this should be a CALL to maintain uniformity between transfer to mum_tstart from baseframe
|
||||||
|
and transfers to mum_tstart from error processing (MUM_TSTART marco in
|
||||||
|
mdb_condition_handler) */
|
||||||
|
*((int4 *)code) = (int4)((unsigned char *)mum_tstart - (code + SIZEOF(int4)));
|
||||||
|
code += SIZEOF(int4);
|
||||||
|
*code++ = I386_INS_JMP_Jv;
|
||||||
|
*((int4 *)code) = (int4)((unsigned char *)opp_ret - (code + SIZEOF(int4)));
|
||||||
|
code += SIZEOF(int4);
|
||||||
|
lbl = (lab_tabent *)((int) base_address + base_address->labtab_ptr);
|
||||||
|
lbl->lab_ln_ptr = base_address->lnrtab_ptr;
|
||||||
|
lnr = (int *)((int)base_address + base_address->lnrtab_ptr);
|
||||||
|
*lnr++ = base_address->ptext_ptr;
|
||||||
|
*lnr++ = base_address->ptext_ptr;
|
||||||
|
*lnr++ = base_address->ptext_ptr + 2 * CALL_SIZE;
|
||||||
|
assert(code - ((unsigned char *)base_address + base_address->ptext_ptr) == CODE_SIZE);
|
||||||
|
zlput_rname(base_address);
|
||||||
|
inst_flush(base_address, SIZEOF(rhdtyp) + CODE_SIZE + SIZEOF(lab_tabent) + CODE_LINES * SIZEOF(int4));
|
||||||
|
return base_address;
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,479 @@
|
||||||
|
/****************************************************************
|
||||||
|
* *
|
||||||
|
* 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. *
|
||||||
|
* *
|
||||||
|
****************************************************************/
|
||||||
|
|
||||||
|
#include "mdef.h"
|
||||||
|
|
||||||
|
#include "gtm_string.h"
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
#include "compiler.h"
|
||||||
|
#include <rtnhdr.h>
|
||||||
|
#include "obj_gen.h"
|
||||||
|
#include "cgp.h"
|
||||||
|
#include "mdq.h"
|
||||||
|
#include "cmd_qlf.h"
|
||||||
|
#include "objlabel.h" /* needed for masscomp.h */
|
||||||
|
#include "masscomp.h"
|
||||||
|
#include "stringpool.h"
|
||||||
|
#include "parse_file.h"
|
||||||
|
#include "gtm_fcntl.h"
|
||||||
|
#include "gtm_unistd.h"
|
||||||
|
#include "gtmio.h"
|
||||||
|
#include "mmemory.h"
|
||||||
|
#include "obj_file.h"
|
||||||
|
|
||||||
|
LITREF char gtm_release_name[];
|
||||||
|
LITREF int4 gtm_release_name_len;
|
||||||
|
|
||||||
|
GBLREF mliteral literal_chain;
|
||||||
|
GBLREF char source_file_name[];
|
||||||
|
GBLREF unsigned short source_name_len;
|
||||||
|
|
||||||
|
GBLREF command_qualifier cmd_qlf;
|
||||||
|
GBLREF mident routine_name;
|
||||||
|
GBLREF mident module_name;
|
||||||
|
GBLREF boolean_t run_time;
|
||||||
|
GBLREF int4 mlmax, mvmax;
|
||||||
|
GBLREF int4 code_size, lit_addrs, lits_size;
|
||||||
|
|
||||||
|
GBLDEF int4 psect_use_tab[GTM_LASTPSECT]; /* bytes of each psect in this module */
|
||||||
|
GBLREF char object_file_name[];
|
||||||
|
GBLREF short object_name_len;
|
||||||
|
GBLREF int object_file_des;
|
||||||
|
|
||||||
|
static short int current_psect;
|
||||||
|
static char emit_buff[OBJ_EMIT_BUF_SIZE]; /* buffer for emit output */
|
||||||
|
static short int emit_buff_used; /* number of chars in emit_buff */
|
||||||
|
|
||||||
|
GBLREF uint4 txtrel_cnt;
|
||||||
|
static uint4 cdlits;
|
||||||
|
static struct rel_table *data_rel, *data_rel_end;
|
||||||
|
static struct rel_table *text_rel, *text_rel_end;
|
||||||
|
DEBUG_ONLY(static uint4 txtrel_cnt_in_hdr;)
|
||||||
|
|
||||||
|
error_def(ERR_OBJFILERR);
|
||||||
|
|
||||||
|
void create_object_file(rhdtyp *rhead)
|
||||||
|
{
|
||||||
|
int status;
|
||||||
|
unsigned char rout_len;
|
||||||
|
uint4 stat;
|
||||||
|
char obj_name[SIZEOF(mident_fixed) + 5];
|
||||||
|
mstr fstr;
|
||||||
|
parse_blk pblk;
|
||||||
|
struct exec hdr;
|
||||||
|
error_def(ERR_FILEPARSE);
|
||||||
|
|
||||||
|
assert(!run_time);
|
||||||
|
|
||||||
|
memset(&pblk, 0, SIZEOF(pblk));
|
||||||
|
pblk.buffer = object_file_name;
|
||||||
|
pblk.buff_size = MAX_FBUFF;
|
||||||
|
/* create the object file */
|
||||||
|
fstr.len = (MV_DEFINED(&cmd_qlf.object_file) ? cmd_qlf.object_file.str.len : 0);
|
||||||
|
fstr.addr = cmd_qlf.object_file.str.addr;
|
||||||
|
rout_len = module_name.len;
|
||||||
|
memcpy(&obj_name[0], module_name.addr, rout_len);
|
||||||
|
obj_name[rout_len] = '.';
|
||||||
|
obj_name[rout_len + 1] = 'o';
|
||||||
|
obj_name[rout_len + 2] = 0;
|
||||||
|
pblk.def1_size = rout_len + 2;
|
||||||
|
pblk.def1_buf = obj_name;
|
||||||
|
status = parse_file(&fstr, &pblk);
|
||||||
|
if (!(status & 1))
|
||||||
|
rts_error(VARLSTCNT(5) ERR_FILEPARSE, 2, fstr.len, fstr.addr, status);
|
||||||
|
|
||||||
|
object_name_len = pblk.b_esl;
|
||||||
|
object_file_name[object_name_len] = 0;
|
||||||
|
|
||||||
|
OPEN_OBJECT_FILE(object_file_name, O_CREAT | O_RDWR, object_file_des);
|
||||||
|
if (FD_INVALID == object_file_des)
|
||||||
|
rts_error(VARLSTCNT(5) ERR_OBJFILERR, 2, object_name_len, object_file_name, errno);
|
||||||
|
memcpy(&rhead->jsb[0], "GTM_CODE", SIZEOF(rhead->jsb));
|
||||||
|
emit_addr((char *)&rhead->src_full_name.addr - (char *)rhead,
|
||||||
|
(int4)rhead->src_full_name.addr, (int4 *)&rhead->src_full_name.addr);
|
||||||
|
emit_addr((char *)&rhead->routine_name.addr - (char *)rhead,
|
||||||
|
(int4)rhead->routine_name.addr, (int4 *)&rhead->routine_name.addr);
|
||||||
|
txtrel_cnt += 2;
|
||||||
|
DEBUG_ONLY(txtrel_cnt_in_hdr = txtrel_cnt;)
|
||||||
|
|
||||||
|
set_psect(GTM_CODE, 0);
|
||||||
|
hdr.a_magic = OMAGIC;
|
||||||
|
hdr.a_stamp = OBJ_LABEL;
|
||||||
|
hdr.a_entry = 0;
|
||||||
|
hdr.a_bss = 0;
|
||||||
|
hdr.a_text = code_size;
|
||||||
|
assert(0 == PADLEN(lits_size, NATIVE_WSIZE));
|
||||||
|
hdr.a_data = lits_size; /* and pad to even # */
|
||||||
|
hdr.a_syms = (mlmax + cdlits) * SIZEOF(struct nlist);
|
||||||
|
hdr.a_trsize = txtrel_cnt * SIZEOF(struct relocation_info);
|
||||||
|
hdr.a_drsize = lit_addrs * SIZEOF(struct relocation_info);
|
||||||
|
emit_immed((char *)&hdr, SIZEOF(hdr));
|
||||||
|
memset(psect_use_tab, 0, SIZEOF(psect_use_tab));
|
||||||
|
emit_immed((char *)rhead, SIZEOF(*rhead));
|
||||||
|
}
|
||||||
|
|
||||||
|
void close_object_file(void)
|
||||||
|
{
|
||||||
|
assert(0 == PADLEN(lits_size, NATIVE_WSIZE));
|
||||||
|
resolve_sym();
|
||||||
|
output_relocation();
|
||||||
|
output_symbol();
|
||||||
|
if (emit_buff_used)
|
||||||
|
buff_emit();
|
||||||
|
if ((off_t)-1 == lseek(object_file_des, (off_t)0, SEEK_SET))
|
||||||
|
rts_error(VARLSTCNT(5) ERR_OBJFILERR, 2, object_name_len, object_file_name, errno);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void drop_object_file(void)
|
||||||
|
{
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
if (FD_INVALID != object_file_des)
|
||||||
|
{
|
||||||
|
UNLINK(object_file_name);
|
||||||
|
CLOSEFILE_RESET(object_file_des, rc); /* resets "object_file_des" to FD_INVALID */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GBLREF spdesc stringpool;
|
||||||
|
|
||||||
|
void emit_addr(int4 refaddr, int4 offset, int4 *result)
|
||||||
|
{
|
||||||
|
struct rel_table *newrel;
|
||||||
|
|
||||||
|
if (run_time)
|
||||||
|
{
|
||||||
|
unsigned char *ptr;
|
||||||
|
ptr = stringpool.free;
|
||||||
|
*result = offset - (int4) ptr;
|
||||||
|
} else
|
||||||
|
{ *result = offset + code_size;
|
||||||
|
newrel = (struct rel_table *) mcalloc(SIZEOF(struct rel_table));
|
||||||
|
newrel->next = (struct rel_table *) 0;
|
||||||
|
newrel->resolve = 0;
|
||||||
|
newrel->r.r_address = refaddr;
|
||||||
|
newrel->r.r_symbolnum = N_DATA;
|
||||||
|
newrel->r.r_pcrel = 0;
|
||||||
|
newrel->r.r_length = 2;
|
||||||
|
newrel->r.r_extern = 0;
|
||||||
|
newrel->r.r_pad = 0;
|
||||||
|
if (!text_rel)
|
||||||
|
text_rel = text_rel_end = newrel;
|
||||||
|
else
|
||||||
|
{ text_rel_end->next = newrel;
|
||||||
|
text_rel_end = newrel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void emit_pidr(int4 refoffset, int4 data_offset, int4 *result)
|
||||||
|
{
|
||||||
|
struct rel_table *newrel;
|
||||||
|
|
||||||
|
assert(!run_time);
|
||||||
|
refoffset += code_size;
|
||||||
|
data_offset += code_size;
|
||||||
|
*result = data_offset;
|
||||||
|
newrel = (struct rel_table *) mcalloc(SIZEOF(struct rel_table));
|
||||||
|
newrel->next = (struct rel_table *)0;
|
||||||
|
newrel->resolve = 0;
|
||||||
|
newrel->r.r_address = refoffset;
|
||||||
|
newrel->r.r_symbolnum = N_DATA;
|
||||||
|
newrel->r.r_pcrel = 0;
|
||||||
|
newrel->r.r_length = 2;
|
||||||
|
newrel->r.r_extern = 0;
|
||||||
|
newrel->r.r_pad = 0;
|
||||||
|
if (!data_rel)
|
||||||
|
data_rel = data_rel_end = newrel;
|
||||||
|
else
|
||||||
|
{ data_rel_end->next = newrel;
|
||||||
|
data_rel_end = newrel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void emit_reference(uint4 refaddr, mstr *name, uint4 *result)
|
||||||
|
{
|
||||||
|
struct sym_table *sym;
|
||||||
|
struct rel_table *newrel;
|
||||||
|
|
||||||
|
sym = define_symbol(0, name, 0);
|
||||||
|
assert(sym);
|
||||||
|
if (sym->n.n_type == (N_TEXT | N_EXT))
|
||||||
|
*result = sym->n.n_value;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
newrel = (struct rel_table *) mcalloc(SIZEOF(struct rel_table));
|
||||||
|
newrel->next = (struct rel_table *)0;
|
||||||
|
newrel->resolve = 0;
|
||||||
|
newrel->r.r_address = refaddr;
|
||||||
|
newrel->r.r_symbolnum = 0;
|
||||||
|
newrel->r.r_pcrel = 0;
|
||||||
|
newrel->r.r_length = 2;
|
||||||
|
newrel->r.r_extern = 1;
|
||||||
|
newrel->r.r_pad = 0;
|
||||||
|
if (!text_rel)
|
||||||
|
text_rel = text_rel_end = newrel;
|
||||||
|
else
|
||||||
|
{ text_rel_end->next = newrel;
|
||||||
|
text_rel_end = newrel;
|
||||||
|
}
|
||||||
|
if (sym->resolve)
|
||||||
|
newrel->resolve = sym->resolve;
|
||||||
|
sym->resolve = newrel;
|
||||||
|
*result = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* emit_immed
|
||||||
|
*
|
||||||
|
* Args: buffer of executable code, and byte count to be output.
|
||||||
|
*/
|
||||||
|
|
||||||
|
error_def(ERR_STRINGOFLOW);
|
||||||
|
void emit_immed(char *source, uint4 size)
|
||||||
|
{
|
||||||
|
short int write;
|
||||||
|
|
||||||
|
if (run_time)
|
||||||
|
{
|
||||||
|
if (stringpool.free + size > stringpool.top)
|
||||||
|
rts_error(VARLSTCNT(1) ERR_STRINGOFLOW);
|
||||||
|
memcpy(stringpool.free, source, size);
|
||||||
|
stringpool.free += size;
|
||||||
|
} else
|
||||||
|
{ while(size > 0)
|
||||||
|
{
|
||||||
|
write = SIZEOF(emit_buff) - emit_buff_used;
|
||||||
|
write = size < write ? size : write;
|
||||||
|
memcpy(emit_buff + emit_buff_used, source, write);
|
||||||
|
size -= write;
|
||||||
|
source += write;
|
||||||
|
emit_buff_used += write;
|
||||||
|
psect_use_tab[current_psect] += write;
|
||||||
|
if (size)
|
||||||
|
buff_emit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* buff_emit
|
||||||
|
*
|
||||||
|
* Args: buffer pointer, number of bytes to emit
|
||||||
|
*/
|
||||||
|
|
||||||
|
void buff_emit(void)
|
||||||
|
{
|
||||||
|
uint4 stat;
|
||||||
|
|
||||||
|
if (-1 == write(object_file_des, emit_buff, emit_buff_used))
|
||||||
|
rts_error(VARLSTCNT(5) ERR_OBJFILERR, 2, object_name_len, object_file_name, errno);
|
||||||
|
emit_buff_used = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void set_psect(unsigned char psect,unsigned char offset)
|
||||||
|
{
|
||||||
|
current_psect = psect;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* define_symbol
|
||||||
|
*
|
||||||
|
* Args: psect index, symbol name, symbol value.
|
||||||
|
*
|
||||||
|
* Description: Buffers a definition of a global symbol with the
|
||||||
|
* given name and value in the given psect.
|
||||||
|
*/
|
||||||
|
|
||||||
|
static struct sym_table *symbols;
|
||||||
|
struct sym_table *define_symbol(unsigned char psect, mstr *name, int4 value)
|
||||||
|
{
|
||||||
|
int cmp;
|
||||||
|
struct sym_table *sym, *sym1, *newsym;
|
||||||
|
|
||||||
|
sym = symbols;
|
||||||
|
sym1 = 0;
|
||||||
|
while(sym)
|
||||||
|
{
|
||||||
|
if ((cmp = memvcmp(name->addr, name->len, &sym->name[0], sym->name_len - 1)) <= 0)
|
||||||
|
break;
|
||||||
|
sym1 = sym;
|
||||||
|
sym = sym->next;
|
||||||
|
}
|
||||||
|
if (cmp || !sym)
|
||||||
|
{ newsym = (struct sym_table *) mcalloc(SIZEOF(struct sym_table) + name->len);
|
||||||
|
newsym->name_len = name->len + 1;
|
||||||
|
memcpy(&newsym->name[0], name->addr, name->len);
|
||||||
|
newsym->name[ name->len ] = 0;
|
||||||
|
newsym->n.n_strx = 0;
|
||||||
|
newsym->n.n_type = N_EXT;
|
||||||
|
if (psect == GTM_CODE)
|
||||||
|
newsym->n.n_type |= N_TEXT; /* if symbol is in GTM_CODE, it is defined */
|
||||||
|
else
|
||||||
|
txtrel_cnt++;
|
||||||
|
newsym->n.n_other = 0;
|
||||||
|
newsym->n.n_desc = 0;
|
||||||
|
newsym->n.n_value = value;
|
||||||
|
newsym->resolve = 0;
|
||||||
|
newsym->next = sym;
|
||||||
|
if (sym1)
|
||||||
|
sym1->next = newsym;
|
||||||
|
else
|
||||||
|
symbols = newsym;
|
||||||
|
cdlits++;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (!(sym->n.n_type & N_TEXT))
|
||||||
|
txtrel_cnt++;
|
||||||
|
return sym;
|
||||||
|
}
|
||||||
|
|
||||||
|
void resolve_sym(void)
|
||||||
|
{
|
||||||
|
uint4 symnum;
|
||||||
|
struct sym_table *sym;
|
||||||
|
struct rel_table *rel;
|
||||||
|
|
||||||
|
symnum = 0;
|
||||||
|
sym = symbols;
|
||||||
|
while (sym)
|
||||||
|
{ if (sym->resolve)
|
||||||
|
{ rel = sym->resolve;
|
||||||
|
while (rel)
|
||||||
|
{ rel->r.r_symbolnum = symnum;
|
||||||
|
rel = rel->resolve;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
symnum++;
|
||||||
|
sym = sym->next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void output_relocation(void)
|
||||||
|
{
|
||||||
|
struct rel_table *rel;
|
||||||
|
DEBUG_ONLY(int cnt;)
|
||||||
|
|
||||||
|
DEBUG_ONLY(cnt = 0;)
|
||||||
|
rel = text_rel;
|
||||||
|
while (rel)
|
||||||
|
{
|
||||||
|
emit_immed((char *)&rel->r, SIZEOF(rel->r));
|
||||||
|
rel = rel->next;
|
||||||
|
DEBUG_ONLY(cnt++;)
|
||||||
|
}
|
||||||
|
assert(cnt == txtrel_cnt_in_hdr);
|
||||||
|
|
||||||
|
DEBUG_ONLY(cnt = 0;)
|
||||||
|
rel = data_rel;
|
||||||
|
while (rel)
|
||||||
|
{
|
||||||
|
emit_immed((char *)&rel->r, SIZEOF(rel->r));
|
||||||
|
rel = rel->next;
|
||||||
|
DEBUG_ONLY(cnt++;)
|
||||||
|
}
|
||||||
|
assert(cnt == lit_addrs);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void output_symbol(void)
|
||||||
|
{
|
||||||
|
uint4 string_length;
|
||||||
|
struct sym_table *sym;
|
||||||
|
|
||||||
|
string_length = SIZEOF(int4);
|
||||||
|
sym = symbols;
|
||||||
|
while (sym)
|
||||||
|
{
|
||||||
|
sym->n.n_strx = string_length;
|
||||||
|
emit_immed((char *)&sym->n, SIZEOF(sym->n));
|
||||||
|
string_length += sym->name_len;
|
||||||
|
sym = sym->next;
|
||||||
|
}
|
||||||
|
emit_immed((char *)&string_length, SIZEOF(string_length));
|
||||||
|
sym = symbols;
|
||||||
|
while (sym)
|
||||||
|
{
|
||||||
|
emit_immed((char *)&sym->name[0], sym->name_len);
|
||||||
|
sym = sym->next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void obj_init(void)
|
||||||
|
{
|
||||||
|
cdlits = txtrel_cnt = 0;
|
||||||
|
data_rel = text_rel = data_rel_end = text_rel_end = 0;
|
||||||
|
symbols = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void emit_literals(void)
|
||||||
|
{
|
||||||
|
uint4 offset, padsize;
|
||||||
|
mliteral *p;
|
||||||
|
|
||||||
|
set_psect(GTM_LITERALS, 0);
|
||||||
|
offset = stringpool.free - stringpool.base;
|
||||||
|
emit_immed((char *)stringpool.base, offset);
|
||||||
|
/* comp_lits aligns the start of source path on a NATIVE_WSIZE boundary.*/
|
||||||
|
padsize = PADLEN(offset, NATIVE_WSIZE);
|
||||||
|
if (padsize)
|
||||||
|
{
|
||||||
|
emit_immed(PADCHARS, padsize);
|
||||||
|
offset += padsize;
|
||||||
|
}
|
||||||
|
emit_immed(source_file_name, source_name_len);
|
||||||
|
offset += source_name_len;
|
||||||
|
/* comp_lits aligns the start of routine_name on a NATIVE_WSIZE boundary.*/
|
||||||
|
padsize = PADLEN(offset, NATIVE_WSIZE);
|
||||||
|
if (padsize)
|
||||||
|
{
|
||||||
|
emit_immed(PADCHARS, padsize);
|
||||||
|
offset += padsize;
|
||||||
|
}
|
||||||
|
emit_immed(routine_name.addr, routine_name.len);
|
||||||
|
offset += routine_name.len;
|
||||||
|
/* comp_lits aligns the start of the literal area on a NATIVE_WSIZE boundary.*/
|
||||||
|
padsize = PADLEN(offset, NATIVE_WSIZE);
|
||||||
|
if (padsize)
|
||||||
|
{
|
||||||
|
emit_immed(PADCHARS, padsize);
|
||||||
|
offset += padsize;
|
||||||
|
}
|
||||||
|
|
||||||
|
dqloop(&literal_chain, que, p)
|
||||||
|
{
|
||||||
|
assert (p->rt_addr == offset);
|
||||||
|
MV_FORCE_NUMD(&p->v);
|
||||||
|
if (p->v.str.len)
|
||||||
|
emit_pidr(p->rt_addr + ((char *) &p->v.str.addr - (char *)&p->v),
|
||||||
|
p->v.str.addr - (char *) stringpool.base, (int4 *)&p->v.str.addr);
|
||||||
|
else
|
||||||
|
p->v.str.addr = 0;
|
||||||
|
emit_immed((char *)&p->v, SIZEOF(p->v));
|
||||||
|
offset += SIZEOF(p->v);
|
||||||
|
}
|
||||||
|
assert(lits_size == offset);
|
||||||
|
}
|
|
@ -0,0 +1,663 @@
|
||||||
|
/****************************************************************
|
||||||
|
* *
|
||||||
|
* Copyright 2001, 2012 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. *
|
||||||
|
* *
|
||||||
|
****************************************************************/
|
||||||
|
|
||||||
|
#include "mdef.h"
|
||||||
|
#include "vxi.h"
|
||||||
|
#include "vxt.h"
|
||||||
|
#include "xfer_enum.h"
|
||||||
|
LITDEF short ttt[4053] = {
|
||||||
|
|
||||||
|
/* 0 */ 0,0,0,0,306,3386,2829,530,
|
||||||
|
/* 8 */ 2202,2814,2844,1892,384,3336,2004,2960,
|
||||||
|
/* 16 */ 2081,2072,3569,3606,2045,2054,2120,2066,
|
||||||
|
/* 24 */ 2111,2090,2027,730,757,745,784,796,
|
||||||
|
/* 32 */ 808,826,868,886,904,919,948,984,
|
||||||
|
/* 40 */ 999,1014,1029,1047,1059,2930,2945,1131,
|
||||||
|
/* 48 */ 1164,1197,1236,1299,1350,1626,1641,1656,
|
||||||
|
/* 56 */ 1686,1725,1737,1761,1788,1809,1824,3401,
|
||||||
|
/* 64 */ 3423,0,0,0,0,545,0,486,
|
||||||
|
/* 72 */ 0,1878,0,2916,0,0,0,0,
|
||||||
|
/* 80 */ 0,0,338,396,2180,2186,2606,2633,
|
||||||
|
/* 88 */ 2651,2754,2692,2683,2769,3475,3559,2865,
|
||||||
|
/* 96 */ 0,2895,3026,2989,2974,3004,3350,3202,
|
||||||
|
/* 104 */ 3268,3481,3493,3508,3532,3541,3526,3517,
|
||||||
|
/* 112 */ 3301,3602,3615,3637,3674,3686,3707,3731,
|
||||||
|
/* 120 */ 3797,0,0,2802,2162,3078,4002,618,
|
||||||
|
/* 128 */ 4005,672,2663,3044,500,506,4008,2278,
|
||||||
|
/* 136 */ 2360,2252,453,2301,2380,2036,2323,2390,
|
||||||
|
/* 144 */ 4011,2147,2138,4015,1368,1386,4016,334,
|
||||||
|
/* 152 */ 330,3292,408,4020,4023,4026,2881,4029,
|
||||||
|
/* 160 */ 4032,4035,4038,4041,4044,3372,0,2778,
|
||||||
|
/* 168 */ 2446,2427,1605,2418,2198,2018,2729,1913,
|
||||||
|
/* 176 */ 697,2719,0,0,2217,3550,3578,1581,
|
||||||
|
/* 184 */ 3502,2313,1906,515,3698,1773,2129,1284,
|
||||||
|
/* 192 */ 321,3030,584,650,568,628,3662,1179,
|
||||||
|
/* 200 */ 1218,3630,2858,2156,2793,2872,600,1071,
|
||||||
|
/* 208 */ 2733,4047,2370,3749,3767,3782,477,2748,
|
||||||
|
/* 216 */ 3022,1851,3818,3809,1422,3364,559,1671,
|
||||||
|
/* 224 */ 1713,2335,4050,3435,2406,706,844,3061,
|
||||||
|
/* 232 */ 3590,3459,3445,3452,3441,682,933,2265,
|
||||||
|
/* 240 */ 2288,1113,2239,1101,2099,1086,1146,2347,
|
||||||
|
/* 248 */ 1551,1494,1479,1533,1449,1461,1506,1434,
|
||||||
|
/* 256 */ 1518,1566,0,3322,0,960,969,3181,
|
||||||
|
/* 264 */ 3247,1800,3160,3226,2226,3854,3824,3830,
|
||||||
|
/* 272 */ 3842,3864,1323,1335,1257,1269,1311,3413,
|
||||||
|
/* 280 */ 1701,1836,3878,3893,3929,3911,3088,3100,
|
||||||
|
/* 288 */ 3112,3124,2642,2657,1593,417,772,1404,
|
||||||
|
/* 296 */ 609,3136,3148,3941,3947,3956,3973,3987,
|
||||||
|
/* 304 */ 3993,3653,VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,
|
||||||
|
/* 312 */ VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_add,
|
||||||
|
/* 320 */ VXT_END,
|
||||||
|
/* 321 */ VXT_IREPL,VXT_VAL,2,VXI_CALLS,VXT_VAL,1,VXT_XFER,SIZEOF(char *) * (short int)xf_bindparm,
|
||||||
|
/* 329 */ VXT_END,
|
||||||
|
/* 330 */ VXI_INCL,VXT_VAL,1,VXT_END,
|
||||||
|
/* 334 */ VXI_CLRL,VXT_VAL,0,VXT_END,
|
||||||
|
/* 338 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_break,VXT_END,
|
||||||
|
/* 342 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_callb,VXI_BRB,VXT_JMP,1,VXT_END,
|
||||||
|
/* 349 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_calll,VXI_JMP,VXT_JMP,1,VXT_END,
|
||||||
|
/* 356 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_callw,VXI_BRW,VXT_JMP,1,VXT_END,
|
||||||
|
/* 363 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_callspb,VXI_BRB,VXT_JMP,1,VXT_END,
|
||||||
|
/* 370 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_callspl,VXI_JMP,VXT_JMP,1,VXT_END,
|
||||||
|
/* 377 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_callspw,VXI_BRW,VXT_JMP,1,VXT_END,
|
||||||
|
/* 384 */ VXT_IREPAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_VAL,
|
||||||
|
/* 392 */ 1,VXT_XFER,SIZEOF(char *) * (short int)xf_cat,VXT_END,
|
||||||
|
/* 396 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 404 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_close,VXT_END,
|
||||||
|
/* 408 */ VXI_BICB2,VXT_LIT,1,VXT_REG,0x5A,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_dt_false,
|
||||||
|
/* 416 */ VXT_END,
|
||||||
|
/* 417 */ VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_clralsvars,
|
||||||
|
/* 425 */ VXT_END,
|
||||||
|
/* 426 */ VXI_TSTL,VXT_VAL,1,VXT_END,
|
||||||
|
/* 430 */ VXI_MOVAB,VXT_VAL,1,VXT_REG,0x51,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_mval2bool,
|
||||||
|
/* 438 */ VXT_END,
|
||||||
|
/* 439 */ VXI_MOVAB,VXT_VAL,1,VXT_REG,0x51,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_mval2mint,
|
||||||
|
/* 447 */ VXI_MOVL,VXT_REG,0x50,VXT_VAL,0,VXT_END,
|
||||||
|
/* 453 */ VXI_PUSHL,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_JSB,VXT_XFER,
|
||||||
|
/* 461 */ SIZEOF(char *) * (short int)xf_commarg,VXT_END,
|
||||||
|
/* 463 */ VXI_MOVAB,VXT_VAL,0,VXT_REG,0x50,VXI_MOVL,VXT_VAL,1,
|
||||||
|
/* 471 */ VXT_REG,0x51,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_mint2mval,VXT_END,
|
||||||
|
/* 477 */ VXI_MOVAB,VXT_VAL,1,VXT_REG,0x51,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_mval2num,
|
||||||
|
/* 485 */ VXT_END,
|
||||||
|
/* 486 */ VXI_MOVAB,VXT_VAL,1,VXT_REG,0x50,VXI_MOVAB,VXT_VAL,2,
|
||||||
|
/* 494 */ VXT_REG,0x51,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_contain,VXT_END,
|
||||||
|
/* 500 */ VXI_MOVL,VXT_REG,0x6C,VXT_ADDR,0,VXT_END,
|
||||||
|
/* 506 */ VXI_MOVAB,VXT_VAL,0,VXT_REG,0x51,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_currtn,
|
||||||
|
/* 514 */ VXT_END,
|
||||||
|
/* 515 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 523 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_cvtparm,VXT_END,
|
||||||
|
/* 530 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 538 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_div,VXT_END,
|
||||||
|
/* 545 */ VXI_MOVAB,VXT_VAL,2,VXT_REG,0x51,VXI_MOVAB,VXT_VAL,1,
|
||||||
|
/* 553 */ VXT_REG,0x50,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_equ,VXT_END,
|
||||||
|
/* 559 */ VXI_MOVAB,VXT_VAL,1,VXT_REG,0x50,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_equnul,
|
||||||
|
/* 567 */ VXT_END,
|
||||||
|
/* 568 */ VXT_IREPAB,VXT_VAL,4,VXI_PUSHL,VXT_VAL,3,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 576 */ 2,VXI_PUSHL,VXT_LIT,0,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_exfun,VXT_END,
|
||||||
|
/* 584 */ VXT_IREPAB,VXT_VAL,4,VXI_PUSHL,VXT_VAL,3,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 592 */ 2,VXI_PUSHAB,VXT_VAL,0,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_exfun,VXT_END,
|
||||||
|
/* 600 */ VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_exfunret,
|
||||||
|
/* 608 */ VXT_END,
|
||||||
|
/* 609 */ VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_exfunretals,
|
||||||
|
/* 617 */ VXT_END,
|
||||||
|
/* 618 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_JSB,VXT_XFER,
|
||||||
|
/* 626 */ SIZEOF(char *) * (short int)xf_extcall,VXT_END,
|
||||||
|
/* 628 */ VXT_IREPAB,VXT_VAL,5,VXI_PUSHL,VXT_VAL,4,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 636 */ 3,VXI_PUSHL,VXT_LIT,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,
|
||||||
|
/* 644 */ VXT_VAL,1,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_extexfun,VXT_END,
|
||||||
|
/* 650 */ VXT_IREPAB,VXT_VAL,5,VXI_PUSHL,VXT_VAL,4,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 658 */ 3,VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,
|
||||||
|
/* 666 */ VXT_VAL,1,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_extexfun,VXT_END,
|
||||||
|
/* 672 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_JSB,VXT_XFER,
|
||||||
|
/* 680 */ SIZEOF(char *) * (short int)xf_extjmp,VXT_END,
|
||||||
|
/* 682 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 690 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_exp,VXT_END,
|
||||||
|
/* 697 */ VXT_IREPL,VXT_VAL,2,VXI_CALLS,VXT_VAL,1,VXT_XFER,SIZEOF(char *) * (short int)xf_fetch,
|
||||||
|
/* 705 */ VXT_END,
|
||||||
|
/* 706 */ VXT_IREPAB,VXT_VAL,6,VXI_PUSHL,VXT_VAL,5,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 714 */ 4,VXI_PUSHAB,VXT_VAL,3,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHL,
|
||||||
|
/* 722 */ VXT_LIT,0,VXI_CALLS,VXT_VAL,1,VXT_XFER,SIZEOF(char *) * (short int)xf_fnfgncal,VXT_END,
|
||||||
|
/* 730 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,1,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 738 */ 2,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnascii,VXT_END,
|
||||||
|
/* 745 */ VXT_IREPL,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_VAL,
|
||||||
|
/* 753 */ 1,VXT_XFER,SIZEOF(char *) * (short int)xf_fnchar,VXT_END,
|
||||||
|
/* 757 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,1,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 765 */ 2,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzascii,VXT_END,
|
||||||
|
/* 772 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 780 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzahandle,VXT_END,
|
||||||
|
/* 784 */ VXT_IREPL,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_VAL,
|
||||||
|
/* 792 */ 1,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzchar,VXT_END,
|
||||||
|
/* 796 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 804 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_fndata,VXT_END,
|
||||||
|
/* 808 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,1,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 816 */ 2,VXI_PUSHL,VXT_VAL,3,VXI_CALLS,VXT_LIT,4,VXT_XFER,
|
||||||
|
/* 824 */ SIZEOF(char *) * (short int)xf_fnextract,VXT_END,
|
||||||
|
/* 826 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,1,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 834 */ 2,VXI_PUSHL,VXT_VAL,3,VXI_CALLS,VXT_LIT,4,VXT_XFER,
|
||||||
|
/* 842 */ SIZEOF(char *) * (short int)xf_fnzextract,VXT_END,
|
||||||
|
/* 844 */ VXT_IREPAB,VXT_VAL,6,VXI_PUSHL,VXT_VAL,5,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 852 */ 4,VXI_PUSHAB,VXT_VAL,3,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,
|
||||||
|
/* 860 */ VXT_VAL,0,VXI_CALLS,VXT_VAL,1,VXT_XFER,SIZEOF(char *) * (short int)xf_fnfgncal,VXT_END,
|
||||||
|
/* 868 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,3,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 876 */ 2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,4,VXT_XFER,
|
||||||
|
/* 884 */ SIZEOF(char *) * (short int)xf_fnfind,VXT_END,
|
||||||
|
/* 886 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,3,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 894 */ 2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,4,VXT_XFER,
|
||||||
|
/* 902 */ SIZEOF(char *) * (short int)xf_fnzfind,VXT_END,
|
||||||
|
/* 904 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 912 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnfnumber,VXT_END,
|
||||||
|
/* 919 */ VXI_MOVAB,VXT_VAL,1,VXT_REG,0x51,VXI_MOVAB,VXT_VAL,0,
|
||||||
|
/* 927 */ VXT_REG,0x50,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_fnget,VXT_END,
|
||||||
|
/* 933 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 941 */ 0,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnget2,VXT_END,
|
||||||
|
/* 948 */ VXI_PUSHAB,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 956 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_fngvget,VXT_END,
|
||||||
|
/* 960 */ VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_fngvget1,
|
||||||
|
/* 968 */ VXT_END,
|
||||||
|
/* 969 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 977 */ 0,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fngvget2,VXT_END,
|
||||||
|
/* 984 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 992 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnincr,VXT_END,
|
||||||
|
/* 999 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1007 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnj2,VXT_END,
|
||||||
|
/* 1014 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1022 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzj2,VXT_END,
|
||||||
|
/* 1029 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,3,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 1037 */ 2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,4,VXT_XFER,
|
||||||
|
/* 1045 */ SIZEOF(char *) * (short int)xf_fnj3,VXT_END,
|
||||||
|
/* 1047 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 1055 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_fnlength,VXT_END,
|
||||||
|
/* 1059 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 1067 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzlength,VXT_END,
|
||||||
|
/* 1071 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1079 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnlvname,VXT_END,
|
||||||
|
/* 1086 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1094 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnlvnameo2,VXT_END,
|
||||||
|
/* 1101 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 1109 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_fnlvprvname,VXT_END,
|
||||||
|
/* 1113 */ VXT_IREPAB,VXT_VAL,4,VXI_PUSHAB,VXT_VAL,1,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 1121 */ 3,VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_VAL,2,VXT_XFER,
|
||||||
|
/* 1129 */ SIZEOF(char *) * (short int)xf_fnname,VXT_END,
|
||||||
|
/* 1131 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1139 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnnext,VXT_END,
|
||||||
|
/* 1146 */ VXI_PUSHAB,VXT_VAL,3,VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1154 */ 2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,4,VXT_XFER,
|
||||||
|
/* 1162 */ SIZEOF(char *) * (short int)xf_fno2,VXT_END,
|
||||||
|
/* 1164 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1172 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnorder,VXT_END,
|
||||||
|
/* 1179 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,3,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 1187 */ 2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,4,VXT_XFER,
|
||||||
|
/* 1195 */ SIZEOF(char *) * (short int)xf_fnp1,VXT_END,
|
||||||
|
/* 1197 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,4,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 1205 */ 3,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,
|
||||||
|
/* 1213 */ VXT_LIT,5,VXT_XFER,SIZEOF(char *) * (short int)xf_fnpiece,VXT_END,
|
||||||
|
/* 1218 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,3,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 1226 */ 2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,4,VXT_XFER,
|
||||||
|
/* 1234 */ SIZEOF(char *) * (short int)xf_fnzp1,VXT_END,
|
||||||
|
/* 1236 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,4,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 1244 */ 3,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,
|
||||||
|
/* 1252 */ VXT_LIT,5,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzpiece,VXT_END,
|
||||||
|
/* 1257 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 1265 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_fnqlength,VXT_END,
|
||||||
|
/* 1269 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1277 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnqsubscript,VXT_END,
|
||||||
|
/* 1284 */ VXT_IREPAB,VXT_VAL,3,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1292 */ 0,VXI_CALLS,VXT_VAL,1,VXT_XFER,SIZEOF(char *) * (short int)xf_fnquery,VXT_END,
|
||||||
|
/* 1299 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 1307 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_fnrandom,VXT_END,
|
||||||
|
/* 1311 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 1319 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_fnreverse,VXT_END,
|
||||||
|
/* 1323 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 1331 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_fnstack1,VXT_END,
|
||||||
|
/* 1335 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 1343 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnstack2,VXT_END,
|
||||||
|
/* 1350 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,3,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 1358 */ 2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,4,VXT_XFER,
|
||||||
|
/* 1366 */ SIZEOF(char *) * (short int)xf_fntext,VXT_END,
|
||||||
|
/* 1368 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,3,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1376 */ 2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,4,VXT_XFER,
|
||||||
|
/* 1384 */ SIZEOF(char *) * (short int)xf_fntranslate,VXT_END,
|
||||||
|
/* 1386 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,3,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1394 */ 2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,4,VXT_XFER,
|
||||||
|
/* 1402 */ SIZEOF(char *) * (short int)xf_fnztranslate,VXT_END,
|
||||||
|
/* 1404 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,3,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1412 */ 2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,4,VXT_XFER,
|
||||||
|
/* 1420 */ SIZEOF(char *) * (short int)xf_fnztrigger,VXT_END,
|
||||||
|
/* 1422 */ VXT_IREPAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_VAL,
|
||||||
|
/* 1430 */ 1,VXT_XFER,SIZEOF(char *) * (short int)xf_fnview,VXT_END,
|
||||||
|
/* 1434 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1442 */ 0,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzbitand,VXT_END,
|
||||||
|
/* 1449 */ VXI_PUSHAB,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 1457 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzbitcoun,VXT_END,
|
||||||
|
/* 1461 */ VXI_PUSHL,VXT_VAL,3,VXI_PUSHL,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1469 */ 1,VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_LIT,4,VXT_XFER,
|
||||||
|
/* 1477 */ SIZEOF(char *) * (short int)xf_fnzbitfind,VXT_END,
|
||||||
|
/* 1479 */ VXI_PUSHL,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1487 */ 0,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzbitget,VXT_END,
|
||||||
|
/* 1494 */ VXI_PUSHAB,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 1502 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzbitlen,VXT_END,
|
||||||
|
/* 1506 */ VXI_PUSHAB,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 1514 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzbitnot,VXT_END,
|
||||||
|
/* 1518 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1526 */ 0,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzbitor,VXT_END,
|
||||||
|
/* 1533 */ VXI_PUSHL,VXT_VAL,3,VXI_PUSHL,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1541 */ 1,VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_LIT,4,VXT_XFER,
|
||||||
|
/* 1549 */ SIZEOF(char *) * (short int)xf_fnzbitset,VXT_END,
|
||||||
|
/* 1551 */ VXI_PUSHL,VXT_VAL,2,VXI_PUSHL,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1559 */ 0,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzbitstr,VXT_END,
|
||||||
|
/* 1566 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1574 */ 0,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzbitxor,VXT_END,
|
||||||
|
/* 1581 */ VXT_IREPAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_VAL,
|
||||||
|
/* 1589 */ 1,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzcall,VXT_END,
|
||||||
|
/* 1593 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 1601 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzdata,VXT_END,
|
||||||
|
/* 1605 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,4,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1613 */ 3,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,
|
||||||
|
/* 1621 */ VXT_LIT,5,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzdate,VXT_END,
|
||||||
|
/* 1626 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1634 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzfile,VXT_END,
|
||||||
|
/* 1641 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1649 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fngetdvi,VXT_END,
|
||||||
|
/* 1656 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 1664 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fngetjpi,VXT_END,
|
||||||
|
/* 1671 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 1679 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fngetlki,VXT_END,
|
||||||
|
/* 1686 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1694 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fngetsyi,VXT_END,
|
||||||
|
/* 1701 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 1709 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzjobexam,VXT_END,
|
||||||
|
/* 1713 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 1721 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzlkid,VXT_END,
|
||||||
|
/* 1725 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 1733 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzm,VXT_END,
|
||||||
|
/* 1737 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,5,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1745 */ 4,VXI_PUSHAB,VXT_VAL,3,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,
|
||||||
|
/* 1753 */ VXT_VAL,1,VXI_CALLS,VXT_LIT,6,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzparse,VXT_END,
|
||||||
|
/* 1761 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 1769 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzpid,VXT_END,
|
||||||
|
/* 1773 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1781 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzprevious,VXT_END,
|
||||||
|
/* 1788 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 1796 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzpriv,VXT_END,
|
||||||
|
/* 1800 */ VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzqgblmod,
|
||||||
|
/* 1808 */ VXT_END,
|
||||||
|
/* 1809 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1817 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzsearch,VXT_END,
|
||||||
|
/* 1824 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 1832 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzsetprv,VXT_END,
|
||||||
|
/* 1836 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,2,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 1844 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzsigproc,VXT_END,
|
||||||
|
/* 1851 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,6,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1859 */ 5,VXI_PUSHAB,VXT_VAL,4,VXI_PUSHL,VXT_VAL,3,VXI_PUSHAB,
|
||||||
|
/* 1867 */ VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,7,
|
||||||
|
/* 1875 */ VXT_XFER,SIZEOF(char *) * (short int)xf_fnztrnlnm,VXT_END,
|
||||||
|
/* 1878 */ VXI_MOVAB,VXT_VAL,1,VXT_REG,0x50,VXI_MOVAB,VXT_VAL,2,
|
||||||
|
/* 1886 */ VXT_REG,0x51,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_follow,VXT_END,
|
||||||
|
/* 1892 */ VXI_MOVAB,VXT_VAL,0,VXT_REG,0x50,VXI_MOVAB,VXT_VAL,1,
|
||||||
|
/* 1900 */ VXT_REG,0x51,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_forcenum,VXT_END,
|
||||||
|
/* 1906 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_restartpc,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_forchk1,VXT_END,
|
||||||
|
/* 1913 */ VXI_PUSHAB,VXT_VAL,3,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1921 */ 1,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_forinit,VXT_END,
|
||||||
|
/* 1926 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_forlcldob,VXI_BRB,VXT_JMP,1,VXT_END,
|
||||||
|
/* 1933 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_forlcldol,VXI_JMP,VXT_JMP,1,VXT_END,
|
||||||
|
/* 1940 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_forlcldow,VXI_BRW,VXT_JMP,1,VXT_END,
|
||||||
|
/* 1947 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_restartpc,VXI_PUSHAB,VXT_JMP,1,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1955 */ 4,VXI_PUSHAB,VXT_VAL,3,VXI_PUSHAB,VXT_VAL,2,VXI_JSB,
|
||||||
|
/* 1963 */ VXT_XFER,SIZEOF(char *) * (short int)xf_forloop,VXT_END,
|
||||||
|
/* 1966 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_restartpc,VXI_PUSHAB,VXT_JMP,1,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1974 */ 4,VXI_PUSHAB,VXT_VAL,3,VXI_PUSHAB,VXT_VAL,2,VXI_JSB,
|
||||||
|
/* 1982 */ VXT_XFER,SIZEOF(char *) * (short int)xf_forloop,VXT_END,
|
||||||
|
/* 1985 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_restartpc,VXI_PUSHAB,VXT_JMP,1,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 1993 */ 4,VXI_PUSHAB,VXT_VAL,3,VXI_PUSHAB,VXT_VAL,2,VXI_JSB,
|
||||||
|
/* 2001 */ VXT_XFER,SIZEOF(char *) * (short int)xf_forloop,VXT_END,
|
||||||
|
/* 2004 */ VXT_IREPAB,VXT_VAL,2,VXI_CALLS,VXT_VAL,1,VXT_XFER,SIZEOF(char *) * (short int)xf_getindx,
|
||||||
|
/* 2012 */ VXI_MOVL,VXT_REG,0x50,VXT_ADDR,0,VXT_END,
|
||||||
|
/* 2018 */ VXI_MOVAB,VXT_VAL,0,VXT_REG,0x51,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_gettruth,
|
||||||
|
/* 2026 */ VXT_END,
|
||||||
|
/* 2027 */ VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_gvdata,
|
||||||
|
/* 2035 */ VXT_END,
|
||||||
|
/* 2036 */ VXT_IREPAB,VXT_VAL,2,VXI_CALLS,VXT_VAL,1,VXT_XFER,SIZEOF(char *) * (short int)xf_gvextnam,
|
||||||
|
/* 2044 */ VXT_END,
|
||||||
|
/* 2045 */ VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_gvget,
|
||||||
|
/* 2053 */ VXT_END,
|
||||||
|
/* 2054 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 2062 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_gvincr,VXT_END,
|
||||||
|
/* 2066 */ VXI_CALLS,VXT_LIT,0,VXT_XFER,SIZEOF(char *) * (short int)xf_gvkill,VXT_END,
|
||||||
|
/* 2072 */ VXT_IREPAB,VXT_VAL,2,VXI_CALLS,VXT_VAL,1,VXT_XFER,SIZEOF(char *) * (short int)xf_gvnaked,
|
||||||
|
/* 2080 */ VXT_END,
|
||||||
|
/* 2081 */ VXT_IREPAB,VXT_VAL,2,VXI_CALLS,VXT_VAL,1,VXT_XFER,SIZEOF(char *) * (short int)xf_gvname,
|
||||||
|
/* 2089 */ VXT_END,
|
||||||
|
/* 2090 */ VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_gvnext,
|
||||||
|
/* 2098 */ VXT_END,
|
||||||
|
/* 2099 */ VXI_PUSHAB,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 2107 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_gvo2,VXT_END,
|
||||||
|
/* 2111 */ VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_gvorder,
|
||||||
|
/* 2119 */ VXT_END,
|
||||||
|
/* 2120 */ VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_gvput,
|
||||||
|
/* 2128 */ VXT_END,
|
||||||
|
/* 2129 */ VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_gvquery,
|
||||||
|
/* 2137 */ VXT_END,
|
||||||
|
/* 2138 */ VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_gvrectarg,
|
||||||
|
/* 2146 */ VXT_END,
|
||||||
|
/* 2147 */ VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_gvsavtarg,
|
||||||
|
/* 2155 */ VXT_END,
|
||||||
|
/* 2156 */ VXI_CALLS,VXT_LIT,0,VXT_XFER,SIZEOF(char *) * (short int)xf_gvzwithdraw,VXT_END,
|
||||||
|
/* 2162 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_restartpc,VXT_IREPAB,VXT_VAL,4,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 2170 */ 3,VXI_PUSHL,VXT_VAL,2,VXI_CALLS,VXT_VAL,1,VXT_XFER,
|
||||||
|
/* 2178 */ SIZEOF(char *) * (short int)xf_gvzwrite,VXT_END,
|
||||||
|
/* 2180 */ VXI_CALLS,VXT_LIT,0,VXT_XFER,SIZEOF(char *) * (short int)xf_halt,VXT_END,
|
||||||
|
/* 2186 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_restartpc,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 2194 */ 1,VXT_XFER,SIZEOF(char *) * (short int)xf_hang,VXT_END,
|
||||||
|
/* 2198 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_hardret,VXT_END,
|
||||||
|
/* 2202 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 2210 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_idiv,VXT_END,
|
||||||
|
/* 2217 */ VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_igetsrc,
|
||||||
|
/* 2225 */ VXT_END,
|
||||||
|
/* 2226 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 2234 */ 1,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_inddevparms,VXT_END,
|
||||||
|
/* 2239 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 2247 */ 0,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_indfnname,VXT_END,
|
||||||
|
/* 2252 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 2260 */ 1,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_indfun,VXT_END,
|
||||||
|
/* 2265 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 2273 */ 0,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_indget,VXT_END,
|
||||||
|
/* 2278 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,1,VXI_JSB,VXT_XFER,
|
||||||
|
/* 2286 */ SIZEOF(char *) * (short int)xf_indglvn,VXT_END,
|
||||||
|
/* 2288 */ VXI_PUSHAB,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 2296 */ 0,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_indincr,VXT_END,
|
||||||
|
/* 2301 */ VXI_PUSHAB,VXT_VAL,1,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_indlvadr,VXI_MOVL,VXT_REG,
|
||||||
|
/* 2309 */ 0x50,VXT_ADDR,0,VXT_END,
|
||||||
|
/* 2313 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,1,VXI_JSB,VXT_XFER,
|
||||||
|
/* 2321 */ SIZEOF(char *) * (short int)xf_indlvarg,VXT_END,
|
||||||
|
/* 2323 */ VXT_IREPAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_VAL,
|
||||||
|
/* 2331 */ 1,VXT_XFER,SIZEOF(char *) * (short int)xf_indname,VXT_END,
|
||||||
|
/* 2335 */ VXI_PUSHAB,VXT_VAL,1,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_indlvnamadr,VXI_MOVL,VXT_REG,
|
||||||
|
/* 2343 */ 0x50,VXT_ADDR,0,VXT_END,
|
||||||
|
/* 2347 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 2355 */ 0,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_indo2,VXT_END,
|
||||||
|
/* 2360 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,1,VXI_JSB,VXT_XFER,
|
||||||
|
/* 2368 */ SIZEOF(char *) * (short int)xf_indpat,VXT_END,
|
||||||
|
/* 2370 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_JSB,VXT_XFER,
|
||||||
|
/* 2378 */ SIZEOF(char *) * (short int)xf_indrzshow,VXT_END,
|
||||||
|
/* 2380 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_JSB,VXT_XFER,
|
||||||
|
/* 2388 */ SIZEOF(char *) * (short int)xf_indset,VXT_END,
|
||||||
|
/* 2390 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,3,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 2398 */ 2,VXI_PUSHAB,VXT_VAL,1,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_indtext,VXT_END,
|
||||||
|
/* 2406 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_restartpc,VXT_IREPAB,VXT_VAL,2,VXI_CALLS,VXT_VAL,
|
||||||
|
/* 2414 */ 1,VXT_XFER,SIZEOF(char *) * (short int)xf_iocontrol,VXT_END,
|
||||||
|
/* 2418 */ VXI_MOVAB,VXT_VAL,1,VXT_REG,0x51,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_iretmvad,
|
||||||
|
/* 2426 */ VXT_END,
|
||||||
|
/* 2427 */ VXI_PUSHAB,VXT_VAL,1,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_iretmval,VXT_END,
|
||||||
|
/* 2434 */ VXI_BRB,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2438 */ VXI_JMP,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2442 */ VXI_BRW,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2446 */ VXI_JMP,VXT_VAL,1,VXT_END,
|
||||||
|
/* 2450 */ VXI_BEQL,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2454 */ VXI_BNEQ,VXT_LIT,6,VXI_JMP,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2461 */ VXI_BNEQ,VXT_LIT,3,VXI_BRW,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2468 */ VXI_BGEQ,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2472 */ VXI_BLSS,VXT_LIT,6,VXI_JMP,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2479 */ VXI_BLSS,VXT_LIT,3,VXI_BRW,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2486 */ VXI_BGTR,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2490 */ VXI_BLEQ,VXT_LIT,6,VXI_JMP,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2497 */ VXI_BLEQ,VXT_LIT,3,VXI_BRW,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2504 */ VXI_BLEQ,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2508 */ VXI_BGTR,VXT_LIT,6,VXI_JMP,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2515 */ VXI_BGTR,VXT_LIT,3,VXI_BRW,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2522 */ VXI_BLSS,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2526 */ VXI_BGEQ,VXT_LIT,6,VXI_JMP,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2533 */ VXI_BGEQ,VXT_LIT,3,VXI_BRW,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2540 */ VXI_BNEQ,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2544 */ VXI_BNEQ,VXT_LIT,6,VXI_JMP,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2551 */ VXI_BEQL,VXT_LIT,3,VXI_BRW,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2558 */ VXI_BLBC,VXT_REG,0x5A,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2564 */ VXI_BLBS,VXT_REG,0x5A,VXT_LIT,6,VXI_JMP,VXT_JMP,1,
|
||||||
|
/* 2572 */ VXT_END,
|
||||||
|
/* 2573 */ VXI_BLBS,VXT_REG,0x5A,VXT_LIT,3,VXI_BRW,VXT_JMP,1,
|
||||||
|
/* 2581 */ VXT_END,
|
||||||
|
/* 2582 */ VXI_BLBS,VXT_REG,0x5A,VXT_JMP,1,VXT_END,
|
||||||
|
/* 2588 */ VXI_BLBC,VXT_REG,0x5A,VXT_LIT,6,VXI_JMP,VXT_JMP,1,
|
||||||
|
/* 2596 */ VXT_END,
|
||||||
|
/* 2597 */ VXI_BLBC,VXT_REG,0x5A,VXT_LIT,3,VXI_BRW,VXT_JMP,1,
|
||||||
|
/* 2605 */ VXT_END,
|
||||||
|
/* 2606 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_restartpc,VXT_IREPAB,VXT_VAL,7,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 2614 */ 6,VXI_PUSHAB,VXT_VAL,5,VXI_PUSHAB,VXT_VAL,4,VXI_PUSHL,
|
||||||
|
/* 2622 */ VXT_VAL,3,VXI_PUSHAB,VXT_VAL,2,VXI_CALLS,VXT_VAL,1,
|
||||||
|
/* 2630 */ VXT_XFER,SIZEOF(char *) * (short int)xf_job,VXT_END,
|
||||||
|
/* 2633 */ VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_kill,
|
||||||
|
/* 2641 */ VXT_END,
|
||||||
|
/* 2642 */ VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_killalias,
|
||||||
|
/* 2650 */ VXT_END,
|
||||||
|
/* 2651 */ VXI_CALLS,VXT_LIT,0,VXT_XFER,SIZEOF(char *) * (short int)xf_killall,VXT_END,
|
||||||
|
/* 2657 */ VXI_CALLS,VXT_LIT,0,VXT_XFER,SIZEOF(char *) * (short int)xf_killaliasall,VXT_END,
|
||||||
|
/* 2663 */ VXI_PUSHL,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 2671 */ 3,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_labaddr,VXI_MOVL,VXT_REG,
|
||||||
|
/* 2679 */ 0x50,VXT_ADDR,0,VXT_END,
|
||||||
|
/* 2683 */ VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_lckdecr,
|
||||||
|
/* 2691 */ VXT_END,
|
||||||
|
/* 2692 */ VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_lckincr,
|
||||||
|
/* 2700 */ VXT_END,
|
||||||
|
/* 2701 */ VXI_MOVAB,VXT_JMP,1,VXT_ADDR,0,VXT_END,
|
||||||
|
/* 2707 */ VXI_MOVAB,VXT_JMP,1,VXT_ADDR,0,VXT_END,
|
||||||
|
/* 2713 */ VXI_MOVAB,VXT_JMP,1,VXT_ADDR,0,VXT_END,
|
||||||
|
/* 2719 */ VXT_IREPL,VXT_VAL,2,VXI_PUSHL,VXT_VAL,1,VXI_JSB,VXT_XFER,
|
||||||
|
/* 2727 */ SIZEOF(char *) * (short int)xf_linefetch,VXT_END,
|
||||||
|
/* 2729 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_linestart,VXT_END,
|
||||||
|
/* 2733 */ VXT_IREPAB,VXT_VAL,4,VXI_PUSHAB,VXT_VAL,3,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 2741 */ 2,VXI_CALLS,VXT_VAL,1,VXT_XFER,SIZEOF(char *) * (short int)xf_lkname,VXT_END,
|
||||||
|
/* 2748 */ VXI_CALLS,VXT_LIT,0,VXT_XFER,SIZEOF(char *) * (short int)xf_lkinit,VXT_END,
|
||||||
|
/* 2754 */ VXT_IREPAB,VXT_VAL,4,VXI_PUSHAB,VXT_VAL,3,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 2762 */ 2,VXI_CALLS,VXT_VAL,1,VXT_XFER,SIZEOF(char *) * (short int)xf_lkname,VXT_END,
|
||||||
|
/* 2769 */ VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_lock,
|
||||||
|
/* 2777 */ VXT_END,
|
||||||
|
/* 2778 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_restartpc,VXT_IREPAB,VXT_VAL,3,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 2786 */ 2,VXI_CALLS,VXT_VAL,1,VXT_XFER,SIZEOF(char *) * (short int)xf_lvpatwrite,VXT_END,
|
||||||
|
/* 2793 */ VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_lvzwithdraw,
|
||||||
|
/* 2801 */ VXT_END,
|
||||||
|
/* 2802 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_restartpc,VXT_IREPAB,VXT_VAL,2,VXI_CALLS,VXT_VAL,
|
||||||
|
/* 2810 */ 1,VXT_XFER,SIZEOF(char *) * (short int)xf_lvzwrite,VXT_END,
|
||||||
|
/* 2814 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 2822 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_flt_mod,VXT_END,
|
||||||
|
/* 2829 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 2837 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_mul,VXT_END,
|
||||||
|
/* 2844 */ VXI_MOVAB,VXT_VAL,0,VXT_REG,0x50,VXI_MOVAB,VXT_VAL,1,
|
||||||
|
/* 2852 */ VXT_REG,0x51,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_neg,VXT_END,
|
||||||
|
/* 2858 */ VXI_PUSHL,VXT_VAL,1,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_newintrinsic,VXT_END,
|
||||||
|
/* 2865 */ VXI_PUSHL,VXT_VAL,1,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_newvar,VXT_END,
|
||||||
|
/* 2872 */ VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_nullexp,
|
||||||
|
/* 2880 */ VXT_END,
|
||||||
|
/* 2881 */ VXI_MOVAB,VXT_VAL,1,VXT_REG,0x50,VXI_MOVAB,VXT_VAL,2,
|
||||||
|
/* 2889 */ VXT_REG,0x51,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_numcmp,VXT_END,
|
||||||
|
/* 2895 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_restartpc,VXI_PUSHAB,VXT_VAL,4,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 2903 */ 3,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,
|
||||||
|
/* 2911 */ VXT_LIT,4,VXT_XFER,SIZEOF(char *) * (short int)xf_open,VXT_END,
|
||||||
|
/* 2916 */ VXI_MOVAB,VXT_VAL,1,VXT_REG,0x50,VXI_MOVAB,VXT_VAL,2,
|
||||||
|
/* 2924 */ VXT_REG,0x51,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_pattern,VXT_END,
|
||||||
|
/* 2930 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 2938 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnpopulation,VXT_END,
|
||||||
|
/* 2945 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 2953 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzpopulation,VXT_END,
|
||||||
|
/* 2960 */ VXT_IREPAB,VXT_VAL,2,VXI_CALLS,VXT_VAL,1,VXT_XFER,SIZEOF(char *) * (short int)xf_putindx,
|
||||||
|
/* 2968 */ VXI_MOVL,VXT_REG,0x50,VXT_ADDR,0,VXT_END,
|
||||||
|
/* 2974 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_restartpc,VXI_PUSHL,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 2982 */ 0,VXI_CALLS,VXT_LIT,2,VXT_XFER,SIZEOF(char *) * (short int)xf_rdone,VXT_END,
|
||||||
|
/* 2989 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_restartpc,VXI_PUSHL,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 2997 */ 0,VXI_CALLS,VXT_LIT,2,VXT_XFER,SIZEOF(char *) * (short int)xf_read,VXT_END,
|
||||||
|
/* 3004 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_restartpc,VXI_PUSHL,VXT_VAL,2,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 3012 */ 1,VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_LIT,3,VXT_XFER,
|
||||||
|
/* 3020 */ SIZEOF(char *) * (short int)xf_readfl,VXT_END,
|
||||||
|
/* 3022 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_restartpc,VXT_END,
|
||||||
|
/* 3026 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_ret,VXT_END,
|
||||||
|
/* 3030 */ VXI_MOVAB,VXT_VAL,1,VXT_REG,0x50,VXI_MOVL,VXT_VAL,2,
|
||||||
|
/* 3038 */ VXT_REG,0x51,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_retarg,VXT_END,
|
||||||
|
/* 3044 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3052 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_rhdaddr,VXI_MOVL,VXT_REG,0x50,VXT_ADDR,0,
|
||||||
|
/* 3060 */ VXT_END,
|
||||||
|
/* 3061 */ VXI_PUSHL,VXT_LIT,0,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3069 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_rhdaddr,VXI_MOVL,VXT_REG,0x50,VXT_ADDR,0,
|
||||||
|
/* 3077 */ VXT_END,
|
||||||
|
/* 3078 */ VXI_PUSHL,VXT_VAL,2,VXI_PUSHL,VXT_VAL,1,VXI_JSB,VXT_XFER,
|
||||||
|
/* 3086 */ SIZEOF(char *) * (short int)xf_rterror,VXT_END,
|
||||||
|
/* 3088 */ VXI_PUSHL,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,2,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3096 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_setals2als,VXT_END,
|
||||||
|
/* 3100 */ VXI_PUSHAB,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,2,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3108 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_setalsin2alsct,VXT_END,
|
||||||
|
/* 3112 */ VXI_PUSHL,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,2,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3120 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_setalsctin2als,VXT_END,
|
||||||
|
/* 3124 */ VXI_PUSHAB,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,2,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3132 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_setalsct2alsct,VXT_END,
|
||||||
|
/* 3136 */ VXI_PUSHL,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,2,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3144 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_setfnretin2als,VXT_END,
|
||||||
|
/* 3148 */ VXI_PUSHAB,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,2,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3156 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_setfnretin2alsct,VXT_END,
|
||||||
|
/* 3160 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,3,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 3168 */ 2,VXI_PUSHAB,VXT_VAL,4,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,
|
||||||
|
/* 3176 */ VXT_LIT,5,VXT_XFER,SIZEOF(char *) * (short int)xf_setextract,VXT_END,
|
||||||
|
/* 3181 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,3,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 3189 */ 4,VXI_PUSHL,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,
|
||||||
|
/* 3197 */ VXT_LIT,5,VXT_XFER,SIZEOF(char *) * (short int)xf_setp1,VXT_END,
|
||||||
|
/* 3202 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,4,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 3210 */ 3,VXI_PUSHAB,VXT_VAL,5,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,
|
||||||
|
/* 3218 */ VXT_VAL,1,VXI_CALLS,VXT_LIT,6,VXT_XFER,SIZEOF(char *) * (short int)xf_setpiece,VXT_END,
|
||||||
|
/* 3226 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,3,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 3234 */ 2,VXI_PUSHAB,VXT_VAL,4,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,
|
||||||
|
/* 3242 */ VXT_LIT,5,VXT_XFER,SIZEOF(char *) * (short int)xf_setzextract,VXT_END,
|
||||||
|
/* 3247 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,3,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 3255 */ 4,VXI_PUSHL,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,
|
||||||
|
/* 3263 */ VXT_LIT,5,VXT_XFER,SIZEOF(char *) * (short int)xf_setzp1,VXT_END,
|
||||||
|
/* 3268 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,4,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 3276 */ 3,VXI_PUSHAB,VXT_VAL,5,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,
|
||||||
|
/* 3284 */ VXT_VAL,1,VXI_CALLS,VXT_LIT,6,VXT_XFER,SIZEOF(char *) * (short int)xf_setzpiece,VXT_END,
|
||||||
|
/* 3292 */ VXI_BISB2,VXT_LIT,1,VXT_REG,0x5A,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_dt_true,
|
||||||
|
/* 3300 */ VXT_END,
|
||||||
|
/* 3301 */ VXI_PUSHL,VXT_VAL,5,VXI_PUSHAB,VXT_VAL,4,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 3309 */ 2,VXI_PUSHAB,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,3,VXI_CALLS,
|
||||||
|
/* 3317 */ VXT_LIT,5,VXT_XFER,SIZEOF(char *) * (short int)xf_setzbrk,VXT_END,
|
||||||
|
/* 3322 */ VXI_MOVAB,VXT_VAL,1,VXT_REG,0x50,VXI_MOVAB,VXT_VAL,2,
|
||||||
|
/* 3330 */ VXT_REG,0x51,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_sorts_after,VXT_END,
|
||||||
|
/* 3336 */ VXT_IREPAB,VXT_VAL,2,VXI_CALLS,VXT_VAL,1,VXT_XFER,SIZEOF(char *) * (short int)xf_srchindx,
|
||||||
|
/* 3344 */ VXI_MOVL,VXT_REG,0x50,VXT_ADDR,0,VXT_END,
|
||||||
|
/* 3350 */ VXI_MOVAB,VXT_VAL,2,VXT_REG,0x51,VXI_MOVAB,VXT_VAL,1,
|
||||||
|
/* 3358 */ VXT_REG,0x50,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_sto,VXT_END,
|
||||||
|
/* 3364 */ VXI_MOVC3,VXT_LIT,16,VXT_VAL,2,VXT_VAL,1,VXT_END,
|
||||||
|
/* 3372 */ VXI_MOVAB,VXT_VAL,1,VXT_REG,0x51,VXI_MOVAB,VXT_VAL,0,
|
||||||
|
/* 3380 */ VXT_REG,0x50,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_sto,VXT_END,
|
||||||
|
/* 3386 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 3394 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_sub,VXT_END,
|
||||||
|
/* 3401 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3409 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_svget,VXT_END,
|
||||||
|
/* 3413 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHL,VXT_VAL,1,VXI_JSB,VXT_XFER,
|
||||||
|
/* 3421 */ SIZEOF(char *) * (short int)xf_psvput,VXT_END,
|
||||||
|
/* 3423 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3431 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_svput,VXT_END,
|
||||||
|
/* 3435 */ VXI_MOVL,VXT_REG,0x50,VXT_REG,0x5A,VXT_END,
|
||||||
|
/* 3441 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_tcommit,VXT_END,
|
||||||
|
/* 3445 */ VXI_PUSHL,VXT_VAL,1,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_trollback,VXT_END,
|
||||||
|
/* 3452 */ VXI_PUSHL,VXT_VAL,1,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_trestart,VXT_END,
|
||||||
|
/* 3459 */ VXT_IREPAB,VXT_VAL,4,VXI_PUSHL,VXT_VAL,3,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 3467 */ 2,VXI_PUSHL,VXT_VAL,1,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_tstart,VXT_END,
|
||||||
|
/* 3475 */ VXI_CALLS,VXT_LIT,0,VXT_XFER,SIZEOF(char *) * (short int)xf_unlock,VXT_END,
|
||||||
|
/* 3481 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3489 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_use,VXT_END,
|
||||||
|
/* 3493 */ VXT_IREPAB,VXT_VAL,2,VXI_CALLS,VXT_VAL,1,VXT_XFER,SIZEOF(char *) * (short int)xf_view,
|
||||||
|
/* 3501 */ VXT_END,
|
||||||
|
/* 3502 */ VXI_CMPL,VXT_VAL,1,VXT_VAL,2,VXT_END,
|
||||||
|
/* 3508 */ VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_write,
|
||||||
|
/* 3516 */ VXT_END,
|
||||||
|
/* 3517 */ VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_wteol,
|
||||||
|
/* 3525 */ VXT_END,
|
||||||
|
/* 3526 */ VXI_CALLS,VXT_LIT,0,VXT_XFER,SIZEOF(char *) * (short int)xf_wtff,VXT_END,
|
||||||
|
/* 3532 */ VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_wtone,
|
||||||
|
/* 3540 */ VXT_END,
|
||||||
|
/* 3541 */ VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_wttab,
|
||||||
|
/* 3549 */ VXT_END,
|
||||||
|
/* 3550 */ VXT_IREPAB,VXT_VAL,2,VXI_CALLS,VXT_VAL,1,VXT_XFER,SIZEOF(char *) * (short int)xf_xkill,
|
||||||
|
/* 3558 */ VXT_END,
|
||||||
|
/* 3559 */ VXT_IREPAB,VXT_VAL,2,VXI_PUSHL,VXT_VAL,1,VXI_JSB,VXT_XFER,
|
||||||
|
/* 3567 */ SIZEOF(char *) * (short int)xf_xnew,VXT_END,
|
||||||
|
/* 3569 */ VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_zallocate,
|
||||||
|
/* 3577 */ VXT_END,
|
||||||
|
/* 3578 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_restartpc,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3586 */ 1,VXT_XFER,SIZEOF(char *) * (short int)xf_zattach,VXT_END,
|
||||||
|
/* 3590 */ VXI_PUSHL,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3598 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_zcompile,VXT_END,
|
||||||
|
/* 3602 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_zcont,VXT_END,
|
||||||
|
/* 3606 */ VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_zdeallocate,
|
||||||
|
/* 3614 */ VXT_END,
|
||||||
|
/* 3615 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_restartpc,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 3623 */ 1,VXI_CALLS,VXT_LIT,2,VXT_XFER,SIZEOF(char *) * (short int)xf_zedit,VXT_END,
|
||||||
|
/* 3630 */ VXI_PUSHL,VXT_VAL,1,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_zg1,VXT_END,
|
||||||
|
/* 3637 */ VXI_PUSHL,VXT_VAL,1,VXI_PUSHL,VXT_VAL,4,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 3645 */ 3,VXI_PUSHAB,VXT_VAL,2,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_zgoto,VXT_END,
|
||||||
|
/* 3653 */ VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_zhalt,
|
||||||
|
/* 3661 */ VXT_END,
|
||||||
|
/* 3662 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3670 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_zhelp,VXT_END,
|
||||||
|
/* 3674 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3682 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_zlink,VXT_END,
|
||||||
|
/* 3686 */ VXT_IREPAB,VXT_VAL,3,VXI_PUSHL,VXT_VAL,2,VXI_CALLS,VXT_VAL,
|
||||||
|
/* 3694 */ 1,VXT_XFER,SIZEOF(char *) * (short int)xf_zmess,VXT_END,
|
||||||
|
/* 3698 */ VXI_PUSHAB,VXT_VAL,0,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_zprevious,
|
||||||
|
/* 3706 */ VXT_END,
|
||||||
|
/* 3707 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_restartpc,VXI_PUSHL,VXT_VAL,5,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 3715 */ 4,VXI_PUSHL,VXT_VAL,3,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,
|
||||||
|
/* 3723 */ VXT_VAL,1,VXI_CALLS,VXT_LIT,5,VXT_XFER,SIZEOF(char *) * (short int)xf_zprint,VXT_END,
|
||||||
|
/* 3731 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_restartpc,VXI_PUSHL,VXT_LIT,0,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 3739 */ 2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,3,VXT_XFER,
|
||||||
|
/* 3747 */ SIZEOF(char *) * (short int)xf_zshow,VXT_END,
|
||||||
|
/* 3749 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_restartpc,VXI_PUSHAB,VXT_VAL,3,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 3757 */ 2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,3,VXT_XFER,
|
||||||
|
/* 3765 */ SIZEOF(char *) * (short int)xf_zshow,VXT_END,
|
||||||
|
/* 3767 */ VXI_PUSHL,VXT_LIT,0,VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3775 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_zstep,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_zcont,VXT_END,
|
||||||
|
/* 3782 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3790 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_zstep,VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_zcont,VXT_END,
|
||||||
|
/* 3797 */ VXI_JSB,VXT_XFER,SIZEOF(char *) * (short int)xf_restartpc,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3805 */ 1,VXT_XFER,SIZEOF(char *) * (short int)xf_zsystem,VXT_END,
|
||||||
|
/* 3809 */ VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_ztcommit,
|
||||||
|
/* 3817 */ VXT_END,
|
||||||
|
/* 3818 */ VXI_CALLS,VXT_LIT,0,VXT_XFER,SIZEOF(char *) * (short int)xf_ztstart,VXT_END,
|
||||||
|
/* 3824 */ VXI_CALLS,VXT_LIT,0,VXT_XFER,SIZEOF(char *) * (short int)xf_merge,VXT_END,
|
||||||
|
/* 3830 */ VXI_PUSHL,VXT_LIT,0,VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3838 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_merge_arg,VXT_END,
|
||||||
|
/* 3842 */ VXI_PUSHAB,VXT_VAL,2,VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3850 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_merge_arg,VXT_END,
|
||||||
|
/* 3854 */ VXI_PUSHAB,VXT_VAL,1,VXI_PUSHAB,VXT_VAL,2,VXI_JSB,VXT_XFER,
|
||||||
|
/* 3862 */ SIZEOF(char *) * (short int)xf_indmerge,VXT_END,
|
||||||
|
/* 3864 */ VXT_IREPAB,VXT_VAL,2,VXI_CALLS,VXT_VAL,1,VXT_XFER,SIZEOF(char *) * (short int)xf_m_srchindx,
|
||||||
|
/* 3872 */ VXI_MOVL,VXT_REG,0x50,VXT_ADDR,0,VXT_END,
|
||||||
|
/* 3878 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,2,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 3886 */ 1,VXI_CALLS,VXT_LIT,3,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzconvert2,VXT_END,
|
||||||
|
/* 3893 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,3,VXI_PUSHAB,VXT_VAL,
|
||||||
|
/* 3901 */ 2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,4,VXT_XFER,
|
||||||
|
/* 3909 */ SIZEOF(char *) * (short int)xf_fnzconvert3,VXT_END,
|
||||||
|
/* 3911 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHL,VXT_VAL,3,VXI_PUSHL,VXT_VAL,
|
||||||
|
/* 3919 */ 2,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,4,VXT_XFER,
|
||||||
|
/* 3927 */ SIZEOF(char *) * (short int)xf_fnzsubstr,VXT_END,
|
||||||
|
/* 3929 */ VXI_PUSHAB,VXT_VAL,0,VXI_PUSHAB,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3937 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_fnzwidth,VXT_END,
|
||||||
|
/* 3941 */ VXI_CALLS,VXT_LIT,0,VXT_XFER,SIZEOF(char *) * (short int)xf_ztrigger,VXT_END,
|
||||||
|
/* 3947 */ VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_zwritesvn,
|
||||||
|
/* 3955 */ VXT_END,
|
||||||
|
/* 3956 */ VXI_PUSHL,VXT_VAL,2,VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,
|
||||||
|
/* 3964 */ 2,VXT_XFER,SIZEOF(char *) * (short int)xf_rfrshindx,VXI_MOVL,VXT_REG,0x50,VXT_ADDR,0,
|
||||||
|
/* 3972 */ VXT_END,
|
||||||
|
/* 3973 */ VXT_IREPAB,VXT_VAL,2,VXI_CALLS,VXT_VAL,1,VXT_XFER,SIZEOF(char *) * (short int)xf_savputindx,
|
||||||
|
/* 3981 */ VXI_MOVL,VXT_REG,0x50,VXT_ADDR,0,VXT_END,
|
||||||
|
/* 3987 */ VXI_CALLS,VXT_LIT,0,VXT_XFER,SIZEOF(char *) * (short int)xf_forfreeindx,VXT_END,
|
||||||
|
/* 3993 */ VXI_PUSHL,VXT_VAL,1,VXI_CALLS,VXT_LIT,1,VXT_XFER,SIZEOF(char *) * (short int)xf_fornestlvl,
|
||||||
|
/* 4001 */ VXT_END,
|
||||||
|
/* 4002 */ 342,356,349,2434,2442,2438,2701,2713,
|
||||||
|
/* 4010 */ 2707,0,0,0,463,439,430,0,
|
||||||
|
/* 4018 */ 0,426,1947,1985,1966,2582,2597,2588,
|
||||||
|
/* 4026 */ 2558,2573,2564,2450,2461,2454,2540,2551,
|
||||||
|
/* 4034 */ 2544,2486,2497,2490,2504,2515,2508,2522,
|
||||||
|
/* 4042 */ 2533,2526,2468,2479,2472,1926,1940,1933,
|
||||||
|
/* 4050 */ 363,377,370};
|
Loading…
Reference in New Issue