LTCD_070816.ISO
This commit is contained in:
1 parent
d14bbc24f9
commit
0e9364ff4c
506 files changed
+157705
-41812
No files matched your search
@@ -0,0 +1,281 @@
|
||||
ALIGN 4,OC_NOP
|
||||
CMP_INTERNAL_TYPES_TABLE::
|
||||
DU4 HTT_INTERNAL_TYPE,IT_I8,8;
|
||||
DU1 "void",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_DOUBLE,8;
|
||||
DU1 "double",0;
|
||||
|
||||
DU4 HTT_INTERNAL_TYPE,IT_I0,0;
|
||||
DU1 "I0i",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_U0,0;
|
||||
DU1 "U0i",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_I0,0;
|
||||
DU1 "I0",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_U0,0;
|
||||
DU1 "U0",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_I1,1;
|
||||
DU1 "I1i",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_U1,1;
|
||||
DU1 "U1i",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_I1,1;
|
||||
DU1 "I1",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_U1,1;
|
||||
DU1 "U1",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_I2,2;
|
||||
DU1 "I2i",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_U2,2;
|
||||
DU1 "U2i",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_I4,4;
|
||||
DU1 "I4i",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_U4,4;
|
||||
DU1 "U4i",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_I8,8;
|
||||
DU1 "I8i",0;
|
||||
DU4 HTT_INTERNAL_TYPE,IT_U8,8;
|
||||
DU1 "U8i",0;
|
||||
|
||||
DU4 HTT_INVALID;
|
||||
//*******************************************************
|
||||
ALIGN 8,OC_NOP
|
||||
CMP_OPT_NOP:
|
||||
DU4 EC_NOP; //Must be at IC_CODE offset
|
||||
DU1 256 DUP(0);
|
||||
|
||||
/**********
|
||||
void OptNext(IntermediateCode *tempi,
|
||||
IntermediateCode **temp_lag)
|
||||
{
|
||||
I8 i,j=0;
|
||||
for (i=3;i>0;i--)
|
||||
temp_lag[i]=temp_lag[i-1];
|
||||
temp_lag[0]=tempi;
|
||||
for (i=0;i<4;i++)
|
||||
if (temp_lag[i]->opcode>EC_END_EXP)
|
||||
temp_lag[j++]=temp_lag[i];
|
||||
while (j<4)
|
||||
temp_lag[j++]=&opt_nop;
|
||||
}
|
||||
************/
|
||||
ALIGN 8,OC_NOP
|
||||
CP_OPTNEXT::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RDI
|
||||
MOV RCX,U8 SF_PARAM1[RBP]
|
||||
MOV RDX,U8 SF_PARAM2[RBP]
|
||||
|
||||
MOV RAX,U8 16[RDX]
|
||||
MOV U8 24[RDX],RAX
|
||||
MOV RAX,U8 8[RDX]
|
||||
MOV U8 16[RDX],RAX
|
||||
MOV RAX,U8 [RDX]
|
||||
MOV U8 8[RDX],RAX
|
||||
MOV U8 [RDX],RCX
|
||||
|
||||
MOV RDI,RDX
|
||||
|
||||
MOV RAX,RCX
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JBE @@10
|
||||
STOSQ
|
||||
|
||||
@@10: MOV RAX,U8 8[RDX]
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JBE @@11
|
||||
STOSQ
|
||||
|
||||
@@11: MOV RAX,U8 16[RDX]
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JBE @@12
|
||||
STOSQ
|
||||
|
||||
@@12: MOV RAX,U8 24[RDX]
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JBE @@13
|
||||
STOSQ
|
||||
|
||||
@@13: MOV RAX,CMP_OPT_NOP
|
||||
ADD RDX,32
|
||||
JMP @@15
|
||||
|
||||
@@14: STOSQ
|
||||
@@15: CMP RDI,RDX
|
||||
JB @@14
|
||||
|
||||
POP RDI
|
||||
POP RBP
|
||||
RET
|
||||
/**********
|
||||
void OptNext2(IntermediateCode *tempi,
|
||||
IntermediateCode **temp_lag)
|
||||
{
|
||||
I8 i,j=0;
|
||||
for (i=3;i>0;i--)
|
||||
temp_lag[i]=temp_lag[i-1];
|
||||
temp_lag[0]=tempi;
|
||||
for (i=0;i<4;i++)
|
||||
if (temp_lag[i]->opcode>=EC_END_EXP)
|
||||
temp_lag[j++]=temp_lag[i];
|
||||
while (j<4)
|
||||
temp_lag[j++]=&opt_nop;
|
||||
}
|
||||
************/
|
||||
ALIGN 8,OC_NOP
|
||||
CP_OPTNEXT2::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RDI
|
||||
MOV RCX,U8 SF_PARAM1[RBP]
|
||||
MOV RDX,U8 SF_PARAM2[RBP]
|
||||
|
||||
MOV RAX,U8 16[RDX]
|
||||
MOV U8 24[RDX],RAX
|
||||
MOV RAX,U8 8[RDX]
|
||||
MOV U8 16[RDX],RAX
|
||||
MOV RAX,U8 [RDX]
|
||||
MOV U8 8[RDX],RAX
|
||||
MOV U8 [RDX],RCX
|
||||
|
||||
MOV RDI,RDX
|
||||
|
||||
MOV RAX,RCX
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JB @@10
|
||||
STOSQ
|
||||
|
||||
@@10: MOV RAX,U8 8[RDX]
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JB @@11
|
||||
STOSQ
|
||||
|
||||
@@11: MOV RAX,U8 16[RDX]
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JB @@12
|
||||
STOSQ
|
||||
|
||||
@@12: MOV RAX,U8 24[RDX]
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JB @@13
|
||||
STOSQ
|
||||
|
||||
@@13: MOV RAX,CMP_OPT_NOP
|
||||
ADD RDX,32
|
||||
JMP @@15
|
||||
|
||||
@@14: STOSQ
|
||||
@@15: CMP RDI,RDX
|
||||
JB @@14
|
||||
|
||||
POP RDI
|
||||
POP RBP
|
||||
RET
|
||||
|
||||
|
||||
ALIGN 8,OC_NOP
|
||||
CP_OPTNEXT3::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RDI
|
||||
MOV RCX,U8 SF_PARAM1[RBP]
|
||||
MOV RDX,U8 SF_PARAM2[RBP]
|
||||
|
||||
MOV RAX,U8 16[RDX]
|
||||
MOV U8 24[RDX],RAX
|
||||
MOV RAX,U8 8[RDX]
|
||||
MOV U8 16[RDX],RAX
|
||||
MOV RAX,U8 [RDX]
|
||||
MOV U8 8[RDX],RAX
|
||||
MOV U8 [RDX],RCX
|
||||
|
||||
MOV RDI,RDX
|
||||
|
||||
MOV RAX,RCX
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JB @@10
|
||||
CMP U2 IC_CODE[RAX],EC_NOP1
|
||||
JE @@10
|
||||
STOSQ
|
||||
|
||||
@@10: MOV RAX,U8 8[RDX]
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JB @@11
|
||||
CMP U2 IC_CODE[RAX],EC_NOP1
|
||||
JE @@11
|
||||
STOSQ
|
||||
|
||||
@@11: MOV RAX,U8 16[RDX]
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JB @@12
|
||||
CMP U2 IC_CODE[RAX],EC_NOP1
|
||||
JE @@12
|
||||
STOSQ
|
||||
|
||||
@@12: MOV RAX,U8 24[RDX]
|
||||
CMP U2 IC_CODE[RAX],EC_END_EXP
|
||||
JB @@13
|
||||
CMP U2 IC_CODE[RAX],EC_NOP1
|
||||
JE @@13
|
||||
STOSQ
|
||||
|
||||
@@13: MOV RAX,CMP_OPT_NOP
|
||||
ADD RDX,32
|
||||
JMP @@15
|
||||
|
||||
@@14: STOSQ
|
||||
@@15: CMP RDI,RDX
|
||||
JB @@14
|
||||
|
||||
POP RDI
|
||||
POP RBP
|
||||
RET
|
||||
|
||||
|
||||
//*******************************************************
|
||||
/****
|
||||
void PrsPush(ParseStack *ps,I8 val)
|
||||
{
|
||||
ps->stk[ps->ptr++]=val;
|
||||
}
|
||||
I8 PrsPop(ParseStack *ps)
|
||||
{
|
||||
return ps->stk[--ps->ptr];
|
||||
}
|
||||
******/
|
||||
ALIGN 8,OC_NOP
|
||||
CP_PRSPUSH::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RCX,U8 SF_PARAM1[RBP]
|
||||
MOV RAX,U8 [RCX]
|
||||
INC RAX
|
||||
MOV RDX,U8 SF_PARAM2[RBP]
|
||||
MOV U8 [RCX+RAX*8],RDX
|
||||
MOV U8 [RCX],RAX
|
||||
POP RBP
|
||||
RET
|
||||
|
||||
ALIGN 8,OC_NOP
|
||||
CP_PRSPOP::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RCX,U8 SF_PARAM1[RBP]
|
||||
MOV RBX,U8 [RCX]
|
||||
MOV RAX,U8 [RCX+RBX*8]
|
||||
DEC RBX
|
||||
MOV U8 [RCX],RBX
|
||||
POP RBP
|
||||
RET
|
||||
|
||||
|
||||
////**************************PROCEDURE*************************
|
||||
ALIGN 8,OC_NOP
|
||||
CP_HI_CALL::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RAX,U8 SF_PARAM1[RBP]
|
||||
OR RAX,RAX
|
||||
JZ @@100
|
||||
CALL RAX
|
||||
@@100: POP RBP
|
||||
RET
|
||||
|
||||
Reference in new issue
Block a user