TempleOSCD_140715.ISO
This commit is contained in:
1 parent
7ef616a20e
commit
64f679eeb9
1095 files changed
+24814
-221011
No files matched your search
+44
-45
@@ -30,23 +30,21 @@ U0 AsmUnresolvedAdd(CLex *lx,U8 *ex,I64 type,I64 ip,I64 rel_ip,
|
||||
|
||||
U0 AsmLineLst(CLex *lx)
|
||||
{
|
||||
CAsmCtrl *a=lx->a;
|
||||
CAOTCtrl *a=lx->a;
|
||||
CLexFile *tempf=lx->cur_lfn;
|
||||
CDocEntry *doc_e=tempf->line_start,*doc_e2;
|
||||
if (a->lst && a->last_lfn==tempf && doc_e) {
|
||||
if (doc_e2=a->last_line_lsted) {
|
||||
if (tempf->flags& LFSF_DOC) {
|
||||
while (doc_e2->y<doc_e->y) {
|
||||
Spaces(24-a->display_col);
|
||||
"%h*c%08X ",24-a->display_col,CH_SPACE,a->last_ip;
|
||||
a->display_col=0;
|
||||
"%08X ",a->last_ip;
|
||||
doc_e2=LexPutLine(lx,doc_e2);
|
||||
}
|
||||
} else {
|
||||
while (*doc_e2(U8 *) && doc_e2!=doc_e) {
|
||||
Spaces(24-a->display_col);
|
||||
"%h*c%08X ",24-a->display_col,CH_SPACE,a->last_ip;
|
||||
a->display_col=0;
|
||||
"%08X ",a->last_ip;
|
||||
doc_e2=LexPutLine(lx,doc_e2);
|
||||
}
|
||||
}
|
||||
@@ -62,7 +60,7 @@ U0 AsmLineLst(CLex *lx)
|
||||
|
||||
U0 AsmStoreCodeU8(CLex *lx,U8 b)
|
||||
{
|
||||
CAsmCtrl *a=lx->a;
|
||||
CAOTCtrl *a=lx->a;
|
||||
I64 i=a->ip>>ASM_CODE_BLK_BITS;
|
||||
CAsmCodeBlk *tempc=a->cb;
|
||||
while (i--)
|
||||
@@ -79,7 +77,7 @@ U0 AsmStoreCodeU8(CLex *lx,U8 b)
|
||||
tempc->body[a->ip++ & (ASM_CODE_BLK_SIZE-1)]=b;
|
||||
if (a->lst) {
|
||||
if (a->display_col>=24) {
|
||||
NewLine;
|
||||
'\n';
|
||||
a->display_col=0;
|
||||
}
|
||||
"%02X ",b;
|
||||
@@ -91,7 +89,7 @@ U0 AsmStoreCodeU8(CLex *lx,U8 b)
|
||||
|
||||
U0 AsmStoreCodeU32(CLex *lx,U32 d)
|
||||
{
|
||||
CAsmCtrl *a=lx->a;
|
||||
CAOTCtrl *a=lx->a;
|
||||
I64 i=a->ip>>ASM_CODE_BLK_BITS,
|
||||
j=(a->ip+sizeof(U32))>>ASM_CODE_BLK_BITS;
|
||||
U32 *_d;
|
||||
@@ -117,7 +115,7 @@ U0 AsmStoreCodeU32(CLex *lx,U32 d)
|
||||
a->ip+=sizeof(U32);
|
||||
if (a->lst) {
|
||||
if (a->display_col>=24) {
|
||||
NewLine;
|
||||
'\n';
|
||||
a->display_col=0;
|
||||
}
|
||||
"%08X ",d;
|
||||
@@ -130,7 +128,7 @@ U0 AsmStoreCodeU32(CLex *lx,U32 d)
|
||||
|
||||
U0 AsmStoreCodeU64(CLex *lx,U64 q)
|
||||
{
|
||||
CAsmCtrl *a=lx->a;
|
||||
CAOTCtrl *a=lx->a;
|
||||
I64 i=a->ip>>ASM_CODE_BLK_BITS,
|
||||
j=(a->ip+sizeof(I64))>>ASM_CODE_BLK_BITS,
|
||||
*_q;
|
||||
@@ -156,7 +154,7 @@ U0 AsmStoreCodeU64(CLex *lx,U64 q)
|
||||
a->ip+=sizeof(I64);
|
||||
if (a->lst) {
|
||||
if (a->display_col>=24) {
|
||||
NewLine;
|
||||
'\n';
|
||||
a->display_col=0;
|
||||
}
|
||||
"%016X ",q;
|
||||
@@ -169,7 +167,7 @@ U0 AsmStoreCodeU64(CLex *lx,U64 q)
|
||||
|
||||
U0 AsmStoreCodeU8At(CLex *lx,I64 ip,...)
|
||||
{
|
||||
CAsmCtrl *a=lx->a;
|
||||
CAOTCtrl *a=lx->a;
|
||||
CAsmCodeBlk *tempc;
|
||||
I64 i,j;
|
||||
for (j=0;j<argc;j++) {
|
||||
@@ -226,7 +224,7 @@ U0 AsmResolve(CLex *lx,CAsmUnresolvedRef *tempu,U8 *label,Bool undefined)
|
||||
}
|
||||
templu=templu->next; //Technically, more than one won't work.
|
||||
}
|
||||
} else if (!(tempu->type & 1)) { //Rel?
|
||||
} else if (!(tempu->type & 1)) {//Rel?
|
||||
r-=tempu->rel_ip;
|
||||
if (tempu->type==EIT_REL_I8 && !(MIN_I8<=r<=MAX_I8) ||
|
||||
tempu->type==EIT_REL_I16 && !(MIN_I16<=r<=MAX_I16)) {
|
||||
@@ -251,7 +249,7 @@ U0 AsmResolve(CLex *lx,CAsmUnresolvedRef *tempu,U8 *label,Bool undefined)
|
||||
|
||||
U0 AsmLocalsResolve(CLex *lx)
|
||||
{
|
||||
CAsmCtrl *a=lx->a;
|
||||
CAOTCtrl *a=lx->a;
|
||||
CAsmUnresolvedRef *tempu=a->local_unresolved,*tempu1;
|
||||
CLexUndef *templu;
|
||||
Bool undefined;
|
||||
@@ -285,7 +283,7 @@ U0 AsmLocalsResolve(CLex *lx)
|
||||
|
||||
U0 AsmGlblsResolve(CLex *lx,CExe *tempx)
|
||||
{
|
||||
CAsmCtrl *a=lx->a;
|
||||
CAOTCtrl *a=lx->a;
|
||||
CHashFun *tempf;
|
||||
CAsmUnresolvedRef *tempu=a->glbl_unresolved,*tempu1;
|
||||
I64 j;
|
||||
@@ -374,7 +372,7 @@ U0 AsmGlblsResolve(CLex *lx,CExe *tempx)
|
||||
}
|
||||
if (tempex->type & HTF_EXPORT) {
|
||||
tempe=CAlloc(sizeof(CExeImportExport));
|
||||
tempe->type=EIT_REL_EXPORT;
|
||||
tempe->type=EIT_REL32_EXPORT;
|
||||
if (tempex->type & HTT_FUN)
|
||||
tempe->ip=tempf->executable_addr;
|
||||
else if (tempex->type & HTT_GLBL_VAR)
|
||||
@@ -477,7 +475,7 @@ U0 PrsAsmArg(CLex *lx,CAsmArg *arg)
|
||||
} else {
|
||||
if ((temph->type&HTG_TYPE_MASK==HTT_CLASS||
|
||||
temph->type&HTG_TYPE_MASK==HTT_INTERNAL_TYPE) &&
|
||||
(temph1=HashFind(lx->cur_str,asm_hash,HTT_ASM_KEYWORD)))
|
||||
(temph1=HashFind(lx->cur_str,cmp.asm_hash,HTT_ASM_KEYWORD)))
|
||||
temph=temph1;
|
||||
if (temph->type&HTG_TYPE_MASK==HTT_ASM_KEYWORD) {
|
||||
switch (temph->user_data0) {
|
||||
@@ -547,7 +545,7 @@ U0 PrsAsmArg(CLex *lx,CAsmArg *arg)
|
||||
arg->scale=lx->cur_i64;
|
||||
Lex(lx); //skip scale
|
||||
if (arg->reg2!=REG_NONE)
|
||||
SwapU64(&arg->reg1,&arg->reg2);
|
||||
SwapI64(&arg->reg1,&arg->reg2);
|
||||
} else if (lx->token=='+') {
|
||||
Lex(lx); //skip '+'
|
||||
} else {
|
||||
@@ -568,10 +566,9 @@ U0 PrsAsmArg(CLex *lx,CAsmArg *arg)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
U0 AsmMakeArgMask(CLex *lx,CAsmArg *arg,I64 *_mask)
|
||||
{
|
||||
CAsmCtrl *a=lx->a;
|
||||
CAOTCtrl *a=lx->a;
|
||||
if (arg->just_seg) {
|
||||
switch (arg->seg) {
|
||||
case 0: *_mask=1<<ARGT_ES|1<<ARGT_SREG; break;
|
||||
@@ -616,9 +613,9 @@ U0 AsmMakeArgMask(CLex *lx,CAsmArg *arg,I64 *_mask)
|
||||
*_mask&=0x000FFF0000;
|
||||
} else {
|
||||
if (arg->imm_or_off_present)
|
||||
*_mask&=0x000F00F0FE;
|
||||
*_mask&=0x000F000FFE;
|
||||
else
|
||||
*_mask&=0x3F0FFF0F00;
|
||||
*_mask&=0x3F0FFFF000;
|
||||
}
|
||||
if (arg->seg!=REG_NONE)
|
||||
*_mask&=0x00FFFF0000;
|
||||
@@ -627,31 +624,31 @@ U0 AsmMakeArgMask(CLex *lx,CAsmArg *arg,I64 *_mask)
|
||||
*_mask&=0x00FFFF0000;
|
||||
else if (arg->num.i<0) {
|
||||
if (arg->num.i>=MIN_I8)
|
||||
*_mask&=0xF08E;
|
||||
*_mask&=0x8FE;
|
||||
else if (arg->num.i>=MIN_I16)
|
||||
*_mask&=0xE08E;
|
||||
*_mask&=0x8EE;
|
||||
else if (arg->num.i>=MIN_I32)
|
||||
*_mask&=0xC08E;
|
||||
*_mask&=0x8CE;
|
||||
else
|
||||
*_mask&=0x808E;
|
||||
*_mask&=0x88E;
|
||||
} else {
|
||||
if (arg->num.i<=MAX_I8)
|
||||
*_mask&=0xF0FE;
|
||||
*_mask&=0xFFE;
|
||||
else if (arg->num.i<=MAX_U8)
|
||||
*_mask&=0xE0FE;
|
||||
*_mask&=0xFEE;
|
||||
else if (arg->num.i<=MAX_I16)
|
||||
*_mask&=0xE0EE;
|
||||
*_mask&=0xEEE;
|
||||
else if (arg->num.i<=MAX_U16)
|
||||
*_mask&=0xC0EE;
|
||||
*_mask&=0xECE;
|
||||
else if (arg->num.i<=MAX_I32)
|
||||
*_mask&=0xC0CE;
|
||||
*_mask&=0xCCE;
|
||||
else if (arg->num.i<=MAX_U32)
|
||||
*_mask&=0x80CE;
|
||||
*_mask&=0xC8E;
|
||||
else
|
||||
*_mask&=0x808E;
|
||||
*_mask&=0x88E;
|
||||
}
|
||||
} else {
|
||||
*_mask&= 0x3F00FF0F00;
|
||||
*_mask&= 0x3F00FFF000;
|
||||
if (!arg->indirect) //M8-M64
|
||||
*_mask&=0xFFFF0FFFFF;
|
||||
}
|
||||
@@ -665,7 +662,7 @@ U0 AsmMakeArgMask(CLex *lx,CAsmArg *arg,I64 *_mask)
|
||||
|
||||
Bool AsmStoreNum(CLex *lx,CAsmNum2 *num2,I64 cnt,Bool U8_avail)
|
||||
{
|
||||
CAsmCtrl *a=lx->a;
|
||||
CAOTCtrl *a=lx->a;
|
||||
I64 i;
|
||||
CExeAbsAddr *tempa;
|
||||
|
||||
@@ -783,7 +780,7 @@ U8 asm_seg_prefixes[6]={0x26,0x2E,0x36,0x3E,0x64,0x65};
|
||||
|
||||
Bool PrsAsmInstruction(CLex *lx,CHashOpcode *tempo,I64 argcnt)
|
||||
{
|
||||
CAsmCtrl *a=lx->a;
|
||||
CAOTCtrl *a=lx->a;
|
||||
I64 i,j,a1,a2,om,seg,arg1mask,arg2mask;
|
||||
CAsmArg *tempa1,*tempa2;
|
||||
Bool ModrM_complete,U8_avail=FALSE,found_second_possible=FALSE;
|
||||
@@ -862,7 +859,7 @@ Bool PrsAsmInstruction(CLex *lx,CHashOpcode *tempo,I64 argcnt)
|
||||
cur.REX|=1;
|
||||
if (tempa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8?
|
||||
cur.has_REX=TRUE;
|
||||
} else { //SV_I_REG
|
||||
} else {//SV_I_REG
|
||||
if (tempa1->fstk!=REG_NONE)
|
||||
cur.last_opcode_U8+=tempa1->fstk;
|
||||
}
|
||||
@@ -977,7 +974,7 @@ Bool PrsAsmInstruction(CLex *lx,CHashOpcode *tempo,I64 argcnt)
|
||||
if (tempa1->reg1>=20) //RBPu8,RSPu8,RSIu8,RDIu8?
|
||||
cur.has_REX=TRUE;
|
||||
}
|
||||
} else { //SV_I_REG
|
||||
} else {//SV_I_REG
|
||||
if (tempa1->fstk!=REG_NONE)
|
||||
cur.last_opcode_U8|=tempa1->fstk;
|
||||
if (tempa2->fstk!=REG_NONE)
|
||||
@@ -1188,7 +1185,6 @@ Bool PrsAsmInstruction(CLex *lx,CHashOpcode *tempo,I64 argcnt)
|
||||
LexExcept(lx,"invalid instruction at ");
|
||||
}
|
||||
|
||||
|
||||
U0 PrsAsmDefine(CLex *lx,I64 U8_cnt)
|
||||
{
|
||||
Bool is_dup;
|
||||
@@ -1205,7 +1201,7 @@ U0 PrsAsmDefine(CLex *lx,I64 U8_cnt)
|
||||
i=lx->cur_str_len-1;
|
||||
while (i--)
|
||||
AsmStoreCodeU8(lx,*ptr++);
|
||||
Lex(lx); //Skip Str
|
||||
Lex(lx); //Skip Str
|
||||
} else {
|
||||
is_dup=FALSE;
|
||||
lx->abs_cnts=0;
|
||||
@@ -1280,7 +1276,7 @@ U0 PrsBinFile(CLex *lx)
|
||||
|
||||
U0 PrsAsmBlk(CLex *lx,I64 cmp_flags)
|
||||
{
|
||||
CAsmCtrl *a=lx->a;
|
||||
CAOTCtrl *a=lx->a;
|
||||
I64 i,j,k,argcnt,
|
||||
old_flags=lx->flags & LF_ASM_EXPRESSIONS;
|
||||
CHashOpcode *tempo;
|
||||
@@ -1335,14 +1331,16 @@ U0 PrsAsmBlk(CLex *lx,I64 cmp_flags)
|
||||
if (lx->htc.local_var_lst)
|
||||
LexExcept(lx,"ALIGN not allowed in fun asm blk ");
|
||||
i=AsmLexExpression(lx);
|
||||
if (Bsf(i)!=Bsr(i))
|
||||
j=Bsf(i);
|
||||
if (!i || j!=Bsr(i))
|
||||
LexExcept(lx,"ALIGN must be power of two at ");
|
||||
if (!(lx->flags&LF_AOT_COMPILE) && i>8)
|
||||
LexExcept(lx,"In JIT mode, max ALIGN is 8 ");
|
||||
if (i>a->max_align) a->max_align=i;
|
||||
if (j>a->max_align_bits) a->max_align_bits=j;
|
||||
i=CeilU64(a->ip,i);
|
||||
if (lx->token==',')
|
||||
Lex(lx);
|
||||
if (lx->token!=',')
|
||||
LexExcept(lx,"expecting ',' at ");
|
||||
Lex(lx);
|
||||
k=AsmLexExpression(lx);
|
||||
for (j=a->ip;j<i;j++)
|
||||
AsmStoreCodeU8(lx,k);
|
||||
@@ -1477,6 +1475,7 @@ U0 PrsAsmBlk(CLex *lx,I64 cmp_flags)
|
||||
break;
|
||||
}
|
||||
AsmLocalsResolve(lx);
|
||||
a->lst=FALSE;
|
||||
lx->flags&=lx->flags&~LF_ASM_EXPRESSIONS|old_flags;
|
||||
}
|
||||
|
||||
+9
-10
@@ -5,9 +5,9 @@ U0 ICAddEct(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,
|
||||
Bool swap=FALSE;
|
||||
if (r3!=result_reg) {
|
||||
swap^=TRUE;
|
||||
SwapU64(&t2,&t3);
|
||||
SwapU64(&r2,&r3);
|
||||
SwapU64(&d2,&d3);
|
||||
SwapI64(&t2,&t3);
|
||||
SwapI64(&r2,&r3);
|
||||
SwapI64(&d2,&d3);
|
||||
}
|
||||
if (t2&RT_MASK>=RT_I64 && r2!=result_reg &&
|
||||
TY_REG<=t2&TY_MASK<=TY_RIP_DISP32) {
|
||||
@@ -95,7 +95,7 @@ U0 ICAddSubEctImm(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,
|
||||
}
|
||||
}
|
||||
if (op.u8[0]==0x03 && MIN_I32<=d<=MAX_I32 &&
|
||||
!Bt(&non_ptr_vars_mask,r2)) {
|
||||
!Bt(&cmp.non_ptr_vars_mask,r2)) {
|
||||
i=ICModr1(r1,TY_DISP+RT_I64,r2,d);
|
||||
i.u8[1]|=0x48;
|
||||
ICU24(tempi,i.u8[2]<<16+0x8D00+i.u8[1]);
|
||||
@@ -215,9 +215,9 @@ U0 ICSub(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,
|
||||
Bool swap=FALSE;
|
||||
if (r3!=REG_RAX) {
|
||||
swap=TRUE;
|
||||
SwapU64(&t2,&t3);
|
||||
SwapU64(&r2,&r3);
|
||||
SwapU64(&d2,&d3);
|
||||
SwapI64(&t2,&t3);
|
||||
SwapI64(&r2,&r3);
|
||||
SwapI64(&d2,&d3);
|
||||
}
|
||||
if (t2&RT_MASK>=RT_I64 && r2.u8[0]!=REG_RAX && (t2&TY_MASK!=TY_SIB || r2.u8[1]&15!=REG_RAX) &&
|
||||
TY_REG<=t2&TY_MASK<=TY_RIP_DISP32) {
|
||||
@@ -410,7 +410,6 @@ U0 ICMulEqual(CIntermediateCode *tempi,I64 ip)
|
||||
ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+RT_I64,r,0,ip);
|
||||
}
|
||||
|
||||
|
||||
U0 ICDiv(CIntermediateCode *tempi,I64 ip)
|
||||
{
|
||||
if (tempi->ic_flags & ICF_A1_FIRST) {
|
||||
@@ -589,7 +588,7 @@ U0 ICAddSubEctEqual(CIntermediateCode *tempi,I64 type_pointed,I64 t1,I64 r1,I64
|
||||
ICSlashOp(tempi,TY_DISP+type_pointed,r2,0,0x838000+op.u8[4],ip);
|
||||
ICU8(tempi,d3);
|
||||
done=TRUE;
|
||||
} else if (op.u8[2]==0x24) { //AND
|
||||
} else if (op.u8[2]==0x24) {//AND
|
||||
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip);
|
||||
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,TY_DISP+type_pointed,REG_RCX,0,ip);
|
||||
result_reg=REG_RAX;
|
||||
@@ -599,7 +598,7 @@ U0 ICAddSubEctEqual(CIntermediateCode *tempi,I64 type_pointed,I64 t1,I64 r1,I64
|
||||
ICU32(tempi,d3);
|
||||
ICMov(tempi,TY_DISP+type_pointed,REG_RCX,0,TY_REG+RT_I64,result_reg,0,ip);
|
||||
done=TRUE;
|
||||
} else if (type_pointed&RT_MASK<RT_I64) { //OR/XOR
|
||||
} else if (type_pointed&RT_MASK<RT_I64) {//OR/XOR
|
||||
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip);
|
||||
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,TY_DISP+type_pointed,REG_RCX,0,ip);
|
||||
result_reg=REG_RAX;
|
||||
|
||||
+1
-3
@@ -243,7 +243,7 @@ U0 ICCmp(CIntermediateCode *tempi,I64 us,I64 is,I64 ip)
|
||||
|
||||
U0 ICBitOps(CIntermediateCode *tempi,CICArg *a1,CICArg *a2,CIntermediateCode *tempi2,
|
||||
I64 op,I64 op_imm,I64 ip)
|
||||
{ //TODO:not fully utilizing Modr
|
||||
{//TODO:not fully utilizing Modr
|
||||
Bool no_depend=ToBool(tempi2->ic_flags&ICF_NO_DEPEND_RESULT);
|
||||
I64 r1,t2,r2,d2,i=0x48;
|
||||
if (tempi->ic_flags & ICF_NOT_ADDR) {
|
||||
@@ -448,7 +448,6 @@ U0 ICPreIncDec(CIntermediateCode *tempi,I64 op,I64 ip)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
U0 ICPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip)
|
||||
{
|
||||
I64 r;
|
||||
@@ -573,7 +572,6 @@ U0 ICAssignPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
U0 ICCmpAndBranch(CIntermediateCode *tempi,Bool has_result,I64 ip,
|
||||
I64 us,I64 is,I64 not_us,I64 not_is,
|
||||
U8 *buf,I64 ip2)
|
||||
|
||||
+3
-4
@@ -204,7 +204,6 @@ U0 ICAssign(CIntermediateCode *tempi,I64 ip)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
U0 ICBrBitOps(CIntermediateCode *tempi,I64 ip,I64 op,I64 op_imm,I64 is,U8 *buf,I64 ip2)
|
||||
{
|
||||
I64 i,t,r1,r2,d1,d2,t1,t2;
|
||||
@@ -325,7 +324,7 @@ U0 ICBrBitOps(CIntermediateCode *tempi,I64 ip,I64 op,I64 op_imm,I64 is,U8 *buf,I
|
||||
} else
|
||||
t=t1;
|
||||
i=ICModr1(r2,t,r1,d1);
|
||||
SwapU64(&a1,&a2);
|
||||
SwapI64(&a1,&a2);
|
||||
} else {
|
||||
if (a1->type&TY_MASK==TY_IMM && a1->disp<32) {
|
||||
if (op==0xA30F && a1->disp<8) {
|
||||
@@ -338,7 +337,7 @@ U0 ICBrBitOps(CIntermediateCode *tempi,I64 ip,I64 op,I64 op_imm,I64 is,U8 *buf,I
|
||||
i=ICModr1(r1,t,r2,d2);
|
||||
}
|
||||
ICRex(tempi,i.u8[1]);
|
||||
if (op_imm==0xF6) { //TEST
|
||||
if (op_imm==0xF6) {//TEST
|
||||
ICU16(tempi,i.u8[2]<<8+op_imm);
|
||||
ICModr2(tempi,i,a2->disp,ip2+5);
|
||||
ICU8(tempi,1<<a1->disp);
|
||||
@@ -664,7 +663,7 @@ U0 ICSwap(CIntermediateCode *tempi,I64 ip2)
|
||||
ICMov(tempi,TY_DISP+RT_U32,r2,0,TY_REG+RT_I64,REG_RCX,0,ip2);
|
||||
ICMov(tempi,TY_DISP+RT_U32,r1,0,TY_REG+RT_I64,REG_RDX,0,ip2);
|
||||
break;
|
||||
case IC_SWAP_U64:
|
||||
case IC_SWAP_I64:
|
||||
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,TY_DISP+RT_U64,r1,0,ip2);
|
||||
ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,TY_DISP+RT_U64,r2,0,ip2);
|
||||
ICMov(tempi,TY_DISP+RT_U64,r2,0,TY_REG+RT_I64,REG_RCX,0,ip2);
|
||||
|
||||
@@ -239,7 +239,7 @@ U0 ICFUnaryMinus(CLex *lx,CIntermediateCode *tempi,U8 *buf2,I64 ip)
|
||||
}
|
||||
|
||||
U0 ICFMod(CLex *lx,CIntermediateCode *tempi,I64 ip)
|
||||
{ //for MOD
|
||||
{//for MOD
|
||||
Bool dont_push_float,dont_pop_float;
|
||||
CmpSetFloatOpPushPop(lx,tempi,&dont_push_float,&dont_pop_float);
|
||||
if (dont_push_float) {
|
||||
@@ -269,7 +269,7 @@ U0 ICFMod(CLex *lx,CIntermediateCode *tempi,I64 ip)
|
||||
}
|
||||
|
||||
U0 ICFPow(CLex *lx,CIntermediateCode *tempi,U8 *buf,I64 ip)
|
||||
{ //for POW
|
||||
{//for POW
|
||||
I64 i;
|
||||
CExeImportExport *tempe;
|
||||
CHashExport *tempex=HashFind("SYS_POW",lx->htc.hash_table_lst,HTT_EXPORT_SYS_SYM);
|
||||
@@ -315,7 +315,7 @@ U0 ICFPow(CLex *lx,CIntermediateCode *tempi,U8 *buf,I64 ip)
|
||||
tempex->ie_lst=tempe;
|
||||
}
|
||||
}
|
||||
} else { //Kernel
|
||||
} else {//Kernel
|
||||
if (tempex->type&HTF_UNRESOLVED)
|
||||
throw('Compiler');
|
||||
else {
|
||||
@@ -348,7 +348,7 @@ U0 ICFPow(CLex *lx,CIntermediateCode *tempi,U8 *buf,I64 ip)
|
||||
}
|
||||
|
||||
U0 ICFOp(CLex *lx,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
|
||||
{ //for ADD,SUB,DIV,MUL
|
||||
{//for ADD,SUB,DIV,MUL
|
||||
CICArg *a1,*a2;
|
||||
Bool dont_push_float,dont_pop_float,alt;
|
||||
I64 rsp_size=0,builtin1=0,builtin2=0,
|
||||
@@ -507,10 +507,10 @@ U0 ICFOp(CLex *lx,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
|
||||
if (!dont_push_float) {
|
||||
if (builtin2 && !builtin1) {
|
||||
alt=!alt;
|
||||
SwapU64(&t1,&t2);
|
||||
SwapU64(&r1,&r2);
|
||||
SwapU64(&d1,&d2);
|
||||
SwapU64(&builtin1,&builtin2);
|
||||
SwapI64(&t1,&t2);
|
||||
SwapI64(&r1,&r2);
|
||||
SwapI64(&d1,&d2);
|
||||
SwapI64(&builtin1,&builtin2);
|
||||
}
|
||||
if (builtin1)
|
||||
ICU16(tempi,builtin1);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
U0 ICFOpEqual(CLex *lx,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
|
||||
{ //for ADD,SUB,DIV,MUL
|
||||
{//for ADD,SUB,DIV,MUL
|
||||
CICArg *a1=&tempi->a1,
|
||||
*a2=&tempi->a2;
|
||||
Bool dont_push_float,dont_pop_float,p1_mem;
|
||||
@@ -600,7 +600,6 @@ U0 ICFCmpAndBranch(CLex *lx,CIntermediateCode *tempi,I64 ip,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
U0 ICFMul(CLex *lx,CIntermediateCode *tempi,U8 *buf,I64 ip)
|
||||
{
|
||||
if (tempi->a1.type&TY_MASK==TY_IMM &&
|
||||
|
||||
+6
-11
@@ -1,6 +1,4 @@
|
||||
/*Intermediate Code
|
||||
To
|
||||
Machine Code
|
||||
/*Intermediate Code to Machine Code
|
||||
|
||||
RAX,RBX,RCX and RDX can be clobbered by
|
||||
each intermediate code's output code.
|
||||
@@ -14,7 +12,6 @@ Internal calculations take place on
|
||||
64-bit vals, so anything which has
|
||||
found it's way into a reg has been
|
||||
sign or zero extended to 64-bits.
|
||||
|
||||
*/
|
||||
|
||||
U0 ICU8(CIntermediateCode *tempi,U8 b)
|
||||
@@ -141,11 +138,10 @@ extern U0 ICMov(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,I64 t2,I64 r2,I64
|
||||
#define MDR_RIP_REL 7
|
||||
|
||||
I64 ICModr1(I64 r,I64 t2,I64 r2,I64 d2)
|
||||
{
|
||||
//result.u8[0] is type
|
||||
//result.u8[1] is REX
|
||||
//result.u8[2] is ModR
|
||||
//result.u8[3] is SIB
|
||||
{//result.u8[0] is type
|
||||
//result.u8[1] is REX
|
||||
//result.u8[2] is ModR
|
||||
//result.u8[3] is SIB
|
||||
I64 result=0;
|
||||
if (t2&TY_MASK>TY_RIP_DISP32) {
|
||||
"Callers:%P;%P\n",Caller,Caller(2);
|
||||
@@ -422,7 +418,7 @@ U0 ICTest(CIntermediateCode *tempi,I64 r)
|
||||
}
|
||||
|
||||
I64 ICBuiltInFloatConst(F64 d)
|
||||
{ //Returns 2-byte opcode for FLD const or zero
|
||||
{//Returns 2-byte opcode for FLD const or zero
|
||||
if (!d)
|
||||
return 0xEED9;
|
||||
else if (d==1.0)
|
||||
@@ -443,7 +439,6 @@ I64 ICBuiltInFloatConst(F64 d)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
U0 ICMov(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,I64 t2,I64 r2,I64 d2,I64 ip)
|
||||
{
|
||||
I64 i,j,last_cnt=tempi->ic_cnt;
|
||||
|
||||
+61
-66
@@ -1,77 +1,72 @@
|
||||
#help_index "Compiler/Lex"
|
||||
#help_file "::/Doc/Lex"
|
||||
public extern CLex *LexNew(U8 *buf=NULL,I64 flags=0,U8 *filename=NULL);
|
||||
public extern U0 LexDel(CLex *lx);
|
||||
public extern I64 LexSize(CLex *lx);
|
||||
public extern U0 LexPutToken(CLex *lx);
|
||||
public extern I64 LexGetChar(CLex *lx);
|
||||
public extern U0 LexSkipEol(CLex *lx);
|
||||
public extern U0 LexPush(CLex *lx);
|
||||
public extern U0 LexPop(CLex *lx);
|
||||
public extern I64 Lex(CLex *lx);
|
||||
public extern U8 *LexExtStr(CLex *lx,I64 *_size=NULL);
|
||||
public extern U0 LexPutLine(CLex *lx,U8 *start);
|
||||
public extern U0 LexPutPos(CLex *lx);
|
||||
public extern I64 PrsKeyWord(CLex *lx);
|
||||
public extern U0 LexWarn(CLex *lx,U8 *str=NULL);
|
||||
public extern U0 LexExcept(CLex *lx,U8 *str=NULL);
|
||||
public extern U8 *LexExpression2Bin(CLex *lx,I64 *_type=NULL);
|
||||
public extern U8 *LexStatement2Bin(CLex *lx,I64 *_type,I64 cmp_flags=CMPF_PRS_SEMICOLON);
|
||||
public extern I64 IsLexExpression2Bin(CLex *lx,U8 **ex); //FALSE=no err
|
||||
public extern I64 LexExpression(CLex *lx);
|
||||
public extern I64 MemberMetaData(U8 *st,CMemberLst *ml);
|
||||
extern U0 MemberLstDel(CHashClass *c);
|
||||
public extern CMemberLstMeta *MemberMetaFind(U8 *st,CMemberLst *ml);
|
||||
public extern CMemberLst *MemberFind(U8 *needle_str,CHashClass *haystack_class);
|
||||
public extern CMemberLst *MemberFind2(CHashClass *needle_class,CHashClass *haystack_class);
|
||||
public extern U0 LexAttachDoc(CLex *lx,CLexFile *tempf=NULL,
|
||||
CDoc *doc=NULL,U8 *abs_filename=NULL,CDocEntry *doc_e=NULL,I64 col=0);
|
||||
public extern CHashClass *OptClassFwd(CHashClass *tempc);
|
||||
#help_index "Compiler"
|
||||
extern U0 CmpInit(Bool first);
|
||||
public extern I64 ExeFile(U8 *name,Bool just_load=FALSE);
|
||||
public extern I64 ExeFile2(U8 *name,Bool just_load=FALSE);
|
||||
public extern I64 ExePrint(U8 *fmt,...);
|
||||
public extern I64 ExePrint2(U8 *fmt,...);
|
||||
public extern I64 ExePutS(U8 *buf,U8 *filename=NULL,Bool just_load=FALSE,
|
||||
CLexHashTableContext *htc=NULL);
|
||||
public extern I64 ExePutS2(U8 *buf,U8 *filename=NULL,Bool just_load=FALSE);
|
||||
public extern CCmpGlbls cmp;
|
||||
|
||||
#help_index "Compiler/Directive"
|
||||
#help_file "::/Doc/Directives"
|
||||
public extern U0 StreamPrint(U8 *fmt,...);
|
||||
public extern I64 StreamExePrint(U8 *fmt,...);
|
||||
public extern Bool CTrace(Bool val);
|
||||
public extern Bool Echo(Bool val);
|
||||
public extern Bool GetOpt(I64 num);
|
||||
public extern I64 IncludeDepth();
|
||||
public extern Bool OTrace(Bool val);
|
||||
public extern I64 OTraceMask(I64 i=0b1001111101);
|
||||
public extern Bool OptEqu(I64 num,Bool val);
|
||||
public extern Bool OptOn(I64 num);
|
||||
public extern Bool OptOff(I64 num);
|
||||
public extern Bool GetOpt(I64 num);
|
||||
public extern Bool CTrace(Bool val);
|
||||
public extern Bool Echo(Bool val);
|
||||
public extern U0 ImportHashTable(CHashTable *tempht);
|
||||
public extern I64 IncludeDepth();
|
||||
public extern Bool OptOn(I64 num);
|
||||
public extern I64 StreamExePrint(U8 *fmt,...);
|
||||
public extern U0 StreamPrint(U8 *fmt,...);
|
||||
|
||||
#help_index "Compiler/Lex"
|
||||
#help_file "::/Doc/Lex"
|
||||
public extern I64 IsLexExpression2Bin(CLex *lx,U8 **ex); //FALSE=no err
|
||||
public extern I64 Lex(CLex *lx);
|
||||
public extern U0 LexAttachDoc(CLex *lx,CLexFile *tempf=NULL,
|
||||
CDoc *doc=NULL,U8 *abs_filename=NULL,CDocEntry *doc_e=NULL,I64 col=0);
|
||||
public extern CD2I32 *LexD2I32(CLex *lx,CD2I32 *p);
|
||||
public extern CD3I32 *LexD3I32(CLex *lx,CD3I32 *p);
|
||||
public extern U0 LexDel(CLex *lx);
|
||||
public extern U0 LexExcept(CLex *lx,U8 *str=NULL);
|
||||
public extern I64 LexExpression(CLex *lx);
|
||||
public extern U8 *LexExpression2Bin(CLex *lx,I64 *_type=NULL);
|
||||
public extern F64 LexExpressionF64(CLex *lx);
|
||||
public extern I64 LexExpressionI64(CLex *lx);
|
||||
public extern U8 *LexExtStr(CLex *lx,I64 *_size=NULL);
|
||||
public extern U8 *LexFirstRem(CLex *lx,U8 *marker,I64 _len=NULL);
|
||||
public extern I64 LexGetChar(CLex *lx);
|
||||
public extern CLex *LexNew(U8 *buf=NULL,I64 flags=0,U8 *filename=NULL);
|
||||
public extern U0 LexPop(CLex *lx);
|
||||
public extern U0 LexPush(CLex *lx);
|
||||
public extern U0 LexPutLine(CLex *lx,U8 *start);
|
||||
public extern U0 LexPutPos(CLex *lx);
|
||||
public extern U0 LexPutToken(CLex *lx);
|
||||
public extern I64 LexSize(CLex *lx);
|
||||
public extern U0 LexSkipEol(CLex *lx);
|
||||
public extern U8 *LexStatement2Bin(CLex *lx,I64 *_type,I64 cmp_flags=CMPF_PRS_SEMICOLON);
|
||||
public extern U0 LexWarn(CLex *lx,U8 *str=NULL);
|
||||
public extern CMemberLst *MemberFind(U8 *needle_str,CHashClass *haystack_class);
|
||||
public extern CMemberLst *MemberFind2(CHashClass *needle_class,CHashClass *haystack_class);
|
||||
extern U0 MemberLstDel(CHashClass *c);
|
||||
public extern I64 MemberMetaData(U8 *st,CMemberLst *ml);
|
||||
public extern CMemberLstMeta *MemberMetaFind(U8 *st,CMemberLst *ml);
|
||||
public extern CHashClass *OptClassFwd(CHashClass *tempc);
|
||||
public extern I64 PrsKeyWord(CLex *lx);
|
||||
|
||||
#help_index "Compiler;Cmd Line (Typically)"
|
||||
extern I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv=0);
|
||||
|
||||
#help_index "Debugging/Unassemble"
|
||||
public extern U8 *U(U8 *ip,I64 cnt=20,I64 seg_size=64);
|
||||
public extern U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE);
|
||||
public extern I64 Un(U8 *ip,I64 cnt=0x80,I64 seg_size=64);
|
||||
extern CUasmGlbls uasm;
|
||||
|
||||
#help_index "Hash"
|
||||
extern CHashSrcSym *HashEntryImportCopy(CHashSrcSym *temph);
|
||||
extern U0 HashTableImport(CHashTable *src,CHashTable *dst);
|
||||
public extern I64 HashEntrySize(CHashSrcSym *temph);
|
||||
public extern I64 HashEntrySize2(CHashSrcSym *temph);
|
||||
public extern I64 HashTableSize2(CHashTable *table);
|
||||
|
||||
|
||||
#help_index "Compiler;Cmd Line (Typically)"
|
||||
public extern I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv=0);
|
||||
|
||||
#help_index "Compiler"
|
||||
public extern I64 ExePutS(U8 *buf,U8 *filename=NULL,Bool just_load=FALSE,
|
||||
CLexHashTableContext *htc=NULL);
|
||||
public extern I64 ExePrint(U8 *fmt,...);
|
||||
public extern I64 ExeFile(U8 *name,Bool just_load=FALSE);
|
||||
public extern I64 ExePutS2(U8 *buf,U8 *filename=NULL,Bool just_load=FALSE);
|
||||
public extern I64 ExePrint2(U8 *fmt,...);
|
||||
public extern I64 ExeFile2(U8 *name,Bool just_load=FALSE);
|
||||
extern CHashTable *asm_hash;
|
||||
extern U0 CmpInit(Bool first);
|
||||
extern I64 compiled_lines,compiled_funs,compiled_bytes;
|
||||
|
||||
//The following is for benchmarking
|
||||
extern Bool cmp_do_not_write_to_dsk;
|
||||
|
||||
#help_index "Debugging/Dump"
|
||||
public extern U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE);
|
||||
public extern U8 *U(U8 *ip,I64 cnt=20,I64 seg_size=64);
|
||||
public extern I64 Un(U8 *ip,I64 cnt=0x80,I64 seg_size=64);
|
||||
|
||||
#help_index ""
|
||||
+5
-5
@@ -1,6 +1,6 @@
|
||||
asm {
|
||||
USE64
|
||||
// ************************************
|
||||
//************************************
|
||||
CMP_TEMPLATES::
|
||||
DU32 @@05,@@10,@@15,@@25,@@30,
|
||||
@@35,@@40,@@45,@@55,@@60,
|
||||
@@ -174,7 +174,7 @@ CMP_TEMPLATES::
|
||||
|
||||
@@135:
|
||||
|
||||
// ************************************
|
||||
//************************************
|
||||
CMP_TEMPLATES_DONT_POP::
|
||||
DU32 @@05,@@10,@@15,@@20,@@25,
|
||||
@@30,@@35,@@40,@@45,@@50,
|
||||
@@ -263,7 +263,7 @@ CMP_TEMPLATES_DONT_POP::
|
||||
ADD RSP,8
|
||||
@@115:
|
||||
|
||||
// ************************************
|
||||
//************************************
|
||||
CMP_TEMPLATES_DONT_PUSH::
|
||||
DU32 @@05,@@10,@@15,@@20,@@30,
|
||||
@@35,@@40,@@50,@@55,@@60,
|
||||
@@ -390,7 +390,7 @@ CMP_TEMPLATES_DONT_PUSH::
|
||||
POP RAX
|
||||
@@125:
|
||||
|
||||
// ************************************
|
||||
//************************************
|
||||
CMP_TEMPLATES_DONT_PUSH_POP::
|
||||
DU32 @@05,@@10,@@15,@@20,@@25,
|
||||
@@30,@@35,@@40,@@45,@@50,
|
||||
@@ -454,7 +454,7 @@ CMP_TEMPLATES_DONT_PUSH_POP::
|
||||
JNZ @@105
|
||||
@@110:
|
||||
|
||||
// ************************************
|
||||
//************************************
|
||||
CMP_TEMPLATES_DONT_PUSH2::
|
||||
DU32 @@05,@@10,@@15,@@20,@@25,
|
||||
@@35,@@45,@@50,@@55,@@60,
|
||||
|
||||
@@ -203,7 +203,7 @@
|
||||
#define IC_SWAP_U8 0xAD
|
||||
#define IC_SWAP_U16 0xAE
|
||||
#define IC_SWAP_U32 0xAF
|
||||
#define IC_SWAP_U64 0xB0
|
||||
#define IC_SWAP_I64 0xB0
|
||||
|
||||
#define IC_ABS_I64 0xB1
|
||||
#define IC_SIGN_I64 0xB2
|
||||
@@ -381,7 +381,7 @@
|
||||
|
||||
class COptReg
|
||||
{
|
||||
I64 offset;
|
||||
I64 offset;
|
||||
CMemberLst *m;
|
||||
};
|
||||
|
||||
|
||||
+24
-28
@@ -1,45 +1,41 @@
|
||||
import U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e);
|
||||
import U0 DocDel(CDoc *doc);
|
||||
import U0 DocLoad(CDoc *doc,U8 *src2,I64 size);
|
||||
import CDoc *DocNew(U8 *filename=NULL,CTask *task=NULL);
|
||||
import U0 DocDel(CDoc *doc);
|
||||
import CDocEntry *DocPutLine(CDoc *doc,CDocEntry *doc_e);
|
||||
import I64 DocSize(CDoc *doc);
|
||||
import U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e);
|
||||
import U0 Who(U8 *flags=NULL,CHashTable *h=NULL,
|
||||
U8 *outname=NULL,U8 mapfile_drv=0,U8 *index=NULL,CDoc *_doc=NULL);
|
||||
|
||||
extern I64 LexExpression(CLex *lx);
|
||||
extern Bool IsLexExpression2Bin(CLex *lx,U8 **_ex);
|
||||
extern I64 PrsUnaryTerm(CLex *lx,CPrsStk *ps,CMemberLst **_local_var,CArrayDim **_tempad,
|
||||
I64 *max_prec,I64 *unary_pre_prec,I64 *paren_prec);
|
||||
extern I64 PrsUnaryModifier(CLex *lx,CPrsStk *ps,CMemberLst **_local_var,CArrayDim **_tempad,I64 *unary_post_prec);
|
||||
extern CExe *CmpJoin(CLex *lx,I64 cmp_flags,U8 *map_name=NULL,U8 mapfile_drv=0);
|
||||
extern U0 CmpFixUpJITAsm(CLex *lx,CExe *tempx);
|
||||
U8 *outname=NULL,U8 mapfile_drv=0,U8 *index=NULL,CDoc *_doc=NULL);
|
||||
extern U0 CmpFixUpAOTAsm(CLex *lx,CExe *tempx);
|
||||
extern U0 PrsStreamBlk(CLex *lx);
|
||||
extern CHashClass *PrsClass(CLex *lx,I64 keyword,I64 fsp_flags,Bool is_extern);
|
||||
extern CHashClass *PrsType(CLex *lx,CHashClass **tempc1,
|
||||
I64 *_mode,CMemberLst *tempm,U8 **_ident,CHashFun **_fun_ptr,
|
||||
CHashExport **_tempex,CArrayDim *tempad,I64 fsp_flags);
|
||||
extern U0 PrsVarInit2(CLex *lx,U8 **_dst,CHashClass *tempc,CArrayDim *tempad,U8 *data_addr_ip,U8 **_base,Bool data_heap,I64 pass);
|
||||
extern CHashFun *PrsFunJoin(CLex *lx,CHashClass *temp_return,U8 *name,I64 fsp_flags);
|
||||
extern Bool PrsStatement(CLex *lx,I64 try_cnt=0,
|
||||
CLexCodeMisc *lb_break=NULL,I64 cmp_flags=CMPF_PRS_SEMICOLON);
|
||||
extern CIntermediateCode *OptPass012(CLex *lx);
|
||||
extern U0 CmpFixUpJITAsm(CLex *lx,CExe *tempx);
|
||||
extern CExe *CmpJoin(CLex *lx,I64 cmp_flags,U8 *map_name=NULL,U8 mapfile_drv=0);
|
||||
extern I64 HashEntrySize2(CHashSrcSym *temph);
|
||||
extern Bool IsLexExpression2Bin(CLex *lx,U8 **_ex);
|
||||
extern U0 LexExcept(CLex *lx,U8 *str=NULL);
|
||||
extern I64 LexExpression(CLex *lx);
|
||||
extern U0 LexWarn(CLex *lx,U8 *str=NULL);
|
||||
extern CLexCodeMisc *OptLabelFwd(CLexCodeMisc *lb);
|
||||
extern CIntermediateCode *OptPass012(CLex *lx);
|
||||
extern U0 OptPass3(CLex *lx,COptReg *reg_offsets);
|
||||
extern U0 OptPass4(CLex *lx,COptReg *reg_offsets,I64 *_type);
|
||||
extern U0 OptPass5(CLex *lx);
|
||||
extern U0 OptPass6(CLex *lx);
|
||||
extern I64 OptPass789(CLex *lx,COptReg *reg_offsets,U8 *buf,CDbgInfo **_dbg);
|
||||
extern CHashClass *PrsClass(CLex *lx,I64 keyword,I64 fsp_flags,Bool is_extern);
|
||||
extern CHashFun *PrsFunJoin(CLex *lx,CHashClass *temp_return,U8 *name,I64 fsp_flags);
|
||||
extern I64 PrsKeyWord(CLex *lx);
|
||||
extern I64 HashEntrySize2(CHashSrcSym *temph);
|
||||
extern U0 LexWarn(CLex *lx,U8 *str=NULL);
|
||||
extern U0 LexExcept(CLex *lx,U8 *str=NULL);
|
||||
extern CHashSrcSym *HashEntryImportCopy(CHashSrcSym *temph);
|
||||
extern U0 HashTableImport(CHashTable *src,CHashTable *dst);
|
||||
|
||||
extern Bool PrsStatement(CLex *lx,I64 try_cnt=0,
|
||||
CLexCodeMisc *lb_break=NULL,I64 cmp_flags=CMPF_PRS_SEMICOLON);
|
||||
extern U0 PrsStreamBlk(CLex *lx);
|
||||
extern CHashClass *PrsType(CLex *lx,CHashClass **tempc1,
|
||||
I64 *_mode,CMemberLst *tempm,U8 **_ident,CHashFun **_fun_ptr,
|
||||
CHashExport **_tempex,CArrayDim *tempad,I64 fsp_flags);
|
||||
extern I64 PrsUnaryModifier(CLex *lx,CPrsStk *ps,CMemberLst **_local_var,CArrayDim **_tempad,I64 *unary_post_prec);
|
||||
extern I64 PrsUnaryTerm(CLex *lx,CPrsStk *ps,CMemberLst **_local_var,CArrayDim **_tempad,
|
||||
I64 *max_prec,I64 *unary_pre_prec,I64 *paren_prec);
|
||||
extern U0 PrsVarInit2(CLex *lx,U8 **_dst,CHashClass *tempc,CArrayDim *tempad,U8 *data_addr_ip,U8 **_base,Bool data_heap,I64 pass);
|
||||
_extern CMP_TEMPLATES U32 cmp_templates[1];
|
||||
_extern CMP_TEMPLATES_DONT_POP U32 cmp_templates_dont_pop[1];
|
||||
_extern CMP_TEMPLATES_DONT_PUSH2 U32 cmp_templates_dont_push2[1];
|
||||
_extern CMP_TEMPLATES_DONT_PUSH U32 cmp_templates_dont_push[1];
|
||||
_extern CMP_TEMPLATES_DONT_PUSH_POP U32 cmp_templates_dont_push_pop[1];
|
||||
_extern CMP_TEMPLATES_DONT_PUSH2 U32 cmp_templates_dont_push2[1];
|
||||
@@ -1,21 +0,0 @@
|
||||
CHashTable *asm_hash;
|
||||
Bool cmp_do_not_write_to_dsk;
|
||||
CHashClass *sys_internal_types[RT_NUM_IT];
|
||||
CIntermediateCode opt_nop;
|
||||
|
||||
U32 *dual_U16_tokens1,*dual_U16_tokens2,*dual_U16_tokens3;
|
||||
U32 *binary_ops_table;
|
||||
U8 *cmp_arg_cnt,*cmp_result_cnt;
|
||||
U8 *ic_bitmap_deref,*ic_bitmap_assign,*ic_bitmap_not_const,*ic_bitmap_cmp,*ic_bitmap_fpop;
|
||||
I64 num_stk_temps,num_reg_vars,num_non_ptr_vars;
|
||||
I64 stk_temps_mask,reg_vars_mask,non_ptr_vars_mask;
|
||||
U8 *to_stk_temps_map_odd;
|
||||
U8 *to_stk_temps_map_even;
|
||||
U8 *to_reg_vars_map,*to_non_ptr_vars_map;
|
||||
I64 compiled_lines,compiled_funs,compiled_bytes;
|
||||
|
||||
//Unassembler
|
||||
CInstruction **unasm_table;
|
||||
I64 unasm_table_entries;
|
||||
I64 uasm_ins64_mask,uasm_signed_arg_mask,uasm_mem_mask;
|
||||
|
||||
+89
-56
@@ -76,7 +76,7 @@ U0 AsmHashLoad()
|
||||
CInstruction *tempi;
|
||||
CHashClass *tempc;
|
||||
|
||||
asm_hash=HashTableNew(2048);
|
||||
cmp.asm_hash=HashTableNew(2048);
|
||||
size1=offset(CHashOpcode.ins)+sizeof(CInstruction)<<5;
|
||||
tempo=MAlloc(size1);
|
||||
|
||||
@@ -140,9 +140,9 @@ U0 AsmHashLoad()
|
||||
tempo1=MAlloc(size);
|
||||
MemCpy(tempo1,tempo,size);
|
||||
tempo1->use_cnt=0;
|
||||
if (HashFind(tempo1->str,asm_hash,HTT_OPCODE))
|
||||
if (HashFind(tempo1->str,cmp.asm_hash,HTT_OPCODE))
|
||||
LexExcept(lx,"Duplicate OPCODE entry ");
|
||||
HashAdd(tempo1,asm_hash);
|
||||
HashAdd(tempo1,cmp.asm_hash);
|
||||
break;
|
||||
case 9: //KEYWORD
|
||||
case 10: //ASM_KEYWORD
|
||||
@@ -157,7 +157,7 @@ U0 AsmHashLoad()
|
||||
temph->type=HTT_KEYWORD;
|
||||
else
|
||||
temph->type=HTT_ASM_KEYWORD;
|
||||
HashAdd(temph,asm_hash);
|
||||
HashAdd(temph,cmp.asm_hash);
|
||||
Lex(lx); //Skip INT
|
||||
break;
|
||||
case REGT_R8:
|
||||
@@ -177,7 +177,7 @@ U0 AsmHashLoad()
|
||||
tempr->type=HTT_REG;
|
||||
tempr->reg_type=i;
|
||||
tempr->reg_num=lx->cur_i64;
|
||||
HashAdd(tempr,asm_hash);
|
||||
HashAdd(tempr,cmp.asm_hash);
|
||||
Lex(lx); //Skip INT
|
||||
break;
|
||||
}
|
||||
@@ -195,16 +195,17 @@ U0 AsmHashLoad()
|
||||
Bts(&tempc->flags,Cf_INTERNAL_TYPE);
|
||||
tempc->size=tempit->size;
|
||||
tempc->str=AStrNew(tempit->name);
|
||||
HashAdd(tempc,asm_hash);
|
||||
sys_internal_types[tempc->raw_type]=tempc;
|
||||
HashAdd(tempc,cmp.asm_hash);
|
||||
cmp.internal_types[tempc->raw_type]=tempc;
|
||||
}
|
||||
adam_task->hash_table->next=asm_hash;
|
||||
adam_task->hash_table->next=cmp.asm_hash;
|
||||
}
|
||||
|
||||
|
||||
U0 CmpLoadDefines()
|
||||
{
|
||||
DefineLstLoad("ST_IT_TYPES","I0\0U0\0I8\0U8\0I16\0U16\0I32\0U32\0I64\0U64\0F64\0uF64\0");
|
||||
DefineLstLoad("ST_RAW_TYPES",
|
||||
" \0 \0I0\0U0\0I8\0U8\0I16\0U16\0I32\0U32\0I64\0U64\0"
|
||||
"F32\0UF32\0F64\0UF64\0");
|
||||
DefineLstLoad("ST_TY_TYPES","NULL\0IMM\0REG\0DISP\0SIB\0RIP\0STK\0");
|
||||
DefineLstLoad("ST_U8_REGS","AL\0CL\0DL\0BL\0AH\0CH\0DH\0BH\0"
|
||||
"R8u8\0R9u8\0R10u8\0R11u8\0R12u8\0R13u8\0R14u8\0R15u8\0");
|
||||
@@ -219,12 +220,10 @@ U0 CmpLoadDefines()
|
||||
DefineLstLoad("ST_MM_REGS","MM0\0MM1\0MM2\0MM3\0MM4\0MM5\0MM6\0MM7\0");
|
||||
DefineLstLoad("ST_XMM_REGS","XMM0\0XMM1\0XMM2\0XMM3\0XMM4\0XMM5\0XMM6\0XMM7\0");
|
||||
DefineLstLoad("ST_OPCODE_MODIFIERS","NO\0CB\0CW\0CD\0CP\0IB\0IW\0ID\0");
|
||||
DefineLstLoad("ST_ARG_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\0M64\0"
|
||||
"M1632\0M16N32\0M16N16\0M32N32\0"
|
||||
DefineLstLoad("ST_ARG_TYPES","NO\0REL8\0REL16\0REL32\0"
|
||||
"IMM8\0IMM16\0IMM32\0IMM64\0UIMM8\0UIMM16\0UIMM32\0UIMM64\0"
|
||||
"R8\0R16\0R32\0R64\0RM8\0RM16\0RM32\0RM64\0"
|
||||
"M8\0M16\0M32\0M64\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\0ST0\0STI\0"
|
||||
@@ -448,58 +447,92 @@ U0 CmpFillTables()
|
||||
I64 i,k;
|
||||
U32 *d;
|
||||
|
||||
ic_bitmap_assign =CAlloc((IC_NUM_ENTRIES+7)>>3);
|
||||
ic_bitmap_deref =CAlloc((IC_NUM_ENTRIES+7)>>3);
|
||||
ic_bitmap_cmp =CAlloc((IC_NUM_ENTRIES+7)>>3);
|
||||
ic_bitmap_not_const =CAlloc((IC_NUM_ENTRIES+7)>>3);
|
||||
ic_bitmap_fpop =CAlloc((IC_NUM_ENTRIES+7)>>3);
|
||||
cmp_arg_cnt =CAlloc(IC_NUM_ENTRIES);
|
||||
cmp_result_cnt =CAlloc(IC_NUM_ENTRIES);
|
||||
cmp.ic_bitmap_assign =CAlloc((IC_NUM_ENTRIES+7)>>3);
|
||||
cmp.ic_bitmap_deref =CAlloc((IC_NUM_ENTRIES+7)>>3);
|
||||
cmp.ic_bitmap_cmp =CAlloc((IC_NUM_ENTRIES+7)>>3);
|
||||
cmp.ic_bitmap_not_const=CAlloc((IC_NUM_ENTRIES+7)>>3);
|
||||
cmp.ic_bitmap_fpop =CAlloc((IC_NUM_ENTRIES+7)>>3);
|
||||
cmp.arg_cnt =CAlloc(IC_NUM_ENTRIES);
|
||||
cmp.result_cnt =CAlloc(IC_NUM_ENTRIES);
|
||||
st=Define("ST_INTERMEDIATE_CODE");
|
||||
for (i=0;i<IC_NUM_ENTRIES;i++) {
|
||||
cmp_arg_cnt[i]=*st-'0';
|
||||
cmp_result_cnt[i]=st[1]-'0';
|
||||
cmp.arg_cnt[i]=*st-'0';
|
||||
cmp.result_cnt[i]=st[1]-'0';
|
||||
if (st[2]=='*')
|
||||
Bts(ic_bitmap_deref,i);
|
||||
Bts(cmp.ic_bitmap_deref,i);
|
||||
else if (st[2]=='=')
|
||||
Bts(ic_bitmap_assign,i);
|
||||
Bts(cmp.ic_bitmap_assign,i);
|
||||
else if (st[2]=='^')
|
||||
Bts(ic_bitmap_cmp,i);
|
||||
Bts(cmp.ic_bitmap_cmp,i);
|
||||
if (st[3]=='P')
|
||||
Bts(ic_bitmap_fpop,i);
|
||||
Bts(cmp.ic_bitmap_fpop,i);
|
||||
if (st[4]=='N')
|
||||
Bts(ic_bitmap_not_const,i);
|
||||
Bts(cmp.ic_bitmap_not_const,i);
|
||||
st+=StrLen(st)+1;
|
||||
//See $LK,"ICPut",A="FF:::/Compiler/ICLCC.CPP,ST_INTERMEDIATE_CODE"$.
|
||||
}
|
||||
|
||||
to_reg_vars_map=CAlloc(NUM_REGS*sizeof(U8));
|
||||
num_reg_vars=0;
|
||||
reg_vars_mask=REG_VARS_MASK;
|
||||
cmp.to_reg_vars_map=CAlloc(NUM_REGS*sizeof(U8));
|
||||
cmp.num_reg_vars=0;
|
||||
cmp.reg_vars_mask=REG_VARS_MASK;
|
||||
for (i=0;i<NUM_REGS;i++)
|
||||
if (Bt(®_vars_mask,i))
|
||||
to_reg_vars_map[num_reg_vars++]=i;
|
||||
if (Bt(&cmp.reg_vars_mask,i))
|
||||
cmp.to_reg_vars_map[cmp.num_reg_vars++]=i;
|
||||
|
||||
to_non_ptr_vars_map=CAlloc(NUM_REGS*sizeof(U8));
|
||||
num_non_ptr_vars=0;
|
||||
non_ptr_vars_mask=REG_NON_PTR_MASK;
|
||||
cmp.non_ptr_vars_map=CAlloc(NUM_REGS*sizeof(U8));
|
||||
cmp.num_non_ptr_vars=0;
|
||||
cmp.non_ptr_vars_mask=REG_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=CAlloc(NUM_REGS*sizeof(U8));
|
||||
to_stk_temps_map_even=CAlloc(NUM_REGS*sizeof(U8));
|
||||
num_stk_temps=0;
|
||||
stk_temps_mask=REG_STK_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;
|
||||
if (Bt(&cmp.non_ptr_vars_mask,i))
|
||||
cmp.non_ptr_vars_map[cmp.num_non_ptr_vars++]=i;
|
||||
|
||||
dual_U16_tokens1=d=CAlloc(sizeof(U32)*TK_NUM_TK);
|
||||
/* STK TEMP ALLOCATION: See $LK,"::/Compiler/OptPass6.CPP.Z"$.
|
||||
|
||||
Expressions are evaluated with a stack machine.
|
||||
|
||||
1+(2+3)*4
|
||||
|
||||
|
||||
STK[2]: 1 1 1 1 1 1 21
|
||||
STK[1]: 2 2 5 5 20
|
||||
STK[0]: 3 4
|
||||
|
||||
The top of the stack is stored in RAX.
|
||||
|
||||
STK[2]: RAX 1 1 1 1 1 RAX
|
||||
STK[1]: RAX 2 RAX 5 RAX
|
||||
STK[0]: RAX RAX
|
||||
|
||||
Two regs are allocated for stk temps.
|
||||
|
||||
STK[0]:
|
||||
R9 : RAX R9 R9 R9 R9 R9 RAX
|
||||
R8 : RAX R8 RAX R8 RAX
|
||||
: RAX RAX
|
||||
|
||||
Every other funtion, the regs are reversed. This is to reduce
|
||||
pushes before function calls. R8 is used in even numbered functions
|
||||
while R9 is used in odd, so maybe we can avoid pushes if only one
|
||||
stk temp reg is used.
|
||||
|
||||
STK[0]:
|
||||
R9 : RAX R8 R8 R8 R8 R8 RAX
|
||||
R8 : RAX R9 RAX R9 RAX
|
||||
: RAX RAX
|
||||
*/
|
||||
cmp.to_stk_temps_map_odd =CAlloc(NUM_REGS*sizeof(U8));
|
||||
cmp.to_stk_temps_map_even=CAlloc(NUM_REGS*sizeof(U8));
|
||||
cmp.num_stk_temps=0;
|
||||
cmp.stk_temps_mask=REG_STK_TEMPS_MASK;
|
||||
for (i=0;i<NUM_REGS;i++)
|
||||
if (Bt(&cmp.stk_temps_mask,i))
|
||||
cmp.to_stk_temps_map_even[cmp.num_stk_temps++]=i;
|
||||
k=cmp.num_stk_temps;
|
||||
for (i=0;i<NUM_REGS;i++)
|
||||
if (Bt(&cmp.stk_temps_mask,i))
|
||||
cmp.to_stk_temps_map_odd[--k]=i;
|
||||
|
||||
cmp.dual_U16_tokens1=d=CAlloc(sizeof(U32)*TK_NUM_TK);
|
||||
d['!']=TK_NOT_EQUAL<<16+'=';
|
||||
d['&']=TK_AND_AND<<16+'&';
|
||||
d['*']=TK_MUL_EQUAL<<16+'=';
|
||||
@@ -514,7 +547,7 @@ U0 CmpFillTables()
|
||||
d['|']=TK_OR_OR<<16+'|';
|
||||
d['%']=TK_MOD_EQUAL<<16+'=';
|
||||
|
||||
dual_U16_tokens2=d=CAlloc(sizeof(U32)*TK_NUM_TK);
|
||||
cmp.dual_U16_tokens2=d=CAlloc(sizeof(U32)*TK_NUM_TK);
|
||||
d['&']=TK_AND_EQUAL<<16+'=';
|
||||
d['+']=TK_ADD_EQUAL<<16+'=';
|
||||
d['-']=TK_MINUS_MINUS<<16+'-';
|
||||
@@ -524,11 +557,11 @@ U0 CmpFillTables()
|
||||
d['^']=TK_XOR_XOR<<16+'^';
|
||||
d['|']=TK_OR_EQUAL<<16+'=';
|
||||
|
||||
dual_U16_tokens3=d=CAlloc(sizeof(U32)*TK_NUM_TK);
|
||||
cmp.dual_U16_tokens3=d=CAlloc(sizeof(U32)*TK_NUM_TK);
|
||||
d['-']=TK_SUB_EQUAL<<16+'=';
|
||||
d['/']=TK_DIV_EQUAL<<16+'=';
|
||||
|
||||
binary_ops_table=d=CAlloc(sizeof(U32)*TK_NUM_TK);
|
||||
cmp.binary_ops=d=CAlloc(sizeof(U32)*TK_NUM_TK);
|
||||
d['`'] =(PREC_EXP+ASSOCF_RIGHT)<<16+IC_POWER;
|
||||
d[TK_SHL] =(PREC_EXP+ASSOCF_LEFT)<<16+IC_SHL;
|
||||
d[TK_SHR] =(PREC_EXP+ASSOCF_LEFT)<<16+IC_SHR;
|
||||
|
||||
+64
-63
@@ -1,13 +1,10 @@
|
||||
U0 StreamPrint(U8 *fmt,...)
|
||||
//Inserts text into the stream of
|
||||
//characters being compiled. Called
|
||||
//from withing #exe{} block.
|
||||
{
|
||||
U8 *buf=SPrintJoin(NULL,fmt,argc,argv),*st;
|
||||
{//Injects text into the compile stream. Used in #exe{} blocks.
|
||||
U8 *buf=StrPrintJoin(NULL,fmt,argc,argv),*st;
|
||||
CLex *lx=Fs->last_lex;
|
||||
CStreamBlk *tempe=lx->last_stream_blk;
|
||||
if (tempe!=&lx->next_stream_blk) {
|
||||
st=MPrint("%s%s",tempe->body,buf);
|
||||
st=MStrPrint("%s%s",tempe->body,buf);
|
||||
Free(tempe->body);
|
||||
tempe->body=st;
|
||||
} else
|
||||
@@ -16,7 +13,7 @@ U0 StreamPrint(U8 *fmt,...)
|
||||
}
|
||||
|
||||
U8 *LexStatement2Bin(CLex *lx,I64 *_type,I64 cmp_flags=0)
|
||||
{
|
||||
{//Compile one lx statement to bin code.
|
||||
I64 size,i,j,k,*result=INVALID_PTR;
|
||||
CLexCodeCtrl *tempcbh;
|
||||
if (_type) *_type=RT_I64;
|
||||
@@ -42,17 +39,15 @@ U8 *LexStatement2Bin(CLex *lx,I64 *_type,I64 cmp_flags=0)
|
||||
} else //TODO: too dangerous to del Misc?
|
||||
QueDel(&lx->lcc.lcc_root.next);
|
||||
if (lx->a_depth==2) {
|
||||
progress1++;
|
||||
tempcbh=LCCPopNoFree(lx);
|
||||
LCCAppend(lx,tempcbh);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
CExe *CmpJoin(CLex *lx,I64 cmp_flags,U8 *map_name=NULL,U8 mapfile_drv=0)
|
||||
{
|
||||
CAsmCtrl *a,*old_a=lx->a;
|
||||
CAOTCtrl *a,*old_a=lx->a;
|
||||
I64 i,j,l;
|
||||
U8 *buf;
|
||||
CAsmCodeBlk *tempc;
|
||||
@@ -68,11 +63,11 @@ CExe *CmpJoin(CLex *lx,I64 cmp_flags,U8 *map_name=NULL,U8 mapfile_drv=0)
|
||||
lx->exe=result;
|
||||
|
||||
result->next_ie=result->last_ie=&result->next_ie;
|
||||
lx->a=a=CAlloc(sizeof(CAsmCtrl));
|
||||
lx->a=a=CAlloc(sizeof(CAOTCtrl));
|
||||
lx->a_depth++;
|
||||
|
||||
a->cb=CAlloc(sizeof(CAsmCodeBlk));
|
||||
a->max_align=1;
|
||||
a->max_align_bits=0;
|
||||
a->module_org=INVALID_PTR;
|
||||
|
||||
MemCpy(htc,&lx->htc,sizeof(CLexHashTableContext));
|
||||
@@ -83,7 +78,7 @@ CExe *CmpJoin(CLex *lx,I64 cmp_flags,U8 *map_name=NULL,U8 mapfile_drv=0)
|
||||
if (lx->flags&LF_AOT_COMPILE) {
|
||||
lx->htc.define_hash_table=lx->htc.glbl_hash_table;
|
||||
if (lx->a_depth<=1)
|
||||
lx->htc.glbl_hash_table->next=asm_hash;
|
||||
lx->htc.glbl_hash_table->next=cmp.asm_hash;
|
||||
else
|
||||
lx->htc.glbl_hash_table->next=htc->glbl_hash_table;
|
||||
} else
|
||||
@@ -127,7 +122,7 @@ CExe *CmpJoin(CLex *lx,I64 cmp_flags,U8 *map_name=NULL,U8 mapfile_drv=0)
|
||||
LinkedLstDel(a->cb);
|
||||
result=NULL;
|
||||
} else {
|
||||
if (map_name && !cmp_do_not_write_to_dsk)
|
||||
if (map_name && !cmp.dont_write_to_dsk)
|
||||
Who("-r",lx->htc.glbl_hash_table,map_name,mapfile_drv);
|
||||
HashTableDel(lx->htc.local_hash_table);
|
||||
HashTableDel(lx->htc.glbl_hash_table);
|
||||
@@ -160,7 +155,7 @@ CExe *CmpJoin(CLex *lx,I64 cmp_flags,U8 *map_name=NULL,U8 mapfile_drv=0)
|
||||
LinkedLstDel(a->cb);
|
||||
result->abss=a->abss;
|
||||
result->heap_glbls=a->heap_glbls;
|
||||
result->max_align =a->max_align;
|
||||
result->max_align_bits=a->max_align_bits;
|
||||
result->module_org=a->module_org;
|
||||
}
|
||||
lx->exe=parent;
|
||||
@@ -223,13 +218,15 @@ U0 CmpFixUpJITAsm(CLex *lx,CExe *tempx)
|
||||
str=tempe->str;
|
||||
}
|
||||
switch (tempe->type) {
|
||||
case EIT_REL_EXPORT:
|
||||
case EIT_IMM_EXPORT:
|
||||
case EIT_REL32_EXPORT:
|
||||
case EIT_IMM32_EXPORT:
|
||||
case EIT_REL64_EXPORT:
|
||||
case EIT_IMM64_EXPORT:
|
||||
tempex=CAlloc(sizeof(CHashExport));
|
||||
tempex->str=str;
|
||||
str=NULL;
|
||||
tempex->type=HTT_EXPORT_SYS_SYM|HTF_IMM;
|
||||
if (tempe->type==EIT_IMM_EXPORT)
|
||||
if (tempe->type==EIT_IMM32_EXPORT||tempe->type==EIT_IMM64_EXPORT)
|
||||
tempex->val=tempe->ip;
|
||||
else
|
||||
tempex->val=tempe->ip+ip2;
|
||||
@@ -238,7 +235,7 @@ U0 CmpFixUpJITAsm(CLex *lx,CExe *tempx)
|
||||
HashAdd(tempex,Fs->hash_table);
|
||||
SysSymImportsResolve(tempex->str);
|
||||
break;
|
||||
case EIT_REL_I8...EIT_IMM_U64:
|
||||
case EIT_REL_I0...EIT_IMM_U64:
|
||||
if (tempe->str) {
|
||||
if (tempe->flags&EIF_GOTO_LABEL) {
|
||||
if(!(g_lb=LCCGoToLabelFind(lx,str)))
|
||||
@@ -266,6 +263,9 @@ U0 CmpFixUpJITAsm(CLex *lx,CExe *tempx)
|
||||
if (tempex || g_lb) {
|
||||
ptr=tempe->ip+ip2;
|
||||
nobound_switch (tempe->type) {
|
||||
case EIT_REL_I0:
|
||||
case EIT_IMM_U0:
|
||||
break;
|
||||
case EIT_REL_I8:
|
||||
if (!(MIN_I8<=i-ptr-1<=MAX_I8))
|
||||
LexExcept(lx,"branch out of range at ");
|
||||
@@ -313,7 +313,7 @@ U0 CmpFixUpJITAsm(CLex *lx,CExe *tempx)
|
||||
|
||||
U0 CmpFixUpAOTAsm(CLex *lx,CExe *tempx)
|
||||
{
|
||||
CAsmCtrl *a=lx->a;
|
||||
CAOTCtrl *a=lx->a;
|
||||
I64 i,ip2=tempx->ip+lx->a->ip;
|
||||
U8 *ptr;
|
||||
CLexCodeMisc *g_lb=NULL;
|
||||
@@ -360,7 +360,7 @@ U0 CmpFixUpAOTAsm(CLex *lx,CExe *tempx)
|
||||
while (tempe!=&tempx->next_ie) {
|
||||
tempe1=tempe->next;
|
||||
QueRem(tempe);
|
||||
if (EIT_REL_I8<=tempe->type<=EIT_IMM_U64) {
|
||||
if (EIT_REL_I0<=tempe->type<=EIT_IMM_U64) {
|
||||
if (tempe->str) {
|
||||
if (tempe->flags&EIF_GOTO_LABEL) {
|
||||
if(!(g_lb=LCCGoToLabelFind(lx,tempe->str)))
|
||||
@@ -379,6 +379,9 @@ U0 CmpFixUpAOTAsm(CLex *lx,CExe *tempx)
|
||||
if (g_lb) {
|
||||
i=g_lb->addr+tempx->buf;
|
||||
nobound_switch (tempe->type) {
|
||||
case EIT_REL_I0:
|
||||
case EIT_IMM_U0:
|
||||
break;
|
||||
case EIT_REL_I8:
|
||||
if (!(MIN_I8<=i-ptr-1<=MAX_I8))
|
||||
LexExcept(lx,"branch out of range at ");
|
||||
@@ -415,12 +418,16 @@ U0 CmpFixUpAOTAsm(CLex *lx,CExe *tempx)
|
||||
} else {
|
||||
switch (tempe->type) {
|
||||
sub_switch_start:
|
||||
case EIT_REL_EXPORT:
|
||||
case EIT_IMM_EXPORT:
|
||||
case EIT_REL32_EXPORT:
|
||||
case EIT_IMM32_EXPORT:
|
||||
case EIT_REL64_EXPORT:
|
||||
case EIT_IMM64_EXPORT:
|
||||
case EIT_IMM_U0:
|
||||
case EIT_IMM_U8:
|
||||
case EIT_IMM_U16:
|
||||
case EIT_IMM_U32:
|
||||
case EIT_IMM_U64:
|
||||
case EIT_REL_I0:
|
||||
break;
|
||||
case EIT_REL_I8:
|
||||
*ptr(U8 *) -=ip2;
|
||||
@@ -446,7 +453,7 @@ U0 CmpFixUpAOTAsm(CLex *lx,CExe *tempx)
|
||||
}
|
||||
|
||||
I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv=0)
|
||||
{ //Compile file, returns err_cnt
|
||||
{//AOT Compile CPP or PRJ file a and output BIN file. Returns err_cnt.
|
||||
U8 *ptr,*fbuf=NULL,*fbuf2=NULL,*fbuf3=NULL,
|
||||
*patch_table=MAlloc(0x20000);
|
||||
CExe *tempx;
|
||||
@@ -458,23 +465,14 @@ I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv=0)
|
||||
CExeHeapGlbl *temphg,*temphg1;
|
||||
|
||||
fbuf=DftExt(filename,"PRJ.Z");
|
||||
fbuf2=MPrint("#include \"%s\"",fbuf);
|
||||
fbuf2=MStrPrint("#include \"%s\"",fbuf);
|
||||
if (map_name)
|
||||
fbuf3=DftExt(map_name,"MAP.Z");
|
||||
|
||||
if (tempx=CmpBuf(fbuf2,fbuf3,&error_cnt,&warning_cnt,mapfile_drv)) {
|
||||
ex_U8s=tempx->ex_U8s;
|
||||
ptr=patch_table;
|
||||
//See $LK,"CBinFilePatchTableWithoutOrg",A="MN:CBinFilePatchTableWithoutOrg"$
|
||||
*ptr++=EIT_MODULE_ALIGNMENT; //See $LK,"Load",A="MN:Load"$() and $LK,"BinRep",A="MN:BinRep"$()
|
||||
*ptr(U32 *)++=tempx->max_align;
|
||||
*ptr++=0;
|
||||
if (tempx->module_org!=INVALID_PTR) {
|
||||
//See $LK,"CBinFilePatchTableWithOrg",A="MN:CBinFilePatchTableWithOrg"$
|
||||
*ptr++=EIT_MODULE_ORG;
|
||||
*ptr(U32 *)++=tempx->module_org;
|
||||
*ptr++=0;
|
||||
}
|
||||
//See $LK,"Load",A="MN:Load"$()
|
||||
cnt=0;
|
||||
tempa=tempx->abss;
|
||||
while (tempa) {
|
||||
@@ -505,7 +503,7 @@ I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv=0)
|
||||
temphgr=temphgr->next;
|
||||
}
|
||||
if (cnt) {
|
||||
*ptr++=EIT_HEAP_GLBL;
|
||||
*ptr++=EIT_DATA_HEAP;
|
||||
*ptr(U32 *)++=cnt;
|
||||
if (temphg->str) {
|
||||
i=StrLen(temphg->str);
|
||||
@@ -531,7 +529,7 @@ I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv=0)
|
||||
tempe=tempx->next_ie;
|
||||
while (tempe!=&tempx->next_ie) {
|
||||
tempe1=tempe->next;
|
||||
if (tempe->type<=EIT_IMM_EXPORT) {
|
||||
if (!tempe->type || EIT_REL32_EXPORT<=tempe->type<=EIT_IMM64_EXPORT) {
|
||||
QueRem(tempe);
|
||||
*ptr++=tempe->type;
|
||||
*ptr(U32 *)++=tempe->ip;
|
||||
@@ -577,8 +575,11 @@ I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv=0)
|
||||
bfh=MAlloc(size);
|
||||
bfh->jmp=0xEB+256*(sizeof(CBinFile)-2);
|
||||
#assert sizeof(CBinFile)-2<=MAX_I8
|
||||
bfh->type=0; //Reserved. Allow other types, maybe. Must be 16 bytes, anyway.
|
||||
bfh->loader_patch_table_offset=sizeof(CBinFile)+ex_U8s;
|
||||
bfh->reserved=0;
|
||||
bfh->bin_signature=BIN_SIGNATURE_VAL;
|
||||
bfh->module_org=tempx->module_org;
|
||||
bfh->module_align_bits=tempx->max_align_bits;
|
||||
bfh->patch_table_offset=sizeof(CBinFile)+ex_U8s;
|
||||
bfh->file_size=size;
|
||||
MemCpy(bfh(U8 *)+sizeof(CBinFile),tempx->buf,ex_U8s);
|
||||
MemCpy(bfh(U8 *)+sizeof(CBinFile)+ex_U8s,patch_table,size-ex_U8s-sizeof(CBinFile));
|
||||
@@ -587,7 +588,7 @@ I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv=0)
|
||||
fbuf2=DftExt(out_name,"BIN.Z");
|
||||
else
|
||||
fbuf2=ChgExt(fbuf,"BIN.Z");
|
||||
if (!cmp_do_not_write_to_dsk)
|
||||
if (!cmp.dont_write_to_dsk)
|
||||
FileWrite(fbuf2,bfh,size);
|
||||
Free(bfh);
|
||||
Free(tempx->buf);
|
||||
@@ -603,12 +604,12 @@ I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv=0)
|
||||
}
|
||||
|
||||
I64 ExePutS(U8 *buf,U8 *filename=NULL,Bool just_load=FALSE,CLexHashTableContext *htc=NULL)
|
||||
{
|
||||
{//JIT Compile and execute text from a puts("").
|
||||
I64 result;
|
||||
Bool okay=TRUE;
|
||||
CLex *lx;
|
||||
if (!filename)
|
||||
filename=sys_temp_filename;
|
||||
filename=dsk.temp_filename;
|
||||
lx=LexNew(buf,LF_DONT_FREE_BUF,filename);
|
||||
if (just_load)
|
||||
lx->flags|=LF_JUST_LOAD;
|
||||
@@ -638,19 +639,19 @@ I64 ExePutS(U8 *buf,U8 *filename=NULL,Bool just_load=FALSE,CLexHashTableContext
|
||||
}
|
||||
|
||||
I64 ExePrint(U8 *fmt,...)
|
||||
{
|
||||
{//JIT Compile and execute text from a printf().
|
||||
I64 result;
|
||||
U8 *buf=SPrintJoin(NULL,fmt,argc,argv);
|
||||
U8 *buf=StrPrintJoin(NULL,fmt,argc,argv);
|
||||
result=ExePutS(buf);
|
||||
Free(buf);
|
||||
return result;
|
||||
}
|
||||
|
||||
I64 ExeFile(U8 *name,Bool just_load=FALSE)
|
||||
{
|
||||
{//JIT Compile and execute a file.
|
||||
I64 result;
|
||||
U8 *name2=DftExt(name,"CPP.Z"),
|
||||
*st=MPrint("#include \"%s\";",name2);
|
||||
*st=MStrPrint("#include \"%s\";",name2);
|
||||
result=ExePutS(st,name,just_load);
|
||||
Free(st);
|
||||
Free(name2);
|
||||
@@ -658,11 +659,11 @@ I64 ExeFile(U8 *name,Bool just_load=FALSE)
|
||||
}
|
||||
|
||||
I64 ExePutS2(U8 *buf,U8 *filename=NULL,Bool just_load=FALSE)
|
||||
{ //throws exceptions
|
||||
{//throws exceptions
|
||||
I64 result;
|
||||
CLex *lx;
|
||||
if (!filename)
|
||||
filename=sys_temp_filename;
|
||||
filename=dsk.temp_filename;
|
||||
lx=LexNew(buf,LF_DONT_FREE_BUF,filename);
|
||||
if (just_load)
|
||||
lx->flags|=LF_JUST_LOAD;
|
||||
@@ -677,19 +678,19 @@ I64 ExePutS2(U8 *buf,U8 *filename=NULL,Bool just_load=FALSE)
|
||||
}
|
||||
|
||||
I64 ExePrint2(U8 *fmt,...)
|
||||
{ //throws exceptions
|
||||
{//throws exceptions
|
||||
I64 result;
|
||||
U8 *buf=SPrintJoin(NULL,fmt,argc,argv);
|
||||
U8 *buf=StrPrintJoin(NULL,fmt,argc,argv);
|
||||
result=ExePutS2(buf);
|
||||
Free(buf);
|
||||
return result;
|
||||
}
|
||||
|
||||
I64 ExeFile2(U8 *name,Bool just_load=FALSE)
|
||||
{ //throws exceptions
|
||||
{//throws exceptions
|
||||
I64 result;
|
||||
U8 *name2=DftExt(name,"CPP.Z"),
|
||||
*st=MPrint("#include \"%s\";",name2);
|
||||
*st=MStrPrint("#include \"%s\";",name2);
|
||||
result=ExePutS2(st,name,just_load);
|
||||
Free(st);
|
||||
Free(name2);
|
||||
@@ -697,8 +698,8 @@ I64 ExeFile2(U8 *name,Bool just_load=FALSE)
|
||||
}
|
||||
|
||||
I64 StreamExePrint(U8 *fmt,...)
|
||||
{//Suppose you want a value from the stream to be used in an #exe block...
|
||||
U8 *buf=SPrintJoin(NULL,fmt,argc,argv);
|
||||
{//Suppose you want a value from the stream to be used in an #exe{} block...
|
||||
U8 *buf=StrPrintJoin(NULL,fmt,argc,argv);
|
||||
I64 result=0;
|
||||
CLexHashTableContext *htc;
|
||||
CLex *lx=Fs->last_lex;
|
||||
@@ -716,20 +717,20 @@ I64 StreamExePrint(U8 *fmt,...)
|
||||
|
||||
U0 CmpInit()
|
||||
{
|
||||
compiled_lines=0;
|
||||
compiled_funs=0;
|
||||
compiled_bytes=0;
|
||||
cmp_do_not_write_to_dsk=FALSE;
|
||||
cmp.compiled_lines=0;
|
||||
cmp.compiled_funs=0;
|
||||
cmp.compiled_bytes=0;
|
||||
cmp.dont_write_to_dsk=FALSE;
|
||||
CmpLoadDefines;
|
||||
CmpFillTables;
|
||||
|
||||
MemSet(&opt_nop,0,sizeof(CIntermediateCode));
|
||||
QueInit(&opt_nop);
|
||||
opt_nop.ic_class=sys_internal_types[RT_I64];
|
||||
opt_nop.ic_code=IC_NOP1;
|
||||
MemSet(&cmp.ic_nop,0,sizeof(CIntermediateCode));
|
||||
QueInit(&cmp.ic_nop);
|
||||
cmp.ic_nop.ic_class=cmp.internal_types[RT_I64];
|
||||
cmp.ic_nop.ic_code=IC_NOP1;
|
||||
|
||||
AsmHashLoad;
|
||||
UnasmHashLoad;
|
||||
UasmHashLoad;
|
||||
}
|
||||
|
||||
CmpInit;
|
||||
Binary file not shown.
+458
-496
@@ -1,498 +1,460 @@
|
||||
$LK,"AsmGlblsResolve ",A="FL:D:/Compiler/Assembler.CPP.Z,286",BI=1$00000082C8 0001 0000000404 Funct Export Res
|
||||
$LK,"AsmHashLoad ",A="FL:D:/Compiler/CmpInit.CPP.Z,68",BI=2$0000029492 0001 00000005BF Funct Export Res
|
||||
$LK,"AsmLexExpression ",A="FL:D:/Compiler/Assembler.CPP.Z,191",BI=3$0000007EA0 0004 00000000B7 Funct Export Res
|
||||
$LK,"AsmLineLst ",A="FL:D:/Compiler/Assembler.CPP.Z,31",BI=4$0000007908 0001 0000000146 Funct Export Res
|
||||
$LK,"AsmLocalsResolve ",A="FL:D:/Compiler/Assembler.CPP.Z,252",BI=5$00000081A0 0003 0000000127 Funct Export Res
|
||||
$LK,"AsmMakeArgMask ",A="FL:D:/Compiler/Assembler.CPP.Z,572",BI=6$0000008C30 0002 0000000444 Funct Export Res
|
||||
$LK,"AsmPrsInsFlags ",A="FL:D:/Compiler/CmpInit.CPP.Z,18",BI=7$0000029252 0001 000000023B Funct Export Res
|
||||
$LK,"AsmResolve ",A="FL:D:/Compiler/Assembler.CPP.Z,211",BI=8$0000007F58 0002 0000000245 Funct Export Res
|
||||
$LK,"AsmStoreCodeU32 ",A="FL:D:/Compiler/Assembler.CPP.Z,92",BI=9$0000007B58 0001 0000000145 Funct Export Res
|
||||
$LK,"AsmStoreCodeU64 ",A="FL:D:/Compiler/Assembler.CPP.Z,131",BI=10$0000007CA0 0005 0000000146 Funct Export Res
|
||||
$LK,"AsmStoreCodeU8 ",A="FL:D:/Compiler/Assembler.CPP.Z,63",BI=11$0000007A50 001D 0000000103 Funct Export Res
|
||||
$LK,"AsmStoreCodeU8At ",A="FL:D:/Compiler/Assembler.CPP.Z,170",BI=12$0000007DE8 0007 00000000B7 Funct Export Res
|
||||
$LK,"AsmStoreNum ",A="FL:D:/Compiler/Assembler.CPP.Z,666",BI=13$0000009078 0004 00000004A6 Funct Export Res
|
||||
$LK,"AsmUnresolvedAdd ",A="FL:D:/Compiler/Assembler.CPP.Z,1",BI=14$00000077F8 0004 000000010C Funct Export Res
|
||||
$LK,"CInternalType ",A="FL:D:/Compiler/CmpInit.CPP.Z,4"$007FC80928 0002 000000000A Class
|
||||
$LK,"CMP_TEMPLATES ",A="FL:D:/Compiler/CmpAsm.CPP.Z,5"$0000000000 0001 ExportSysSym Export
|
||||
$LK,"CMP_TEMPLATES_DONT_POP ",A="FL:D:/Compiler/CmpAsm.CPP.Z,179"$000000018B 0001 ExportSysSym Export
|
||||
$LK,"CMP_TEMPLATES_DONT_PUSH ",A="FL:D:/Compiler/CmpAsm.CPP.Z,268"$0000000257 0001 ExportSysSym Export
|
||||
$LK,"CMP_TEMPLATES_DONT_PUSH2 ",A="FL:D:/Compiler/CmpAsm.CPP.Z,459"$0000000421 0001 ExportSysSym Export
|
||||
$LK,"AsmGlblsResolve ",A="FL:D:/Compiler/Assembler.CPP.Z,284",BI=1$0000007F30 0001 0000000404 Funct Export Res
|
||||
$LK,"AsmHashLoad ",A="FL:D:/Compiler/CmpInit.CPP.Z,68",BI=2$000002939A 0001 00000005BF Funct Export Res
|
||||
$LK,"AsmLexExpression ",A="FL:D:/Compiler/Assembler.CPP.Z,189",BI=3$0000007B08 0004 00000000B7 Funct Export Res
|
||||
$LK,"AsmLineLst ",A="FL:D:/Compiler/Assembler.CPP.Z,31",BI=4$0000007570 0001 0000000148 Funct Export Res
|
||||
$LK,"AsmLocalsResolve ",A="FL:D:/Compiler/Assembler.CPP.Z,250",BI=5$0000007E08 0003 0000000127 Funct Export Res
|
||||
$LK,"AsmMakeArgMask ",A="FL:D:/Compiler/Assembler.CPP.Z,569",BI=6$0000008898 0002 0000000444 Funct Export Res
|
||||
$LK,"AsmPrsInsFlags ",A="FL:D:/Compiler/CmpInit.CPP.Z,18",BI=7$000002915A 0001 000000023B Funct Export Res
|
||||
$LK,"AsmResolve ",A="FL:D:/Compiler/Assembler.CPP.Z,209",BI=8$0000007BC0 0002 0000000245 Funct Export Res
|
||||
$LK,"AsmStoreCodeU32 ",A="FL:D:/Compiler/Assembler.CPP.Z,90",BI=9$00000077C0 0001 0000000145 Funct Export Res
|
||||
$LK,"AsmStoreCodeU64 ",A="FL:D:/Compiler/Assembler.CPP.Z,129",BI=10$0000007908 0005 0000000146 Funct Export Res
|
||||
$LK,"AsmStoreCodeU8 ",A="FL:D:/Compiler/Assembler.CPP.Z,61",BI=11$00000076B8 001D 0000000103 Funct Export Res
|
||||
$LK,"AsmStoreCodeU8At ",A="FL:D:/Compiler/Assembler.CPP.Z,168",BI=12$0000007A50 0007 00000000B7 Funct Export Res
|
||||
$LK,"AsmStoreNum ",A="FL:D:/Compiler/Assembler.CPP.Z,663",BI=13$0000008CE0 0004 00000004A6 Funct Export Res
|
||||
$LK,"AsmUnresolvedAdd ",A="FL:D:/Compiler/Assembler.CPP.Z,1",BI=14$0000007460 0004 000000010C Funct Export Res
|
||||
$LK,"CInternalType ",A="FL:D:/Compiler/CmpInit.CPP.Z,3"$003FD4FE40 0002 000000000A Class
|
||||
$LK,"CMP_TEMPLATES ",A="FL:D:/Compiler/CmpAsm.CPP.Z,5"$0000000000 0001 ExportSysSym Export
|
||||
$LK,"CMP_TEMPLATES_DONT_POP",A="FL:D:/Compiler/CmpAsm.CPP.Z,179"$000000018B 0001 ExportSysSym Export
|
||||
$LK,"CMP_TEMPLATES_DONT_PUSH",A="FL:D:/Compiler/CmpAsm.CPP.Z,268"$0000000257 0001 ExportSysSym Export
|
||||
$LK,"CMP_TEMPLATES_DONT_PUSH2",A="FL:D:/Compiler/CmpAsm.CPP.Z,459"$0000000421 0001 ExportSysSym Export
|
||||
$LK,"CMP_TEMPLATES_DONT_PUSH_POP",A="FL:D:/Compiler/CmpAsm.CPP.Z,395"$0000000391 0001 ExportSysSym Export
|
||||
$LK,"CN_A1 ",A="FL:D:/Compiler/BackF1a.CPP.Z,2"$1 0006 0000000008 DefineStr
|
||||
$LK,"CN_A2 ",A="FL:D:/Compiler/BackF1a.CPP.Z,1"$0 0005 0000000008 DefineStr
|
||||
$LK,"CN_MAIN ",A="FL:D:/Compiler/BackF1a.CPP.Z,3"$2 0022 0000000008 DefineStr
|
||||
$LK,"CN_R ",A="FL:D:/Compiler/BackF1a.CPP.Z,4"$3 0003 0000000008 DefineStr
|
||||
$LK,"COptMemberVar ",A="FL:D:/Compiler/OptLib.CPP.Z,572"$007FC9EFB0 0005 0000000028 Class
|
||||
$LK,"CSubSwitch ",A="FL:D:/Compiler/StmtParser.CPP.Z,1367"$007FC9C050 0004 0000000020 Class
|
||||
$LK,"CSwitchCase ",A="FL:D:/Compiler/StmtParser.CPP.Z,1372"$007FD7B8B8 0004 0000000020 Class
|
||||
$LK,"CTrace ",A="FL:D:/Compiler/ICLCC.CPP.Z,33",BI=15$0000002878 0000 0000000017 Funct Export Res
|
||||
$LK,"CVI2 ",A="FL:D:/Compiler/StmtParser.CPP.Z,217"$007FC9C330 0003 0000000010 Class
|
||||
$LK,"Cmp ",A="FL:D:/Compiler/CmpMain.CPP.Z,448",BI=16$000002C002 0000 0000000589 Funct Export Res
|
||||
$LK,"CmpBuf ",A="FL:D:/Compiler/CmpMain.CPP.Z,175",BI=17$000002B6F2 0001 00000000B6 Funct Export Res
|
||||
$LK,"CmpF1PushPop ",A="FL:D:/Compiler/OptLib.CPP.Z,554",BI=18$000000C04E 0002 0000000031 Funct Export Res
|
||||
$LK,"CmpF2PushPop ",A="FL:D:/Compiler/OptLib.CPP.Z,560",BI=19$000000C086 0005 0000000074 Funct Export Res
|
||||
$LK,"CmpFillTables ",A="FL:D:/Compiler/CmpInit.CPP.Z,445",BI=20$000002A962 0001 000000051A Funct Export Res
|
||||
$LK,"CmpFixUpAOTAsm ",A="FL:D:/Compiler/CmpMain.CPP.Z,314",BI=21$000002BC22 0000 00000003DD Funct Export Res
|
||||
$LK,"CmpFixUpJITAsm ",A="FL:D:/Compiler/CmpMain.CPP.Z,192",BI=22$000002B7AA 0000 0000000473 Funct Export Res
|
||||
$LK,"CmpInit ",A="FL:D:/Compiler/CmpMain.CPP.Z,717",BI=23$000002CA8A 0001 0000000081 Funct Export Res
|
||||
$LK,"CmpJoin ",A="FL:D:/Compiler/CmpMain.CPP.Z,53",BI=24$000002B06A 0001 0000000682 Funct Export Res
|
||||
$LK,"CmpLoadDefines ",A="FL:D:/Compiler/CmpInit.CPP.Z,205",BI=25$0000029A52 0001 0000000F0A Funct Export Res
|
||||
$LK,"CmpNoteFloatOp ",A="FL:D:/Compiler/BackF1a.CPP.Z,6",BI=26$000001B4EE 000E 000000020D Funct Export Res
|
||||
$LK,"CmpOffset2Reg ",A="FL:D:/Compiler/OptLib.CPP.Z,83",BI=27$000000B406 0005 0000000046 Funct Export Res
|
||||
$LK,"CmpPmt ",A="FL:D:/Compiler/Lex.CPP.Z,1",BI=28$0000003998 0001 000000023E Funct Export Res
|
||||
$LK,"CmpRawType ",A="FL:D:/Compiler/OptLib.CPP.Z,534",BI=29$000000BFEE 0006 0000000025 Funct Export Res
|
||||
$LK,"CmpRawTypePointed ",A="FL:D:/Compiler/OptLib.CPP.Z,543",BI=30$000000C016 0005 0000000033 Funct Export Res
|
||||
$LK,"CmpSetFloatOpPushPop ",A="FL:D:/Compiler/BackF1a.CPP.Z,57",BI=31$000001B6FE 000C 0000000075 Funct Export Res
|
||||
$LK,"Echo ",A="FL:D:/Compiler/ICLCC.CPP.Z,38",BI=32$0000002890 0000 0000000017 Funct Export Res
|
||||
$LK,"ExeFile ",A="FL:D:/Compiler/CmpMain.CPP.Z,649",BI=33$000002C78A 0000 000000007B Funct Export Res
|
||||
$LK,"ExeFile2 ",A="FL:D:/Compiler/CmpMain.CPP.Z,688",BI=34$000002C91A 0000 0000000079 Funct Export Res
|
||||
$LK,"ExePrint ",A="FL:D:/Compiler/CmpMain.CPP.Z,640",BI=35$000002C73A 0000 0000000049 Funct Export Res
|
||||
$LK,"ExePrint2 ",A="FL:D:/Compiler/CmpMain.CPP.Z,679",BI=36$000002C8D2 0000 0000000047 Funct Export Res
|
||||
$LK,"ExePutS ",A="FL:D:/Compiler/CmpMain.CPP.Z,605",BI=37$000002C592 0003 00000001A1 Funct Export Res
|
||||
$LK,"ExePutS2 ",A="FL:D:/Compiler/CmpMain.CPP.Z,660",BI=38$000002C80A 0002 00000000C8 Funct Export Res
|
||||
$LK,"FBO1_F64 ",A="FL:D:/Compiler/OptLib.CPP.Z,94"$2 0002 0000000008 DefineStr
|
||||
$LK,"FBO1_INT ",A="FL:D:/Compiler/OptLib.CPP.Z,93"$1 0013 0000000008 DefineStr
|
||||
$LK,"FBO1_NOT_CONST ",A="FL:D:/Compiler/OptLib.CPP.Z,92"$0 0004 0000000008 DefineStr
|
||||
$LK,"GetOpt ",A="FL:D:/Compiler/ICLCC.CPP.Z,16",BI=39$00000027F0 0004 000000002C Funct Export Res
|
||||
$LK,"HashEntryImportCopy ",A="FL:D:/Compiler/Hash1b.CPP.Z,1",BI=40$00000072B0 0002 0000000157 Funct Export Res
|
||||
$LK,"HashEntrySize ",A="FL:D:/Compiler/Hash1b.CPP.Z,67",BI=41$00000074D8 0000 0000000103 Funct Export Res
|
||||
$LK,"HashEntrySize2 ",A="FL:D:/Compiler/Hash1b.CPP.Z,98",BI=42$00000075E0 0002 00000001A4 Funct Export Res
|
||||
$LK,"HashTableImport ",A="FL:D:/Compiler/Hash1b.CPP.Z,40",BI=43$0000007408 0000 00000000CD Funct Export Res
|
||||
$LK,"HashTableSize2 ",A="FL:D:/Compiler/Hash1b.CPP.Z,135",BI=44$0000007788 0000 000000006F Funct Export Res
|
||||
$LK,"ICAddEct ",A="FL:D:/Compiler/Back1a.CPP.Z,1",BI=45$000001F156 0005 00000002F3 Funct Export Res
|
||||
$LK,"ICAddRSP ",A="FL:D:/Compiler/BackLib.CPP.Z,72",BI=46$0000019E96 0017 00000002A7 Funct Export Res
|
||||
$LK,"ICAddSubEctEqual ",A="FL:D:/Compiler/Back1a.CPP.Z,506",BI=47$0000020A56 0005 0000000673 Funct Export Res
|
||||
$LK,"ICAddSubEctImm ",A="FL:D:/Compiler/Back1a.CPP.Z,57",BI=48$000001F44E 000D 000000067F Funct Export Res
|
||||
$LK,"ICAndAnd ",A="FL:D:/Compiler/Back1b.CPP.Z,30",BI=49$00000216F6 0001 000000014B Funct Export Res
|
||||
$LK,"ICAndBranch ",A="FL:D:/Compiler/Back1c.CPP.Z,1",BI=50$000002398E 0002 00000006E4 Funct Export Res
|
||||
$LK,"ICAndEqual ",A="FL:D:/Compiler/Back1c.CPP.Z,676",BI=51$000002586E 0001 000000010D Funct Export Res
|
||||
$LK,"ICArgPut ",A="FL:D:/Compiler/ICLCC.CPP.Z,93",BI=52$0000002AA8 0003 00000002D3 Funct Export Res
|
||||
$LK,"ICAssign ",A="FL:D:/Compiler/Back1c.CPP.Z,159",BI=53$0000024076 0001 0000000301 Funct Export Res
|
||||
$LK,"ICAssignPostIncDec ",A="FL:D:/Compiler/Back1b.CPP.Z,535",BI=54$0000022D4E 0002 0000000210 Funct Export Res
|
||||
$LK,"ICBitOps ",A="FL:D:/Compiler/Back1b.CPP.Z,244",BI=55$0000021FEE 0007 00000004F1 Funct Export Res
|
||||
$LK,"ICBrBitOps ",A="FL:D:/Compiler/Back1c.CPP.Z,208",BI=56$000002437E 0008 00000009FB Funct Export Res
|
||||
$LK,"ICBuiltInFloatConst ",A="FL:D:/Compiler/BackLib.CPP.Z,424",BI=57$000001A9CE 000F 00000000BD Funct Export Res
|
||||
$LK,"ICClassPut ",A="FL:D:/Compiler/ICLCC.CPP.Z,68",BI=58$00000029D0 0001 00000000D3 Funct Export Res
|
||||
$LK,"ICCmp ",A="FL:D:/Compiler/Back1b.CPP.Z,124",BI=59$0000021B06 0006 00000004E6 Funct Export Res
|
||||
$LK,"ICCmpAndBranch ",A="FL:D:/Compiler/Back1b.CPP.Z,577",BI=60$0000022F5E 000C 0000000737 Funct Export Res
|
||||
$LK,"ICCopyTemplate ",A="FL:D:/Compiler/BackF1a.CPP.Z,69",BI=61$000001B776 0013 000000021D Funct Export Res
|
||||
$LK,"ICDeref ",A="FL:D:/Compiler/BackLib.CPP.Z,661",BI=62$000001B42E 0001 00000000B9 Funct Export Res
|
||||
$LK,"ICDerefPostIncDec ",A="FL:D:/Compiler/Back1b.CPP.Z,492",BI=63$0000022B56 0002 00000001F1 Funct Export Res
|
||||
$LK,"ICDiv ",A="FL:D:/Compiler/Back1a.CPP.Z,414",BI=64$0000020586 0001 00000000F1 Funct Export Res
|
||||
$LK,"ICDivEqual ",A="FL:D:/Compiler/Back1a.CPP.Z,433",BI=65$000002067E 0002 00000002DE Funct Export Res
|
||||
$LK,"ICFAdd ",A="FL:D:/Compiler/BackF1b.CPP.Z,634",BI=66$000001EB16 0001 00000001FF Funct Export Res
|
||||
$LK,"ICFCmp ",A="FL:D:/Compiler/BackF1a.CPP.Z,549",BI=67$000001CAEE 0004 000000018B Funct Export Res
|
||||
$LK,"ICFCmpAndBranch ",A="FL:D:/Compiler/BackF1b.CPP.Z,325",BI=68$000001DF4E 0004 00000009F7 Funct Export Res
|
||||
$LK,"ICFCvt ",A="FL:D:/Compiler/BackF1a.CPP.Z,115",BI=69$000001B996 000C 000000017F Funct Export Res
|
||||
$LK,"ICFCvt2 ",A="FL:D:/Compiler/BackF1a.CPP.Z,163",BI=70$000001BB16 0010 0000000116 Funct Export Res
|
||||
$LK,"ICFDiv ",A="FL:D:/Compiler/BackF1b.CPP.Z,622",BI=71$000001EA66 0001 00000000A9 Funct Export Res
|
||||
$LK,"ICFMod ",A="FL:D:/Compiler/BackF1a.CPP.Z,241",BI=72$000001BE0E 0001 0000000145 Funct Export Res
|
||||
$LK,"ICFModEqual ",A="FL:D:/Compiler/BackF1a.CPP.Z,589",BI=73$000001CC7E 0001 00000003D7 Funct Export Res
|
||||
$LK,"ICFMul ",A="FL:D:/Compiler/BackF1b.CPP.Z,604",BI=74$000001E946 0001 000000011B Funct Export Res
|
||||
$LK,"ICFOp ",A="FL:D:/Compiler/BackF1a.CPP.Z,350",BI=75$000001C24E 0004 000000089D Funct Export Res
|
||||
$LK,"ICFOpEqual ",A="FL:D:/Compiler/BackF1b.CPP.Z,1",BI=76$000001D056 0004 0000000EF7 Funct Export Res
|
||||
$LK,"ICFPostIncDec ",A="FL:D:/Compiler/BackF1b.CPP.Z,717",BI=77$000001EF4E 0002 0000000151 Funct Export Res
|
||||
$LK,"ICFPow ",A="FL:D:/Compiler/BackF1a.CPP.Z,271",BI=78$000001BF56 0001 00000002F7 Funct Export Res
|
||||
$LK,"ICFPreIncDec ",A="FL:D:/Compiler/BackF1b.CPP.Z,695",BI=79$000001EE3E 0002 000000010A Funct Export Res
|
||||
$LK,"ICFSub ",A="FL:D:/Compiler/BackF1b.CPP.Z,672",BI=80$000001ED16 0001 0000000124 Funct Export Res
|
||||
$LK,"ICFTemplateFun ",A="FL:D:/Compiler/BackF1b.CPP.Z,745",BI=81$000001F0A6 0007 00000000AA Funct Export Res
|
||||
$LK,"ICFUnaryMinus ",A="FL:D:/Compiler/BackF1a.CPP.Z,190",BI=82$000001BC2E 0001 00000001E0 Funct Export Res
|
||||
$LK,"ICFlagBranch ",A="FL:D:/Compiler/Back1b.CPP.Z,805",BI=83$0000023886 0004 0000000106 Funct Export Res
|
||||
$LK,"ICLastIns ",A="FL:D:/Compiler/BackLib.CPP.Z,62",BI=84$0000019E56 0002 0000000040 Funct Export Res
|
||||
$LK,"ICLea ",A="FL:D:/Compiler/BackLib.CPP.Z,627",BI=85$000001B27E 0004 00000001AA Funct Export Res
|
||||
$LK,"ICLocalVarInit ",A="FL:D:/Compiler/Back1c.CPP.Z,909",BI=86$000002628E 0001 0000000078 Funct Export Res
|
||||
$LK,"ICMinMax ",A="FL:D:/Compiler/Back1c.CPP.Z,497",BI=87$0000025146 0004 00000002AB Funct Export Res
|
||||
$LK,"ICMod ",A="FL:D:/Compiler/Back1a.CPP.Z,487",BI=88$000002095E 0001 00000000F1 Funct Export Res
|
||||
$LK,"ICModU64 ",A="FL:D:/Compiler/Back1c.CPP.Z,576",BI=89$0000025446 0001 00000001B7 Funct Export Res
|
||||
$LK,"ICModr1 ",A="FL:D:/Compiler/BackLib.CPP.Z,143",BI=90$000001A13E 0017 00000002FE Funct Export Res
|
||||
$LK,"ICModr2 ",A="FL:D:/Compiler/BackLib.CPP.Z,234",BI=91$000001A43E 0016 00000000A6 Funct Export Res
|
||||
$LK,"ICMov ",A="FL:D:/Compiler/BackLib.CPP.Z,447",BI=92$000001AA8E 019A 00000007EC Funct Export Res
|
||||
$LK,"ICMul ",A="FL:D:/Compiler/Back1a.CPP.Z,289",BI=93$000001FEC6 0001 00000002B8 Funct Export Res
|
||||
$LK,"ICMulEqual ",A="FL:D:/Compiler/Back1a.CPP.Z,346",BI=94$000002017E 0001 0000000406 Funct Export Res
|
||||
$LK,"ICNot ",A="FL:D:/Compiler/Back1b.CPP.Z,10",BI=95$00000215F6 0001 00000000FF Funct Export Res
|
||||
$LK,"ICOpSizeRex ",A="FL:D:/Compiler/BackLib.CPP.Z,31",BI=96$0000019D6E 0006 0000000040 Funct Export Res
|
||||
$LK,"ICOrEqual ",A="FL:D:/Compiler/Back1c.CPP.Z,699",BI=97$000002597E 0001 000000010D Funct Export Res
|
||||
$LK,"ICOrOr ",A="FL:D:/Compiler/Back1b.CPP.Z,59",BI=98$0000021846 0001 0000000162 Funct Export Res
|
||||
$LK,"ICPop ",A="FL:D:/Compiler/BackLib.CPP.Z,365",BI=99$000001A7D6 0009 00000000EA Funct Export Res
|
||||
$LK,"ICPopRegs ",A="FL:D:/Compiler/BackLib.CPP.Z,392",BI=100$000001A8C6 000C 0000000057 Funct Export Res
|
||||
$LK,"ICPostIncDec ",A="FL:D:/Compiler/Back1b.CPP.Z,452",BI=101$0000022956 0002 00000001FF Funct Export Res
|
||||
$LK,"ICPreIncDec ",A="FL:D:/Compiler/Back1b.CPP.Z,415",BI=102$0000022776 0004 00000001DB Funct Export Res
|
||||
$LK,"ICPreempt ",A="FL:D:/Compiler/Back1b.CPP.Z,348",BI=103$00000224E6 0001 0000000122 Funct Export Res
|
||||
$LK,"ICPush ",A="FL:D:/Compiler/BackLib.CPP.Z,314",BI=104$000001A62E 001F 000000014E Funct Export Res
|
||||
$LK,"ICPushRegs ",A="FL:D:/Compiler/BackLib.CPP.Z,352",BI=105$000001A77E 0006 0000000054 Funct Export Res
|
||||
$LK,"ICPut ",A="FL:D:/Compiler/ICLCC.CPP.Z,138",BI=106$0000002D80 0008 00000003B2 Funct Export Res
|
||||
$LK,"ICQueInit ",A="FL:D:/Compiler/Back1c.CPP.Z,385",BI=107$0000024D7E 0001 0000000070 Funct Export Res
|
||||
$LK,"ICQueIns ",A="FL:D:/Compiler/Back1c.CPP.Z,399",BI=108$0000024DEE 0001 0000000162 Funct Export Res
|
||||
$LK,"ICQueInsRev ",A="FL:D:/Compiler/Back1c.CPP.Z,440",BI=109$0000024F56 0001 0000000162 Funct Export Res
|
||||
$LK,"ICQueRem ",A="FL:D:/Compiler/Back1c.CPP.Z,481",BI=110$00000250BE 0001 0000000088 Funct Export Res
|
||||
$LK,"ICRex ",A="FL:D:/Compiler/BackLib.CPP.Z,25",BI=111$0000019D3E 0016 000000002D Funct Export Res
|
||||
$LK,"ICShift ",A="FL:D:/Compiler/Back1a.CPP.Z,644",BI=112$00000210CE 0004 00000001A3 Funct Export Res
|
||||
$LK,"ICShiftEqual ",A="FL:D:/Compiler/Back1a.CPP.Z,677",BI=113$0000021276 0002 000000030E Funct Export Res
|
||||
$LK,"ICSlashOp ",A="FL:D:/Compiler/BackLib.CPP.Z,286",BI=114$000001A4E6 0027 0000000143 Funct Export Res
|
||||
$LK,"ICSqr ",A="FL:D:/Compiler/Back1c.CPP.Z,569",BI=115$00000253F6 0002 000000004A Funct Export Res
|
||||
$LK,"ICSub ",A="FL:D:/Compiler/Back1a.CPP.Z,211",BI=116$000001FACE 0001 00000003F5 Funct Export Res
|
||||
$LK,"ICSwap ",A="FL:D:/Compiler/Back1c.CPP.Z,618",BI=117$00000255FE 0001 000000026E Funct Export Res
|
||||
$LK,"ICSwitch ",A="FL:D:/Compiler/Back1c.CPP.Z,745",BI=118$0000025B96 0002 00000006F2 Funct Export Res
|
||||
$LK,"ICTest ",A="FL:D:/Compiler/BackLib.CPP.Z,414",BI=119$000001A97E 000C 000000004E Funct Export Res
|
||||
$LK,"ICTestAndBranch ",A="FL:D:/Compiler/Back1b.CPP.Z,757",BI=120$0000023696 0002 00000001EC Funct Export Res
|
||||
$LK,"ICToBool ",A="FL:D:/Compiler/Back1b.CPP.Z,400",BI=121$00000226FE 0001 0000000075 Funct Export Res
|
||||
$LK,"ICToF64 ",A="FL:D:/Compiler/Back1b.CPP.Z,395",BI=122$00000226BE 0001 000000003D Funct Export Res
|
||||
$LK,"ICToI64 ",A="FL:D:/Compiler/Back1b.CPP.Z,390",BI=123$000002267E 0001 000000003D Funct Export Res
|
||||
$LK,"ICToUpper ",A="FL:D:/Compiler/Back1b.CPP.Z,379",BI=124$000002260E 0001 000000006B Funct Export Res
|
||||
$LK,"ICU16 ",A="FL:D:/Compiler/BackLib.CPP.Z,38",BI=125$0000019DAE 0092 0000000029 Funct Export Res
|
||||
$LK,"ICU24 ",A="FL:D:/Compiler/BackLib.CPP.Z,44",BI=126$0000019DDE 0063 0000000026 Funct Export Res
|
||||
$LK,"ICU32 ",A="FL:D:/Compiler/BackLib.CPP.Z,50",BI=127$0000019E06 0054 0000000026 Funct Export Res
|
||||
$LK,"ICU64 ",A="FL:D:/Compiler/BackLib.CPP.Z,56",BI=128$0000019E2E 0009 0000000028 Funct Export Res
|
||||
$LK,"ICU8 ",A="FL:D:/Compiler/BackLib.CPP.Z,20",BI=129$0000019D16 0063 0000000028 Funct Export Res
|
||||
$LK,"ICUnaries ",A="FL:D:/Compiler/Back1b.CPP.Z,1",BI=130$0000021586 0002 0000000069 Funct Export Res
|
||||
$LK,"ICXorEqual ",A="FL:D:/Compiler/Back1c.CPP.Z,722",BI=131$0000025A8E 0001 0000000107 Funct Export Res
|
||||
$LK,"ICXorXor ",A="FL:D:/Compiler/Back1b.CPP.Z,91",BI=132$00000219AE 0001 0000000155 Funct Export Res
|
||||
$LK,"ICZero ",A="FL:D:/Compiler/BackLib.CPP.Z,405",BI=133$000001A91E 0017 000000005E Funct Export Res
|
||||
$LK,"ImportHashTable ",A="FL:D:/Compiler/ICLCC.CPP.Z,42",BI=134$00000028A8 0000 00000000F1 Funct Export Res
|
||||
$LK,"IncludeDepth ",A="FL:D:/Compiler/ICLCC.CPP.Z,62",BI=135$00000029A0 0000 0000000030 Funct Export Res
|
||||
$LK,"InstEntriesCompare ",A="FL:D:/Compiler/Unassembler.CPP.Z,1",BI=136$0000000718 0001 00000002A9 Funct Export Res
|
||||
$LK,"InstEntryFind ",A="FL:D:/Compiler/Unassembler.CPP.Z,73",BI=137$00000009C8 0002 00000003C9 Funct Export Res
|
||||
$LK,"IsLexExpression2Bin ",A="FL:D:/Compiler/ExpParser.CPP.Z,1154",BI=138$000000F016 0000 0000000029 Funct Export Res
|
||||
$LK,"LCCAdd ",A="FL:D:/Compiler/ICLCC.CPP.Z,220",BI=139$00000031B0 00A9 000000009F Funct Export Res
|
||||
$LK,"LCCAppend ",A="FL:D:/Compiler/ICLCC.CPP.Z,259",BI=140$00000032D8 0003 00000000A6 Funct Export Res
|
||||
$LK,"LCCCompile ",A="FL:D:/Compiler/ICLCC.CPP.Z,376",BI=141$0000003708 0006 000000028B Funct Export Res
|
||||
$LK,"LCCDel ",A="FL:D:/Compiler/ICLCC.CPP.Z,319",BI=142$00000034F8 0001 0000000164 Funct Export Res
|
||||
$LK,"LCCFloatConstFind ",A="FL:D:/Compiler/ICLCC.CPP.Z,297",BI=143$0000003430 000F 00000000C6 Funct Export Res
|
||||
$LK,"LCCGoToLabelFind ",A="FL:D:/Compiler/ICLCC.CPP.Z,285",BI=144$00000033D8 0005 0000000057 Funct Export Res
|
||||
$LK,"LCCHeaderPut ",A="FL:D:/Compiler/ICLCC.CPP.Z,362",BI=145$0000003660 000A 00000000A2 Funct Export Res
|
||||
$LK,"LCCInit ",A="FL:D:/Compiler/ICLCC.CPP.Z,212",BI=146$0000003170 000A 000000003A Funct Export Res
|
||||
$LK,"LCCMiscNew ",A="FL:D:/Compiler/ICLCC.CPP.Z,276",BI=147$0000003380 0021 0000000055 Funct Export Res
|
||||
$LK,"LCCPop ",A="FL:D:/Compiler/ICLCC.CPP.Z,254",BI=148$00000032B8 0008 000000001A Funct Export Res
|
||||
$LK,"LCCPopNoFree ",A="FL:D:/Compiler/ICLCC.CPP.Z,247",BI=149$0000003288 0003 000000002E Funct Export Res
|
||||
$LK,"LCCPush ",A="FL:D:/Compiler/ICLCC.CPP.Z,240",BI=150$0000003250 000E 0000000037 Funct Export Res
|
||||
$LK,"LCCQuePut ",A="FL:D:/Compiler/ICLCC.CPP.Z,202",BI=151$0000003138 0001 0000000037 Funct Export Res
|
||||
$LK,"Lex ",A="FL:D:/Compiler/Lex.CPP.Z,742",BI=152$0000005668 00E6 0000001866 Funct Export Res
|
||||
$LK,"LexAttachDoc ",A="FL:D:/Compiler/Lex.CPP.Z,378",BI=153$0000004AF0 0001 0000000163 Funct Export Res
|
||||
$LK,"LexBackupLastChar ",A="FL:D:/Compiler/Lex.CPP.Z,132",BI=154$0000003F8C 0003 0000000041 Funct Export Res
|
||||
$LK,"LexDel ",A="FL:D:/Compiler/Lex.CPP.Z,67",BI=155$0000003D10 0004 00000000A5 Funct Export Res
|
||||
$LK,"LexDocRead ",A="FL:D:/Compiler/Lex.CPP.Z,361",BI=156$0000004A68 0001 0000000087 Funct Export Res
|
||||
$LK,"LexDollar ",A="FL:D:/Compiler/Lex.CPP.Z,143",BI=157$0000003FD4 0003 0000000070 Funct Export Res
|
||||
$LK,"LexExcept ",A="FL:D:/Compiler/Lex.CPP.Z,1615",BI=158$00000071E8 00AE 00000000C1 Funct Export Res
|
||||
$LK,"LexExpression ",A="FL:D:/Compiler/ExpParser.CPP.Z,1159",BI=159$000000F046 0007 000000003F Funct Export Res
|
||||
$LK,"LexExpression2Bin ",A="FL:D:/Compiler/ExpParser.CPP.Z,1136",BI=160$000000EF7E 0004 0000000094 Funct Export Res
|
||||
$LK,"LexExtStr ",A="FL:D:/Compiler/Lex.CPP.Z,1532",BI=161$0000006ED0 0004 00000000C5 Funct Export Res
|
||||
$LK,"LexGetChar ",A="FL:D:/Compiler/Lex.CPP.Z,157",BI=162$0000004044 0030 000000094F Funct Export Res
|
||||
$LK,"LexInStr ",A="FL:D:/Compiler/Lex.CPP.Z,644",BI=163$0000005338 0001 000000032A Funct Export Res
|
||||
$LK,"LexIncludeStr ",A="FL:D:/Compiler/Lex.CPP.Z,334",BI=164$00000049C4 0003 0000000091 Funct Export Res
|
||||
$LK,"LexNew ",A="FL:D:/Compiler/Lex.CPP.Z,37",BI=165$0000003BD8 0004 0000000136 Funct Export Res
|
||||
$LK,"LexPop ",A="FL:D:/Compiler/Lex.CPP.Z,435",BI=166$0000004CE0 0004 0000000074 Funct Export Res
|
||||
$LK,"LexPush ",A="FL:D:/Compiler/Lex.CPP.Z,423",BI=167$0000004C58 000F 0000000081 Funct Export Res
|
||||
$LK,"LexPutLine ",A="FL:D:/Compiler/Lex.CPP.Z,1557",BI=168$0000006F98 0003 000000009B Funct Export Res
|
||||
$LK,"LexPutPos ",A="FL:D:/Compiler/Lex.CPP.Z,1585",BI=169$0000007038 0003 00000000CA Funct Export Res
|
||||
$LK,"LexPutToken ",A="FL:D:/Compiler/Lex.CPP.Z,109",BI=170$0000003E58 0001 000000012B Funct Export Res
|
||||
$LK,"LexSize ",A="FL:D:/Compiler/Lex.CPP.Z,89",BI=171$0000003DB8 0000 000000009B Funct Export Res
|
||||
$LK,"LexSkipEol ",A="FL:D:/Compiler/Lex.CPP.Z,327",BI=172$0000004994 0004 000000002B Funct Export Res
|
||||
$LK,"LexStatement2Bin ",A="FL:D:/Compiler/CmpMain.CPP.Z,18",BI=173$000002AF2A 0001 000000013C Funct Export Res
|
||||
$LK,"LexWarn ",A="FL:D:/Compiler/Lex.CPP.Z,1599",BI=174$0000007108 0009 00000000D9 Funct Export Res
|
||||
$LK,"MDR_D32_INDIRECT_REG ",A="FL:D:/Compiler/BackLib.CPP.Z,137"$3 0002 0000000008 DefineStr
|
||||
$LK,"MDR_D8_INDIRECT_REG ",A="FL:D:/Compiler/BackLib.CPP.Z,136"$2 0002 0000000008 DefineStr
|
||||
$LK,"MDR_INDIRECT_REG ",A="FL:D:/Compiler/BackLib.CPP.Z,135"$1 0002 0000000008 DefineStr
|
||||
$LK,"MDR_REG ",A="FL:D:/Compiler/BackLib.CPP.Z,134"$0 0002 0000000008 DefineStr
|
||||
$LK,"MDR_RIP_REL ",A="FL:D:/Compiler/BackLib.CPP.Z,141"$7 0004 0000000008 DefineStr
|
||||
$LK,"MDR_SIB_D32_INDIRECT_REG ",A="FL:D:/Compiler/BackLib.CPP.Z,140"$6 0003 0000000008 DefineStr
|
||||
$LK,"MDR_SIB_D8_INDIRECT_REG ",A="FL:D:/Compiler/BackLib.CPP.Z,139"$5 0002 0000000008 DefineStr
|
||||
$LK,"MDR_SIB_INDIRECT_REG ",A="FL:D:/Compiler/BackLib.CPP.Z,138"$4 0002 0000000008 DefineStr
|
||||
$LK,"MemberAdd ",A="FL:D:/Compiler/Lex.CPP.Z,504",BI=175$0000004E90 0004 00000001BA Funct Export Res
|
||||
$LK,"MemberFind ",A="FL:D:/Compiler/Lex.CPP.Z,469",BI=176$0000004DE0 0005 0000000067 Funct Export Res
|
||||
$LK,"MemberFind2 ",A="FL:D:/Compiler/Lex.CPP.Z,489",BI=177$0000004E48 0001 0000000044 Funct Export Res
|
||||
$LK,"MemberLstCopy ",A="FL:D:/Compiler/Lex.CPP.Z,589",BI=178$0000005148 0001 000000011F Funct Export Res
|
||||
$LK,"MemberLstDel ",A="FL:D:/Compiler/Lex.CPP.Z,552",BI=179$0000005050 0001 00000000F3 Funct Export Res
|
||||
$LK,"MemberLstNew ",A="FL:D:/Compiler/StmtParser.CPP.Z,78",BI=180$000000F1F6 0003 000000002A Funct Export Res
|
||||
$LK,"MemberLstSize ",A="FL:D:/Compiler/Lex.CPP.Z,617",BI=181$0000005268 0002 00000000CF Funct Export Res
|
||||
$LK,"MemberMetaData ",A="FL:D:/Compiler/Lex.CPP.Z,447",BI=182$0000004D58 0000 0000000041 Funct Export Res
|
||||
$LK,"MemberMetaFind ",A="FL:D:/Compiler/Lex.CPP.Z,458",BI=183$0000004DA0 0000 0000000040 Funct Export Res
|
||||
$LK,"NUM_INTERNAL_TYPES ",A="FL:D:/Compiler/CmpInit.CPP.Z,1"$17 0002 0000000008 DefineStr
|
||||
$LK,"OTrace ",A="FL:D:/Compiler/ICLCC.CPP.Z,21",BI=184$0000002820 0000 0000000017 Funct Export Res
|
||||
$LK,"OTraceMask ",A="FL:D:/Compiler/ICLCC.CPP.Z,26",BI=185$0000002838 0000 0000000039 Funct Export Res
|
||||
$LK,"OptBrNotZero ",A="FL:D:/Compiler/OptLib.CPP.Z,362",BI=186$000000BB46 0004 0000000403 Funct Export Res
|
||||
$LK,"OptBrZero ",A="FL:D:/Compiler/OptLib.CPP.Z,213",BI=187$000000B73E 0006 0000000403 Funct Export Res
|
||||
$LK,"OptClassFwd ",A="FL:D:/Compiler/OptLib.CPP.Z,9",BI=188$000000B266 0013 000000002B Funct Export Res
|
||||
$LK,"OptEqu ",A="FL:D:/Compiler/ICLCC.CPP.Z,1",BI=189$0000002790 0005 000000002E Funct Export Res
|
||||
$LK,"OptFixSizeOf ",A="FL:D:/Compiler/OptLib.CPP.Z,510",BI=190$000000BF4E 0003 000000009B Funct Export Res
|
||||
$LK,"OptFixupBinaryOp1 ",A="FL:D:/Compiler/OptLib.CPP.Z,96",BI=191$000000B44E 0013 00000001CB Funct Export Res
|
||||
$LK,"OptFixupBinaryOp2 ",A="FL:D:/Compiler/OptLib.CPP.Z,162",BI=192$000000B61E 0001 0000000054 Funct Export Res
|
||||
$LK,"OptFixupUnaryOp ",A="FL:D:/Compiler/OptLib.CPP.Z,178",BI=193$000000B676 0003 00000000C8 Funct Export Res
|
||||
$LK,"OptFree ",A="FL:D:/Compiler/OptLib.CPP.Z,33",BI=194$000000B316 0023 0000000024 Funct Export Res
|
||||
$LK,"OptIC4 ",A="FL:D:/Compiler/OptPass4.CPP.Z,1",BI=195$0000017ABE 0001 00000005CD Funct Export Res
|
||||
$LK,"OptIC6 ",A="FL:D:/Compiler/OptPass6.CPP.Z,1",BI=196$00000193D6 0001 0000000128 Funct Export Res
|
||||
$LK,"OptLabelFwd ",A="FL:D:/Compiler/OptLib.CPP.Z,1",BI=197$000000B23E 0010 0000000028 Funct Export Res
|
||||
$LK,"OptLag ",A="FL:D:/Compiler/OptLib.CPP.Z,40",BI=198$000000B33E 000E 000000002A Funct Export Res
|
||||
$LK,"OptLag1 ",A="FL:D:/Compiler/OptLib.CPP.Z,51",BI=199$000000B36E 0006 0000000031 Funct Export Res
|
||||
$LK,"OptLag2 ",A="FL:D:/Compiler/OptLib.CPP.Z,62",BI=200$000000B3A6 0003 000000002A Funct Export Res
|
||||
$LK,"OptLead1 ",A="FL:D:/Compiler/OptLib.CPP.Z,73",BI=201$000000B3D6 0004 0000000030 Funct Export Res
|
||||
$LK,"OptMVCompare ",A="FL:D:/Compiler/OptLib.CPP.Z,577",BI=202$000000C0FE 0001 000000001A Funct Export Res
|
||||
$LK,"OptOff ",A="FL:D:/Compiler/ICLCC.CPP.Z,11",BI=203$00000027D8 0000 0000000016 Funct Export Res
|
||||
$LK,"OptOn ",A="FL:D:/Compiler/ICLCC.CPP.Z,6",BI=204$00000027C0 0000 0000000016 Funct Export Res
|
||||
$LK,"OptPass012 ",A="FL:D:/Compiler/OptPass012.CPP.Z,24",BI=205$0000013C8E 0000 00000027CC Funct Export Res
|
||||
$LK,"OptPass3 ",A="FL:D:/Compiler/OptPass3.CPP.Z,1",BI=206$000001645E 0000 0000001659 Funct Export Res
|
||||
$LK,"OptPass4 ",A="FL:D:/Compiler/OptPass4.CPP.Z,171",BI=207$000001808E 0000 0000000F05 Funct Export Res
|
||||
$LK,"OptPass5 ",A="FL:D:/Compiler/OptPass5.CPP.Z,1",BI=208$0000018F96 0000 000000043F Funct Export Res
|
||||
$LK,"OptPass6 ",A="FL:D:/Compiler/OptPass6.CPP.Z,111",BI=209$0000019826 0000 00000004EA Funct Export Res
|
||||
$LK,"OptPass6Lag ",A="FL:D:/Compiler/OptPass6.CPP.Z,28",BI=210$00000194FE 0001 0000000327 Funct Export Res
|
||||
$LK,"OptPass789 ",A="FL:D:/Compiler/OptPass789.CPP.Z,1",BI=211$0000026306 0000 0000002E9E Funct Export Res
|
||||
$LK,"OptSetNOP1 ",A="FL:D:/Compiler/OptLib.CPP.Z,17",BI=212$000000B296 0079 000000003A Funct Export Res
|
||||
$LK,"OptSetNOP2 ",A="FL:D:/Compiler/OptLib.CPP.Z,25",BI=213$000000B2D6 000D 000000003C Funct Export Res
|
||||
$LK,"PE_CHECK_BINARY_OPS1 ",A="FL:D:/Compiler/ExpParser.CPP.Z,43"$5 0001 0000000008 DefineStr
|
||||
$LK,"PE_CHECK_BINARY_OPS2 ",A="FL:D:/Compiler/ExpParser.CPP.Z,44"$6 0001 0000000008 DefineStr
|
||||
$LK,"PE_DEREFERENCE ",A="FL:D:/Compiler/ExpParser.CPP.Z,42"$4 0003 0000000008 DefineStr
|
||||
$LK,"PE_DO_BINARY_OP ",A="FL:D:/Compiler/ExpParser.CPP.Z,46"$8 0001 0000000008 DefineStr
|
||||
$LK,"PE_DO_UNARY_OP ",A="FL:D:/Compiler/ExpParser.CPP.Z,45"$7 0001 0000000008 DefineStr
|
||||
$LK,"PE_MAYBE_MODIFIERS ",A="FL:D:/Compiler/ExpParser.CPP.Z,40"$2 000A 0000000008 DefineStr
|
||||
$LK,"PE_POP_ALL1 ",A="FL:D:/Compiler/ExpParser.CPP.Z,49"$11 0001 0000000008 DefineStr
|
||||
$LK,"PE_POP_ALL2 ",A="FL:D:/Compiler/ExpParser.CPP.Z,50"$12 0001 0000000008 DefineStr
|
||||
$LK,"PE_POP_HIGHER ",A="FL:D:/Compiler/ExpParser.CPP.Z,47"$9 0001 0000000008 DefineStr
|
||||
$LK,"PE_PUSH_LOWER ",A="FL:D:/Compiler/ExpParser.CPP.Z,48"$10 0001 0000000008 DefineStr
|
||||
$LK,"PE_UNARY_MODIFIERS ",A="FL:D:/Compiler/ExpParser.CPP.Z,41"$3 0009 0000000008 DefineStr
|
||||
$LK,"PE_UNARY_TERM1 ",A="FL:D:/Compiler/ExpParser.CPP.Z,38"$0 0001 0000000008 DefineStr
|
||||
$LK,"PE_UNARY_TERM2 ",A="FL:D:/Compiler/ExpParser.CPP.Z,39"$1 0003 0000000008 DefineStr
|
||||
$LK,"ParenWarning ",A="FL:D:/Compiler/ExpParser.CPP.Z,1",BI=214$000000C11E 0004 000000004C Funct Export Res
|
||||
$LK,"PrsAddOp ",A="FL:D:/Compiler/ExpParser.CPP.Z,52",BI=215$000000C266 0002 00000001EE Funct Export Res
|
||||
$LK,"PrsArrayDims ",A="FL:D:/Compiler/StmtParser.CPP.Z,345",BI=216$000000FC7E 0001 000000012D Funct Export Res
|
||||
$LK,"PrsAsmArg ",A="FL:D:/Compiler/Assembler.CPP.Z,430",BI=217$0000008808 0002 0000000424 Funct Export Res
|
||||
$LK,"PrsAsmBlk ",A="FL:D:/Compiler/Assembler.CPP.Z,1281",BI=218$000000A97E 0002 00000008C0 Funct Export Res
|
||||
$LK,"PrsAsmDefine ",A="FL:D:/Compiler/Assembler.CPP.Z,1192",BI=219$000000A61E 0004 000000029D Funct Export Res
|
||||
$LK,"PrsAsmImm ",A="FL:D:/Compiler/Assembler.CPP.Z,396",BI=220$00000086D0 0006 0000000131 Funct Export Res
|
||||
$LK,"PrsAsmInstruction ",A="FL:D:/Compiler/Assembler.CPP.Z,784",BI=221$0000009526 0001 00000010F3 Funct Export Res
|
||||
$LK,"PrsBinFile ",A="FL:D:/Compiler/Assembler.CPP.Z,1265",BI=222$000000A8BE 0001 00000000BB Funct Export Res
|
||||
$LK,"PrsClass ",A="FL:D:/Compiler/StmtParser.CPP.Z,822",BI=223$0000010CF6 0002 000000023E Funct Export Res
|
||||
$LK,"PrsClassNew ",A="FL:D:/Compiler/StmtParser.CPP.Z,1",BI=224$000000F086 0003 00000000B7 Funct Export Res
|
||||
$LK,"PrsDoWhile ",A="FL:D:/Compiler/StmtParser.CPP.Z,1306",BI=225$000001204E 0001 0000000137 Funct Export Res
|
||||
$LK,"PrsDotDotDot ",A="FL:D:/Compiler/StmtParser.CPP.Z,382",BI=226$000000FDAE 0001 0000000111 Funct Export Res
|
||||
$LK,"PrsExpression ",A="FL:D:/Compiler/ExpParser.CPP.Z,298",BI=227$000000CABE 0010 0000000149 Funct Export Res
|
||||
$LK,"PrsExpression2 ",A="FL:D:/Compiler/ExpParser.CPP.Z,102",BI=228$000000C456 0001 0000000667 Funct Export Res
|
||||
$LK,"PrsFor ",A="FL:D:/Compiler/StmtParser.CPP.Z,1330",BI=229$0000012186 0001 0000000162 Funct Export Res
|
||||
$LK,"PrsFun ",A="FL:D:/Compiler/StmtParser.CPP.Z,944",BI=230$000001110E 0001 00000003B7 Funct Export Res
|
||||
$LK,"PrsFunCall ",A="FL:D:/Compiler/ExpParser.CPP.Z,409",BI=231$000000CF5E 0003 000000082D Funct Export Res
|
||||
$LK,"PrsFunJoin ",A="FL:D:/Compiler/StmtParser.CPP.Z,883",BI=232$0000010F36 0005 00000001D6 Funct Export Res
|
||||
$LK,"PrsFunNew ",A="FL:D:/Compiler/StmtParser.CPP.Z,43",BI=233$000000F13E 0001 00000000B7 Funct Export Res
|
||||
$LK,"PrsGlblInit ",A="FL:D:/Compiler/StmtParser.CPP.Z,305",BI=234$000000FABE 0002 000000007C Funct Export Res
|
||||
$LK,"PrsGlblVarLst ",A="FL:D:/Compiler/StmtParser.CPP.Z,1006",BI=235$00000114C6 0007 0000000962 Funct Export Res
|
||||
$LK,"PrsIf ",A="FL:D:/Compiler/StmtParser.CPP.Z,1256",BI=236$0000011E2E 0001 000000012C Funct Export Res
|
||||
$LK,"PrsKeyWord ",A="FL:D:/Compiler/StmtParser.CPP.Z,85",BI=237$000000F226 000C 0000000040 Funct Export Res
|
||||
$LK,"PrsNoUnusedWarn ",A="FL:D:/Compiler/StmtParser.CPP.Z,1578",BI=238$0000012B7E 0001 000000008F Funct Export Res
|
||||
$LK,"PrsOffsetOf ",A="FL:D:/Compiler/ExpParser.CPP.Z,379",BI=239$000000CE16 0002 0000000148 Funct Export Res
|
||||
$LK,"PrsPop ",A="FL:D:/Compiler/ExpParser.CPP.Z,13",BI=240$000000C196 0017 0000000022 Funct Export Res
|
||||
$LK,"PrsPop2 ",A="FL:D:/Compiler/ExpParser.CPP.Z,23",BI=241$000000C1F6 0001 000000002D Funct Export Res
|
||||
$LK,"PrsPopDeref ",A="FL:D:/Compiler/ExpParser.CPP.Z,28",BI=242$000000C226 0004 000000003F Funct Export Res
|
||||
$LK,"PrsPush ",A="FL:D:/Compiler/ExpParser.CPP.Z,8",BI=243$000000C16E 0017 0000000028 Funct Export Res
|
||||
$LK,"PrsPush2 ",A="FL:D:/Compiler/ExpParser.CPP.Z,18",BI=244$000000C1BE 0004 0000000033 Funct Export Res
|
||||
$LK,"PrsSizeOf ",A="FL:D:/Compiler/ExpParser.CPP.Z,331",BI=245$000000CC0E 0001 0000000207 Funct Export Res
|
||||
$LK,"PrsStatement ",A="FL:D:/Compiler/StmtParser.CPP.Z,1689",BI=246$000001307E 0004 0000000C09 Funct Export Res
|
||||
$LK,"PrsStaticInit ",A="FL:D:/Compiler/StmtParser.CPP.Z,314",BI=247$000000FB3E 0002 000000013E Funct Export Res
|
||||
$LK,"PrsStreamBlk ",A="FL:D:/Compiler/StmtParser.CPP.Z,1592",BI=248$0000012C0E 0000 00000001B2 Funct Export Res
|
||||
$LK,"PrsSwitch ",A="FL:D:/Compiler/StmtParser.CPP.Z,1379",BI=249$00000122EE 0002 000000088F Funct Export Res
|
||||
$LK,"PrsTryBlk ",A="FL:D:/Compiler/StmtParser.CPP.Z,1628",BI=250$0000012DC6 0001 00000002B7 Funct Export Res
|
||||
$LK,"PrsType ",A="FL:D:/Compiler/StmtParser.CPP.Z,417",BI=251$000000FEC6 0002 000000034B Funct Export Res
|
||||
$LK,"PrsUnaryModifier ",A="FL:D:/Compiler/ExpParser.CPP.Z,981",BI=252$000000E71E 0000 0000000859 Funct Export Res
|
||||
$LK,"PrsUnaryTerm ",A="FL:D:/Compiler/ExpParser.CPP.Z,618",BI=253$000000D78E 0000 0000000F8E Funct Export Res
|
||||
$LK,"PrsVarInit ",A="FL:D:/Compiler/StmtParser.CPP.Z,106",BI=254$000000F2F6 0001 00000004C8 Funct Export Res
|
||||
$LK,"PrsVarInit2 ",A="FL:D:/Compiler/StmtParser.CPP.Z,223",BI=255$000000F7BE 0004 00000002FE Funct Export Res
|
||||
$LK,"PrsVarLst ",A="FL:D:/Compiler/StmtParser.CPP.Z,506",BI=256$0000010216 0006 0000000ADC Funct Export Res
|
||||
$LK,"PrsWhile ",A="FL:D:/Compiler/StmtParser.CPP.Z,1284",BI=257$0000011F5E 0001 00000000EF Funct Export Res
|
||||
$LK,"SLASH_OP_DEC ",A="FL:D:/Compiler/BackLib.CPP.Z,266"$0x052B0000 0006 0000000018 DefineStr
|
||||
$LK,"SLASH_OP_DIV ",A="FL:D:/Compiler/BackLib.CPP.Z,271"$0x00000000 0001 0000000018 DefineStr
|
||||
$LK,"SLASH_OP_FADD ",A="FL:D:/Compiler/BackLib.CPP.Z,275"$0x0000C1DE 0002 0000000018 DefineStr
|
||||
$LK,"SLASH_OP_FDIV ",A="FL:D:/Compiler/BackLib.CPP.Z,279"$0x0000F9DE 0002 0000000018 DefineStr
|
||||
$LK,"SLASH_OP_FDIVR ",A="FL:D:/Compiler/BackLib.CPP.Z,280"$0x0000F1DE 0003 0000000018 DefineStr
|
||||
$LK,"SLASH_OP_FILD ",A="FL:D:/Compiler/BackLib.CPP.Z,284"$0x00000000 0002 0000000018 DefineStr
|
||||
$LK,"SLASH_OP_FISTTP ",A="FL:D:/Compiler/BackLib.CPP.Z,283"$0x00000000 0002 0000000018 DefineStr
|
||||
$LK,"SLASH_OP_FLD ",A="FL:D:/Compiler/BackLib.CPP.Z,281"$0x00000000 0008 0000000018 DefineStr
|
||||
$LK,"SLASH_OP_FMUL ",A="FL:D:/Compiler/BackLib.CPP.Z,278"$0x0000C9DE 0002 0000000018 DefineStr
|
||||
$LK,"SLASH_OP_FSTP ",A="FL:D:/Compiler/BackLib.CPP.Z,282"$0x00000000 000D 0000000018 DefineStr
|
||||
$LK,"SLASH_OP_FSUB ",A="FL:D:/Compiler/BackLib.CPP.Z,276"$0x0000E9DE 0002 0000000018 DefineStr
|
||||
$LK,"SLASH_OP_FSUBR ",A="FL:D:/Compiler/BackLib.CPP.Z,277"$0x0000E1DE 0003 0000000018 DefineStr
|
||||
$LK,"SLASH_OP_IMUL ",A="FL:D:/Compiler/BackLib.CPP.Z,270"$0x00000000 0001 0000000018 DefineStr
|
||||
$LK,"SLASH_OP_INC ",A="FL:D:/Compiler/BackLib.CPP.Z,265"$0x00030000 0004 0000000018 DefineStr
|
||||
$LK,"SLASH_OP_MOV ",A="FL:D:/Compiler/BackLib.CPP.Z,272"$0x00000000 0002 0000000018 DefineStr
|
||||
$LK,"SLASH_OP_MUL ",A="FL:D:/Compiler/BackLib.CPP.Z,269"$0x00000000 0001 0000000018 DefineStr
|
||||
$LK,"SLASH_OP_NEG ",A="FL:D:/Compiler/BackLib.CPP.Z,268"$0x00000000 0001 0000000018 DefineStr
|
||||
$LK,"SLASH_OP_NOT ",A="FL:D:/Compiler/BackLib.CPP.Z,267"$0x00000000 0001 0000000018 DefineStr
|
||||
$LK,"SLASH_OP_POP ",A="FL:D:/Compiler/BackLib.CPP.Z,274"$0x00000000 0001 0000000018 DefineStr
|
||||
$LK,"SLASH_OP_PUSH ",A="FL:D:/Compiler/BackLib.CPP.Z,273"$0x00000000 0001 0000000018 DefineStr
|
||||
$LK,"StrMatchBits ",A="FL:D:/Compiler/Unassembler.CPP.Z,226",BI=258$0000000EA8 0002 0000000073 Funct Export Res
|
||||
$LK,"StreamExePrint ",A="FL:D:/Compiler/CmpMain.CPP.Z,699",BI=259$000002C99A 0000 00000000EC Funct Export Res
|
||||
$LK,"StreamPrint ",A="FL:D:/Compiler/CmpMain.CPP.Z,1",BI=260$000002AE82 0000 00000000A8 Funct Export Res
|
||||
$LK,"U ",A="FL:D:/Compiler/Unassembler.CPP.Z,647",BI=261$00000025E0 0000 00000000CF Funct Export Res
|
||||
$LK,"Ui ",A="FL:D:/Compiler/Unassembler.CPP.Z,239",BI=262$0000000F20 0002 00000016C0 Funct Export Res
|
||||
$LK,"Un ",A="FL:D:/Compiler/Unassembler.CPP.Z,663",BI=263$00000026B0 0008 00000000DA Funct Export Res
|
||||
$LK,"UnasmHashLoad ",A="FL:D:/Compiler/Unassembler.CPP.Z,188",BI=264$0000000D98 0001 0000000110 Funct Export Res
|
||||
$LK,"UndefinedExtern ",A="FL:D:/Compiler/StmtParser.CPP.Z,94",BI=265$000000F266 0001 0000000048 Funct Export Res
|
||||
$LK,"UnusedExternWarning ",A="FL:D:/Compiler/StmtParser.CPP.Z,100",BI=266$000000F2AE 0004 0000000043 Funct Export Res
|
||||
$LK,"asm_hash ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,2"$00000004E0 000D 0000000008 GlbVar Export
|
||||
$LK,"asm_seg_prefixes ",A="FL:D:/Compiler/Assembler.CPP.Z,782"$0000009520 0001 0000000006 GlbVar Export
|
||||
$LK,"binary_ops_table ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,8"$0000000648 0002 0000000008 GlbVar Export
|
||||
$LK,"cmp_arg_cnt ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,8"$0000000650 0009 0000000008 GlbVar Export
|
||||
$LK,"cmp_do_not_write_to_dsk ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,3"$00000004E8 0003 0000000001 GlbVar Export
|
||||
$LK,"cmp_result_cnt ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,9"$0000000658 0005 0000000008 GlbVar Export
|
||||
$LK,"cmp_templates ",A="FL:D:/Compiler/CmpExts.CPP.Z,42"$0000000000 0002 0000000004 GlbVar Export
|
||||
$LK,"cmp_templates_dont_pop ",A="FL:D:/Compiler/CmpExts.CPP.Z,43"$000000018B 0002 0000000004 GlbVar Export
|
||||
$LK,"cmp_templates_dont_push ",A="FL:D:/Compiler/CmpExts.CPP.Z,44"$0000000257 0002 0000000004 GlbVar Export
|
||||
$LK,"cmp_templates_dont_push2 ",A="FL:D:/Compiler/CmpExts.CPP.Z,46"$0000000421 0002 0000000004 GlbVar Export
|
||||
$LK,"cmp_templates_dont_push_pop",A="FL:D:/Compiler/CmpExts.CPP.Z,45"$0000000391 0002 0000000004 GlbVar Export
|
||||
$LK,"compiled_bytes ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,16"$00000006E8 0002 0000000008 GlbVar Export
|
||||
$LK,"compiled_funs ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,15"$00000006E0 0002 0000000008 GlbVar Export
|
||||
$LK,"compiled_lines ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,15"$00000006D8 0003 0000000008 GlbVar Export
|
||||
$LK,"doc_type_flags_src_code ",A="FL:D:/Compiler/Lex.CPP.Z,353"$0000004A60 0001 0000000008 GlbVar Export
|
||||
$LK,"dual_U16_tokens1 ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,6"$0000000630 0002 0000000008 GlbVar Export
|
||||
$LK,"dual_U16_tokens2 ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,6"$0000000638 0002 0000000008 GlbVar Export
|
||||
$LK,"dual_U16_tokens3 ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,7"$0000000640 0002 0000000008 GlbVar Export
|
||||
$LK,"ic_bitmap_assign ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,9"$0000000668 0003 0000000008 GlbVar Export
|
||||
$LK,"ic_bitmap_cmp ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,9"$0000000678 0004 0000000008 GlbVar Export
|
||||
$LK,"ic_bitmap_deref ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,9"$0000000660 0004 0000000008 GlbVar Export
|
||||
$LK,"ic_bitmap_fpop ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,10"$0000000680 0005 0000000008 GlbVar Export
|
||||
$LK,"ic_bitmap_not_const ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,9"$0000000670 0003 0000000008 GlbVar Export
|
||||
$LK,"internal_types_table ",A="FL:D:/Compiler/CmpInit.CPP.Z,8"$00000291A8 0001 00000000AA GlbVar Export
|
||||
$LK,"lex_zeros ",A="FL:D:/Compiler/Lex.CPP.Z,130"$0000003F88 000A 0000000004 GlbVar Export
|
||||
$LK,"non_ptr_vars_mask ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,12"$00000006B0 0006 0000000008 GlbVar Export
|
||||
$LK,"num_non_ptr_vars ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,11"$0000000698 0005 0000000008 GlbVar Export
|
||||
$LK,"num_reg_vars ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,10"$0000000690 0006 0000000008 GlbVar Export
|
||||
$LK,"num_stk_temps ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,10"$0000000688 0004 0000000008 GlbVar Export
|
||||
$LK,"opt_nop ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,5"$0000000550 000B 00000000E0 GlbVar Export
|
||||
$LK,"reg_vars_mask ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,11"$00000006A8 0002 0000000008 GlbVar Export
|
||||
$LK,"stk_temps_mask ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,11"$00000006A0 0003 0000000008 GlbVar Export
|
||||
$LK,"sys_internal_types ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,4"$00000004F0 0067 0000000060 GlbVar Export
|
||||
$LK,"to_non_ptr_vars_map ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,15"$00000006D0 0004 0000000008 GlbVar Export
|
||||
$LK,"to_reg_vars_map ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,14"$00000006C8 0004 0000000008 GlbVar Export
|
||||
$LK,"to_stk_temps_map_even ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,14"$00000006C0 0007 0000000008 GlbVar Export
|
||||
$LK,"to_stk_temps_map_odd ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,13"$00000006B8 0007 0000000008 GlbVar Export
|
||||
$LK,"uasm_ins64_mask ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,20"$0000000700 000D 0000000008 GlbVar Export
|
||||
$LK,"uasm_mem_mask ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,21"$0000000710 0003 0000000008 GlbVar Export
|
||||
$LK,"uasm_signed_arg_mask ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,20"$0000000708 0003 0000000008 GlbVar Export
|
||||
$LK,"unasm_table ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,19"$00000006F0 0006 0000000008 GlbVar Export
|
||||
$LK,"unasm_table_entries ",A="FL:D:/Compiler/CmpGlbls.CPP.Z,20"$00000006F8 0003 0000000008 GlbVar Export
|
||||
| ||||