LTCD_070816.ISO
This commit is contained in:
1 parent
d14bbc24f9
commit
0e9364ff4c
506 files changed
+157705
-41812
No files matched your search
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,281 @@
|
||||
ALIGN 4,OC_NOP
|
||||
CMP_INTERNAL_TYPES_TABLE::
|
||||
DU4 HTT_INTERNAL_TYPE,IT_I8,8;
|
||||
DU1 "void",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_DOUBLE,8;
|
||||
DU1 "double",0;
|
||||
|
||||
DU4 HTT_INTERNAL_TYPE,IT_I0,0;
|
||||
DU1 "I0i",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_U0,0;
|
||||
DU1 "U0i",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_I0,0;
|
||||
DU1 "I0",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_U0,0;
|
||||
DU1 "U0",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_I1,1;
|
||||
DU1 "I1i",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_U1,1;
|
||||
DU1 "U1i",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_I1,1;
|
||||
DU1 "I1",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_U1,1;
|
||||
DU1 "U1",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_I2,2;
|
||||
DU1 "I2i",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_U2,2;
|
||||
DU1 "U2i",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_I4,4;
|
||||
DU1 "I4i",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_U4,4;
|
||||
DU1 "U4i",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_I8,8;
|
||||
DU1 "I8i",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_U8,8;
|
||||
DU1 "U8i",0;
|
||||
|
||||
DU4 HTT_INVALID;
|
||||
//*******************************************************
|
||||
ALIGN 8,OC_NOP
|
||||
CMP_OPT_NOP:
|
||||
DU4 EC_NOP; //Must be at IC_CODE offset
|
||||
DU1 256 DUP(0);
|
||||
|
||||
/**********
|
||||
void OptNext(IntermediateCode *tempi,
|
||||
IntermediateCode **temp_lag)
|
||||
{
|
||||
I8 i,j=0;
|
||||
for (i=3;i>0;i--)
|
||||
temp_lag[i]=temp_lag[i-1];
|
||||
temp_lag[0]=tempi;
|
||||
for (i=0;i<4;i++)
|
||||
if (temp_lag[i]->opcode>EC_END_EXP)
|
||||
temp_lag[j++]=temp_lag[i];
|
||||
while (j<4)
|
||||
temp_lag[j++]=&opt_nop;
|
||||
}
|
||||
************/
|
||||
ALIGN 8,OC_NOP
|
||||
CP_OPTNEXT::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RDI
|
||||
MOV RCX,U8 SF_PARAM1[RBP]
|
||||
MOV RDX,U8 SF_PARAM2[RBP]
|
||||
|
||||
MOV RAX,U8 16[RDX]
|
||||
MOV U8 24[RDX],RAX
|
||||
MOV RAX,U8 8[RDX]
|
||||
MOV U8 16[RDX],RAX
|
||||
MOV RAX,U8 [RDX]
|
||||
MOV U8 8[RDX],RAX
|
||||
MOV U8 [RDX],RCX
|
||||
|
||||
MOV RDI,RDX
|
||||
|
||||
MOV RAX,RCX
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JBE @@10
|
||||
STOSQ
|
||||
|
||||
@@10: MOV RAX,U8 8[RDX]
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JBE @@11
|
||||
STOSQ
|
||||
|
||||
@@11: MOV RAX,U8 16[RDX]
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JBE @@12
|
||||
STOSQ
|
||||
|
||||
@@12: MOV RAX,U8 24[RDX]
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JBE @@13
|
||||
STOSQ
|
||||
|
||||
@@13: MOV RAX,CMP_OPT_NOP
|
||||
ADD RDX,32
|
||||
JMP @@15
|
||||
|
||||
@@14: STOSQ
|
||||
@@15: CMP RDI,RDX
|
||||
JB @@14
|
||||
|
||||
POP RDI
|
||||
POP RBP
|
||||
RET
|
||||
/**********
|
||||
void OptNext2(IntermediateCode *tempi,
|
||||
IntermediateCode **temp_lag)
|
||||
{
|
||||
I8 i,j=0;
|
||||
for (i=3;i>0;i--)
|
||||
temp_lag[i]=temp_lag[i-1];
|
||||
temp_lag[0]=tempi;
|
||||
for (i=0;i<4;i++)
|
||||
if (temp_lag[i]->opcode>=EC_END_EXP)
|
||||
temp_lag[j++]=temp_lag[i];
|
||||
while (j<4)
|
||||
temp_lag[j++]=&opt_nop;
|
||||
}
|
||||
************/
|
||||
ALIGN 8,OC_NOP
|
||||
CP_OPTNEXT2::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RDI
|
||||
MOV RCX,U8 SF_PARAM1[RBP]
|
||||
MOV RDX,U8 SF_PARAM2[RBP]
|
||||
|
||||
MOV RAX,U8 16[RDX]
|
||||
MOV U8 24[RDX],RAX
|
||||
MOV RAX,U8 8[RDX]
|
||||
MOV U8 16[RDX],RAX
|
||||
MOV RAX,U8 [RDX]
|
||||
MOV U8 8[RDX],RAX
|
||||
MOV U8 [RDX],RCX
|
||||
|
||||
MOV RDI,RDX
|
||||
|
||||
MOV RAX,RCX
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JB @@10
|
||||
STOSQ
|
||||
|
||||
@@10: MOV RAX,U8 8[RDX]
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JB @@11
|
||||
STOSQ
|
||||
|
||||
@@11: MOV RAX,U8 16[RDX]
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JB @@12
|
||||
STOSQ
|
||||
|
||||
@@12: MOV RAX,U8 24[RDX]
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JB @@13
|
||||
STOSQ
|
||||
|
||||
@@13: MOV RAX,CMP_OPT_NOP
|
||||
ADD RDX,32
|
||||
JMP @@15
|
||||
|
||||
@@14: STOSQ
|
||||
@@15: CMP RDI,RDX
|
||||
JB @@14
|
||||
|
||||
POP RDI
|
||||
POP RBP
|
||||
RET
|
||||
|
||||
|
||||
ALIGN 8,OC_NOP
|
||||
CP_OPTNEXT3::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RDI
|
||||
MOV RCX,U8 SF_PARAM1[RBP]
|
||||
MOV RDX,U8 SF_PARAM2[RBP]
|
||||
|
||||
MOV RAX,U8 16[RDX]
|
||||
MOV U8 24[RDX],RAX
|
||||
MOV RAX,U8 8[RDX]
|
||||
MOV U8 16[RDX],RAX
|
||||
MOV RAX,U8 [RDX]
|
||||
MOV U8 8[RDX],RAX
|
||||
MOV U8 [RDX],RCX
|
||||
|
||||
MOV RDI,RDX
|
||||
|
||||
MOV RAX,RCX
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JB @@10
|
||||
CMP U2 IC_CODE[RAX],EC_NOP1
|
||||
JE @@10
|
||||
STOSQ
|
||||
|
||||
@@10: MOV RAX,U8 8[RDX]
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JB @@11
|
||||
CMP U2 IC_CODE[RAX],EC_NOP1
|
||||
JE @@11
|
||||
STOSQ
|
||||
|
||||
@@11: MOV RAX,U8 16[RDX]
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JB @@12
|
||||
CMP U2 IC_CODE[RAX],EC_NOP1
|
||||
JE @@12
|
||||
STOSQ
|
||||
|
||||
@@12: MOV RAX,U8 24[RDX]
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JB @@13
|
||||
CMP U2 IC_CODE[RAX],EC_NOP1
|
||||
JE @@13
|
||||
STOSQ
|
||||
|
||||
@@13: MOV RAX,CMP_OPT_NOP
|
||||
ADD RDX,32
|
||||
JMP @@15
|
||||
|
||||
@@14: STOSQ
|
||||
@@15: CMP RDI,RDX
|
||||
JB @@14
|
||||
|
||||
POP RDI
|
||||
POP RBP
|
||||
RET
|
||||
|
||||
|
||||
//*******************************************************
|
||||
/****
|
||||
void PrsPush(ParseStack *ps,I8 val)
|
||||
{
|
||||
ps->stk[ps->ptr++]=val;
|
||||
}
|
||||
I8 PrsPop(ParseStack *ps)
|
||||
{
|
||||
return ps->stk[--ps->ptr];
|
||||
}
|
||||
******/
|
||||
ALIGN 8,OC_NOP
|
||||
CP_PRSPUSH::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RCX,U8 SF_PARAM1[RBP]
|
||||
MOV RAX,U8 [RCX]
|
||||
INC RAX
|
||||
MOV RDX,U8 SF_PARAM2[RBP]
|
||||
MOV U8 [RCX+RAX*8],RDX
|
||||
MOV U8 [RCX],RAX
|
||||
POP RBP
|
||||
RET
|
||||
|
||||
ALIGN 8,OC_NOP
|
||||
CP_PRSPOP::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RCX,U8 SF_PARAM1[RBP]
|
||||
MOV RBX,U8 [RCX]
|
||||
MOV RAX,U8 [RCX+RBX*8]
|
||||
DEC RBX
|
||||
MOV U8 [RCX],RBX
|
||||
POP RBP
|
||||
RET
|
||||
|
||||
|
||||
////**************************PROCEDURE*************************
|
||||
ALIGN 8,OC_NOP
|
||||
CP_HI_CALL::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RAX,U8 SF_PARAM1[RBP]
|
||||
OR RAX,RAX
|
||||
JZ @@100
|
||||
CALL RAX
|
||||
@@100: POP RBP
|
||||
RET
|
||||
|
||||
@@ -0,0 +1,254 @@
|
||||
//Intermediate compiler codes
|
||||
#define EC_NULL 0x000
|
||||
#define EC_NOP 0x001
|
||||
#define EC_END_EXP 0x002
|
||||
#define EC_LABEL 0x003
|
||||
#define EC_CALL_START 0x004
|
||||
#define EC_CALL_END 0x005
|
||||
#define EC_RETURN_START 0x006
|
||||
#define EC_RETURN_END 0x007
|
||||
#define EC_NOP1 0x008
|
||||
#define EC_IMM 0x009
|
||||
#define EC_DOUBLE 0x00A
|
||||
#define EC_STR_CONST 0x00B
|
||||
#define EC_ABSOLUTE_ADDRESS 0x00C
|
||||
#define EC_TYPE 0x00D //not used (yet)
|
||||
#define EC_GET_LABEL 0x00E
|
||||
#define EC_RBP 0x00F
|
||||
#define EC_REG 0x010
|
||||
#define EC_FS 0x011
|
||||
#define EC_GS 0x012
|
||||
|
||||
#define EC_LEA 0x013
|
||||
|
||||
#define EC_MOV 0x014
|
||||
|
||||
#define EC_ADDRESS 0x015
|
||||
#define EC_COM 0x016
|
||||
#define EC_NOT 0x017
|
||||
#define EC_UNARY_MINUS 0x018
|
||||
|
||||
#define EC_DEREF 0x019
|
||||
#define EC__PP 0x01A
|
||||
#define EC__MM 0x01B
|
||||
#define EC_PP_ 0x01C
|
||||
#define EC_MM_ 0x01D
|
||||
|
||||
#define EC_SHL 0x01E
|
||||
#define EC_SHR 0x01F
|
||||
|
||||
#define EC_POWER 0x020
|
||||
|
||||
#define EC_MUL 0x021
|
||||
#define EC_DIV 0x022
|
||||
#define EC_MOD 0x023
|
||||
|
||||
#define EC_AND 0x024
|
||||
|
||||
#define EC_OR 0x025
|
||||
#define EC_XOR 0x026
|
||||
|
||||
#define EC_ADD 0x027
|
||||
#define EC_SUB 0x028
|
||||
|
||||
#define EC_EQUAL_EQUAL 0x029
|
||||
#define EC_NOT_EQUAL 0x02A
|
||||
#define EC_LESS 0x02B
|
||||
#define EC_GREATER 0x02C
|
||||
#define EC_LESS_EQUAL 0x02D
|
||||
#define EC_GREATER_EQUAL 0x02E
|
||||
|
||||
#define EC_AND_AND 0x02F
|
||||
|
||||
#define EC_OR_OR 0x030
|
||||
#define EC_XOR_XOR 0x031
|
||||
|
||||
#define EC_COLON 0x032
|
||||
#define EC_QUESTION 0x033
|
||||
|
||||
#define EC_ASSIGN 0x034
|
||||
|
||||
#define EC_SHL_EQUAL 0x035
|
||||
#define EC_SHR_EQUAL 0x036
|
||||
#define EC_MUL_EQUAL 0x037
|
||||
#define EC_DIV_EQUAL 0x038
|
||||
#define EC_AND_EQUAL 0x039
|
||||
#define EC_OR_EQUAL 0x03A
|
||||
#define EC_XOR_EQUAL 0x03B
|
||||
#define EC_ADD_EQUAL 0x03C
|
||||
#define EC_SUB_EQUAL 0x03D
|
||||
|
||||
#define EC_ADD_RSP 0x03E
|
||||
|
||||
#define EC_ENTER 0x03F
|
||||
#define EC_LEAVE 0x040
|
||||
#define EC_RET 0x041
|
||||
|
||||
#define EC_CALL 0x042
|
||||
#define EC_CALL_INDIRECT 0x043
|
||||
#define EC_CALL_INDIRECT2 0x044
|
||||
#define EC_IRQ 0x045
|
||||
|
||||
#define EC_CLI 0x046
|
||||
#define EC_STI 0x047
|
||||
#define EC_DISABLE_CACHE 0x048
|
||||
#define EC_ENABLE_CACHE 0x049
|
||||
#define EC_WBINVD 0x04A
|
||||
#define EC_INVD 0x04B
|
||||
|
||||
#define EC_GET_FLAGS 0x04C
|
||||
#define EC_SET_FLAGS 0x04D
|
||||
#define EC_GET_BASE_PTR 0x04E
|
||||
#define EC_SET_BASE_PTR 0x04F
|
||||
#define EC_GET_STACK_PTR 0x050
|
||||
#define EC_SET_STACK_PTR 0x051
|
||||
#define EC_SET_RAX 0x052
|
||||
|
||||
#define EC_BT 0x053
|
||||
#define EC_BTS 0x054
|
||||
#define EC_BTR 0x055
|
||||
#define EC_BTC 0x056
|
||||
#define EC_BSF 0x057
|
||||
#define EC_BSR 0x058
|
||||
#define EC_INSQUE 0x059
|
||||
#define EC_INSQUE_REV 0x05A
|
||||
#define EC_REMQUE 0x05B
|
||||
#define EC_STRLEN 0x05C
|
||||
#define EC_MEMCPY 0x05D
|
||||
#define EC_MEMSET 0x05E
|
||||
#define EC_INPD 0x05F
|
||||
#define EC_INPW 0x060
|
||||
#define EC_INP 0x061
|
||||
#define EC_OUTPD 0x062
|
||||
#define EC_OUTPW 0x063
|
||||
#define EC_OUTP 0x064
|
||||
#define EC_RDTSC 0x065
|
||||
|
||||
#define EC_JMP 0x066
|
||||
#define EC_SWITCH 0x067
|
||||
|
||||
#define EC_BR_ZERO 0x068
|
||||
#define EC_BR_NOT_ZERO 0x069
|
||||
|
||||
//ADDED DURING PASS1
|
||||
#define EC_BR_NOT_EQUAL 0x06A
|
||||
#define EC_BR_EQUAL_EQUAL 0x06B
|
||||
#define EC_BR_GREATER_EQUAL 0x06C
|
||||
#define EC_BR_LESS_EQUAL 0x06D
|
||||
#define EC_BR_GREATER 0x06E
|
||||
#define EC_BR_LESS 0x06F
|
||||
#define EC_BR_OR_OR_ZERO 0x070
|
||||
#define EC_BR_OR_OR_NOT_ZERO 0x071
|
||||
|
||||
#define EC_SHL_CONST 0x072
|
||||
#define EC_SHR_CONST 0x073
|
||||
#define EC_ADD_CONST 0x074
|
||||
#define EC_SUB_CONST 0x075
|
||||
|
||||
#define EC_PUSH_REGS 0x076
|
||||
#define EC_POP_REGS 0x077
|
||||
|
||||
#define EC_BR_BT 0x078
|
||||
#define EC_BR_BTS 0x079
|
||||
#define EC_BR_BTR 0x07A
|
||||
#define EC_BR_BTC 0x07B
|
||||
#define EC_BR_NOT_BT 0x07C
|
||||
#define EC_BR_NOT_BTS 0x07D
|
||||
#define EC_BR_NOT_BTR 0x07E
|
||||
#define EC_BR_NOT_BTC 0x07F
|
||||
#define EC_CALL_END2 0x080
|
||||
|
||||
#define EC_LBTS 0x081
|
||||
#define EC_LBTR 0x082
|
||||
#define EC_LBTC 0x083
|
||||
#define EC_BR_LBTS 0x084
|
||||
#define EC_BR_LBTR 0x085
|
||||
#define EC_BR_LBTC 0x086
|
||||
#define EC_BR_NOT_LBTS 0x087
|
||||
#define EC_BR_NOT_LBTR 0x088
|
||||
#define EC_BR_NOT_LBTC 0x089
|
||||
#define EC_BR_AND_AND_ZERO 0x08A
|
||||
#define EC_BR_AND_AND_NOT_ZERO 0x08B
|
||||
|
||||
#define EC_BR_AND_ZERO 0x08C
|
||||
#define EC_BR_AND_NOT_ZERO 0x08D
|
||||
|
||||
#define EC_MOD_EQUAL 0x08E
|
||||
#define EC_CALL_EXTERN 0x08F
|
||||
|
||||
#define EC_ABSI8 0x090
|
||||
#define EC_PUSH_CMP 0x091
|
||||
#define EC_PREEMPT 0x092
|
||||
|
||||
#define EC_NUM_ENTRIES 0x093
|
||||
|
||||
|
||||
|
||||
#define KW_INCLUDE 0
|
||||
#define KW_DEFINE 1
|
||||
#define KW_UNION 2
|
||||
#define KW_CATCH 3
|
||||
#define KW_CLASS 4
|
||||
#define KW_TRY 5
|
||||
#define KW_IF 6
|
||||
#define KW_ELSE 7
|
||||
#define KW_FOR 8
|
||||
#define KW_WHILE 9
|
||||
#define KW_EXTERN 10
|
||||
#define KW_LTEXTERN 11
|
||||
#define KW_RETURN 12
|
||||
#define KW_SIZEOF 13
|
||||
#define KW_INTERNAL 14
|
||||
#define KW_FMTSTR 15
|
||||
#define KW_FMTDATA 16
|
||||
#define KW_OUTPUT_FUN 17
|
||||
#define KW_INPUT_FUN 18
|
||||
#define KW_COUT 19
|
||||
#define KW_DO 20
|
||||
#define KW_ASM 21
|
||||
#define KW_GOTO 22
|
||||
#define KW_EXE 23
|
||||
#define KW_BREAK 24
|
||||
#define KW_CONTINUE 25
|
||||
#define KW_SWITCH 26
|
||||
#define KW_CASE 27
|
||||
#define KW_DEFAULT 28
|
||||
#define KW_PUBLIC 29
|
||||
#define KW_OFFSET 30
|
||||
#define KW_TYPEOF 31
|
||||
#define KW_IMPORT 32
|
||||
#define KW_LTIMPORT 33
|
||||
#define KW_COUTLN 34
|
||||
#define KW_IFDEF 35
|
||||
#define KW_IFNDEF 36
|
||||
#define KW_ENDIF 37
|
||||
#define KW_ASSERT 38
|
||||
#define KW_REG 39
|
||||
#define KW_NOREG 40
|
||||
#define KW_NOUNUSEDWARN 41
|
||||
#define KW_HELP_INDEX 42
|
||||
#define KW_HELP_FILE 43
|
||||
|
||||
#define AKW_ALIGN 64
|
||||
#define AKW_END 65
|
||||
#define AKW_U1 66
|
||||
#define AKW_U2 67
|
||||
#define AKW_U4 68
|
||||
#define AKW_U8 69
|
||||
#define AKW_DU1 70
|
||||
#define AKW_DU2 71
|
||||
#define AKW_DU4 72
|
||||
#define AKW_DU8 73
|
||||
#define AKW_DUP 74
|
||||
#define AKW_ORG 75
|
||||
#define AKW_STRUC 76
|
||||
#define AKW_ENDS 77
|
||||
#define AKW_USE16 78
|
||||
#define AKW_USE32 79
|
||||
#define AKW_USE64 80
|
||||
#define AKW_IMPORT 81
|
||||
#define AKW_EXPORT 82
|
||||
#define AKW_INSERT 83
|
||||
#define AKW_LIST 84
|
||||
#define AKW_NOLIST 85
|
||||
#define AKW_INSERT_COMPRESSED 86
|
||||
@@ -0,0 +1,21 @@
|
||||
extern I8 Expression(LexStruct *lx);
|
||||
extern BoolU8 GetExpression(LexStruct *lx,U1 **exp);
|
||||
extern U8 PrsUnaryTerm(LexStruct *lx,ParseStack *ps,MemberListStruct **local_var,ArrayDimStruct **tempad);
|
||||
extern U8 PrsUnaryModifier(LexStruct *lx,ParseStack *ps,MemberListStruct **local_var,ArrayDimStruct **tempad);
|
||||
extern U8 PrsDereferrence(LexStruct *lx,ParseStack *ps);
|
||||
extern void PrsExcept(LexStruct *lx,I1 *name=NULL,I1 *msg=NULL);
|
||||
extern BoolU8 CmpParseStatement(LexStruct *lx,ClassStruct *locals,I8 try_count=0,
|
||||
CbMiscStruct *break_label=NULL,CbMiscStruct *continue_label=NULL,
|
||||
BoolU4 saved_prs_semicolon=TRUE);
|
||||
extern I8 ExecuteCmdLine(LexStruct *lx);
|
||||
extern IntermediateCode *CmpOptPass1(LexStruct *lx,ClassStruct *fun_class,BoolU4 combined);
|
||||
extern void CmpOptPass2(LexStruct *lx,ClassStruct *fun_class,I8 *register_offsets);
|
||||
extern void CmpOptPass3(LexStruct *lx,I8 *register_offsets,U8 *type);
|
||||
extern void CmpOptPass4(LexStruct *lx);
|
||||
extern void CmpOptPass5(LexStruct *lx,ClassStruct *fun_class);
|
||||
extern U8 CmpOptPass678(LexStruct *lx,ClassStruct *fun_class,I8 *register_offsets,U1 *buf,I8 pass,DbgInfo **dbg_info,I8 *min_line,I8 *max_line);
|
||||
extern I8 CmpKeyWord(LexStruct *lx);
|
||||
extern void PutLexWarning(LexStruct *lx,I1 *name=NULL,I1 *msg=NULL);
|
||||
|
||||
LTextern CMP_INTERNAL_TYPES_TABLE U1 internal_types_table[1];
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
SysHashTable *asm_hash;
|
||||
BoolU4 is_first_compiler,cmp_do_not_write_to_disk;
|
||||
SysHashEntry *sys_internal_types[IT_NUM_IT];
|
||||
|
||||
U2 *duel_I1_tokens1,*duel_I1_tokens2,*duel_I1_tokens3;
|
||||
U4 *binary_ops_table,*unary_ops_table;
|
||||
U1 *cmp_param_cnt,*cmp_result_cnt;
|
||||
U1 *deref_bitmap,*assign_bitmap,*not_constant_bitmap,*cmp_bitmap;
|
||||
I8 num_stk_temps,num_reg_vars,num_non_ptr_vars;
|
||||
U8 stk_temps_mask,reg_vars_mask,non_ptr_vars_mask;
|
||||
U1 *to_stk_temps_map_odd;
|
||||
U1 *to_stk_temps_map_even;
|
||||
U1 *to_reg_vars_map,*to_non_ptr_vars_map;
|
||||
@@ -0,0 +1,603 @@
|
||||
void LoadAsmHash(BoolU4 first)
|
||||
{
|
||||
U8 i,j,type;
|
||||
U4 *dd;
|
||||
LexStruct *lx;
|
||||
I8 size,size1;
|
||||
SysHashEntry *temph;
|
||||
OpcodeHashEntry *tempo,*tempo1;
|
||||
InstructionEntry *tempi;
|
||||
ClassStruct *tempc;
|
||||
|
||||
asm_hash=NewHashTable(2048);
|
||||
size1=offset(OpcodeHashEntry.ins)+sizeof(InstructionEntry)<<5;
|
||||
tempo=MAlloc(size1);
|
||||
|
||||
lx=LexNew(ReadTextFile("OpCodes.TXZ"),0,NewStr("OpCodes.TXZ"));
|
||||
lx->hash_table_list=NULL;
|
||||
Lex(lx);
|
||||
while (lx->token) {
|
||||
if (lx->token!=TK_IDENT)
|
||||
PutAsmError(lx,"ST_EXPECTING_IDENTIFIER");
|
||||
else {
|
||||
i=MatchListEntry(lx->ident,"OPCODE\0KEYWORD\0R8\0R16\0R32\0R64\0SEG\0\0",MLE_IGNORE_CASE);
|
||||
Lex(lx); //skip keyword
|
||||
if (!i) { //OPCODE
|
||||
MemSet(tempo,0,size1);
|
||||
tempo->type=HTT_OPCODE;
|
||||
tempo->instruction_entry_cnt=0;
|
||||
tempo->str=lx->ident;
|
||||
lx->ident=0;
|
||||
Lex(lx); //Skip OPCODE
|
||||
while (lx->token && lx->token!=';') {
|
||||
tempi=&tempo->ins[tempo->instruction_entry_cnt];
|
||||
tempi->ins_entry_num=tempo->instruction_entry_cnt++;
|
||||
tempi->opcode_cnt=0;
|
||||
while (lx->token==TK_INTEGER) {
|
||||
tempi->opcode[tempi->opcode_cnt++]=lx->cur_i;
|
||||
Lex(lx);
|
||||
}
|
||||
tempi->flags=0;
|
||||
if (lx->token=='+') {
|
||||
tempi->flags|=IEF_PLUS_OPCODE;
|
||||
Lex(lx);
|
||||
}
|
||||
if (lx->token=='/') {
|
||||
if (Lex(lx)==TK_INTEGER) {
|
||||
tempi->slash_value=lx->cur_i;
|
||||
Lex(lx);
|
||||
} else if (lx->token==TK_IDENT) {
|
||||
tempi->slash_value=SV_REGISTER;
|
||||
Lex(lx);
|
||||
}
|
||||
} else
|
||||
tempi->slash_value=SV_NONE;
|
||||
if (lx->token=='*') {
|
||||
tempi->flags|=IEF_OP_SIZE16;
|
||||
Lex(lx);
|
||||
}
|
||||
if (lx->token==TK_MOD_EQUAL) {
|
||||
tempi->flags|=IEF_OP_SIZE32|IEF_48_REX;
|
||||
Lex(lx);
|
||||
}
|
||||
if (lx->token=='%') {
|
||||
tempi->flags|=IEF_OP_SIZE32;
|
||||
Lex(lx);
|
||||
}
|
||||
if (lx->token=='!') {
|
||||
tempi->flags|=IEF_DONT_SWITCH_MODES;
|
||||
Lex(lx);
|
||||
}
|
||||
if (lx->token=='&') {
|
||||
tempi->flags|=IEF_DEFAULT;
|
||||
Lex(lx);
|
||||
}
|
||||
if (lx->token=='-') {
|
||||
tempi->flags|=IEF_NO_REX;
|
||||
Lex(lx);
|
||||
}
|
||||
if (lx->token=='~') {
|
||||
tempi->flags|=IEF_40_REX;
|
||||
Lex(lx);
|
||||
}
|
||||
if (lx->token=='~') {
|
||||
tempi->flags|=IEF_40_REX;
|
||||
Lex(lx);
|
||||
} else if (lx->token=='=') {
|
||||
tempi->flags|=IEF_48_REX;
|
||||
Lex(lx);
|
||||
}
|
||||
if (lx->token!=TK_IDENT)
|
||||
PutAsmError(lx,"ST_EXPECTING_IDENTIFIER");
|
||||
else {
|
||||
tempi->opcode_modifier=MatchSysTextEntry(lx->ident,
|
||||
"ST_OPCODE_MODIFIERS",MLE_IGNORE_CASE);
|
||||
tempi->arg1=0;
|
||||
tempi->arg2=0;
|
||||
if (Lex(lx)==TK_IDENT) {
|
||||
j=MatchSysTextEntry(lx->ident,
|
||||
"ST_ARGUMENT_TYPES",MLE_IGNORE_CASE);
|
||||
tempi->arg1=j;
|
||||
if (j>=ARGT_REL8 && j<=ARGT_REL32 ||
|
||||
j>=ARGT_MOFFS8 && j<=ARGT_MOFFS64)
|
||||
tempi|=IEF_NO_REX;
|
||||
|
||||
if (Lex(lx)==TK_IDENT) {
|
||||
j=MatchSysTextEntry(lx->ident,
|
||||
"ST_ARGUMENT_TYPES",MLE_IGNORE_CASE);
|
||||
Lex(lx);
|
||||
tempi->arg2=j;
|
||||
if (j>=ARGT_REL8 && j<=ARGT_REL32 ||
|
||||
j>=ARGT_MOFFS8 && j<=ARGT_MOFFS64)
|
||||
tempi|=IEF_NO_REX;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (lx->token==';') {
|
||||
Lex(lx); //Skip ';'
|
||||
size=offset(OpcodeHashEntry.ins)+
|
||||
sizeof(InstructionEntry)*tempo->instruction_entry_cnt;
|
||||
tempo1=MAlloc(size);
|
||||
MemCpy(tempo1,tempo,size);
|
||||
tempo1->use_cnt=0;
|
||||
SetSourceFileInfo(lx,tempo1);
|
||||
AddSysHashEntry(tempo1,asm_hash);
|
||||
} else
|
||||
PutAsmError(lx,"ST_MISSING_SEMICOLON");
|
||||
} else if (i>=1 && i<=6) { //KEYWORD,R8,R16,R32,R64,SEG
|
||||
if (lx->token!=TK_IDENT)
|
||||
PutAsmError(lx,"ST_EXPECTING_IDENTIFIER");
|
||||
else {
|
||||
temph=MAllocZ(sizeof(SysHashEntry));
|
||||
temph->str=lx->ident;
|
||||
lx->ident=NULL;
|
||||
temph->use_cnt=0;
|
||||
SetSourceFileInfo(lx,temph);
|
||||
Lex(lx); //skip keyword name
|
||||
if (lx->token!=TK_INTEGER)
|
||||
PutAsmError(lx,"ST_EXPECTING_INTEGER");
|
||||
else {
|
||||
temph->user_data0=lx->cur_i;
|
||||
if (Lex(lx)!=';')
|
||||
PutAsmError(lx,"ST_MISSING_SEMICOLON");
|
||||
else {
|
||||
Lex(lx); //skip ';'
|
||||
AddSysHashEntry(temph,asm_hash);
|
||||
}
|
||||
}
|
||||
switch (i) {
|
||||
case 1:
|
||||
temph->type=HTT_KEYWORD;
|
||||
if (first) {
|
||||
temph=MAllocIdentical(temph);
|
||||
AddSysHashEntry(temph,adam_tss->hash_table);
|
||||
}
|
||||
break;
|
||||
case 2: temph->type=HTT_R8; break;
|
||||
case 3: temph->type=HTT_R16; break;
|
||||
case 4: temph->type=HTT_R32; break;
|
||||
case 5: temph->type=HTT_R64; break;
|
||||
case 6: temph->type=HTT_SEG; break;
|
||||
}
|
||||
}
|
||||
} else
|
||||
PutAsmError(lx,"Unknown Statement");
|
||||
}
|
||||
}
|
||||
Free(tempo);
|
||||
LexDel(lx);
|
||||
dd=internal_types_table;
|
||||
while (*dd!=HTT_INVALID) {
|
||||
tempc=CmpClassNew;
|
||||
tempc->type=*dd; dd+=4;
|
||||
tempc->use_cnt=0;
|
||||
tempc->source_link=NULL;
|
||||
tempc->index=NULL;
|
||||
tempc->sub_type=*dd; dd+=4;
|
||||
tempc->size=*dd; dd+=4;
|
||||
tempc->str=ANewStr(dd);
|
||||
dd+=StrLen(tempc->str)+1;
|
||||
AddSysHashEntry(tempc,asm_hash);
|
||||
sys_internal_types[tempc->sub_type]=tempc;
|
||||
if (first) {
|
||||
tempc=MAllocIdentical(tempc);
|
||||
AddSysHashEntry(tempc,adam_tss->hash_table);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void LoadCompileSysText()
|
||||
{
|
||||
LoadStr("ST_ERROR",ST_ERROR);
|
||||
LoadStr("ST_WARNING",ST_WARNING);
|
||||
LoadStr("ST_MISSING_SEMICOLON","missing ';' at");
|
||||
LoadStr("ST_MISSING_EXPRESSION","missing Expression at ");
|
||||
LoadStr("ST_MISSING_RIGHT_PAREN","missing ')' at ");
|
||||
LoadStr("ST_MISSING_RIGHT_BRACKET","missing ']' at ");
|
||||
LoadStr("ST_UNDEFINED_SYMBOL","undefined symbol at ");
|
||||
LoadStr("ST_UNDEFINED_IDENTIFIER","undefined identifier at ");
|
||||
LoadStr("ST_INVALID_CLASS","invalid class at ");
|
||||
LoadStr("ST_INVALID_MEMBER","invalid member at ");
|
||||
LoadStr("ST_EXPECTING_TYPE","expecting type at ");
|
||||
LoadStr("ST_EXPECTING_IDENTIFIER","expecting identifier at ");
|
||||
LoadStr("ST_EXPECTING_RIGHT_PAREN","expecting ')' at ");
|
||||
LoadStr("ST_EXPECTING_LEFT_BRACE","expecting '{' at ");
|
||||
LoadStr("ST_MISSING_RIGHT_BRACE","missing '}' at ");
|
||||
LoadStr("ST_INVALID_LVALUE","invalid lvalue at ");
|
||||
LoadStr("ST_EXPECTING_EQUAL","expecting '=' at ");
|
||||
LoadStr("ST_NOT_POINTER_TYPE","not pointer type at ");
|
||||
LoadStr("ST_EXPECTING_COMMA","expecting ',' at ");
|
||||
LoadStr("ST_EXPECTING_SYS_SYMBOL","expecting System symbol at ");
|
||||
LoadStr("ST_EXPECTING_STR","expecting str at ");
|
||||
LoadStr("ST_MISSING_WHILE","missing 'while' at");
|
||||
LoadStr("ST_UNKNOWN_STATEMENT","unknown statement at ");
|
||||
LoadStr("ST_ALREADY_ONE_IMMEDIATE","already one immediate at ");
|
||||
LoadStr("ST_SYNTAX_ERROR","syntax error at ");
|
||||
LoadStr("ST_EXPECTING_SCALE_FACTOR","expecting scale factor at ");
|
||||
LoadStr("ST_QUESTION_NOT_ALLOWED","'?' not allowed at ");
|
||||
LoadStr("ST_EXPECTING_LEFT_PAREN","expecting '(' at ");
|
||||
LoadStr("ST_UNDEFINED_DUP_CNT","undefined DUP cnt at ");
|
||||
LoadStr("ST_EXPECTING_COLON","expecting ':' at ");
|
||||
LoadStr("ST_EXPECTING_DOUBLE_COLON","expecting '::' at ");
|
||||
LoadStr("ST_EXPECTING_DOT","expecting '.' at ");
|
||||
LoadStr("ST_EXPECTING_LOCAL_VARIABLE","expecting local variable at ");
|
||||
LoadStr("ST_REDEFINITION","redefinition at ");
|
||||
LoadStr("ST_INVALID_INSTRUCTION","invalid instruction at ");
|
||||
LoadStr("ST_INTERNAL_ERROR","LTintern error at ");
|
||||
LoadStr("ST_BRANCH_OUT_OF_RANGE","branch out of range at ");
|
||||
LoadStr("ST_ATTEMPT_DEFINE_IMPORT","attempt to define import at ");
|
||||
LoadStr("ST_COULD_USE_U1_DISP","could use U1 displacement at ");
|
||||
LoadStr("ST_LINE","line: ");
|
||||
LoadStr("ST_NO_SIZE_SPECIFIED","no size specified at ");
|
||||
LoadList("ST_IT_TYPES","I0\0U0\0I1\0U1\0I2\0U2\0I4\0U4\0I8\0U8\0double\0udouble\0");
|
||||
LoadList("ST_TY_TYPES","NULL\0IMM\0REG\0DISP\0RIP\0STK\0\0");
|
||||
LoadList("ST_U1_REGS","AL\0CL\0DL\0BL\0AH\0CH\0DH\0BH\0"
|
||||
"R8u1\0R9u1\0R10u1\0R11u1\0R12u1\0R13u1\0R14u1\0R15u1\0");
|
||||
LoadList("ST_U2_REGS","AX\0CX\0DX\0BX\0SP\0BP\0SI\0DI\0"
|
||||
"R8u2\0R9u2\0R10u2\0R11u2\0R12u2\0R13u2\0R14u2\0R15u2\0");
|
||||
LoadList("ST_U4_REGS","EAX\0ECX\0EDX\0EBX\0ESP\0EBP\0ESI\0EDI\0"
|
||||
"R8u4\0R9u4\0R10u4\0R11u4\0R12u4\0R13u4\0R14u4\0R15u4\0");
|
||||
LoadList("ST_U8_REGS","RAX\0RCX\0RDX\0RBX\0RSP\0RBP\0RSI\0RDI\0"
|
||||
"R8\0R9\0R10\0R11\0R12\0R13\0R14\0R15\0");
|
||||
LoadList("ST_OPCODE_MODIFIERS","NO\0R\0CB\0CW\0CD\0CP\0IB\0IW\0ID\0RB\0RW\0RD\0");
|
||||
LoadList("ST_ARGUMENT_TYPES",
|
||||
"NO\0REL8\0REL16\0REL32\0UIMM8\0UIMM16\0UIMM32\0UIMM64\0"
|
||||
"R8\0R16\0R32\0R64\0"
|
||||
"IMM8\0IMM16\0IMM32\0IMM64\0RM8\0RM16\0RM32\0RM64\0"
|
||||
"M8\0M16\0M32\0"
|
||||
"M1616\0M1632\0M16N32\0M16N16\0M32N32\0"
|
||||
"MOFFS8\0MOFFS16\0MOFFS32\0MOFFS64\0"
|
||||
"AL\0AX\0EAX\0RAX\0CL\0DX\0 \0SREG\0"
|
||||
"SS\0DS\0ES\0FS\0GS\0CS\0");
|
||||
LoadList("ST_SEG_REGS","ES\0CS\0SS\0DS\0FS\0GS\0");
|
||||
LoadStr("ST_EXPECTING_INTEGER","expecting integer at ");
|
||||
LoadStr("ST_DIVIDE_BY_ZERO","Divide by zero at ");
|
||||
LoadStr("ST_OPT_INTERNAL_ERROR","Compiler Optimization Error at ");
|
||||
LoadStr("ST_UNRESOLVED_REFERENCE","Unresolved Reference:");
|
||||
LoadStr("ST_NOT_DEFINED","Not Defined");
|
||||
LoadStr("ST_SCANNING_DIRECTORY","Scanning Directory:");
|
||||
LoadStr("ST_ASM_NOT_ALLOWED","ASM not allowed");
|
||||
LoadStr("ST_UNUSED_VAR","Unused Var");
|
||||
LoadStr("ST_UNUSED_EXTERN","Unused extern");
|
||||
LoadStr("ST_NOT_ALLOWED_IN_FUNCTION","Not allowed in function");
|
||||
LoadStr("ST_MISSING_CATCH","missing 'catch' at");
|
||||
LoadStr("ST_UNDEFINED_GOTO_LABEL","Undefined goto label:");
|
||||
LoadStr("ST_BREAK_NOT_ALLOWED","'break' not allowed\r\n");
|
||||
LoadStr("ST_CONTINUE_NOT_ALLOWED","'continue' not allowed\r\n");
|
||||
LoadStr("ST_ERRORS_WARNINGS","Errors:%04d Warnings:%04d Size:%08X\r\n");
|
||||
LoadStr("ST_IMPORT_NOT_NEEDED","import not needed at ");
|
||||
LoadStr("ST_EXPECTING_CASE","expecting 'case' at ");
|
||||
LoadStr("ST_CASE_RANGE_ERROR","switch range error at ");
|
||||
LoadStr("ST_LEX_STACK_OVERFLOW","Lex Stack overflow");
|
||||
LoadStr("ST_STR_DEFAULT","Str defaults not implemented in static mode at ");
|
||||
LoadStr("ST_ASSERT_FAILED","Assert Failed ");
|
||||
LoadStr("ST_ADDRESS_EXTERN","Can't take address of extern function");
|
||||
|
||||
$AN,"Anchor for inserting Compiler systext","COMPILE_SYSTEXT"$
|
||||
|
||||
|
||||
LoadList("ST_INTERMEDIATE_CODE",
|
||||
// '*' means it is a dereferrence instruction
|
||||
// '=' means it is an assignment instruction
|
||||
// '^' means it is a compare instruction
|
||||
|
||||
// '9' param count means variable
|
||||
|
||||
// 'N' means not constant
|
||||
|
||||
// param cnt,result cnt,push prior,deref/assign
|
||||
"00..NULL\0"
|
||||
"00..NOP\0"
|
||||
"10..END_EXP\0"
|
||||
"00..LABEL\0"
|
||||
"00..CALL_START\0"
|
||||
"01..CALL_END\0"
|
||||
"00..RETURN_START\0"
|
||||
"00..RETURN_END\0"
|
||||
"00..NOP1\0"
|
||||
"01..IMM\0"
|
||||
"01..DOUBLE\0"
|
||||
"01.NSTR_CONST\0"
|
||||
"01.NABSOLUTE_ADDRESS\0"
|
||||
"01.NTYPE\0"
|
||||
"01.NGET_LABEL\0"
|
||||
"01.NRBP\0"
|
||||
"01.NREG\0"
|
||||
"00.NFS\0"
|
||||
"00.NGS\0"
|
||||
"01.NLEA\0"
|
||||
"01.NMOV\0"
|
||||
"11.NADDRESS\0"
|
||||
"11..COM\0"
|
||||
"11..NOT\0"
|
||||
"11..UNARY_MINUS\0"
|
||||
"11*NDEREF\0"
|
||||
"11*N_PP\0"
|
||||
"11*N_MM\0"
|
||||
"11*NPP_\0"
|
||||
"11*NMM_\0"
|
||||
"21..SHL\0"
|
||||
"21..SHR\0"
|
||||
"21..POWER\0"
|
||||
"21..MUL\0"
|
||||
"21..DIV\0"
|
||||
"21..MOD\0"
|
||||
"21..AND\0"
|
||||
"21..OR\0"
|
||||
"21..XOR\0"
|
||||
"21..ADD\0"
|
||||
"21..SUB\0"
|
||||
"21^.EQUAL_EQUAL\0"
|
||||
"21^.NOT_EQUAL\0"
|
||||
"21^.LESS\0"
|
||||
"21^.GREATER\0"
|
||||
"21^.LESS_EQUAL\0"
|
||||
"21^.GREATER_EQUAL\0"
|
||||
"21..AND_AND\0"
|
||||
"21..OR_OR\0"
|
||||
"21..XOR_XOR\0"
|
||||
"31..COLON\0"
|
||||
"00..QUESTION\0"
|
||||
"21=NASSIGN\0"
|
||||
"21=NSHL_EQUAL\0"
|
||||
"21=NSHR_EQUAL\0"
|
||||
"21=NMUL_EQUAL\0"
|
||||
"21=NDIV_EQUAL\0"
|
||||
"21=NAND_EQUAL\0"
|
||||
"21=NOR_EQUAL\0"
|
||||
"21=NXOR_EQUAL\0"
|
||||
"21=NADD_EQUAL\0"
|
||||
"21=NSUB_EQUAL\0"
|
||||
"90..ADD_RSP\0"
|
||||
"00..ENTER\0"
|
||||
"00..LEAVE\0"
|
||||
"00..RET\0"
|
||||
"00.NCALL\0"
|
||||
"00.NCALL_INDIRECT\0"
|
||||
"00.NCALL_INDIRECT2\0"
|
||||
"00.NIRQ\0"
|
||||
"00..CLI\0"
|
||||
"00..STI\0"
|
||||
"00..DISABLE_CACHE\0"
|
||||
"00..ENABLE_CACHE\0"
|
||||
"00..WBINVD\0"
|
||||
"00..INVD\0"
|
||||
"00.NGET_FLAGS\0"
|
||||
"10.NSET_FLAGS\0"
|
||||
"00.NGET_BASE_PTR\0"
|
||||
"10.NSET_BASE_PTR\0"
|
||||
"00.NGET_STACK_PTR\0"
|
||||
"10.NSET_STACK_PTR\0"
|
||||
"10.NSET_RAX\0"
|
||||
"20.NBT\0"
|
||||
"20.NBTS\0"
|
||||
"20.NBTR\0"
|
||||
"20.NBTC\0"
|
||||
"10.NBSF\0"
|
||||
"10.NBSR\0"
|
||||
"20.NINSQUE\0"
|
||||
"20.NINSQUE_REV\0"
|
||||
"10.NREMQUE\0"
|
||||
"10.NSTRLEN\0"
|
||||
"30.NMEMCPY\0"
|
||||
"30.NMEMSET\0"
|
||||
"10.NINPD\0"
|
||||
"10.NINPW\0"
|
||||
"10.NINP\0"
|
||||
"20.NOUTPD\0"
|
||||
"20.NOUTPW\0"
|
||||
"20.NOUTP\0"
|
||||
"00.NRDTSC\0"
|
||||
"00..JMP\0"
|
||||
"20..SWITCH\0"
|
||||
"10..BR_ZERO\0"
|
||||
"10..BR_NOT_ZERO\0"
|
||||
"20..BR_NOT_EQUAL\0"
|
||||
"20..BR_EQUAL_EQUAL\0"
|
||||
"20..BR_GREATER_EQUAL\0"
|
||||
"20..BR_LESS_EQUAL\0"
|
||||
"20..BR_GREATER\0"
|
||||
"20..BR_LESS\0"
|
||||
"20..BR_OR_OR_ZERO\0"
|
||||
"20..BR_OR_OR_NOT_ZERO\0"
|
||||
"11=.SHL_CONST\0"
|
||||
"11=.SHR_CONST\0"
|
||||
"11=.ADD_CONST\0"
|
||||
"11=.SUB_CONST\0"
|
||||
"00=.PUSH_REGS\0"
|
||||
"00=.POP_REGS\0"
|
||||
"20..BR_BT\0"
|
||||
"20..BR_BTS\0"
|
||||
"20..BR_BTR\0"
|
||||
"20..BR_BTC\0"
|
||||
"20..BR_NOT_BT\0"
|
||||
"20..BR_NOT_BTS\0"
|
||||
"20..BR_NOT_BTR\0"
|
||||
"20..BR_NOT_BTC\0"
|
||||
"00..CALL_END2\0"
|
||||
"20.NLBTS\0"
|
||||
"20.NLBTR\0"
|
||||
"20.NLBTC\0"
|
||||
"20.NBR_LBTS\0"
|
||||
"20.NBR_LBTR\0"
|
||||
"20.NBR_LBTC\0"
|
||||
"20.NBR_NOT_LBTS\0"
|
||||
"20.NBR_NOT_LBTR\0"
|
||||
"20.NBR_NOT_LBTC\0"
|
||||
"20..BR_AND_AND_ZERO\0"
|
||||
"20..BR_AND_AND_NOT_ZERO\0"
|
||||
"20..BR_AND_ZERO\0"
|
||||
"20..BR_AND_NOT_ZERO\0"
|
||||
"21=NMOD_EQUAL\0"
|
||||
"00.NCALL_EXTERN\0"
|
||||
"10.NABSI8\0"
|
||||
"01..PUSH_CMP\0"
|
||||
"10.NPREEMPT\0"
|
||||
);
|
||||
}
|
||||
|
||||
void FillCompilerTables()
|
||||
{
|
||||
I1 *st;
|
||||
U8 i,k;
|
||||
U2 *u;
|
||||
U4 *d4;
|
||||
|
||||
assign_bitmap=MAllocZ((EC_NUM_ENTRIES+7)>>3);
|
||||
deref_bitmap=MAllocZ((EC_NUM_ENTRIES+7)>>3);
|
||||
cmp_bitmap=MAllocZ((EC_NUM_ENTRIES+7)>>3);
|
||||
not_constant_bitmap=MAllocZ((EC_NUM_ENTRIES+7)>>3);
|
||||
cmp_param_cnt=MAllocZ(EC_NUM_ENTRIES);
|
||||
cmp_result_cnt=MAllocZ(EC_NUM_ENTRIES);
|
||||
st=SysText("ST_INTERMEDIATE_CODE");
|
||||
for (i=0;i<EC_NUM_ENTRIES;i++) {
|
||||
cmp_param_cnt[i]=st[0]-'0';
|
||||
cmp_result_cnt[i]=st[1]-'0';
|
||||
if (st[2]=='*')
|
||||
Bts(deref_bitmap,i);
|
||||
else if (st[2]=='=')
|
||||
Bts(assign_bitmap,i);
|
||||
else if (st[2]=='^')
|
||||
Bts(cmp_bitmap,i);
|
||||
if (st[3]=='N')
|
||||
Bts(not_constant_bitmap,i);
|
||||
st+=StrLen(st)+1;
|
||||
}
|
||||
|
||||
to_reg_vars_map=MAllocZ(NUM_REGS*sizeof(U1));
|
||||
num_reg_vars=0;
|
||||
reg_vars_mask=CREG_VARS_MASK;
|
||||
for (i=0;i<NUM_REGS;i++)
|
||||
if (Bt(®_vars_mask,i))
|
||||
to_reg_vars_map[num_reg_vars++]=i;
|
||||
|
||||
to_non_ptr_vars_map=MAllocZ(NUM_REGS*sizeof(U1));
|
||||
num_non_ptr_vars=0;
|
||||
non_ptr_vars_mask=CREG_NON_PTR_MASK;
|
||||
for (i=0;i<NUM_REGS;i++)
|
||||
if (Bt(&non_ptr_vars_mask,i))
|
||||
to_non_ptr_vars_map[num_non_ptr_vars++]=i;
|
||||
|
||||
to_stk_temps_map_odd=MAllocZ(NUM_REGS*sizeof(U1));
|
||||
to_stk_temps_map_even=MAllocZ(NUM_REGS*sizeof(U1));
|
||||
num_stk_temps=0;
|
||||
stk_temps_mask=CSTK_TEMPS_MASK;
|
||||
for (i=0;i<NUM_REGS;i++)
|
||||
if (Bt(&stk_temps_mask,i))
|
||||
to_stk_temps_map_even[num_stk_temps++]=i;
|
||||
k=num_stk_temps;
|
||||
for (i=0;i<NUM_REGS;i++)
|
||||
if (Bt(&stk_temps_mask,i))
|
||||
to_stk_temps_map_odd[--k]=i;
|
||||
|
||||
u=MAllocZ(sizeof(U2)*TK_NUM_TK);
|
||||
duel_I1_tokens1=u;
|
||||
u['!']=256*TK_NOT_EQUAL+'=';
|
||||
u['&']=256*TK_AND_AND+'&';
|
||||
u['*']=256*TK_MUL_EQUAL+'=';
|
||||
u['+']=256*TK_PLUS_PLUS+'+';
|
||||
u['-']=256*TK_DEREFERRENCE+'>';
|
||||
u['/']='*';
|
||||
u[':']=256*TK_DOUBLE_COLON+':';
|
||||
u['<']=256*TK_LESS_EQUAL+'=';
|
||||
u['=']=256*TK_EQUAL_EQUAL+'=';
|
||||
u['>']=256*TK_GREATER_EQUAL+'=';
|
||||
u['^']=256*TK_XOR_EQUAL+'=';
|
||||
u['|']=256*TK_OR_OR+'|';
|
||||
u['%']=256*TK_MOD_EQUAL+'=';
|
||||
|
||||
u=MAllocZ(sizeof(U2)*TK_NUM_TK);
|
||||
duel_I1_tokens2=u;
|
||||
u['&']=256*TK_AND_EQUAL+'=';
|
||||
u['+']=256*TK_ADD_EQUAL+'=';
|
||||
u['-']=256*TK_MINUS_MINUS+'-';
|
||||
u['/']='/';
|
||||
u['<']=256*TK_SHL+'<';
|
||||
u['>']=256*TK_SHR+'>';
|
||||
u['^']=256*TK_XOR_XOR+'^';
|
||||
u['|']=256*TK_OR_EQUAL+'=';
|
||||
|
||||
u=MAllocZ(sizeof(U2)*TK_NUM_TK);
|
||||
duel_I1_tokens3=u;
|
||||
u['-']=256*TK_SUB_EQUAL+'=';
|
||||
u['/']=256*TK_DIV_EQUAL+'=';
|
||||
u['>']=256*TK_CAST+'<';
|
||||
|
||||
//$AN,"","OP_Precidence"$Here the operator precidences are
|
||||
//defined.
|
||||
d4=MAllocZ(sizeof(U4)*TK_NUM_TK);
|
||||
unary_ops_table=d4;
|
||||
d4['~']=0x10000+EC_COM;
|
||||
d4['!']=0x10000+EC_NOT;
|
||||
d4['-']=0x10000+EC_UNARY_MINUS;
|
||||
d4['&']=0x10000+EC_ADDRESS;
|
||||
d4['*']=0x10000+EC_DEREF;
|
||||
|
||||
|
||||
d4=MAllocZ(sizeof(U4)*TK_NUM_TK);
|
||||
binary_ops_table=d4;
|
||||
//There is an exponential operator and
|
||||
//shift instructions are rightfully
|
||||
//the precidence of exponentials.
|
||||
d4['`'] =0x20000+EC_POWER;
|
||||
d4[TK_SHL] =0x20000+EC_SHL;
|
||||
d4[TK_SHR] =0x20000+EC_SHR;
|
||||
|
||||
d4['*'] =0x30000+EC_MUL;
|
||||
d4['/'] =0x30000+EC_DIV;
|
||||
d4['%'] =0x30000+EC_MOD;
|
||||
|
||||
//$FG,2$&$FG$ is higher precidence $FG,2$|$FG$, like in logic
|
||||
d4['&'] =0x40000+EC_AND;
|
||||
|
||||
d4['|'] =0x50000+EC_OR;
|
||||
d4['^'] =0x50000+EC_XOR;
|
||||
|
||||
d4['+'] =0x60000+EC_ADD;
|
||||
d4['-'] =0x60000+EC_SUB;
|
||||
|
||||
d4[TK_EQUAL_EQUAL] =0x70000+EC_EQUAL_EQUAL;
|
||||
d4[TK_NOT_EQUAL] =0x70000+EC_NOT_EQUAL;
|
||||
d4['<'] =0x70000+EC_LESS;
|
||||
d4['>'] =0x70000+EC_GREATER;
|
||||
d4[TK_LESS_EQUAL] =0x70000+EC_LESS_EQUAL;
|
||||
d4[TK_GREATER_EQUAL]=0x70000+EC_GREATER_EQUAL;
|
||||
|
||||
//$FG,2$&&$FG$ is higher precidence $FG,2$||$FG$, like in logic
|
||||
d4[TK_AND_AND] =0x80000+EC_AND_AND;
|
||||
|
||||
d4[TK_OR_OR] =0x90000+EC_OR_OR;
|
||||
d4[TK_XOR_XOR] =0x90000+EC_XOR_XOR;
|
||||
|
||||
d4[':'] =0xA0000+EC_COLON;
|
||||
d4['?'] =0xA0000+EC_QUESTION;
|
||||
|
||||
d4['='] =0x100000+EC_ASSIGN;
|
||||
d4[TK_SHL_EQUAL]=0x100000+EC_SHL_EQUAL;
|
||||
d4[TK_SHR_EQUAL]=0x100000+EC_SHR_EQUAL;
|
||||
d4[TK_MUL_EQUAL]=0x100000+EC_MUL_EQUAL;
|
||||
d4[TK_DIV_EQUAL]=0x100000+EC_DIV_EQUAL;
|
||||
d4[TK_MOD_EQUAL]=0x100000+EC_MOD_EQUAL;
|
||||
d4[TK_AND_EQUAL]=0x100000+EC_AND_EQUAL;
|
||||
d4[TK_OR_EQUAL] =0x100000+EC_OR_EQUAL;
|
||||
d4[TK_XOR_EQUAL]=0x100000+EC_XOR_EQUAL;
|
||||
d4[TK_ADD_EQUAL]=0x100000+EC_ADD_EQUAL;
|
||||
d4[TK_SUB_EQUAL]=0x100000+EC_SUB_EQUAL;
|
||||
}
|
||||
|
||||
void InitCompiler(BoolU4 first)
|
||||
{
|
||||
is_first_compiler=first;
|
||||
cmp_do_not_write_to_disk=FALSE;
|
||||
if (first)
|
||||
ext[EXT_CMP_EXE_BLK]=&CmpParseExeBlk;
|
||||
LoadCompileSysText;
|
||||
FillCompilerTables;
|
||||
MemSet(&opt_nop,0,sizeof(IntermediateCode));
|
||||
opt_nop.ic_class=sys_internal_types[IT_I8];
|
||||
|
||||
opt_nop.ic_opcode=EC_NOP;
|
||||
LoadAsmHash(first);
|
||||
}
|
||||
@@ -0,0 +1,422 @@
|
||||
void CatchAll()
|
||||
{
|
||||
I8 i;
|
||||
if (Fs->except_argc>0) {
|
||||
if (Fs->except_argv[0]<SysTextSubCount("ST_EXCEPT_TYPES")) {
|
||||
PrintF("Exception Type :%Z\r\n",Fs->except_argv[0],"ST_EXCEPT_TYPES");
|
||||
if (Fs->except_argv[0]==EXCEPT_UNDEF_SYSTEXT)
|
||||
PrintF("Name:'%s'\r\n",Fs->except_argv[1]);
|
||||
else if (Fs->except_argv[0]==EXCEPT_ARITHMETIC)
|
||||
PrintF("Address:%P\r\n",Fs->except_argv[1]);
|
||||
else if (Fs->except_argv[0]==EXCEPT_FLOATING)
|
||||
PrintF("Address:%P\r\n",Fs->except_argv[1]);
|
||||
else {
|
||||
for (i=1;i<Fs->except_argc;i++)
|
||||
cout Fs->except_argv[i]," ";
|
||||
CrLf;
|
||||
}
|
||||
} else {
|
||||
cout "Exception:";
|
||||
for (i=1;i<Fs->except_argc;i++)
|
||||
cout Fs->except_argv[i]," ";
|
||||
CrLf;
|
||||
}
|
||||
} else
|
||||
coutln "Generic Exception";
|
||||
Fs->catch_except=TRUE;
|
||||
}
|
||||
|
||||
|
||||
void ExePutS(I1 *st)
|
||||
//Inserts text into the stream of
|
||||
//characters being compiled. Called
|
||||
//from withing $FG,2$#exe{}$FG$ block.
|
||||
{
|
||||
LexStruct *lx=Fs->last_lex;
|
||||
ExeBlkStruct *tempe=lx->last_exe_blk;
|
||||
if (tempe!=&lx->next_exe_blk)
|
||||
tempe->body=Add2Str(tempe->body,st);
|
||||
else
|
||||
PrintFErr("No exe{} blk\r\n");
|
||||
}
|
||||
|
||||
void ExePrintF(I1 *src,...)
|
||||
//Inserts text into the stream of
|
||||
//characters being compiled. Called
|
||||
//from withing $FG,2$#exe{}$FG$ block.
|
||||
{
|
||||
I1 *buf=SPrintFJoin(NULL,src,argc,argv);
|
||||
ExePutS(buf);
|
||||
Free(buf);
|
||||
}
|
||||
|
||||
U1 *CompileStatement(LexStruct *lx,U8 *type=NULL)
|
||||
{
|
||||
U8 *result=INVALID_PTR;
|
||||
AsmCtrlStruct *a=lx->a;
|
||||
U8 size,i,j,k;
|
||||
DbgInfo *dbg=NULL;
|
||||
IntermediateCode *tempi;
|
||||
if (type) *type=IT_I8;
|
||||
Btr(&lx->flags,LFf_OPT_TRACE_PRESENT);
|
||||
CbInitOutPtrs(&lx->cb);
|
||||
CbAddIc(lx,EC_RETURN_START,0,sys_internal_types[IT_I8]);
|
||||
tempi=lx->cb.cb_last_out_ptr;
|
||||
if (!CmpParseStatement(lx,NULL)) {
|
||||
if (tempi!=lx->cb.cb_last_out_ptr) {
|
||||
CbAddIc(lx,EC_RETURN_END,0,sys_internal_types[IT_I8]);
|
||||
CbAddIc(lx,EC_RET,0,0);
|
||||
CbAddIc(lx,EC_NULL,0,0);
|
||||
if (result=CbCompile(lx,NULL,&size,&dbg,type)) {
|
||||
if (a) {
|
||||
j=a->ip;
|
||||
k=(size+7)>>3;
|
||||
for (i=0;i<k;i++)
|
||||
AsmStoreCodeU8(lx,result[i]);
|
||||
Free(result);
|
||||
result=j;
|
||||
}
|
||||
}
|
||||
} else
|
||||
DelLinkedList(lx->cb.cb_out_first);
|
||||
} else
|
||||
DelLinkedList(lx->cb.cb_out_first);
|
||||
Free(dbg);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
ExeStruct *CompileBuf(U1 *buf,I1 *map_name=NULL,
|
||||
I8 *error_cnt=NULL, I8 *warning_cnt=NULL,I1 mapfile_drive=0)
|
||||
{
|
||||
BoolU4 okay=TRUE;
|
||||
LexStruct *lx;
|
||||
AsmCtrlStruct *a;
|
||||
U8 i,j;
|
||||
ExeStruct *result=NULL;
|
||||
AsmCodeBlk *tempc;
|
||||
ExeImportExportStruct *tempe,*tempe1;
|
||||
|
||||
if (!is_first_compiler)
|
||||
coutln "$$FG PURPLE$$**** Not First Compiler ****$$FG$$";
|
||||
|
||||
result=MAllocZ(sizeof(ExeStruct));
|
||||
lx=LexNew(buf,LF_DONT_FREE_BUFFER,NULL);
|
||||
InsQue(lx,Fs->last_lex);
|
||||
|
||||
a=MAllocZ(sizeof(AsmCtrlStruct));
|
||||
a->code=MAllocZ(sizeof(AsmCodeBlk));
|
||||
a->local_hash=NewHashTable(16);
|
||||
a->glbl_hash=NewHashTable(2048);
|
||||
a->glbl_hash->next=asm_hash;
|
||||
a->local_hash->next=a->glbl_hash;
|
||||
|
||||
lx->a=a;
|
||||
lx->hash_table_list=a->local_hash;
|
||||
lx->define_hash_table=a->glbl_hash;
|
||||
lx->local_hash_table=a->local_hash;
|
||||
lx->glbl_hash_table=a->glbl_hash;
|
||||
Lex(lx);
|
||||
try {
|
||||
while (lx->token!=TK_EOF) {
|
||||
i=CompileStatement(lx);
|
||||
if (i!=INVALID_PTR) {
|
||||
tempe=MAlloc(sizeof(ExeImportExportStruct));
|
||||
tempe->type=EIE_MAIN;
|
||||
tempe->ip=i;
|
||||
tempe->str=NULL;
|
||||
tempe->next=NULL;
|
||||
tempe1=&result->ie;
|
||||
while (tempe1->next) //TODO:This could be optimized
|
||||
tempe1=tempe1->next;
|
||||
tempe1->next=tempe;
|
||||
}
|
||||
}
|
||||
ResolveGlbls(lx,result);
|
||||
} catch {
|
||||
if (Fs->except_argc>0)
|
||||
if (Fs->except_argv[0]==EXCEPT_COMPILER)
|
||||
Fs->catch_except=TRUE;
|
||||
okay=FALSE;
|
||||
}
|
||||
RemQue(lx);
|
||||
if (error_cnt) *error_cnt=lx->error_cnt;
|
||||
if (warning_cnt) *warning_cnt=lx->warning_cnt;
|
||||
if (!okay) {
|
||||
//TODO free debug info and possibly classes
|
||||
if (error_cnt)
|
||||
if (*error_cnt<1) *error_cnt=1;
|
||||
result=NULL;
|
||||
} else {
|
||||
if (map_name)
|
||||
CallExtStr("HashRep",a->glbl_hash,HTT_ALL,map_name,"-r-p",mapfile_drive,NULL,NULL);
|
||||
LexDel(lx);
|
||||
DelHashTable(a->local_hash);
|
||||
DelHashTable(a->glbl_hash);
|
||||
|
||||
if (!a->num_code_U1s)
|
||||
result->code=NULL;
|
||||
else {
|
||||
result->code=MAlloc(a->num_code_U1s);
|
||||
result->code_U1s=a->num_code_U1s;
|
||||
tempc=a->code;
|
||||
j=0;
|
||||
lx=a->num_code_U1s;
|
||||
while (tempc) {
|
||||
i=lx;
|
||||
if (i>ASM_CODE_BLK_SIZE)
|
||||
i=ASM_CODE_BLK_SIZE;
|
||||
MemCpy(result->code+j,tempc->body,i);
|
||||
j+=i;
|
||||
lx-=i;
|
||||
tempc=tempc->next;
|
||||
}
|
||||
}
|
||||
DelLinkedList(a->code);
|
||||
result->absolutes=a->absolutes;
|
||||
Free(a);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
I8 CompileFile(I1 *filename,I1 *map_name=NULL,I1 *out_name=NULL,I1 mapfile_drive=0)
|
||||
{
|
||||
I1 *fbuf=NULL,*fbuf2=NULL,*fbuf3=NULL;
|
||||
ExeStruct *e;
|
||||
U4 *dd;
|
||||
U8 size=0;
|
||||
U1 *header=MAlloc(0x20000),*ptr;
|
||||
BinFileHeaderStruct *bfh;
|
||||
U8 i,cnt=0,error_cnt=0,warning_cnt=0;
|
||||
ExeImportExportStruct *tempe,*tempe1;
|
||||
ExeAbsoluteAddressStruct *tempa,*tempa1;
|
||||
|
||||
fbuf=DefaultExtension(filename,"SPZ");
|
||||
fbuf2=MSPrintF("#include \"%s\"",fbuf);
|
||||
if (map_name)
|
||||
fbuf3=DefaultExtension(map_name,"MPZ");
|
||||
e=CompileBuf(fbuf2,fbuf3,&error_cnt,&warning_cnt,mapfile_drive);
|
||||
|
||||
if (e) {
|
||||
ptr=header;
|
||||
tempa=e->absolutes;
|
||||
while (tempa) {
|
||||
cnt++;
|
||||
tempa=tempa->next;
|
||||
}
|
||||
if (cnt) {
|
||||
*ptr++=EIE_ABSOLUTE_ADDRESS;
|
||||
dd=ptr;
|
||||
*dd=cnt;
|
||||
ptr+=sizeof(U4);
|
||||
*ptr++=0;
|
||||
tempa=e->absolutes;
|
||||
while (tempa) {
|
||||
tempa1=tempa->next;
|
||||
dd=ptr;
|
||||
*dd=tempa->ip;
|
||||
ptr+=sizeof(U4);
|
||||
Free(tempa);
|
||||
tempa=tempa1;
|
||||
}
|
||||
}
|
||||
tempe=e->ie;
|
||||
while (tempe) {
|
||||
tempe1=tempe->next;
|
||||
*ptr++=tempe->type;
|
||||
dd=ptr;
|
||||
*dd=tempe->ip;
|
||||
ptr+=sizeof(U4);
|
||||
if (tempe->str) {
|
||||
i=StrLen(tempe->str);
|
||||
MemCpy(ptr,tempe->str,i+1);
|
||||
Free(tempe->str);
|
||||
ptr+=i+1;
|
||||
} else
|
||||
*ptr++=0;
|
||||
Free(tempe);
|
||||
tempe=tempe1;
|
||||
}
|
||||
*ptr++=EIE_END;
|
||||
i=(ptr-header+15) & -0x10;
|
||||
size=i+e->code_U1s+sizeof(BinFileHeaderStruct);
|
||||
bfh=MAlloc(size);
|
||||
MemCpy(bfh+e->code_U1s+sizeof(BinFileHeaderStruct),header,i);
|
||||
MemCpy(bfh+sizeof(BinFileHeaderStruct),e->code,e->code_U1s);
|
||||
bfh->jmp=0xE9+256*(16-3);
|
||||
bfh->type=0;
|
||||
bfh->header_offset=e->code_U1s+sizeof(BinFileHeaderStruct);
|
||||
bfh->file_size=size;
|
||||
bfh->xsum=LT_XSUM;
|
||||
bfh->xsum=ArcCheckSum(bfh,size);
|
||||
Free(fbuf2);
|
||||
if (out_name)
|
||||
fbuf2=DefaultExtension(out_name,"BIZ");
|
||||
else
|
||||
fbuf2=ChangeExtension(fbuf,"BIZ");
|
||||
if (!cmp_do_not_write_to_disk)
|
||||
WriteFile(fbuf2,bfh,size);
|
||||
Free(bfh);
|
||||
Free(e->code);
|
||||
Free(e);
|
||||
}
|
||||
Free(header);
|
||||
Free(fbuf);
|
||||
Free(fbuf2);
|
||||
Free(fbuf3);
|
||||
PrintF(SysText("ST_ERRORS_WARNINGS"),error_cnt,warning_cnt,size);
|
||||
return error_cnt;
|
||||
}
|
||||
|
||||
I8 ExecuteCmdLine(LexStruct *lx)
|
||||
{
|
||||
I8 result=0,i,type;
|
||||
I1 *ptr,*ptr2,*ptr3;
|
||||
U1 *code;
|
||||
LtfEntry *cl;
|
||||
Ltf *l;
|
||||
while (lx->token &&
|
||||
(lx->token!='}' || !(lx->flags & LF_EXE_BLK)) ) {
|
||||
if (!Bt(&Fs->task_flags,TSSf_DONT_CHANGE_DESC)) {
|
||||
ptr2=&Fs->task_descriptor;
|
||||
ptr3=ptr2+TSS_DESC_LENGTH;
|
||||
if (lx->cur_lfn->flags & LFSF_IS_LTF) {
|
||||
cl=lx->cur_lfn->line_start;
|
||||
l=lx->cur_lfn->l;
|
||||
while (cl!=l && ptr2<ptr3) {
|
||||
switch (cl->btype && ptr2<ptr3) {
|
||||
case LTFT_TEXT:
|
||||
ptr=cl->display;
|
||||
while (*ptr && ptr2<ptr3)
|
||||
*ptr2++=*ptr++;
|
||||
break;
|
||||
case LTFT_TAB:
|
||||
case LTFT_CR:
|
||||
*ptr2++='.';
|
||||
break;
|
||||
}
|
||||
cl=cl->next;
|
||||
}
|
||||
} else
|
||||
if (ptr=lx->cur_lfn->line_start)
|
||||
MemCpy(ptr2,ptr,TSS_DESC_LENGTH);
|
||||
}
|
||||
code=CompileStatement(lx,&type);
|
||||
if (code!=INVALID_PTR) {
|
||||
result=Call(code);
|
||||
for (i=6;i>=0;i--) {
|
||||
Fs->answers[i+1]=Fs->answers[i];
|
||||
Fs->double_answers[i+1]=Fs->double_answers[i];
|
||||
Fs->answers_types[i+1]=Fs->answers_types[i];
|
||||
}
|
||||
Fs->answers[0]=result;
|
||||
Fs->double_answers[0]=result><(double);
|
||||
Fs->answers_types[0]=type;
|
||||
Free(code);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void ContinueUserTask()
|
||||
{
|
||||
LexStruct *lx;
|
||||
while (TRUE) {
|
||||
lx=LexNew(NULL,LF_PROMPT,NULL);
|
||||
InsQue(lx,Fs->last_lex);
|
||||
try {
|
||||
Lex(lx);
|
||||
ExecuteCmdLine(lx);
|
||||
RemQue(lx);
|
||||
LexDel(lx); //TODO: Sometimes crashes on BREAK
|
||||
} catch
|
||||
CatchAll;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
I1 *CmpMGetS()
|
||||
{
|
||||
I1 buf[512];
|
||||
GetS(buf,512,FALSE);
|
||||
return NewStr(buf);
|
||||
}
|
||||
|
||||
void CmpDebugger()
|
||||
{
|
||||
LBts(&sys_semas[SYS_SEMA_IN_DEBUGGER],0);
|
||||
Fs->task_flags&=~(1<<TSSf_AWAITING_MSG);
|
||||
InitUserTask;
|
||||
sys_cur_focus_task=Fs;
|
||||
sys_cur_scan_code=0;
|
||||
ext[EXT_MGETS]=&CmpMGetS;
|
||||
ContinueUserTask;
|
||||
}
|
||||
|
||||
I8 ExecuteStr(I1 *buf,I1 *filename=NULL)
|
||||
{
|
||||
I8 result;
|
||||
BoolU4 okay=TRUE;
|
||||
LexStruct *lx;
|
||||
if (!filename)
|
||||
filename=sys_temp_filename;
|
||||
lx=LexNew(buf,LF_DONT_FREE_BUFFER,AbsoluteFileName(filename));
|
||||
InsQue(lx,Fs->last_lex);
|
||||
try {
|
||||
Lex(lx);
|
||||
result=ExecuteCmdLine(lx);
|
||||
} catch {
|
||||
if (Fs->except_argc>0) {
|
||||
if (Fs->except_argv[0]==EXCEPT_COMPILER ||
|
||||
Fs->except_argv[0]==EXCEPT_BREAK) {
|
||||
Fs->catch_except=TRUE;
|
||||
okay=FALSE;
|
||||
result=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
RemQue(lx);
|
||||
if (okay)
|
||||
LexDel(lx); //TODO: can crash
|
||||
return result;
|
||||
}
|
||||
|
||||
I8 ExecuteFile(I1 *name)
|
||||
{
|
||||
I8 result;
|
||||
I1 *name2=DefaultExtension(name,"CPZ");
|
||||
I1 *st=MSPrintF("#include \"%s\";",name2);
|
||||
result=ExecuteStr(st,name);
|
||||
Free(st);
|
||||
Free(name2);
|
||||
return result;
|
||||
}
|
||||
|
||||
#define ADAM_STARTUP_NAME "/LT/OSMain/AdamK.APZ"
|
||||
void AdamStartUpFile()
|
||||
{
|
||||
BoolU4 okay=TRUE;
|
||||
LexStruct *lx=LexNew(ReadTextFile(ADAM_STARTUP_NAME),0,
|
||||
NewStr(ADAM_STARTUP_NAME));
|
||||
InsQue(lx,Fs->last_lex);
|
||||
ext[EXT_SPRINTF_JOIN]=&SPrintFJoin2;
|
||||
ext[EXT_GETF_JOIN]=&GetFJoin2;
|
||||
ext[EXT_EXECUTE_FILE]=&ExecuteFile;
|
||||
ext[EXT_EXECUTE_STR]=&ExecuteStr;
|
||||
ext[EXT_DEBUGGER]=&CmpDebugger;
|
||||
InitCompiler(TRUE);
|
||||
Bts(&lx->flags,LF_ECHO);
|
||||
//Continues Here $LK,"/LT/OSMain/AdamK.APZ","FL:/LT/OSMain/AdamK.APZ,1"$
|
||||
try {
|
||||
Lex(lx);
|
||||
ExecuteCmdLine(lx);
|
||||
RemQue(lx);
|
||||
LexDel(lx); //TODO
|
||||
} catch {
|
||||
CatchAll;
|
||||
okay=FALSE;
|
||||
}
|
||||
if (!okay)
|
||||
Debugger;
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,431 @@
|
||||
void CbPutClass(ClassStruct *c)
|
||||
{
|
||||
I8 i;
|
||||
if (!c) return;
|
||||
if (c->ptr_cnt>4) {
|
||||
PrintFErr("put_class ptrcnt=%d\r\n",c->ptr_cnt);
|
||||
while (TRUE)
|
||||
//TODO:
|
||||
SwapInNext;
|
||||
}
|
||||
for (i=0;i<c->ptr_cnt;i++)
|
||||
PutChar('*');
|
||||
c-=sizeof(ClassStruct)*c->ptr_cnt;
|
||||
if (c->str)
|
||||
PutS(c->str);
|
||||
else {
|
||||
PrintFErr("put_class str=NULL\r\n");
|
||||
while (TRUE)
|
||||
//TODO:
|
||||
SwapInNext;
|
||||
}
|
||||
PutChar(CH_SPACE);
|
||||
}
|
||||
|
||||
|
||||
void CbPutIcParam(IcParam *p)
|
||||
{
|
||||
if (p->ptype)
|
||||
PrintF("%Z %Z %Z ",
|
||||
p->type&IT_MASK,"ST_IT_TYPES",
|
||||
p->ptype&IT_MASK,"ST_IT_TYPES",
|
||||
p->type>>4,"ST_TY_TYPES");
|
||||
else
|
||||
PrintF("%Z %Z ",
|
||||
p->type&IT_MASK,"ST_IT_TYPES",
|
||||
p->type>>4,"ST_TY_TYPES");
|
||||
switch (p->type>>4) {
|
||||
case TY_IMM>>4:
|
||||
PrintF("#%X",p->disp);
|
||||
break;
|
||||
case TY_REG>>4:
|
||||
PrintF("%Z",p->reg,"ST_U8_REGS");
|
||||
break;
|
||||
case TY_DISP>>4:
|
||||
PrintF("%X[%Z]",p->disp,p->reg,"ST_U8_REGS");
|
||||
break;
|
||||
case TY_RIP_DISP32>>4:
|
||||
PrintF("[%X]",p->disp);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CbPutIc(IntermediateCode *tempi)
|
||||
{
|
||||
U8 opcode=tempi->ic_opcode;
|
||||
if (opcode>=EC_END_EXP && opcode!=EC_NOP1) {
|
||||
PrintF("%15ts %016X ",
|
||||
SysTextSub(opcode,"ST_INTERMEDIATE_CODE")+4,
|
||||
tempi->ic_data);
|
||||
if (tempi->r.type&TY_MASK) {
|
||||
CbPutIcParam(&tempi->r);
|
||||
cout "<-";
|
||||
}
|
||||
if (tempi->p1.type&TY_MASK)
|
||||
CbPutIcParam(&tempi->p1);
|
||||
cout ",";
|
||||
if (tempi->p2.type&TY_MASK)
|
||||
CbPutIcParam(&tempi->p2);
|
||||
cout ",";
|
||||
if (tempi->p3.type&TY_MASK)
|
||||
CbPutIcParam(&tempi->p3);
|
||||
cout " ";
|
||||
CbPutClass(tempi->ic_class);
|
||||
if (tempi->ic_flags & ICF_P3_TO_DOUBLE)
|
||||
PutS("$$FG,LTBLUE$$p3d$$FG$$ ");
|
||||
if (tempi->ic_flags & ICF_P3_TO_INT)
|
||||
PutS("$$FG,GREEN$$p3i$$FG$$ ");
|
||||
if (tempi->ic_flags & ICF_P2_TO_DOUBLE)
|
||||
PutS("$$FG,LTBLUE$$p2d$$FG$$ ");
|
||||
if (tempi->ic_flags & ICF_P2_TO_INT)
|
||||
PutS("$$FG,GREEN$$p2i$$FG$$ ");
|
||||
if (tempi->ic_flags & ICF_P1_TO_DOUBLE)
|
||||
PutS("$$FG,LTBLUE$$p1d$$FG$$ ");
|
||||
if (tempi->ic_flags & ICF_P1_TO_INT)
|
||||
PutS("$$FG,GREEN$$p1i$$FG$$ ");
|
||||
if (tempi->ic_flags & ICF_R_TO_DOUBLE)
|
||||
PutS("$$FG,LTBLUE$$rd$$FG$$ ");
|
||||
if (tempi->ic_flags & ICF_R_TO_INT)
|
||||
PutS("$$FG,GREEN$$ri$$FG$$ ");
|
||||
if (tempi->ic_flags & ICF_USE_DOUBLE)
|
||||
PutS("[double] ");
|
||||
if (tempi->ic_flags & ICF_USE_UNSIGNED)
|
||||
PutS("[unsigned] ");
|
||||
if (tempi->ic_flags & ICF_USE_INT)
|
||||
PutS("[int] ");
|
||||
if (tempi->ic_flags & ICF_NO_DEPEND_RESULT)
|
||||
PutS("-DEP ");
|
||||
if (tempi->ic_flags & ICF_DEPEND_RESULT)
|
||||
PutS("+DEP ");
|
||||
if (tempi->ic_flags & ICF_NOT_ADDRESS)
|
||||
PutS("(NOT_ADDRESS) ");
|
||||
if (tempi->ic_flags & ICF_PUSH_RESULT)
|
||||
PutS("(PUSH) ");
|
||||
if (tempi->ic_flags & ICF_PUSH_CMP)
|
||||
PutS("(PUSH_CMP) ");
|
||||
if (tempi->ic_flags & ICF_POP_CMP)
|
||||
PutS("(POP_CMP) ");
|
||||
if (tempi->ic_flags & ICF_RCX_CMP)
|
||||
PutS("(RCX_CMP) ");
|
||||
if (tempi->ic_flags & ICF_RCX_CMP2)
|
||||
PutS("(RCX_CMP2) ");
|
||||
CrLf;
|
||||
}
|
||||
}
|
||||
|
||||
void CbInitOutPtrs(LexCbStack *ll)
|
||||
{
|
||||
CodeBlk *cb=MAllocZ(sizeof(CodeBlk));
|
||||
cb->next=NULL;
|
||||
ll->cb_out_first=cb;
|
||||
ll->cb_out_last=cb;
|
||||
ll->cb_misc_list=NULL;
|
||||
ll->cb_misc_list_end=&ll->cb_misc_list;
|
||||
ll->cb_out_ptr=&cb->data;
|
||||
ll->cb_out_end=ll->cb_out_ptr+sizeof(IntermediateCode)*CB_IC_CNT;
|
||||
ll->cb_last_out_ptr=&cb->data;
|
||||
}
|
||||
|
||||
void CbInitInPtrs(LexCbStack *ll)
|
||||
{
|
||||
CodeBlk *cb=ll->cb_out_first;
|
||||
ll->cb_in_first=cb;
|
||||
ll->cb_in_ptr=&cb->data;
|
||||
ll->cb_in_end=ll->cb_in_ptr+sizeof(IntermediateCode)*CB_IC_CNT;
|
||||
}
|
||||
|
||||
void CbPutAllIc(LexStruct *lx)
|
||||
{
|
||||
IntermediateCode *tempi;
|
||||
CbInitInPtrs(&lx->cb);
|
||||
tempi=lx->cb.cb_in_ptr;
|
||||
while (tempi->ic_opcode) {
|
||||
if (tempi->ic_flags&ICF_TRACE)
|
||||
CbPutIc(tempi);
|
||||
tempi+=sizeof(IntermediateCode);
|
||||
}
|
||||
}
|
||||
|
||||
void CbAddIc(LexStruct *lx,
|
||||
U8 opcode_and_precidence,U8 arg, ClassStruct *c,U8 flags=0)
|
||||
{
|
||||
IntermediateCode *tempi=lx->cb.cb_out_ptr;
|
||||
CodeBlk *cb,*cb1;
|
||||
lx->cb.cb_last_out_ptr=tempi;
|
||||
tempi->ic_opcode=opcode_and_precidence.u2[0];
|
||||
tempi->ic_precidence=opcode_and_precidence.u2[1];
|
||||
tempi->ic_data=arg;
|
||||
tempi->ic_class=c;
|
||||
if (Bt(&lx->flags,LFf_OPT_TRACE)) {
|
||||
Bts(&lx->flags,LFf_OPT_TRACE_PRESENT);
|
||||
flags|=ICF_TRACE;
|
||||
}
|
||||
tempi->ic_flags=flags;
|
||||
tempi->ic_line=lx->lag_line_num;
|
||||
if (lx->flags & LF_PARSE_TRACE)
|
||||
CbPutIc(tempi);
|
||||
|
||||
tempi+=sizeof(IntermediateCode);
|
||||
if (tempi>=lx->cb.cb_out_end) {
|
||||
cb=MAllocZ(sizeof(CodeBlk));
|
||||
cb->next=NULL;
|
||||
cb1=lx->cb.cb_out_last;
|
||||
cb1->next=cb;
|
||||
lx->cb.cb_out_last=cb;
|
||||
tempi=&cb->data;
|
||||
lx->cb.cb_out_end=tempi+sizeof(IntermediateCode)*CB_IC_CNT;
|
||||
}
|
||||
lx->cb.cb_out_ptr=tempi;
|
||||
}
|
||||
|
||||
IntermediateCode *CbGetIc1(LexCbStack *lx)
|
||||
{
|
||||
IntermediateCode *tempi=lx->cb_in_ptr,
|
||||
*tempi1=tempi+sizeof(IntermediateCode);
|
||||
CodeBlk *cb;
|
||||
if (tempi1>=lx->cb_in_end) {
|
||||
cb=tempi1-sizeof(IntermediateCode)*CB_IC_CNT-offset(CodeBlk.data);
|
||||
cb=cb->next;
|
||||
tempi1=&cb->data;
|
||||
lx->cb_in_end=tempi1+sizeof(IntermediateCode)*CB_IC_CNT;
|
||||
}
|
||||
lx->cb_in_ptr=tempi1;
|
||||
return tempi;
|
||||
}
|
||||
|
||||
void CbPush(LexStruct *lx)
|
||||
{
|
||||
LexCbStack *templ=MAlloc(sizeof(LexCbStack));
|
||||
MemCpy(templ,&lx->cb,sizeof(LexCbStack));
|
||||
if (lx->cb.cb_misc_list_end==&lx->cb.cb_misc_list)
|
||||
templ->cb_misc_list_end=&templ->cb_misc_list;
|
||||
lx->cb.cb_next=templ;
|
||||
}
|
||||
|
||||
void CbPop(LexStruct *lx)
|
||||
{
|
||||
LexCbStack *templ=lx->cb.cb_next;
|
||||
MemCpy(&lx->cb,templ,sizeof(LexCbStack));
|
||||
if (templ->cb_misc_list_end==&templ->cb_misc_list)
|
||||
lx->cb.cb_misc_list_end=&lx->cb.cb_misc_list;
|
||||
Free(templ);
|
||||
}
|
||||
|
||||
CbMiscStruct *CbFindGotoLabel(LexStruct *lx,I1 *name)
|
||||
{
|
||||
CbMiscStruct *templ=lx->cb.cb_misc_list;
|
||||
while (templ) {
|
||||
if (templ->type==CBMT_GOTO_LABEL) {
|
||||
if (!StrCmp(templ->str,name))
|
||||
return templ;
|
||||
}
|
||||
templ=templ->next;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
CbMiscStruct *CbMiscNew(LexStruct *lx,U8 t)
|
||||
{
|
||||
CbMiscStruct *result=MAllocZ(sizeof(CbMiscStruct));
|
||||
lx->cb.cb_misc_list_end->next=result;
|
||||
lx->cb.cb_misc_list_end=result;
|
||||
result->address=INVALID_PTR;
|
||||
result->type=t;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
void DelCbMiscList(LexStruct *lx)
|
||||
{
|
||||
CbMiscStruct *mc=lx->cb.cb_misc_list,*mc1;
|
||||
while (mc) {
|
||||
mc1=mc->next;
|
||||
if (mc->type==CBMT_GOTO_LABEL &&
|
||||
!mc->address) {
|
||||
lx->cb.cb_misc_list=NULL; //prevent recursion
|
||||
PrintFErr("%S%s\r\n","ST_UNDEFINED_GOTO_LABEL",mc->str);
|
||||
throw(EXCEPT_COMPILER,1);
|
||||
}
|
||||
Free(mc->str);
|
||||
Free(mc->jmp_table);
|
||||
Free(mc);
|
||||
mc=mc1;
|
||||
}
|
||||
}
|
||||
|
||||
LexStruct *CbPopNoFree(LexStruct *lx)
|
||||
{
|
||||
LexCbStack *templ=lx->cb.cb_next;
|
||||
MemCpy(&lx->cb,templ,sizeof(LexCbStack));
|
||||
if (templ->cb_misc_list_end==&templ->cb_misc_list)
|
||||
lx->cb.cb_misc_list_end=&lx->cb.cb_misc_list;
|
||||
return templ;
|
||||
}
|
||||
|
||||
void CbAppend(LexStruct *lx, LexCbStack *ll)
|
||||
{
|
||||
IntermediateCode *tempi;
|
||||
CbInitInPtrs(ll);
|
||||
do {
|
||||
tempi=CbGetIc1(ll);
|
||||
if (tempi->ic_opcode) {
|
||||
CbAddIc(lx,tempi->ic_opcode+tempi->ic_precidence<<16,tempi->ic_data,
|
||||
tempi->ic_class,tempi->ic_flags);
|
||||
}
|
||||
} while (tempi->ic_opcode);
|
||||
DelLinkedList(ll->cb_out_first);
|
||||
|
||||
if (ll->cb_misc_list_end!=&ll->cb_misc_list) {
|
||||
lx->cb.cb_misc_list_end->next=ll->cb_misc_list;
|
||||
lx->cb.cb_misc_list_end=ll->cb_misc_list_end;
|
||||
}
|
||||
Free(ll);
|
||||
}
|
||||
|
||||
void CbCombine(LexStruct *lx)
|
||||
{
|
||||
CodeBlk *cb=lx->cb.cb_out_first,*cb1,*cb2;
|
||||
I8 i=0,j=sizeof(IntermediateCode)*CB_IC_CNT;
|
||||
void *ptr;
|
||||
while (cb) {
|
||||
i++;
|
||||
cb=cb->next;
|
||||
}
|
||||
if (i>1) {
|
||||
cb1=MAlloc(i*j+offset(CodeBlk.data));
|
||||
cb1->next=NULL;
|
||||
cb=lx->cb.cb_out_first;
|
||||
ptr=&cb1->data;
|
||||
while (cb) {
|
||||
cb2=cb->next;
|
||||
MemCpy(ptr,&cb->data,j);
|
||||
ptr+=j;
|
||||
Free(cb);
|
||||
cb=cb2;
|
||||
}
|
||||
lx->cb.cb_out_first=cb1;
|
||||
}
|
||||
}
|
||||
|
||||
U1 *CbCompile(LexStruct *lx,ClassStruct *fun_class,
|
||||
U8 *code_size,DbgInfo **dbg_info,U8 *type=NULL)
|
||||
{
|
||||
U1 *result;
|
||||
I8 register_offsets[NUM_REGS],min_line=MAX_I8,max_line=0;
|
||||
if (dbg_info)
|
||||
*dbg_info=NULL;
|
||||
|
||||
CbCombine(lx);
|
||||
if (Bt(&lx->flags,LFf_OPT_TRACE_PRESENT)) {
|
||||
if (Bt(&lx->pass_trace_mask,0)) {
|
||||
coutln "$$IV 1$$Before Pass 1:$$IV 0$$";
|
||||
CbPutAllIc(lx);
|
||||
}
|
||||
}
|
||||
CmpOptPass1(lx,fun_class,TRUE);
|
||||
if (Bt(&lx->flags,LFf_OPT_TRACE_PRESENT)) {
|
||||
if (Bt(&lx->pass_trace_mask,1)) {
|
||||
coutln "$$IV 1$$After Pass 1:$$IV 0$$";
|
||||
CbPutAllIc(lx);
|
||||
}
|
||||
}
|
||||
CmpOptPass2(lx,fun_class,register_offsets);
|
||||
if (Bt(&lx->flags,LFf_OPT_TRACE_PRESENT)) {
|
||||
if (Bt(&lx->pass_trace_mask,2)) {
|
||||
coutln "$$IV 1$$After Pass 2:$$IV 0$$";
|
||||
CbPutAllIc(lx);
|
||||
}
|
||||
}
|
||||
CmpOptPass3(lx,register_offsets,type);
|
||||
if (Bt(&lx->flags,LFf_OPT_TRACE_PRESENT)) {
|
||||
if (Bt(&lx->pass_trace_mask,3)) {
|
||||
coutln "$$IV 1$$After Pass 3:$$IV 0$$";
|
||||
CbPutAllIc(lx);
|
||||
}
|
||||
}
|
||||
CmpOptPass4(lx);
|
||||
if (Bt(&lx->flags,LFf_OPT_TRACE_PRESENT)) {
|
||||
if (Bt(&lx->pass_trace_mask,4)) {
|
||||
coutln "$$IV 1$$After Pass 4:$$IV 0$$";
|
||||
CbPutAllIc(lx);
|
||||
}
|
||||
}
|
||||
CmpOptPass5(lx,fun_class);
|
||||
if (Bt(&lx->flags,LFf_OPT_TRACE_PRESENT)) {
|
||||
if (Bt(&lx->pass_trace_mask,5)) {
|
||||
coutln "$$IV 1$$After Pass 5:$$IV 0$$";
|
||||
CbPutAllIc(lx);
|
||||
}
|
||||
}
|
||||
|
||||
if (Bt(&lx->flags,LFf_OPT_TRACE_PRESENT))
|
||||
if (Bt(&lx->pass_trace_mask,6))
|
||||
coutln "$$IV 1$$Pass 6:$$IV 0$$";
|
||||
CmpOptPass678(lx,fun_class,register_offsets,NULL,6,dbg_info,&min_line,&max_line);
|
||||
|
||||
if (Bt(&lx->flags,LFf_OPT_TRACE_PRESENT))
|
||||
if (Bt(&lx->pass_trace_mask,7))
|
||||
coutln "$$IV 1$$Pass 7:$$IV 0$$";
|
||||
*code_size=CmpOptPass678(lx,fun_class,register_offsets,NULL,7,dbg_info,&min_line,&max_line);
|
||||
|
||||
result=MAlloc(*code_size);
|
||||
if (Bt(&lx->flags,LFf_OPT_TRACE_PRESENT))
|
||||
if (Bt(&lx->pass_trace_mask,8))
|
||||
coutln "$$IV 1$$Pass 8:$$IV 0$$";
|
||||
*code_size=CmpOptPass678(lx,fun_class,register_offsets,result,8,dbg_info,&min_line,&max_line);
|
||||
|
||||
DelLinkedList(lx->cb.cb_out_first);
|
||||
DelCbMiscList(lx);
|
||||
if (Bt(&lx->flags,LFf_COMPILE_TRACE)) {
|
||||
if (lx->a) {
|
||||
if (lx->a->seg_size==16)
|
||||
CallExtStr("Dasm2",result,*code_size,16);
|
||||
else if (lx->a->seg_size==64)
|
||||
CallExtStr("Dasm2",result,*code_size,64);
|
||||
else
|
||||
CallExtStr("Dasm2",result,*code_size,32);
|
||||
} else
|
||||
CallExtStr("Dasm2",result,*code_size,64);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void DelHashTable(SysHashTable *tempht)
|
||||
{
|
||||
I8 i;
|
||||
SysHashEntry *temph,*temph1;
|
||||
ClassStruct *tempc;
|
||||
GlblVarStruct *tempg;
|
||||
if (!tempht) return;
|
||||
for (i=0;i<=tempht->mask;i++) {
|
||||
temph=tempht->body[i];
|
||||
while (temph) {
|
||||
temph1=temph->next;
|
||||
if (!(temph->type&HTT_DICT_WORD))
|
||||
Free(temph->str);
|
||||
if (temph->type & (HTT_FUNCTION | HTT_CLASS |
|
||||
HTT_STR_CONST | HTT_GLBL_VAR |
|
||||
HTT_SYS_SYMBOL)) {
|
||||
Free(temph->source_link);
|
||||
Free(temph->index);
|
||||
if (temph->type & (HTT_FUNCTION | HTT_CLASS)) {
|
||||
tempc=temph;
|
||||
Free(tempc->debug);
|
||||
Free(tempc->import_name);
|
||||
DelMemberList(tempc);
|
||||
//assumes code not on heap
|
||||
} else if (temph->type&HTT_STR_CONST)
|
||||
Free(temph><(StrConstStruct *)->data);
|
||||
else if (temph->type&HTT_GLBL_VAR) {
|
||||
tempg=temph;
|
||||
DelLinkedList(tempg->dim_list);
|
||||
Free(tempg->import_name);
|
||||
}
|
||||
}
|
||||
Free(temph);
|
||||
temph=temph1;
|
||||
}
|
||||
}
|
||||
Free(tempht);
|
||||
}
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,53 @@
|
||||
#help_index "Char/Conversion"
|
||||
public extern double A2Double(I1 *src,I1 **end_ptr=NULL);
|
||||
#help_index "Char/Conversion;Time/LTDate"
|
||||
public extern LTDate A2LTDate(I1 *src2);
|
||||
|
||||
#help_index "Hash"
|
||||
public extern SysHashEntry *FindPSect(U8 *add,I8 *offset);
|
||||
public extern void DelHashTable(SysHashTable *table);
|
||||
|
||||
#help_index "Compiler/Lex"
|
||||
public extern LexStruct *LexNew(I1 *buf,U8 flags,I1 *filename);
|
||||
public extern void LexDel(LexStruct *lx);
|
||||
public extern void SetSourceFileInfo(LexStruct *lx,SysHashEntry *h);
|
||||
public extern void LexPutToken(LexStruct *lx);
|
||||
public extern U8 LexGetChar(LexStruct *lx);
|
||||
public extern void LexSkipEol(LexStruct *lx);
|
||||
public extern U8 EvalExpression(LexStruct *lx);
|
||||
public extern void LexPush(LexStruct *lx);
|
||||
public extern void LexPop(LexStruct *lx);
|
||||
//public extern void LexSubStackPtr(LexStruct *lx);
|
||||
public extern I8 Lex(LexStruct *lx);
|
||||
public extern I1 *LexExtendStr(LexStruct *lx,U8 *size=NULL);
|
||||
public extern void LexPutLine(LexStruct *lx,I1 *start);
|
||||
public extern I8 LexLineNum(LexStruct *lx);
|
||||
public extern void LexPutLink(LexStruct *lx);
|
||||
public extern void PutLexError(LexStruct *lx,I1 *name=NULL,I1 *msg=NULL);
|
||||
public extern void PutLexWarning(LexStruct *lx,I1 *name=NULL,I1 *msg=NULL);
|
||||
public extern U8 GetExpression(LexStruct *lx,U1 **e); //FALSE=no err
|
||||
public extern I8 Expression(LexStruct *lx);
|
||||
public extern void DelExpression(void *code);
|
||||
public extern MemberListStruct *FindMember(I1 *st,ClassStruct *c);
|
||||
|
||||
#help_index "Compiler/Directive"
|
||||
public extern void ExePutS(I1 *st);
|
||||
public extern void ExePrintF(I1 *src,...);
|
||||
#help_index "Compiler"
|
||||
public extern I8 CompileFile(I1 *filename,I1 *map_name=NULL,I1 *out_name=NULL,I1 mapfile_drive=0);
|
||||
public extern I8 ExecuteStr(I1 *buf,I1 *filename=NULL);
|
||||
public extern I8 ExecuteFile(I1 *name);
|
||||
public extern void ContinueUserTask();
|
||||
extern SysHashTable *asm_hash;
|
||||
extern void InitCompiler(BoolU4 first);
|
||||
|
||||
//The following is for benchmarking
|
||||
extern BoolU4 cmp_do_not_write_to_disk;
|
||||
|
||||
LTextern CP_HI_CALL U8 HiCall(void *s);
|
||||
extern I8 ExecuteCmdLine(LexStruct *lx);
|
||||
|
||||
#help_index "Exceptions"
|
||||
public extern void CatchAll();
|
||||
|
||||
#help_index ""
|
||||
@@ -0,0 +1,552 @@
|
||||
$LK+BI,"A2Double ","FL:::/LT/Compiler/SPrintF2.CPZ,730",1$0000AA60 0001 Funct Export
|
||||
$LK+BI,"A2LTDate ","FL:::/LT/Compiler/SPrintF2.CPZ,807",2$0000AD38 0001 Funct Export
|
||||
$LK,"ADAM_STARTUP_NAME ","FL:::/LT/Compiler/CmpMain.CPZ,396"$\"/LT/OSMain/AdamK.APZ\" 0002 StrConst
|
||||
$LK,"AKW_ALIGN ","FL:::/LT/Compiler/CmpDefs.HPZ,232"$64 0001 StrConst
|
||||
$LK,"AKW_DU1 ","FL:::/LT/Compiler/CmpDefs.HPZ,238"$70 0001 StrConst
|
||||
$LK,"AKW_DU2 ","FL:::/LT/Compiler/CmpDefs.HPZ,239"$71 0001 StrConst
|
||||
$LK,"AKW_DU4 ","FL:::/LT/Compiler/CmpDefs.HPZ,240"$72 0001 StrConst
|
||||
$LK,"AKW_DU8 ","FL:::/LT/Compiler/CmpDefs.HPZ,241"$73 0001 StrConst
|
||||
$LK,"AKW_DUP ","FL:::/LT/Compiler/CmpDefs.HPZ,242"$74 0001 StrConst
|
||||
$LK,"AKW_END ","FL:::/LT/Compiler/CmpDefs.HPZ,233"$65 0001 StrConst
|
||||
$LK,"AKW_ENDS ","FL:::/LT/Compiler/CmpDefs.HPZ,245"$77 0001 StrConst
|
||||
$LK,"AKW_EXPORT ","FL:::/LT/Compiler/CmpDefs.HPZ,250"$82 0002 StrConst
|
||||
$LK,"AKW_IMPORT ","FL:::/LT/Compiler/CmpDefs.HPZ,249"$81 0002 StrConst
|
||||
$LK,"AKW_INSERT ","FL:::/LT/Compiler/CmpDefs.HPZ,251"$83 0001 StrConst
|
||||
$LK,"AKW_INSERT_COMPRESSED ","FL:::/LT/Compiler/CmpDefs.HPZ,254"$86 0001 StrConst
|
||||
$LK,"AKW_LIST ","FL:::/LT/Compiler/CmpDefs.HPZ,252"$84 0001 StrConst
|
||||
$LK,"AKW_NOLIST ","FL:::/LT/Compiler/CmpDefs.HPZ,253"$85 0001 StrConst
|
||||
$LK,"AKW_ORG ","FL:::/LT/Compiler/CmpDefs.HPZ,243"$75 0001 StrConst
|
||||
$LK,"AKW_STRUC ","FL:::/LT/Compiler/CmpDefs.HPZ,244"$76 0001 StrConst
|
||||
$LK,"AKW_U1 ","FL:::/LT/Compiler/CmpDefs.HPZ,234"$66 0001 StrConst
|
||||
$LK,"AKW_U2 ","FL:::/LT/Compiler/CmpDefs.HPZ,235"$67 0001 StrConst
|
||||
$LK,"AKW_U4 ","FL:::/LT/Compiler/CmpDefs.HPZ,236"$68 0001 StrConst
|
||||
$LK,"AKW_U8 ","FL:::/LT/Compiler/CmpDefs.HPZ,237"$69 0001 StrConst
|
||||
$LK,"AKW_USE16 ","FL:::/LT/Compiler/CmpDefs.HPZ,246"$78 0001 StrConst
|
||||
$LK,"AKW_USE32 ","FL:::/LT/Compiler/CmpDefs.HPZ,247"$79 0001 StrConst
|
||||
$LK,"AKW_USE64 ","FL:::/LT/Compiler/CmpDefs.HPZ,248"$80 0001 StrConst
|
||||
$LK+BI,"AdamStartUpFile ","FL:::/LT/Compiler/CmpMain.CPZ,397",3$00031BF0 0000 Funct Export
|
||||
$LK+BI,"AddUnresolved ","FL:::/LT/Compiler/AsmMain.CPZ,37",4$0000BBC0 0008 Funct Export
|
||||
$LK+BI,"AsmCodeInstruction ","FL:::/LT/Compiler/AsmMain.CPZ,804",5$0000E3B0 0001 Funct Export
|
||||
$LK+BI,"AsmEvalExpression ","FL:::/LT/Compiler/AsmMain.CPZ,215",6$0000C380 0003 Funct Export
|
||||
$LK+BI,"AsmListLine ","FL:::/LT/Compiler/AsmMain.CPZ,65",7$0000BCE8 0004 Funct Export
|
||||
$LK+BI,"AsmMakeArgMask ","FL:::/LT/Compiler/AsmMain.CPZ,623",8$0000D958 0002 Funct Export
|
||||
$LK+BI,"AsmStoreCodeU1 ","FL:::/LT/Compiler/AsmMain.CPZ,90",9$0000BE20 0018 Funct Export
|
||||
$LK+BI,"AsmStoreCodeU1At ","FL:::/LT/Compiler/AsmMain.CPZ,197",10$0000C2B8 000D Funct Export
|
||||
$LK+BI,"AsmStoreCodeU4 ","FL:::/LT/Compiler/AsmMain.CPZ,119",11$0000BF78 0001 Funct Export
|
||||
$LK+BI,"AsmStoreCodeU8 ","FL:::/LT/Compiler/AsmMain.CPZ,158",12$0000C118 0005 Funct Export
|
||||
$LK+BI,"AsmStoreNum ","FL:::/LT/Compiler/AsmMain.CPZ,694",13$0000DDD0 0004 Funct Export
|
||||
$LK,"CMP_INTERNAL_TYPES_TABLE ","FL:::/LT/Compiler/CmpAsm.ASZ,2"$00000E50 0001 SysSym Export
|
||||
$LK,"CMP_OPT_NOP ","FL:::/LT/Compiler/CmpAsm.ASZ,40"$00000F58 0003 SysSym
|
||||
$LK,"COMPILER_END ","FL:::/LT/Compiler/Compiler.SPZ,27"$00031E18 0000 SysSym Export
|
||||
$LK,"COMPILER_START ","FL:::/LT/Compiler/Compiler.SPZ,5"$00000E50 0000 SysSym Export
|
||||
$LK,"CP_HI_CALL ","FL:::/LT/Compiler/CmpAsm.ASZ,272"$00001220 0000 SysSym Export
|
||||
$LK,"CP_OPTNEXT ","FL:::/LT/Compiler/CmpAsm.ASZ,60"$00001060 0001 SysSym Export
|
||||
$LK,"CP_OPTNEXT2 ","FL:::/LT/Compiler/CmpAsm.ASZ,124"$000010D8 0001 SysSym Export
|
||||
$LK,"CP_OPTNEXT3 ","FL:::/LT/Compiler/CmpAsm.ASZ,175"$00001150 0001 SysSym Export
|
||||
$LK,"CP_PRSPOP ","FL:::/LT/Compiler/CmpAsm.ASZ,258"$00001200 0001 SysSym Export
|
||||
$LK,"CP_PRSPUSH ","FL:::/LT/Compiler/CmpAsm.ASZ,245"$000011E0 0001 SysSym Export
|
||||
$LK+BI,"CatchAll ","FL:::/LT/Compiler/CmpMain.CPZ,1",14$00030368 0002 Funct Export
|
||||
$LK+BI,"CbAddIc ","FL:::/LT/Compiler/CodeGen.CPZ,149",15$00005700 00A9 Funct Export
|
||||
$LK+BI,"CbAppend ","FL:::/LT/Compiler/CodeGen.CPZ,265",16$00005BA8 0003 Funct Export
|
||||
$LK+BI,"CbCombine ","FL:::/LT/Compiler/CodeGen.CPZ,285",17$00005C78 0001 Funct Export
|
||||
$LK+BI,"CbCompile ","FL:::/LT/Compiler/CodeGen.CPZ,310",18$00005D60 0004 Funct Export
|
||||
$LK+BI,"CbFindGotoLabel ","FL:::/LT/Compiler/CodeGen.CPZ,214",19$00005960 0002 Funct Export
|
||||
$LK+BI,"CbGetIc1 ","FL:::/LT/Compiler/CodeGen.CPZ,181",20$00005808 0003 Funct Export
|
||||
$LK+BI,"CbInitInPtrs ","FL:::/LT/Compiler/CodeGen.CPZ,129",21$00005660 0003 Funct Export
|
||||
$LK+BI,"CbInitOutPtrs ","FL:::/LT/Compiler/CodeGen.CPZ,116",22$000055E0 0008 Funct Export
|
||||
$LK+BI,"CbMiscNew ","FL:::/LT/Compiler/CodeGen.CPZ,227",23$000059C8 0017 Funct Export
|
||||
$LK+BI,"CbPop ","FL:::/LT/Compiler/CodeGen.CPZ,205",24$000058E8 0007 Funct Export
|
||||
$LK+BI,"CbPopNoFree ","FL:::/LT/Compiler/CodeGen.CPZ,256",25$00005B48 0001 Funct Export
|
||||
$LK+BI,"CbPush ","FL:::/LT/Compiler/CodeGen.CPZ,196",26$00005868 000C Funct Export
|
||||
$LK+BI,"CbPutAllIc ","FL:::/LT/Compiler/CodeGen.CPZ,137",27$000056A0 0006 Funct Export
|
||||
$LK+BI,"CbPutClass ","FL:::/LT/Compiler/CodeGen.CPZ,1",28$00004CC0 0001 Funct Export
|
||||
$LK+BI,"CbPutIc ","FL:::/LT/Compiler/CodeGen.CPZ,53",29$00005060 0006 Funct Export
|
||||
$LK+BI,"CbPutIcParam ","FL:::/LT/Compiler/CodeGen.CPZ,26",30$00004E18 0004 Funct Export
|
||||
$LK+BI,"CmpClassNew ","FL:::/LT/Compiler/AsmMain.CPZ,1",31$0000BB00 0004 Funct Export
|
||||
$LK+BI,"CmpDebugger ","FL:::/LT/Compiler/CmpMain.CPZ,346",32$00031930 0001 Funct Export
|
||||
$LK+BI,"CmpKeyWord ","FL:::/LT/Compiler/StmtParser.CPZ,1",33$00013DB0 000B Funct Export
|
||||
$LK+BI,"CmpMGetS ","FL:::/LT/Compiler/CmpMain.CPZ,339",34$000318D0 0001 Funct Export
|
||||
$LK+BI,"CmpOffsetToReg ","FL:::/LT/Compiler/OptPass1.CPZ,122",35$000215B0 0004 Funct Export
|
||||
$LK+BI,"CmpOptIc3 ","FL:::/LT/Compiler/OptPass3.CPZ,1",36$00026A58 0001 Funct Export
|
||||
$LK+BI,"CmpOptIc5 ","FL:::/LT/Compiler/OptPass5.CPZ,1",37$00028818 0001 Funct Export
|
||||
$LK+BI,"CmpOptPass1 ","FL:::/LT/Compiler/OptPass1.CPZ,479",38$000226B8 0000 Funct Export
|
||||
$LK+BI,"CmpOptPass2 ","FL:::/LT/Compiler/OptPass2.CPZ,23",39$00025520 0000 Funct Export
|
||||
$LK+BI,"CmpOptPass3 ","FL:::/LT/Compiler/OptPass3.CPZ,201",40$000272B8 0000 Funct Export
|
||||
$LK+BI,"CmpOptPass4 ","FL:::/LT/Compiler/OptPass4.CPZ,1",41$00028078 0000 Funct Export
|
||||
$LK+BI,"CmpOptPass5 ","FL:::/LT/Compiler/OptPass5.CPZ,153",42$00028E50 0000 Funct Export
|
||||
$LK+BI,"CmpOptPass5Lag ","FL:::/LT/Compiler/OptPass5.CPZ,43",43$000289B0 0001 Funct Export
|
||||
$LK+BI,"CmpOptPass678 ","FL:::/LT/Compiler/OptPass6.CPZ,1",44$000293A8 0000 Funct Export
|
||||
$LK+BI,"CmpPType ","FL:::/LT/Compiler/OptPass2.CPZ,11",45$000254E0 0006 Funct Export
|
||||
$LK+BI,"CmpParseAsmBlk ","FL:::/LT/Compiler/AsmMain.CPZ,1388",46$0000FFC0 0001 Funct Export
|
||||
$LK+BI,"CmpParseClass ","FL:::/LT/Compiler/StmtParser.CPZ,269",47$000149D0 0006 Funct Export
|
||||
$LK+BI,"CmpParseCout ","FL:::/LT/Compiler/StmtParser.CPZ,994",48$00016ED8 0002 Funct Export
|
||||
$LK+BI,"CmpParseDoWhile ","FL:::/LT/Compiler/StmtParser.CPZ,824",49$00016498 0001 Funct Export
|
||||
$LK+BI,"CmpParseExeBlk ","FL:::/LT/Compiler/StmtParser.CPZ,1038",50$00017138 0001 Funct Export
|
||||
$LK+BI,"CmpParseFor ","FL:::/LT/Compiler/StmtParser.CPZ,848",51$00016678 0001 Funct Export
|
||||
$LK+BI,"CmpParseFunction ","FL:::/LT/Compiler/StmtParser.CPZ,401",52$00014F20 0001 Funct Export
|
||||
$LK+BI,"CmpParseFunctionJoin ","FL:::/LT/Compiler/StmtParser.CPZ,331",53$00014C78 0005 Funct Export
|
||||
$LK+BI,"CmpParseGlblVarList ","FL:::/LT/Compiler/StmtParser.CPZ,582",54$00015848 0006 Funct Export
|
||||
$LK+BI,"CmpParseIf ","FL:::/LT/Compiler/StmtParser.CPZ,773",55$00016150 0001 Funct Export
|
||||
$LK+BI,"CmpParseNoUnusedWarn ","FL:::/LT/Compiler/StmtParser.CPZ,977",56$00016E18 0001 Funct Export
|
||||
$LK+BI,"CmpParseStatement ","FL:::/LT/Compiler/StmtParser.CPZ,1142",57$000177A0 0002 Funct Export
|
||||
$LK+BI,"CmpParseSwitch ","FL:::/LT/Compiler/StmtParser.CPZ,895",58$000168F8 0001 Funct Export
|
||||
$LK+BI,"CmpParseTryBlk ","FL:::/LT/Compiler/StmtParser.CPZ,1081",59$000173A0 0001 Funct Export
|
||||
$LK+BI,"CmpParseVarList ","FL:::/LT/Compiler/StmtParser.CPZ,16",60$00013E00 0004 Funct Export
|
||||
$LK+BI,"CmpParseWhile ","FL:::/LT/Compiler/StmtParser.CPZ,802",61$00016320 0001 Funct Export
|
||||
$LK+BI,"CmpPmt ","FL:::/LT/Compiler/Lex.CPZ,1",62$0000134C 0001 Funct Export
|
||||
$LK+BI,"CmpType ","FL:::/LT/Compiler/OptPass2.CPZ,1",63$000254B0 0004 Funct Export
|
||||
$LK+BI,"CompileBuf ","FL:::/LT/Compiler/CmpMain.CPZ,89",64$00030990 0001 Funct Export
|
||||
$LK+BI,"CompileExpression ","FL:::/LT/Compiler/ExpParser.CPZ,796",65$00013BB8 0004 Funct Export
|
||||
$LK+BI,"CompileFile ","FL:::/LT/Compiler/CmpMain.CPZ,183",66$00030F90 0000 Funct Export
|
||||
$LK+BI,"CompileStatement ","FL:::/LT/Compiler/CmpMain.CPZ,53",67$00030780 0002 Funct Export
|
||||
$LK+BI,"ContinueUserTask ","FL:::/LT/Compiler/CmpMain.CPZ,322",68$000317F0 0001 Funct Export
|
||||
$LK+BI,"DefineU1s ","FL:::/LT/Compiler/AsmMain.CPZ,1304",69$0000FBE8 0004 Funct Export
|
||||
$LK+BI,"DelCbMiscList ","FL:::/LT/Compiler/CodeGen.CPZ,238",70$00005A30 0001 Funct Export
|
||||
$LK+BI,"DelExpression ","FL:::/LT/Compiler/Lex.CPZ,315",71$00002368 000A Funct Export
|
||||
$LK+BI,"DelHashTable ","FL:::/LT/Compiler/CodeGen.CPZ,393",72$00006328 0003 Funct Export
|
||||
$LK+BI,"DelMemberList ","FL:::/LT/Compiler/Lex.CPZ,453",73$000028A0 0002 Funct Export
|
||||
$LK,"EC_ABSI8 ","FL:::/LT/Compiler/CmpDefs.HPZ,179"$0x090 0004 StrConst
|
||||
$LK,"EC_ABSOLUTE_ADDRESS ","FL:::/LT/Compiler/CmpDefs.HPZ,14"$0x00C 000E StrConst
|
||||
$LK,"EC_ADD ","FL:::/LT/Compiler/CmpDefs.HPZ,51"$0x027 0011 StrConst
|
||||
$LK,"EC_ADDRESS ","FL:::/LT/Compiler/CmpDefs.HPZ,26"$0x015 0007 StrConst
|
||||
$LK,"EC_ADD_CONST ","FL:::/LT/Compiler/CmpDefs.HPZ,145"$0x074 0007 StrConst
|
||||
$LK,"EC_ADD_EQUAL ","FL:::/LT/Compiler/CmpDefs.HPZ,78"$0x03C 0005 StrConst
|
||||
$LK,"EC_ADD_RSP ","FL:::/LT/Compiler/CmpDefs.HPZ,81"$0x03E 000B StrConst
|
||||
$LK,"EC_AND ","FL:::/LT/Compiler/CmpDefs.HPZ,46"$0x024 0008 StrConst
|
||||
$LK,"EC_AND_AND ","FL:::/LT/Compiler/CmpDefs.HPZ,61"$0x02F 000E StrConst
|
||||
$LK,"EC_AND_EQUAL ","FL:::/LT/Compiler/CmpDefs.HPZ,75"$0x039 0006 StrConst
|
||||
$LK,"EC_ASSIGN ","FL:::/LT/Compiler/CmpDefs.HPZ,69"$0x034 0007 StrConst
|
||||
$LK,"EC_BR_AND_AND_NOT_ZERO ","FL:::/LT/Compiler/CmpDefs.HPZ,171"$0x08B 0003 StrConst
|
||||
$LK,"EC_BR_AND_AND_ZERO ","FL:::/LT/Compiler/CmpDefs.HPZ,170"$0x08A 0003 StrConst
|
||||
$LK,"EC_BR_AND_NOT_ZERO ","FL:::/LT/Compiler/CmpDefs.HPZ,174"$0x08D 0005 StrConst
|
||||
$LK,"EC_BR_AND_ZERO ","FL:::/LT/Compiler/CmpDefs.HPZ,173"$0x08C 0005 StrConst
|
||||
$LK,"EC_BR_BT ","FL:::/LT/Compiler/CmpDefs.HPZ,151"$0x078 0005 StrConst
|
||||
$LK,"EC_BR_BTC ","FL:::/LT/Compiler/CmpDefs.HPZ,154"$0x07B 0005 StrConst
|
||||
$LK,"EC_BR_BTR ","FL:::/LT/Compiler/CmpDefs.HPZ,153"$0x07A 0005 StrConst
|
||||
$LK,"EC_BR_BTS ","FL:::/LT/Compiler/CmpDefs.HPZ,152"$0x079 0005 StrConst
|
||||
$LK,"EC_BR_EQUAL_EQUAL ","FL:::/LT/Compiler/CmpDefs.HPZ,135"$0x06B 0006 StrConst
|
||||
$LK,"EC_BR_GREATER ","FL:::/LT/Compiler/CmpDefs.HPZ,138"$0x06E 0006 StrConst
|
||||
$LK,"EC_BR_GREATER_EQUAL ","FL:::/LT/Compiler/CmpDefs.HPZ,136"$0x06C 0006 StrConst
|
||||
$LK,"EC_BR_LBTC ","FL:::/LT/Compiler/CmpDefs.HPZ,166"$0x086 0005 StrConst
|
||||
$LK,"EC_BR_LBTR ","FL:::/LT/Compiler/CmpDefs.HPZ,165"$0x085 0005 StrConst
|
||||
$LK,"EC_BR_LBTS ","FL:::/LT/Compiler/CmpDefs.HPZ,164"$0x084 0005 StrConst
|
||||
$LK,"EC_BR_LESS ","FL:::/LT/Compiler/CmpDefs.HPZ,139"$0x06F 0006 StrConst
|
||||
$LK,"EC_BR_LESS_EQUAL ","FL:::/LT/Compiler/CmpDefs.HPZ,137"$0x06D 0006 StrConst
|
||||
$LK,"EC_BR_NOT_BT ","FL:::/LT/Compiler/CmpDefs.HPZ,155"$0x07C 0005 StrConst
|
||||
$LK,"EC_BR_NOT_BTC ","FL:::/LT/Compiler/CmpDefs.HPZ,158"$0x07F 0005 StrConst
|
||||
$LK,"EC_BR_NOT_BTR ","FL:::/LT/Compiler/CmpDefs.HPZ,157"$0x07E 0005 StrConst
|
||||
$LK,"EC_BR_NOT_BTS ","FL:::/LT/Compiler/CmpDefs.HPZ,156"$0x07D 0005 StrConst
|
||||
$LK,"EC_BR_NOT_EQUAL ","FL:::/LT/Compiler/CmpDefs.HPZ,134"$0x06A 0006 StrConst
|
||||
$LK,"EC_BR_NOT_LBTC ","FL:::/LT/Compiler/CmpDefs.HPZ,169"$0x089 0005 StrConst
|
||||
$LK,"EC_BR_NOT_LBTR ","FL:::/LT/Compiler/CmpDefs.HPZ,168"$0x088 0005 StrConst
|
||||
$LK,"EC_BR_NOT_LBTS ","FL:::/LT/Compiler/CmpDefs.HPZ,167"$0x087 0005 StrConst
|
||||
$LK,"EC_BR_NOT_ZERO ","FL:::/LT/Compiler/CmpDefs.HPZ,131"$0x069 000B StrConst
|
||||
$LK,"EC_BR_OR_OR_NOT_ZERO ","FL:::/LT/Compiler/CmpDefs.HPZ,141"$0x071 0003 StrConst
|
||||
$LK,"EC_BR_OR_OR_ZERO ","FL:::/LT/Compiler/CmpDefs.HPZ,140"$0x070 0003 StrConst
|
||||
$LK,"EC_BR_ZERO ","FL:::/LT/Compiler/CmpDefs.HPZ,130"$0x068 000D StrConst
|
||||
$LK,"EC_BSF ","FL:::/LT/Compiler/CmpDefs.HPZ,111"$0x057 0004 StrConst
|
||||
$LK,"EC_BSR ","FL:::/LT/Compiler/CmpDefs.HPZ,112"$0x058 0004 StrConst
|
||||
$LK,"EC_BT ","FL:::/LT/Compiler/CmpDefs.HPZ,107"$0x053 0006 StrConst
|
||||
$LK,"EC_BTC ","FL:::/LT/Compiler/CmpDefs.HPZ,110"$0x056 0006 StrConst
|
||||
$LK,"EC_BTR ","FL:::/LT/Compiler/CmpDefs.HPZ,109"$0x055 0006 StrConst
|
||||
$LK,"EC_BTS ","FL:::/LT/Compiler/CmpDefs.HPZ,108"$0x054 0006 StrConst
|
||||
$LK,"EC_CALL ","FL:::/LT/Compiler/CmpDefs.HPZ,87"$0x042 0008 StrConst
|
||||
$LK,"EC_CALL_END ","FL:::/LT/Compiler/CmpDefs.HPZ,7"$0x005 000D StrConst
|
||||
$LK,"EC_CALL_END2 ","FL:::/LT/Compiler/CmpDefs.HPZ,159"$0x080 0014 StrConst
|
||||
$LK,"EC_CALL_EXTERN ","FL:::/LT/Compiler/CmpDefs.HPZ,177"$0x08F 0005 StrConst
|
||||
$LK,"EC_CALL_INDIRECT ","FL:::/LT/Compiler/CmpDefs.HPZ,88"$0x043 0005 StrConst
|
||||
$LK,"EC_CALL_INDIRECT2 ","FL:::/LT/Compiler/CmpDefs.HPZ,89"$0x044 000C StrConst
|
||||
$LK,"EC_CALL_START ","FL:::/LT/Compiler/CmpDefs.HPZ,6"$0x004 000A StrConst
|
||||
$LK,"EC_CLI ","FL:::/LT/Compiler/CmpDefs.HPZ,92"$0x046 0004 StrConst
|
||||
$LK,"EC_COLON ","FL:::/LT/Compiler/CmpDefs.HPZ,66"$0x032 0006 StrConst
|
||||
$LK,"EC_COM ","FL:::/LT/Compiler/CmpDefs.HPZ,27"$0x016 0005 StrConst
|
||||
$LK,"EC_DEREF ","FL:::/LT/Compiler/CmpDefs.HPZ,31"$0x019 0012 StrConst
|
||||
$LK,"EC_DISABLE_CACHE ","FL:::/LT/Compiler/CmpDefs.HPZ,94"$0x048 0004 StrConst
|
||||
$LK,"EC_DIV ","FL:::/LT/Compiler/CmpDefs.HPZ,43"$0x022 0005 StrConst
|
||||
$LK,"EC_DIV_EQUAL ","FL:::/LT/Compiler/CmpDefs.HPZ,74"$0x038 0005 StrConst
|
||||
$LK,"EC_DOUBLE ","FL:::/LT/Compiler/CmpDefs.HPZ,12"$0x00A 0019 StrConst
|
||||
$LK,"EC_ENABLE_CACHE ","FL:::/LT/Compiler/CmpDefs.HPZ,95"$0x049 0004 StrConst
|
||||
$LK,"EC_END_EXP ","FL:::/LT/Compiler/CmpDefs.HPZ,4"$0x002 001F StrConst
|
||||
$LK,"EC_ENTER ","FL:::/LT/Compiler/CmpDefs.HPZ,83"$0x03F 0005 StrConst
|
||||
$LK,"EC_EQUAL_EQUAL ","FL:::/LT/Compiler/CmpDefs.HPZ,54"$0x029 0007 StrConst
|
||||
$LK,"EC_FS ","FL:::/LT/Compiler/CmpDefs.HPZ,19"$0x011 0004 StrConst
|
||||
$LK,"EC_GET_BASE_PTR ","FL:::/LT/Compiler/CmpDefs.HPZ,101"$0x04E 0005 StrConst
|
||||
$LK,"EC_GET_FLAGS ","FL:::/LT/Compiler/CmpDefs.HPZ,99"$0x04C 0004 StrConst
|
||||
$LK,"EC_GET_LABEL ","FL:::/LT/Compiler/CmpDefs.HPZ,16"$0x00E 0006 StrConst
|
||||
$LK,"EC_GET_STACK_PTR ","FL:::/LT/Compiler/CmpDefs.HPZ,103"$0x050 0004 StrConst
|
||||
$LK,"EC_GREATER ","FL:::/LT/Compiler/CmpDefs.HPZ,57"$0x02C 0007 StrConst
|
||||
$LK,"EC_GREATER_EQUAL ","FL:::/LT/Compiler/CmpDefs.HPZ,59"$0x02E 0007 StrConst
|
||||
$LK,"EC_GS ","FL:::/LT/Compiler/CmpDefs.HPZ,20"$0x012 0004 StrConst
|
||||
$LK,"EC_IMM ","FL:::/LT/Compiler/CmpDefs.HPZ,11"$0x009 0054 StrConst
|
||||
$LK,"EC_INP ","FL:::/LT/Compiler/CmpDefs.HPZ,121"$0x061 0004 StrConst
|
||||
$LK,"EC_INPD ","FL:::/LT/Compiler/CmpDefs.HPZ,119"$0x05F 0004 StrConst
|
||||
$LK,"EC_INPW ","FL:::/LT/Compiler/CmpDefs.HPZ,120"$0x060 0004 StrConst
|
||||
$LK,"EC_INSQUE ","FL:::/LT/Compiler/CmpDefs.HPZ,113"$0x059 0004 StrConst
|
||||
$LK,"EC_INSQUE_REV ","FL:::/LT/Compiler/CmpDefs.HPZ,114"$0x05A 0004 StrConst
|
||||
$LK,"EC_INVD ","FL:::/LT/Compiler/CmpDefs.HPZ,97"$0x04B 0004 StrConst
|
||||
$LK,"EC_IRQ ","FL:::/LT/Compiler/CmpDefs.HPZ,90"$0x045 0006 StrConst
|
||||
$LK,"EC_JMP ","FL:::/LT/Compiler/CmpDefs.HPZ,127"$0x066 000F StrConst
|
||||
$LK,"EC_LABEL ","FL:::/LT/Compiler/CmpDefs.HPZ,5"$0x003 001E StrConst
|
||||
$LK,"EC_LBTC ","FL:::/LT/Compiler/CmpDefs.HPZ,163"$0x083 0006 StrConst
|
||||
$LK,"EC_LBTR ","FL:::/LT/Compiler/CmpDefs.HPZ,162"$0x082 0006 StrConst
|
||||
$LK,"EC_LBTS ","FL:::/LT/Compiler/CmpDefs.HPZ,161"$0x081 0006 StrConst
|
||||
$LK,"EC_LEA ","FL:::/LT/Compiler/CmpDefs.HPZ,22"$0x013 000B StrConst
|
||||
$LK,"EC_LEAVE ","FL:::/LT/Compiler/CmpDefs.HPZ,84"$0x040 0005 StrConst
|
||||
$LK,"EC_LESS ","FL:::/LT/Compiler/CmpDefs.HPZ,56"$0x02B 0007 StrConst
|
||||
$LK,"EC_LESS_EQUAL ","FL:::/LT/Compiler/CmpDefs.HPZ,58"$0x02D 0007 StrConst
|
||||
$LK,"EC_MEMCPY ","FL:::/LT/Compiler/CmpDefs.HPZ,117"$0x05D 0004 StrConst
|
||||
$LK,"EC_MEMSET ","FL:::/LT/Compiler/CmpDefs.HPZ,118"$0x05E 0004 StrConst
|
||||
$LK,"EC_MM_ ","FL:::/LT/Compiler/CmpDefs.HPZ,35"$0x01D 0005 StrConst
|
||||
$LK,"EC_MOD ","FL:::/LT/Compiler/CmpDefs.HPZ,44"$0x023 0005 StrConst
|
||||
$LK,"EC_MOD_EQUAL ","FL:::/LT/Compiler/CmpDefs.HPZ,176"$0x08E 0005 StrConst
|
||||
$LK,"EC_MOV ","FL:::/LT/Compiler/CmpDefs.HPZ,24"$0x014 0013 StrConst
|
||||
$LK,"EC_MUL ","FL:::/LT/Compiler/CmpDefs.HPZ,42"$0x021 0007 StrConst
|
||||
$LK,"EC_MUL_EQUAL ","FL:::/LT/Compiler/CmpDefs.HPZ,73"$0x037 0005 StrConst
|
||||
$LK,"EC_NOP ","FL:::/LT/Compiler/CmpDefs.HPZ,3"$0x001 0055 StrConst
|
||||
$LK,"EC_NOP1 ","FL:::/LT/Compiler/CmpDefs.HPZ,10"$0x008 001C StrConst
|
||||
$LK,"EC_NOT ","FL:::/LT/Compiler/CmpDefs.HPZ,28"$0x017 0007 StrConst
|
||||
$LK,"EC_NOT_EQUAL ","FL:::/LT/Compiler/CmpDefs.HPZ,55"$0x02A 0007 StrConst
|
||||
$LK,"EC_NULL ","FL:::/LT/Compiler/CmpDefs.HPZ,2"$0x000 000E StrConst
|
||||
$LK,"EC_NUM_ENTRIES ","FL:::/LT/Compiler/CmpDefs.HPZ,183"$0x093 0007 StrConst
|
||||
$LK,"EC_OR ","FL:::/LT/Compiler/CmpDefs.HPZ,48"$0x025 0005 StrConst
|
||||
$LK,"EC_OR_EQUAL ","FL:::/LT/Compiler/CmpDefs.HPZ,76"$0x03A 0005 StrConst
|
||||
$LK,"EC_OR_OR ","FL:::/LT/Compiler/CmpDefs.HPZ,63"$0x030 000B StrConst
|
||||
$LK,"EC_OUTP ","FL:::/LT/Compiler/CmpDefs.HPZ,124"$0x064 0004 StrConst
|
||||
$LK,"EC_OUTPD ","FL:::/LT/Compiler/CmpDefs.HPZ,122"$0x062 0004 StrConst
|
||||
$LK,"EC_OUTPW ","FL:::/LT/Compiler/CmpDefs.HPZ,123"$0x063 0004 StrConst
|
||||
$LK,"EC_POP_REGS ","FL:::/LT/Compiler/CmpDefs.HPZ,149"$0x077 0005 StrConst
|
||||
$LK,"EC_POWER ","FL:::/LT/Compiler/CmpDefs.HPZ,40"$0x020 0005 StrConst
|
||||
$LK,"EC_PP_ ","FL:::/LT/Compiler/CmpDefs.HPZ,34"$0x01C 0005 StrConst
|
||||
$LK,"EC_PREEMPT ","FL:::/LT/Compiler/CmpDefs.HPZ,181"$0x092 0004 StrConst
|
||||
$LK,"EC_PUSH_CMP ","FL:::/LT/Compiler/CmpDefs.HPZ,180"$0x091 0006 StrConst
|
||||
$LK,"EC_PUSH_REGS ","FL:::/LT/Compiler/CmpDefs.HPZ,148"$0x076 0006 StrConst
|
||||
$LK,"EC_QUESTION ","FL:::/LT/Compiler/CmpDefs.HPZ,67"$0x033 0006 StrConst
|
||||
$LK,"EC_RBP ","FL:::/LT/Compiler/CmpDefs.HPZ,17"$0x00F 0004 StrConst
|
||||
$LK,"EC_RDTSC ","FL:::/LT/Compiler/CmpDefs.HPZ,125"$0x065 0004 StrConst
|
||||
$LK,"EC_REG ","FL:::/LT/Compiler/CmpDefs.HPZ,18"$0x010 000B StrConst
|
||||
$LK,"EC_REMQUE ","FL:::/LT/Compiler/CmpDefs.HPZ,115"$0x05B 0004 StrConst
|
||||
$LK,"EC_RET ","FL:::/LT/Compiler/CmpDefs.HPZ,85"$0x041 0008 StrConst
|
||||
$LK,"EC_RETURN_END ","FL:::/LT/Compiler/CmpDefs.HPZ,9"$0x007 000D StrConst
|
||||
$LK,"EC_RETURN_START ","FL:::/LT/Compiler/CmpDefs.HPZ,8"$0x006 0009 StrConst
|
||||
$LK,"EC_SET_BASE_PTR ","FL:::/LT/Compiler/CmpDefs.HPZ,102"$0x04F 0004 StrConst
|
||||
$LK,"EC_SET_FLAGS ","FL:::/LT/Compiler/CmpDefs.HPZ,100"$0x04D 0004 StrConst
|
||||
$LK,"EC_SET_RAX ","FL:::/LT/Compiler/CmpDefs.HPZ,105"$0x052 0007 StrConst
|
||||
$LK,"EC_SET_STACK_PTR ","FL:::/LT/Compiler/CmpDefs.HPZ,104"$0x051 0005 StrConst
|
||||
$LK,"EC_SHL ","FL:::/LT/Compiler/CmpDefs.HPZ,37"$0x01E 0005 StrConst
|
||||
$LK,"EC_SHL_CONST ","FL:::/LT/Compiler/CmpDefs.HPZ,143"$0x072 0006 StrConst
|
||||
$LK,"EC_SHL_EQUAL ","FL:::/LT/Compiler/CmpDefs.HPZ,71"$0x035 0006 StrConst
|
||||
$LK,"EC_SHR ","FL:::/LT/Compiler/CmpDefs.HPZ,38"$0x01F 0005 StrConst
|
||||
$LK,"EC_SHR_CONST ","FL:::/LT/Compiler/CmpDefs.HPZ,144"$0x073 0006 StrConst
|
||||
$LK,"EC_SHR_EQUAL ","FL:::/LT/Compiler/CmpDefs.HPZ,72"$0x036 0006 StrConst
|
||||
$LK,"EC_STI ","FL:::/LT/Compiler/CmpDefs.HPZ,93"$0x047 0004 StrConst
|
||||
$LK,"EC_STRLEN ","FL:::/LT/Compiler/CmpDefs.HPZ,116"$0x05C 0004 StrConst
|
||||
$LK,"EC_STR_CONST ","FL:::/LT/Compiler/CmpDefs.HPZ,13"$0x00B 0006 StrConst
|
||||
$LK,"EC_SUB ","FL:::/LT/Compiler/CmpDefs.HPZ,52"$0x028 0008 StrConst
|
||||
$LK,"EC_SUB_CONST ","FL:::/LT/Compiler/CmpDefs.HPZ,146"$0x075 0003 StrConst
|
||||
$LK,"EC_SUB_EQUAL ","FL:::/LT/Compiler/CmpDefs.HPZ,79"$0x03D 0005 StrConst
|
||||
$LK,"EC_SWITCH ","FL:::/LT/Compiler/CmpDefs.HPZ,128"$0x067 0005 StrConst
|
||||
$LK,"EC_TYPE ","FL:::/LT/Compiler/CmpDefs.HPZ,15"$0x00D 0004 StrConst
|
||||
$LK,"EC_UNARY_MINUS ","FL:::/LT/Compiler/CmpDefs.HPZ,29"$0x018 0005 StrConst
|
||||
$LK,"EC_WBINVD ","FL:::/LT/Compiler/CmpDefs.HPZ,96"$0x04A 0004 StrConst
|
||||
$LK,"EC_XOR ","FL:::/LT/Compiler/CmpDefs.HPZ,49"$0x026 0005 StrConst
|
||||
$LK,"EC_XOR_EQUAL ","FL:::/LT/Compiler/CmpDefs.HPZ,77"$0x03B 0005 StrConst
|
||||
$LK,"EC_XOR_XOR ","FL:::/LT/Compiler/CmpDefs.HPZ,64"$0x031 0005 StrConst
|
||||
$LK,"EC__MM ","FL:::/LT/Compiler/CmpDefs.HPZ,33"$0x01B 0005 StrConst
|
||||
$LK,"EC__PP ","FL:::/LT/Compiler/CmpDefs.HPZ,32"$0x01A 0005 StrConst
|
||||
$LK+BI,"EvalExpression ","FL:::/LT/Compiler/Lex.CPZ,321",74$00002398 0000 Funct Export
|
||||
$LK+BI,"ExePrintF ","FL:::/LT/Compiler/CmpMain.CPZ,43",75$00030710 0000 Funct Export
|
||||
$LK+BI,"ExePutS ","FL:::/LT/Compiler/CmpMain.CPZ,30",76$00030678 0001 Funct Export
|
||||
$LK+BI,"ExecuteCmdLine ","FL:::/LT/Compiler/CmpMain.CPZ,272",77$000314F0 0003 Funct Export
|
||||
$LK+BI,"ExecuteFile ","FL:::/LT/Compiler/CmpMain.CPZ,385",78$00031B28 0001 Funct Export
|
||||
$LK+BI,"ExecuteStr ","FL:::/LT/Compiler/CmpMain.CPZ,357",79$000319C0 0002 Funct Export
|
||||
$LK+BI,"Expression ","FL:::/LT/Compiler/ExpParser.CPZ,827",80$00013D48 0003 Funct Export
|
||||
$LK,"FBO1_DOUBLE ","FL:::/LT/Compiler/OptPass1.CPZ,4"$2 0002 StrConst
|
||||
$LK,"FBO1_INT ","FL:::/LT/Compiler/OptPass1.CPZ,3"$1 0011 StrConst
|
||||
$LK,"FBO1_NOT_CONST ","FL:::/LT/Compiler/OptPass1.CPZ,2"$0 0004 StrConst
|
||||
$LK+BI,"FillCompilerTables ","FL:::/LT/Compiler/CmpInit.CPZ,441",81$0002FC50 0001 Funct Export
|
||||
$LK+BI,"FindMember ","FL:::/LT/Compiler/Lex.CPZ,440",82$00002840 0003 Funct Export
|
||||
$LK+BI,"FindPSect ","FL:::/LT/Compiler/SPrintF2.CPZ,42",83$000066D8 0001 Funct Export
|
||||
$LK+BI,"FixupBinaryOp1 ","FL:::/LT/Compiler/OptPass1.CPZ,7",84$000211D0 0013 Funct Export
|
||||
$LK+BI,"FixupBinaryOp2 ","FL:::/LT/Compiler/OptPass1.CPZ,67",85$00021428 0001 Funct Export
|
||||
$LK+BI,"FixupUnaryOp ","FL:::/LT/Compiler/OptPass1.CPZ,83",86$00021490 0001 Funct Export
|
||||
$LK+BI,"GetExpression ","FL:::/LT/Compiler/ExpParser.CPZ,818",87$00013D08 0000 Funct Export
|
||||
$LK+BI,"GetFJoin2 ","FL:::/LT/Compiler/SPrintF2.CPZ,872",88$0000B218 0001 Funct Export
|
||||
$LK+BI,"Ic66Rex ","FL:::/LT/Compiler/Code.CPZ,99",89$00018A68 0005 Funct Export
|
||||
$LK+BI,"IcAddConst ","FL:::/LT/Compiler/Code.CPZ,725",90$0001AA90 0004 Funct Export
|
||||
$LK+BI,"IcAddEct ","FL:::/LT/Compiler/Code.CPZ,683",91$0001A818 0005 Funct Export
|
||||
$LK+BI,"IcAddSubEctEqual ","FL:::/LT/Compiler/Code.CPZ,1160",92$0001C580 0005 Funct Export
|
||||
$LK+BI,"IcAndAnd ","FL:::/LT/Compiler/Code.CPZ,1411",93$0001D550 0001 Funct Export
|
||||
$LK+BI,"IcAndBranch ","FL:::/LT/Compiler/Code.CPZ,2103",94$0001FCA8 0002 Funct Export
|
||||
$LK+BI,"IcAssign ","FL:::/LT/Compiler/Code.CPZ,2168",95$0001FFD0 0001 Funct Export
|
||||
$LK+BI,"IcBitOps ","FL:::/LT/Compiler/Code.CPZ,1678",96$0001E5C8 0007 Funct Export
|
||||
$LK+BI,"IcBrBitOps ","FL:::/LT/Compiler/Code.CPZ,2416",97$00020D58 000E Funct Export
|
||||
$LK+BI,"IcCmp ","FL:::/LT/Compiler/Code.CPZ,1553",98$0001DE88 0006 Funct Export
|
||||
$LK+BI,"IcCmpAndBranch ","FL:::/LT/Compiler/Code.CPZ,1825",99$0001EDE8 0006 Funct Export
|
||||
$LK+BI,"IcColon ","FL:::/LT/Compiler/Code.CPZ,1517",100$0001DBB8 0001 Funct Export
|
||||
$LK+BI,"IcCopyIrq ","FL:::/LT/Compiler/Code.CPZ,188",101$00018F38 001C Funct Export
|
||||
$LK+BI,"IcDeref ","FL:::/LT/Compiler/Code.CPZ,665",102$0001A730 0001 Funct Export
|
||||
$LK+BI,"IcDiv ","FL:::/LT/Compiler/Code.CPZ,1068",103$0001BF38 0001 Funct Export
|
||||
$LK+BI,"IcDivEqual ","FL:::/LT/Compiler/Code.CPZ,1087",104$0001C078 0002 Funct Export
|
||||
$LK+BI,"IcFCmp ","FL:::/LT/Compiler/Code.CPZ,2229",105$00020388 0004 Funct Export
|
||||
$LK+BI,"IcFCmpAndBranch ","FL:::/LT/Compiler/Code.CPZ,2300",106$000207E8 0004 Funct Export
|
||||
$LK+BI,"IcFOp1 ","FL:::/LT/Compiler/Code.CPZ,2200",107$00020200 0001 Funct Export
|
||||
$LK+BI,"IcFOp2 ","FL:::/LT/Compiler/Code.CPZ,2210",108$00020280 0006 Funct Export
|
||||
$LK+BI,"IcFOp2Equal ","FL:::/LT/Compiler/Code.CPZ,2256",109$000204E0 0005 Funct Export
|
||||
$LK+BI,"IcFPostIncDec ","FL:::/LT/Compiler/Code.CPZ,2388",110$00020BC8 0002 Funct Export
|
||||
$LK+BI,"IcFPreIncDec ","FL:::/LT/Compiler/Code.CPZ,2366",111$00020A88 0002 Funct Export
|
||||
$LK+BI,"IcLea ","FL:::/LT/Compiler/Code.CPZ,644",112$0001A5F0 0003 Funct Export
|
||||
$LK+BI,"IcMod ","FL:::/LT/Compiler/Code.CPZ,1141",113$0001C440 0001 Funct Export
|
||||
$LK+BI,"IcModr ","FL:::/LT/Compiler/Code.CPZ,207",114$00019050 000C Funct Export
|
||||
$LK+BI,"IcMov ","FL:::/LT/Compiler/Code.CPZ,431",115$00019A18 0141 Funct Export
|
||||
$LK+BI,"IcMul ","FL:::/LT/Compiler/Code.CPZ,943",116$0001B6C8 0001 Funct Export
|
||||
$LK+BI,"IcMulEqual ","FL:::/LT/Compiler/Code.CPZ,1000",117$0001BA08 0001 Funct Export
|
||||
$LK+BI,"IcNot ","FL:::/LT/Compiler/Code.CPZ,1400",118$0001D4A8 0001 Funct Export
|
||||
$LK+BI,"IcOr ","FL:::/LT/Compiler/Code.CPZ,420",119$000199B8 000D Funct Export
|
||||
$LK+BI,"IcOrOr ","FL:::/LT/Compiler/Code.CPZ,1444",120$0001D768 0001 Funct Export
|
||||
$LK+BI,"IcPop ","FL:::/LT/Compiler/Code.CPZ,381",121$000197E8 0003 Funct Export
|
||||
$LK+BI,"IcPopRegs ","FL:::/LT/Compiler/Code.CPZ,398",122$000198C8 000F Funct Export
|
||||
$LK+BI,"IcPostIncDec ","FL:::/LT/Compiler/Code.CPZ,1798",123$0001EC60 0002 Funct Export
|
||||
$LK+BI,"IcPreIncDec ","FL:::/LT/Compiler/Code.CPZ,1773",124$0001EAF8 0002 Funct Export
|
||||
$LK+BI,"IcPreempt ","FL:::/LT/Compiler/Code.CPZ,1742",125$0001E948 0001 Funct Export
|
||||
$LK+BI,"IcPush ","FL:::/LT/Compiler/Code.CPZ,295",126$000193B8 0007 Funct Export
|
||||
$LK+BI,"IcPushRegs ","FL:::/LT/Compiler/Code.CPZ,368",127$00019768 000A Funct Export
|
||||
$LK+BI,"IcRex ","FL:::/LT/Compiler/Code.CPZ,85",128$000189B8 000D Funct Export
|
||||
$LK+BI,"IcShift ","FL:::/LT/Compiler/Code.CPZ,1303",129$0001CE68 0004 Funct Export
|
||||
$LK+BI,"IcShiftEqual ","FL:::/LT/Compiler/Code.CPZ,1325",130$0001CFE0 0002 Funct Export
|
||||
$LK+BI,"IcSlashOp ","FL:::/LT/Compiler/Code.CPZ,267",131$00019220 0008 Funct Export
|
||||
$LK+BI,"IcSubEct ","FL:::/LT/Compiler/Code.CPZ,900",132$0001B448 0001 Funct Export
|
||||
$LK+BI,"IcTestAndBranch ","FL:::/LT/Compiler/Code.CPZ,2062",133$0001FB00 0002 Funct Export
|
||||
$LK+BI,"IcU1 ","FL:::/LT/Compiler/Code.CPZ,73",134$00018910 0042 Funct Export
|
||||
$LK+BI,"IcU2 ","FL:::/LT/Compiler/Code.CPZ,125",135$00018BE0 0073 Funct Export
|
||||
$LK+BI,"IcU3 ","FL:::/LT/Compiler/Code.CPZ,140",136$00018CC0 0076 Funct Export
|
||||
$LK+BI,"IcU4 ","FL:::/LT/Compiler/Code.CPZ,157",137$00018DD8 005D Funct Export
|
||||
$LK+BI,"IcU8 ","FL:::/LT/Compiler/Code.CPZ,173",138$00018E88 0002 Funct Export
|
||||
$LK+BI,"IcUnaries ","FL:::/LT/Compiler/Code.CPZ,1391",139$0001D420 0002 Funct Export
|
||||
$LK+BI,"IcXorXor ","FL:::/LT/Compiler/Code.CPZ,1480",140$0001D980 0001 Funct Export
|
||||
$LK+BI,"IcZero ","FL:::/LT/Compiler/Code.CPZ,411",141$00019948 0018 Funct Export
|
||||
$LK+BI,"InitCompiler ","FL:::/LT/Compiler/CmpInit.CPZ,590",142$000302C0 0001 Funct Export
|
||||
$LK,"KW_ASM ","FL:::/LT/Compiler/CmpDefs.HPZ,208"$21 0001 StrConst
|
||||
$LK,"KW_ASSERT ","FL:::/LT/Compiler/CmpDefs.HPZ,225"$38 0001 StrConst
|
||||
$LK,"KW_BREAK ","FL:::/LT/Compiler/CmpDefs.HPZ,211"$24 0001 StrConst
|
||||
$LK,"KW_CASE ","FL:::/LT/Compiler/CmpDefs.HPZ,214"$27 0001 StrConst
|
||||
$LK,"KW_CATCH ","FL:::/LT/Compiler/CmpDefs.HPZ,190"$3 0001 StrConst
|
||||
$LK,"KW_CLASS ","FL:::/LT/Compiler/CmpDefs.HPZ,191"$4 0003 StrConst
|
||||
$LK,"KW_CONTINUE ","FL:::/LT/Compiler/CmpDefs.HPZ,212"$25 0001 StrConst
|
||||
$LK,"KW_COUT ","FL:::/LT/Compiler/CmpDefs.HPZ,206"$19 0001 StrConst
|
||||
$LK,"KW_COUTLN ","FL:::/LT/Compiler/CmpDefs.HPZ,221"$34 0001 StrConst
|
||||
$LK,"KW_DEFAULT ","FL:::/LT/Compiler/CmpDefs.HPZ,215"$28 0001 StrConst
|
||||
$LK,"KW_DEFINE ","FL:::/LT/Compiler/CmpDefs.HPZ,188"$1 0001 StrConst
|
||||
$LK,"KW_DO ","FL:::/LT/Compiler/CmpDefs.HPZ,207"$20 0001 StrConst
|
||||
$LK,"KW_ELSE ","FL:::/LT/Compiler/CmpDefs.HPZ,194"$7 0005 StrConst
|
||||
$LK,"KW_ENDIF ","FL:::/LT/Compiler/CmpDefs.HPZ,224"$37 0005 StrConst
|
||||
$LK,"KW_EXE ","FL:::/LT/Compiler/CmpDefs.HPZ,210"$23 0001 StrConst
|
||||
$LK,"KW_EXTERN ","FL:::/LT/Compiler/CmpDefs.HPZ,197"$10 0001 StrConst
|
||||
$LK,"KW_FMTDATA ","FL:::/LT/Compiler/CmpDefs.HPZ,203"$16 0002 StrConst
|
||||
$LK,"KW_FMTSTR ","FL:::/LT/Compiler/CmpDefs.HPZ,202"$15 0002 StrConst
|
||||
$LK,"KW_FOR ","FL:::/LT/Compiler/CmpDefs.HPZ,195"$8 0001 StrConst
|
||||
$LK,"KW_GOTO ","FL:::/LT/Compiler/CmpDefs.HPZ,209"$22 0001 StrConst
|
||||
$LK,"KW_HELP_FILE ","FL:::/LT/Compiler/CmpDefs.HPZ,230"$43 0001 StrConst
|
||||
$LK,"KW_HELP_INDEX ","FL:::/LT/Compiler/CmpDefs.HPZ,229"$42 0001 StrConst
|
||||
$LK,"KW_IF ","FL:::/LT/Compiler/CmpDefs.HPZ,193"$6 0006 StrConst
|
||||
$LK,"KW_IFDEF ","FL:::/LT/Compiler/CmpDefs.HPZ,222"$35 0006 StrConst
|
||||
$LK,"KW_IFNDEF ","FL:::/LT/Compiler/CmpDefs.HPZ,223"$36 0006 StrConst
|
||||
$LK,"KW_IMPORT ","FL:::/LT/Compiler/CmpDefs.HPZ,219"$32 0001 StrConst
|
||||
$LK,"KW_INCLUDE ","FL:::/LT/Compiler/CmpDefs.HPZ,187"$0 0001 StrConst
|
||||
$LK,"KW_INPUT_FUN ","FL:::/LT/Compiler/CmpDefs.HPZ,205"$18 0000 StrConst
|
||||
$LK,"KW_INTERNAL ","FL:::/LT/Compiler/CmpDefs.HPZ,201"$14 0001 StrConst
|
||||
$LK,"KW_LTEXTERN ","FL:::/LT/Compiler/CmpDefs.HPZ,198"$11 0001 StrConst
|
||||
$LK,"KW_LTIMPORT ","FL:::/LT/Compiler/CmpDefs.HPZ,220"$33 0001 StrConst
|
||||
$LK,"KW_NOREG ","FL:::/LT/Compiler/CmpDefs.HPZ,227"$40 0001 StrConst
|
||||
$LK,"KW_NOUNUSEDWARN ","FL:::/LT/Compiler/CmpDefs.HPZ,228"$41 0001 StrConst
|
||||
$LK,"KW_OFFSET ","FL:::/LT/Compiler/CmpDefs.HPZ,217"$30 0001 StrConst
|
||||
$LK,"KW_OUTPUT_FUN ","FL:::/LT/Compiler/CmpDefs.HPZ,204"$17 0000 StrConst
|
||||
$LK,"KW_PUBLIC ","FL:::/LT/Compiler/CmpDefs.HPZ,216"$29 0001 StrConst
|
||||
$LK,"KW_REG ","FL:::/LT/Compiler/CmpDefs.HPZ,226"$39 0001 StrConst
|
||||
$LK,"KW_RETURN ","FL:::/LT/Compiler/CmpDefs.HPZ,199"$12 0001 StrConst
|
||||
$LK,"KW_SIZEOF ","FL:::/LT/Compiler/CmpDefs.HPZ,200"$13 0001 StrConst
|
||||
$LK,"KW_SWITCH ","FL:::/LT/Compiler/CmpDefs.HPZ,213"$26 0001 StrConst
|
||||
$LK,"KW_TRY ","FL:::/LT/Compiler/CmpDefs.HPZ,192"$5 0001 StrConst
|
||||
$LK,"KW_TYPEOF ","FL:::/LT/Compiler/CmpDefs.HPZ,218"$31 0000 StrConst
|
||||
$LK,"KW_UNION ","FL:::/LT/Compiler/CmpDefs.HPZ,189"$2 0004 StrConst
|
||||
$LK,"KW_WHILE ","FL:::/LT/Compiler/CmpDefs.HPZ,196"$9 0002 StrConst
|
||||
$LK+BI,"Lex ","FL:::/LT/Compiler/Lex.CPZ,542",143$00002CA0 00F4 Funct Export
|
||||
$LK+BI,"LexBackupLastChar ","FL:::/LT/Compiler/Lex.CPZ,119",144$00001A70 0003 Funct Export
|
||||
$LK+BI,"LexDel ","FL:::/LT/Compiler/Lex.CPZ,68",145$00001788 0005 Funct Export
|
||||
$LK+BI,"LexExtendStr ","FL:::/LT/Compiler/Lex.CPZ,1113",146$000046A0 0004 Funct Export
|
||||
$LK+BI,"LexGetChar ","FL:::/LT/Compiler/Lex.CPZ,130",147$00001AD0 0026 Funct Export
|
||||
$LK+BI,"LexInStr ","FL:::/LT/Compiler/Lex.CPZ,477",148$000029C0 0001 Funct Export
|
||||
$LK+BI,"LexIncludeLtf ","FL:::/LT/Compiler/Lex.CPZ,356",149$000024D0 0001 Funct Export
|
||||
$LK+BI,"LexIncludeStr ","FL:::/LT/Compiler/Lex.CPZ,334",150$00002408 0003 Funct Export
|
||||
$LK+BI,"LexLineNum ","FL:::/LT/Compiler/Lex.CPZ,1155",151$000048B8 0008 Funct Export
|
||||
$LK+BI,"LexNew ","FL:::/LT/Compiler/Lex.CPZ,38",152$00001630 0005 Funct Export
|
||||
$LK+BI,"LexPop ","FL:::/LT/Compiler/Lex.CPZ,428",153$00002790 0002 Funct Export
|
||||
$LK+BI,"LexPush ","FL:::/LT/Compiler/Lex.CPZ,416",154$000026C8 000A Funct Export
|
||||
$LK+BI,"LexPutLine ","FL:::/LT/Compiler/Lex.CPZ,1139",155$000047D0 0003 Funct Export
|
||||
$LK+BI,"LexPutLink ","FL:::/LT/Compiler/Lex.CPZ,1160",156$000048D8 0002 Funct Export
|
||||
$LK+BI,"LexPutToken ","FL:::/LT/Compiler/Lex.CPZ,100",157$00001948 0003 Funct Export
|
||||
$LK+BI,"LexSkipEol ","FL:::/LT/Compiler/Lex.CPZ,308",158$00002328 0007 Funct Export
|
||||
$LK+BI,"LoadAsmHash ","FL:::/LT/Compiler/CmpInit.CPZ,1",159$0002D2F8 0001 Funct Export
|
||||
$LK+BI,"LoadCompileSysText ","FL:::/LT/Compiler/CmpInit.CPZ,191",160$0002DCD0 0001 Funct Export
|
||||
$LK+BI,"MSPrintFDate ","FL:::/LT/Compiler/SPrintF2.CPZ,175",161$00007518 0001 Funct Export
|
||||
$LK+BI,"MSPrintFTime ","FL:::/LT/Compiler/SPrintF2.CPZ,96",162$000068F8 0001 Funct Export
|
||||
$LK+BI,"OptBrNotZero ","FL:::/LT/Compiler/OptPass1.CPZ,343",163$00022000 0004 Funct Export
|
||||
$LK+BI,"OptBrZero ","FL:::/LT/Compiler/OptPass1.CPZ,206",164$00021948 0006 Funct Export
|
||||
$LK+BI,"OptEnd ","FL:::/LT/Compiler/OptPass1.CPZ,161",165$000217D0 0005 Funct Export
|
||||
$LK+BI,"OptLag ","FL:::/LT/Compiler/OptPass1.CPZ,171",166$00021878 0004 Funct Export
|
||||
$LK+BI,"OptLag1 ","FL:::/LT/Compiler/OptPass1.CPZ,182",167$000218B8 0002 Funct Export
|
||||
$LK+BI,"OptLead1 ","FL:::/LT/Compiler/OptPass1.CPZ,193",168$00021900 0002 Funct Export
|
||||
$LK+BI,"OptMissing ","FL:::/LT/Compiler/OptPass1.CPZ,131",169$00021600 0004 Funct Export
|
||||
$LK,"OptNext ","FL:::/LT/Compiler/OptPass1.CPZ,152"$00001060 0002 Funct
|
||||
$LK,"OptNext2 ","FL:::/LT/Compiler/OptPass1.CPZ,155"$000010D8 0002 Funct
|
||||
$LK,"OptNext3 ","FL:::/LT/Compiler/OptPass1.CPZ,158"$00001150 0001 Funct
|
||||
$LK+BI,"OptStart ","FL:::/LT/Compiler/OptPass1.CPZ,141",170$00021740 0005 Funct Export
|
||||
$LK+BI,"OutChar ","FL:::/LT/Compiler/SPrintF2.CPZ,1",171$000064F8 0026 Funct Export
|
||||
$LK+BI,"OutStr ","FL:::/LT/Compiler/SPrintF2.CPZ,19",172$000065B8 0008 Funct Export
|
||||
$LK,"PG_EXTERN ","FL:::/LT/Compiler/StmtParser.CPZ,579"$4 0007 StrConst
|
||||
$LK,"PG_IMPORT ","FL:::/LT/Compiler/StmtParser.CPZ,580"$5 0004 StrConst
|
||||
$LK,"PG_LTEXTERN ","FL:::/LT/Compiler/StmtParser.CPZ,576"$1 0004 StrConst
|
||||
$LK,"PG_LTIMPORT ","FL:::/LT/Compiler/StmtParser.CPZ,578"$3 0006 StrConst
|
||||
$LK,"PG_LTINTERN ","FL:::/LT/Compiler/StmtParser.CPZ,577"$2 0002 StrConst
|
||||
$LK,"PG_NULL ","FL:::/LT/Compiler/StmtParser.CPZ,575"$0 0001 StrConst
|
||||
$LK,"PRST_CHECK_BINARY_OPS ","FL:::/LT/Compiler/ExpParser.CPZ,7"$3 000E StrConst
|
||||
$LK,"PRST_DEREFERRENCE ","FL:::/LT/Compiler/ExpParser.CPZ,6"$2 0004 StrConst
|
||||
$LK,"PRST_UNARY_MODIFIERS ","FL:::/LT/Compiler/ExpParser.CPZ,5"$1 000A StrConst
|
||||
$LK,"PRST_UNARY_TERM ","FL:::/LT/Compiler/ExpParser.CPZ,4"$0 0005 StrConst
|
||||
$LK,"PVLM_CLASS ","FL:::/LT/Compiler/StmtParser.CPZ,14"$2 0001 StrConst
|
||||
$LK,"PVLM_FUNCTION_PARAM ","FL:::/LT/Compiler/StmtParser.CPZ,13"$1 0004 StrConst
|
||||
$LK,"PVLM_LOCAL_VAR ","FL:::/LT/Compiler/StmtParser.CPZ,12"$0 0005 StrConst
|
||||
$LK,"PVLM_UNION ","FL:::/LT/Compiler/StmtParser.CPZ,15"$3 0000 StrConst
|
||||
$LK+BI,"ParseAsmArg ","FL:::/LT/Compiler/AsmMain.CPZ,491",173$0000D3A8 0002 Funct Export
|
||||
$LK+BI,"ParseAsmImm ","FL:::/LT/Compiler/AsmMain.CPZ,454",174$0000D238 0006 Funct Export
|
||||
$LK+BI,"PrsDereferrence ","FL:::/LT/Compiler/ExpParser.CPZ,757",175$00013A88 0000 Funct Export
|
||||
$LK+BI,"PrsExcept ","FL:::/LT/Compiler/Lex.CPZ,1215",176$00004C50 006E Funct Export
|
||||
$LK+BI,"PrsParseExpression ","FL:::/LT/Compiler/ExpParser.CPZ,9",177$00010CF0 0011 Funct Export
|
||||
$LK+BI,"PrsParseGlblInit ","FL:::/LT/Compiler/StmtParser.CPZ,551",178$00015738 0001 Funct Export
|
||||
$LK,"PrsPop ","FL:::/LT/Compiler/ExpParser.CPZ,2"$00001200 001B Funct
|
||||
$LK,"PrsPush ","FL:::/LT/Compiler/ExpParser.CPZ,1"$000011E0 0015 Funct
|
||||
$LK+BI,"PrsUnaryModifier ","FL:::/LT/Compiler/ExpParser.CPZ,571",179$00013098 0000 Funct Export
|
||||
$LK+BI,"PrsUnaryTerm ","FL:::/LT/Compiler/ExpParser.CPZ,175",180$00011630 0000 Funct Export
|
||||
$LK+BI,"PrsVarInit ","FL:::/LT/Compiler/StmtParser.CPZ,458",181$00015240 0002 Funct Export
|
||||
$LK+BI,"PutAsmError ","FL:::/LT/Compiler/Lex.CPZ,1201",182$00004BD0 0023 Funct Export
|
||||
$LK+BI,"PutAsmWarning ","FL:::/LT/Compiler/Lex.CPZ,1208",183$00004C10 0003 Funct Export
|
||||
$LK+BI,"PutLexError ","FL:::/LT/Compiler/Lex.CPZ,1171",184$000049E0 0002 Funct Export
|
||||
$LK+BI,"PutLexWarning ","FL:::/LT/Compiler/Lex.CPZ,1192",185$00004B48 0001 Funct Export
|
||||
$LK+BI,"ResolveGlbls ","FL:::/LT/Compiler/AsmMain.CPZ,303",186$0000C8F8 0001 Funct Export
|
||||
$LK+BI,"ResolveLocals ","FL:::/LT/Compiler/AsmMain.CPZ,234",187$0000C448 0004 Funct Export
|
||||
$LK,"SLASH_OP_DEC ","FL:::/LT/Compiler/Code.CPZ,261"$0xFFFE01 0002 StrConst
|
||||
$LK,"SLASH_OP_INC ","FL:::/LT/Compiler/Code.CPZ,260"$0xFFFE00 0002 StrConst
|
||||
$LK,"SLASH_OP_MOV ","FL:::/LT/Compiler/Code.CPZ,265"$0x898800 0001 StrConst
|
||||
$LK,"SLASH_OP_MUL ","FL:::/LT/Compiler/Code.CPZ,264"$0xF7F604 0000 StrConst
|
||||
$LK,"SLASH_OP_NEG ","FL:::/LT/Compiler/Code.CPZ,263"$0xF7F603 0001 StrConst
|
||||
$LK,"SLASH_OP_NOT ","FL:::/LT/Compiler/Code.CPZ,262"$0xF7F602 0001 StrConst
|
||||
$LK+BI,"SPrintFJoin2 ","FL:::/LT/Compiler/SPrintF2.CPZ,295",188$00008818 0001 Funct Export
|
||||
$LK+BI,"SPrintFPSect ","FL:::/LT/Compiler/SPrintF2.CPZ,77",189$000067C8 0002 Funct Export
|
||||
$LK+BI,"SetSourceFileInfo ","FL:::/LT/Compiler/Lex.CPZ,88",190$00001898 000B Funct Export
|
||||
$LK,"SwitchCaseEntry ","FL:::/LT/Compiler/StmtParser.CPZ,889"$1800000003 0003 Class
|
||||
$LK,"TEMP_BUF_LEN ","FL:::/LT/Compiler/SPrintF2.CPZ,293"$256 0008 StrConst
|
||||
$LK+BI,"UndefinedExtern ","FL:::/LT/Compiler/StmtParser.CPZ,257",191$00014908 0001 Funct Export
|
||||
$LK+BI,"UnusedExternWarning ","FL:::/LT/Compiler/StmtParser.CPZ,263",192$00014960 0004 Funct Export
|
||||
$LK,"asm_hash ","FL:::/LT/Compiler/CmpGlbls.CPZ,1"$00001234 0005 GlbVar Export
|
||||
$LK,"assign_bitmap ","FL:::/LT/Compiler/CmpGlbls.CPZ,8"$000012E4 0005 GlbVar Export
|
||||
$LK,"binary_ops_table ","FL:::/LT/Compiler/CmpGlbls.CPZ,6"$000012BC 0002 GlbVar Export
|
||||
$LK,"cmp_bitmap ","FL:::/LT/Compiler/CmpGlbls.CPZ,8"$000012F4 0004 GlbVar Export
|
||||
$LK,"cmp_do_not_write_to_disk ","FL:::/LT/Compiler/CmpGlbls.CPZ,2"$00001240 0002 GlbVar Export
|
||||
$LK,"cmp_param_cnt ","FL:::/LT/Compiler/CmpGlbls.CPZ,7"$000012CC 0008 GlbVar Export
|
||||
$LK,"cmp_result_cnt ","FL:::/LT/Compiler/CmpGlbls.CPZ,7"$000012D4 0005 GlbVar Export
|
||||
$LK,"deref_bitmap ","FL:::/LT/Compiler/CmpGlbls.CPZ,8"$000012DC 0005 GlbVar Export
|
||||
$LK,"duel_I1_tokens1 ","FL:::/LT/Compiler/CmpGlbls.CPZ,5"$000012A4 0002 GlbVar Export
|
||||
$LK,"duel_I1_tokens2 ","FL:::/LT/Compiler/CmpGlbls.CPZ,5"$000012AC 0002 GlbVar Export
|
||||
$LK,"duel_I1_tokens3 ","FL:::/LT/Compiler/CmpGlbls.CPZ,5"$000012B4 0002 GlbVar Export
|
||||
$LK,"internal_types_table ","FL:::/LT/Compiler/CmpDefs2.HPZ,20"$00000E50 0001 GlbVar Export
|
||||
$LK,"is_first_compiler ","FL:::/LT/Compiler/CmpGlbls.CPZ,2"$0000123C 0002 GlbVar Export
|
||||
$LK,"lex_line_feed ","FL:::/LT/Compiler/Lex.CPZ,117"$00001A6C 0001 GlbVar Export
|
||||
$LK,"lex_zeros ","FL:::/LT/Compiler/Lex.CPZ,117"$00001A68 0009 GlbVar Export
|
||||
$LK,"non_ptr_vars_mask ","FL:::/LT/Compiler/CmpGlbls.CPZ,10"$00001324 0006 GlbVar Export
|
||||
$LK,"not_constant_bitmap ","FL:::/LT/Compiler/CmpGlbls.CPZ,8"$000012EC 0003 GlbVar Export
|
||||
$LK,"num_non_ptr_vars ","FL:::/LT/Compiler/CmpGlbls.CPZ,9"$0000130C 0003 GlbVar Export
|
||||
$LK,"num_reg_vars ","FL:::/LT/Compiler/CmpGlbls.CPZ,9"$00001304 0003 GlbVar Export
|
||||
$LK,"num_stk_temps ","FL:::/LT/Compiler/CmpGlbls.CPZ,9"$000012FC 0004 GlbVar Export
|
||||
$LK,"opt_nop ","FL:::/LT/Compiler/OptPass1.CPZ,138"$000216A0 0007 GlbVar Export
|
||||
$LK,"reg_vars_mask ","FL:::/LT/Compiler/CmpGlbls.CPZ,10"$0000131C 0002 GlbVar Export
|
||||
$LK,"stk_temps_mask ","FL:::/LT/Compiler/CmpGlbls.CPZ,10"$00001314 0003 GlbVar Export
|
||||
$LK,"sys_internal_types ","FL:::/LT/Compiler/CmpGlbls.CPZ,3"$00001244 0089 GlbVar Export
|
||||
$LK,"to_non_ptr_vars_map ","FL:::/LT/Compiler/CmpGlbls.CPZ,13"$00001344 0003 GlbVar Export
|
||||
$LK,"to_reg_vars_map ","FL:::/LT/Compiler/CmpGlbls.CPZ,13"$0000133C 0003 GlbVar Export
|
||||
$LK,"to_stk_temps_map_even ","FL:::/LT/Compiler/CmpGlbls.CPZ,12"$00001334 0008 GlbVar Export
|
||||
$LK,"to_stk_temps_map_odd ","FL:::/LT/Compiler/CmpGlbls.CPZ,11"$0000132C 0008 GlbVar Export
|
||||
$LK,"unary_ops_table ","FL:::/LT/Compiler/CmpGlbls.CPZ,6"$000012C4 0002 GlbVar Export
|
||||
| ||||