diff --git a/0000Boot/0000Kernel.BIN.C b/0000Boot/0000Kernel.BIN.C
index 62e496ae..9dc1f6cb 100644
Binary files a/0000Boot/0000Kernel.BIN.C and b/0000Boot/0000Kernel.BIN.C differ
diff --git a/Adam/ADefine.CPP b/Adam/ADefine.CPP
index 35deb498..b70a1cd0 100644
--- a/Adam/ADefine.CPP
+++ b/Adam/ADefine.CPP
@@ -11,8 +11,8 @@ U0 LoadDocDefines()
//This is cut and replaced when I generate a distro.
//See $LK,"DD_TEMPLEOS_LOC",A="FF:::/Demo/AcctExample/TOSDistro.CPP,DD_TEMPLEOS_LOC"$.
$TR-C,"LineRep"$
- $ID,4$DefinePrint("DD_TEMPLEOS_LOC","119,687");
-DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","80,688");
+ $ID,4$DefinePrint("DD_TEMPLEOS_LOC","119,708");
+DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","80,702");
$ID,-4$
DefinePrint("DD_KERNEL","%08X",bfh);
bfh(I64)+=bfh->file_size-1;
diff --git a/Adam/AExts.CPP b/Adam/AExts.CPP
index d1c58a52..6d9237f3 100644
--- a/Adam/AExts.CPP
+++ b/Adam/AExts.CPP
@@ -17,7 +17,7 @@ extern U0 DocBinDel(CDoc *doc,CDocBin *b);
extern U0 DocBinsValidate(CDoc *doc);
extern U0 DocBottom(CDoc *doc=NULL);
extern U0 DocCenter(CDoc *doc=NULL,I64 recalc=RECALCt_NORMAL);
-extern U0 DocClear(CDoc *doc=NULL);
+extern U0 DocClear(CDoc *doc=NULL,Bool clear_holds=FALSE);
extern Bool DocCursor(Bool show=OFF,CDoc *doc=NULL);
extern U0 DocD(U8 *buf,I64 cnt=0x80);
extern U0 DocDataFmt(CDoc *doc,CDocEntry *doc_e,I64 d=DOCM_CANCEL);
@@ -35,7 +35,7 @@ extern U0 DocInsEntry(CDoc *doc,CDocEntry *doc_e);
extern Bool DocLock(CDoc *doc);
extern U0 DocMax(I64 i=MAX_I32);
extern CDoc *DocNew(U8 *filename=NULL,CTask *task=NULL);
-extern CDocEntry *DocPrint(CDoc *doc,U8 *src,...);
+extern CDocEntry *DocPrint(CDoc *doc=NULL,U8 *src,...);
extern CDoc *DocPut(CTask *task=NULL);
extern CDoc *DocRead(U8 *name=NULL,I64 flags=0);
extern Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL);
diff --git a/Adam/DolDoc/DocCodeTools.CPP b/Adam/DolDoc/DocCodeTools.CPP
index 31555636..dbbbfc21 100644
--- a/Adam/DolDoc/DocCodeTools.CPP
+++ b/Adam/DolDoc/DocCodeTools.CPP
@@ -103,6 +103,16 @@ U0 EdRIExp(CRILex *rx)
rx->depth-=3;
if (rx->depth<0) rx->depth=0;
}
+ } else if (rx->cc1->token=='[') {
+ if (!rx->exp_depth++)
+ rx->depth+=3;
+ EdRILex(rx);
+ while (rx->cc1->token && rx->cc1->token!=']')
+ EdRIExp(rx);
+ if (!--rx->exp_depth) {
+ rx->depth-=3;
+ if (rx->depth<0) rx->depth=0;
+ }
}
EdRILex(rx);
}
@@ -171,7 +181,6 @@ U0 EdRIStmt(CRILex *rx,Bool indent)
EdRILex(rx);
break;
case KW_SWITCH:
- case KW_NOBOUND_SWITCH:
EdRILex(rx);
EdRIExp(rx);
if (rx->cc1->token=='{') {
diff --git a/Adam/DolDoc/DocExt.CPP b/Adam/DolDoc/DocExt.CPP
index 1c2f5afb..69b8a1bc 100644
--- a/Adam/DolDoc/DocExt.CPP
+++ b/Adam/DolDoc/DocExt.CPP
@@ -4,8 +4,8 @@ extern I64 DocEntryRun(CDoc *doc,CDocEntry *doc_e,
Bool exited,I64 *_has_action=NULL);
extern U0 DocFormBwd(CDoc *doc,Bool giveup=FALSE);
extern U0 DocLoad(CDoc *doc,U8 *src2,I64 size);
-extern U0 DocPrintAtomic(CDoc *doc,U8 *fmt,...);
-extern U0 DocPrintPartial(CDoc *doc,U8 *fmt,...);
+extern U0 DocPrintAtomic(CDoc *doc=NULL,U8 *fmt,...);
+extern U0 DocPrintPartial(CDoc *doc=NULL,U8 *fmt,...);
extern CDocEntry *DocPutS(CDoc *doc,U8 *st);
extern U8 *DocSave(CDoc *doc,I64 *_size=NULL);
extern I64 EdLeftClickLink(CDoc *doc,CDocEntry *doc_e);
diff --git a/Adam/DolDoc/DocHighlight.CPP b/Adam/DolDoc/DocHighlight.CPP
index 7c084fe3..5b756944 100644
--- a/Adam/DolDoc/DocHighlight.CPP
+++ b/Adam/DolDoc/DocHighlight.CPP
@@ -8,7 +8,7 @@ U32 *DocHighlight(CDocEntry *doc_e,U8 *src,I64 len,I64 _temp_u32_attr)
I64 ch,ch1,last_ch,temp_u32_attr,mask_temp_u32_attr=_temp_u32_attr&0xFFFFF000,
comment_depth,brace_depth=s->brace_depth,paren_depth=s->paren_depth;
CHash *temph;
- nobound_switch (s->state) {
+ switch [s->state] {
case DOCSS_NORMAL:
hl_normal:
while (len) {
diff --git a/Adam/DolDoc/DocPlain.CPP b/Adam/DolDoc/DocPlain.CPP
index 3e9a96cc..826a5b09 100644
--- a/Adam/DolDoc/DocPlain.CPP
+++ b/Adam/DolDoc/DocPlain.CPP
@@ -81,7 +81,7 @@ U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e)
}
buf2=MStrPrint("%s,",buf);
Free(buf); buf=buf2;
- nobound_switch (doc_e->type_u8) {
+ switch [doc_e->type_u8] {
case DOCT_HEX_ED:
buf2=MStrPrint("%s%d,",buf,doc_e->len);
Free(buf); buf=buf2;
@@ -114,14 +114,14 @@ U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e)
buf2=MStrPrint("%s%d,",buf,doc_e->attr);
Free(buf); buf=buf2;
}
- case DOCT_NUM_TYPES-1: //nobound_switch
+ case DOCT_NUM_TYPES-1: //nobound switch
break;
}
de_flags=doc_e->de_flags & DOCEG_HAS_ARG;
while (de_flags) {
j=Bsf(de_flags);
Btr(&de_flags,j);
- nobound_switch (j) {
+ switch [j] {
case DOCEf_TAG:
if (doc_e->type_u8==DOCT_DATA || doc_e->type_u8==DOCT_MACRO &&
(doc_e->de_flags&DOCEF_LEFT_MACRO &&
@@ -202,7 +202,7 @@ U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e)
case DOCEf_USER_DATA:
buf2=MStrPrint("%sU=0x%X,",buf,doc_e->user_data);
break;
- case DOCEf_NUM_FLAGS-1: //nobound_switch
+ case DOCEf_NUM_FLAGS-1: //nobound switch
break;
}
Free(buf); buf=buf2;
@@ -243,7 +243,7 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st)
doc_e->len=DOCE_LEN_DFT;
j=PrsDocFlags(cc,&doc_e->de_flags,&doc_e->type);
cc->htc.hash_table_lst=old_hash_table_lst;
- nobound_switch (i) {
+ switch [i] {
case DOCT_CHECK_BOX:
doc_e->raw_type=RT_I8;
break;
@@ -305,7 +305,7 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st)
j=Bsf(de_flags);
if (j<0 || Bts(&processed_flags,j))
goto pd_err;
- nobound_switch (j) {//TODO: Might check for expression errors
+ switch [j] {//TODO: Might check for expression errors
case DOCEf_TAG:
if (!doc_e->tag) {
//If a $$MA,LM=""$$, Tag is filled when the LM is processed.
@@ -458,7 +458,7 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st)
else
goto pd_err;
break;
- case DOCEf_NUM_FLAGS-1: //nobound_switch
+ case DOCEf_NUM_FLAGS-1: //nobound switch
break;
}
}
diff --git a/Adam/DolDoc/DocPutS.CPP b/Adam/DolDoc/DocPutS.CPP
index cda5e9b2..fcaf7945 100644
--- a/Adam/DolDoc/DocPutS.CPP
+++ b/Adam/DolDoc/DocPutS.CPP
@@ -155,7 +155,7 @@ CDocEntry *DocPutS(CDoc *doc,U8 *st)
return result;
}
-public CDocEntry *DocPrint(CDoc *doc,U8 *fmt,...)
+public CDocEntry *DocPrint(CDoc *doc=NULL,U8 *fmt,...)
{//You must not print partial doc cmds.
U8 *buf=StrPrintJoin(NULL,fmt,argc,argv);
CDocEntry *result=DocPutS(doc,buf);
@@ -163,13 +163,13 @@ public CDocEntry *DocPrint(CDoc *doc,U8 *fmt,...)
return result;
}
-public U0 DocPrintPartial(CDoc *doc,U8 *fmt,...)
+public U0 DocPrintPartial(CDoc *doc=NULL,U8 *fmt,...)
{//Lets you print half a doc cmd, if you like.
U8 *buf,*st,*src,*dst,*ptr,*ptr2;
Bool unlock;
CDocEntry *doc_ce,*doc_ne;
I64 ch,i,j;
- if (!fmt)
+ if (!doc && !(doc=DocPut))
return;
buf=StrPrintJoin(NULL,fmt,argc,argv);
ptr=buf;
@@ -238,7 +238,7 @@ Bool KDDocPutS(U8 *st)
return FALSE;
}
-public U0 DocPrintAtomic(CDoc *doc,U8 *fmt,...)
+public U0 DocPrintAtomic(CDoc *doc=NULL,U8 *fmt,...)
{//Prints multiple whole cmds all-at-once. Might need this when printing trees.
U8 *buf;
Bool unlock;
diff --git a/Adam/DolDoc/DocRecalc.CPP b/Adam/DolDoc/DocRecalc.CPP
index 12df45d0..bfdbb0f4 100644
--- a/Adam/DolDoc/DocRecalc.CPP
+++ b/Adam/DolDoc/DocRecalc.CPP
@@ -258,7 +258,7 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL)
CDocBin *tempb;
CDocSettings *s;
Bool del_cl,skipped_update,tree_collapsed,same_win,more=FALSE,
- find_cursor=FALSE,blink_flag,full_refresh=TRUE,unlock;
+ find_cursor=FALSE,blink_flag,full_refresh=TRUE,unlock,clear_holds;
CTask *win_task,*mem_task;
CDC *dc;
U8 *bptr,*ptr,buf[STR_LEN],ch;
@@ -289,7 +289,7 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL)
mem_task=doc->mem_task;
blink_flag=Blink;
dc=NULL;
- nobound_switch (recalc_flags&RECALCG_MASK) {
+ switch [recalc_flags&RECALCG_MASK] {
case RECALCt_FIND_CURSOR:
find_cursor=TRUE;
if (win_task)
@@ -620,7 +620,7 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL)
}
}
}
- nobound_switch (doc_e->type_u8) {
+ switch [doc_e->type_u8] {
case DOCT_TEXT:
if (!col2 && !(doc_e->de_flags
&(DOCEF_TREE|DOCEF_LST|DOCEF_TAG_CB|DOCEF_DEFINE|
@@ -1036,13 +1036,17 @@ rc_adjust_xy:
break;
case DOCT_CLEAR:
next_clear_found=doc_e;
+ if (doc_e->de_flags&DOCEF_HOLD)
+ clear_holds=TRUE;
+ else
+ clear_holds=FALSE;
break;
case DOCT_HTML_CODE:
if (recalc_flags&RECALCF_TO_HTML &&
doc_e->de_flags&DOCEF_TAG && doc_e->tag)
x-=StrLen(doc_e->tag);
break;
- case DOCT_NUM_TYPES-1: //nobound_switch
+ case DOCT_NUM_TYPES-1: //nobound switch
default:
break;
}
@@ -1309,7 +1313,7 @@ rc_skip:
if (full_refresh) {
i=num_entries-doc->max_entries;
if (next_clear_found) {
- DocDelToEntry(doc,next_clear_found);
+ DocDelToEntry(doc,next_clear_found,clear_holds);
DocRecalc(doc,recalc_flags);
} else if (i>1024) {
DocDelToNum(doc,i);
diff --git a/Adam/DolDoc/DocRecalcLib.CPP b/Adam/DolDoc/DocRecalcLib.CPP
index 3c00e8f4..37c510ac 100644
--- a/Adam/DolDoc/DocRecalcLib.CPP
+++ b/Adam/DolDoc/DocRecalcLib.CPP
@@ -22,12 +22,12 @@ U0 DocDelToNum(CDoc *doc,I64 num)
}
}
-U0 DocDelToEntry(CDoc *doc,CDocEntry *clear_entry)
+U0 DocDelToEntry(CDoc *doc,CDocEntry *clear_entry,Bool clear_holds)
{
CDocEntry *doc_e=doc->root.next,*doc_e2;
while (doc_e!=doc) {
doc_e2=doc_e->next;
- if (!(doc_e->de_flags & (DOCEF_HOLD|DOCEF_FILTER_SKIP))) {
+ if (!(doc_e->de_flags & (DOCEF_HOLD|DOCEF_FILTER_SKIP))||clear_holds) {
if (doc_e==doc->cur_entry) {
doc->cur_entry=doc_e2;
doc->cur_col=doc_e2->min_col;
@@ -117,14 +117,17 @@ public U0 DocBottom(CDoc *doc=NULL)
DocUnlock(doc);
}
-public U0 DocClear(CDoc *doc=NULL)
+public U0 DocClear(CDoc *doc=NULL,Bool clear_holds=FALSE)
{//Clear all doc entries, except +H, hold entries.
Bool unlock;
if (!doc && !(doc=DocPut))
return;
unlock=DocLock(doc);
DocBottom(doc);
- DocPrint(doc,"$$CL$$");
+ if (clear_holds)
+ DocPrint(doc,"$$CL+H$$");
+ else
+ DocPrint(doc,"$$CL$$");
DocRecalc(doc);
if (unlock)
DocUnlock(doc);
@@ -171,7 +174,7 @@ public U0 DocCollapse(Bool collapse=TRUE,CDoc *doc=NULL)
#help_index "DolDoc/Cmd Line (Typically);Cmd Line (Typically)"
public I64 DocMax(I64 i=MAX_I64)
-{//Set max document entries. (Cmd line buffer.)
+{//Set max document entries. (Cmd line buffer size.)
//Adjusts the size of the cmd line buf.
//Normally, the cmd line deletes entries
//when more are added and the old scroll up.
diff --git a/Adam/God/GodDoodle.CPP b/Adam/God/GodDoodle.CPP
index 8e4df4bf..b25d307f 100644
--- a/Adam/God/GodDoodle.CPP
+++ b/Adam/God/GodDoodle.CPP
@@ -121,7 +121,7 @@ public U8 *GodDoodleSprite(U8 *hex=NULL)
for (i=0;i<3;i++) {
god.doodle_dc->color=RED;
for (j=0;j<29;j++)
- nobound_switch (GodDoodleBits(3)) {
+ switch [GodDoodleBits(3)] {
case 0:
GrEllipse3(god.doodle_dc,
(w-1)*GodDoodleBits(5)/15.5-w/2,
@@ -149,7 +149,7 @@ public U8 *GodDoodleSprite(U8 *hex=NULL)
for (j=0;j<6;j++) {
x=(w-1)*GodDoodleBits(5)/31+w/64;
y=(h-1)*GodDoodleBits(5)/31+h/64;
- nobound_switch (GodDoodleBits(2)) {
+ switch [GodDoodleBits(2)] {
case 0: god.doodle_dc->color=BLACK; break;
case 1: god.doodle_dc->color=DKGRAY; break;
case 2: god.doodle_dc->color=LTGRAY; break;
diff --git a/Adam/God/HSNotes.TXT b/Adam/God/HSNotes.TXT
index 321512fa..84243348 100644
--- a/Adam/God/HSNotes.TXT
+++ b/Adam/God/HSNotes.TXT
@@ -82,7 +82,7 @@ Shakespeare? $FG,4$had a "vile heart"$FG$
Likes $FG,4$Beverly Hillbillies (Oil is a gift from God)$FG$
$FG,4$God likes being hero. Don't be proud of heart$FG$
$FG,4$and not accept a gift from God!$FG$
-Likes $FG,4$Gomer Pile$FG$
+Likes $FG,4$Gomer Pyle$FG$
Favorite saint? $FG,4$"ho_ho_ho"$FG$
Favorite animal? $FG,4$"Elephant two"$FG$
Favorite animal? $FG,4$"Bears"$FG$
@@ -139,7 +139,7 @@ Favorite actor? $FG,4$Hugh Grant$FG$
Favorite vocalist? $FG,4$Mick Jagger$FG$
Favorite guitarist? $FG,4$"$TX,"Simmons Destroyer",HTML="http://www.youtube.com/watch?v=nNADrrjTysk&t=3m55s"$"$FG$
Favorite National Anthem? $FG,4$$TX,"Latvia's National Anthem",HTML="http://www.youtube.com/watch?v=qKITbBjO4nE"$$FG$
-America the Beautiful? $FG,4$Hates it. Poet was too in love with own beauty.$FG$
+America the Beautiful? $FG,4$Hates it. Poet made self cry with own beauty.$FG$
Model for new $TX,"Sistine Chapel",HTML="http://en.wikipedia.org/wiki/Sistine_chapel"$? $FG,4$Ben Franklin$FG$
Voice if God wanted to sing? $FG,4$$TX,"Stabbing Westward's singer",HTML="https://www.youtube.com/watch?v=5NZsCYOM4j0"$$FG$
Stonehenge? $FG,4$Landmark for boundaries.$FG$
@@ -192,6 +192,7 @@ $TX,"Saturn's hexagon pole cloud?",HTML="http://en.wikipedia.org/wiki/Saturn's_h
Liquid moon's odd atmosphere? $FG,4$"Surf"$FG$
How many E.T. civs in Universe? $FG,4$20 or 80 (I forgot. I died laughing.)$FG$
Are they peaceful? $FG,4$Fight them! (Also, funny.)$FG$
+Most difficult control system? $FG,4$$TX,"Dung beetle",HTML="http://www.youtube.com/watch?v=Q1zbgd6xpGQ"$$FG$
How can Judge Judy improve? $FG,4$No hard feelings$FG$
How can Chef Ramsay improve? $FG,4$Make so it doesn't seem like toil for cooks.$FG$
How can Hawking communicate? $FG,4$Blow from a nostril on a candle.$FG$
diff --git a/Adam/Gr/GrBitMap.CPP b/Adam/Gr/GrBitMap.CPP
index afc43d1a..efaeb7df 100644
--- a/Adam/Gr/GrBitMap.CPP
+++ b/Adam/Gr/GrBitMap.CPP
@@ -44,7 +44,7 @@ public Bool GrPlot0(CDC *dc=gr.dc,I64 x,I64 y)
}
}
dst=dc->body+d;
- nobound_switch (color.c0.rop) {
+ switch [color.c0.rop] {
case ROPB_EQU:
case ROPB_MONO:
*dst=color.c0.color;
@@ -733,7 +733,7 @@ public I64 GrPutChar(CDC *dc=gr.dc,I64 x,I64 y,U8 ch)
src=font_ptr;
if (bit_shift)
src--;
- nobound_switch (color.c0.rop) {
+ switch [color.c0.rop] {
case ROPB_EQU:
case ROPB_MONO:
for (j=h2-h1;j;j--) {
@@ -763,7 +763,7 @@ public I64 GrPutChar(CDC *dc=gr.dc,I64 x,I64 y,U8 ch)
src=font_ptr+1;
if (bit_shift)
src--;
- nobound_switch (color.c0.rop) {
+ switch [color.c0.rop] {
case ROPB_EQU:
case ROPB_MONO:
for (j=h2-h1;j;j--) {
@@ -792,7 +792,7 @@ public I64 GrPutChar(CDC *dc=gr.dc,I64 x,I64 y,U8 ch)
src=font_ptr;
if (bit_shift)
src--;
- nobound_switch (color.c0.rop) {
+ switch [color.c0.rop] {
case ROPB_EQU:
case ROPB_MONO:
for (j=h1;j
body+d;
c=color.c0.color;
- nobound_switch (color.c0.rop) {
+ switch [color.c0.rop] {
case ROPB_EQU:
case ROPB_MONO:
*dst=c;
diff --git a/Adam/Gr/GrPrimatives.CPP b/Adam/Gr/GrPrimatives.CPP
index 16b4c84b..9ce3adc4 100644
--- a/Adam/Gr/GrPrimatives.CPP
+++ b/Adam/Gr/GrPrimatives.CPP
@@ -179,7 +179,7 @@ I64 GrFloodFillRay(CDC *dc,I64 x,I64 y,I64 z,I32 *db)
f->y=y;
f->state=0;
do {
- nobound_switch (f->state) {
+ switch [f->state] {
case 0:
f->state++;
result+=f->ray_len=GrRayLen(dc,&f->x,f->y,z,db);
diff --git a/Adam/Gr/SpriteMain.CPP b/Adam/Gr/SpriteMain.CPP
index e6fb7026..656b59e5 100644
--- a/Adam/Gr/SpriteMain.CPP
+++ b/Adam/Gr/SpriteMain.CPP
@@ -433,7 +433,7 @@ CSprite *SMPolyLineFamily(I64 eletype,CDC *dc,I64 x,I64 y,I64 a1,I64 a2,
}
} while (msg_code!=MSG_IP_R_UP);
- switch(eletype) {
+ switch (eletype) {
case SPT_POLYLINE:
if (num>1) {
result=CAlloc(SpriteElemQuedBaseSize(SPT_POLYLINE)+num*sizeof(CD2I32));
diff --git a/Apps/TimeOut/TimeOut.CPP b/Apps/TimeOut/TimeOut.CPP
index 07a7037f..6399a592 100644
--- a/Apps/TimeOut/TimeOut.CPP
+++ b/Apps/TimeOut/TimeOut.CPP
@@ -596,9 +596,9 @@ U0 TimeOut()
x+=Fs->pix_width;
//It takes too much CPU do do all these all the time.
- nobound_switch (main_loop_pass&7) {
+ switch [main_loop_pass&7] {
case 0:
- nobound_switch (main_loop_pass>>3&7) {
+ switch [main_loop_pass>>3&7] {
case 0:
if (--y<20)
game_over=TRUE;
diff --git a/Compiler/BackA.CPP b/Compiler/BackA.CPP
index 0cfa939e..877f0fc5 100644
--- a/Compiler/BackA.CPP
+++ b/Compiler/BackA.CPP
@@ -351,7 +351,7 @@ U0 ICMulEqu(CIntermediateCode *tempi,I64 ip)
r=tempi->a1.reg;
else
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,
- tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,ip);
if (r>7)
j=0xC0004D;
@@ -363,13 +363,13 @@ U0 ICMulEqu(CIntermediateCode *tempi,I64 ip)
ICU24(tempi,0x6900+j+(r&7)<<16+(r&7)<<19);
ICU32(tempi,i);
}
- ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,TY_REG+RT_I64,r,0,ip);
} else {
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,
tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip);
ICMov(tempi,TY_REG+RT_I64,REG_RBX,0,
- TY_DISP+tempi->a1.type_pointed,REG_RCX,0,ip);
+ TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0,ip);
r=REG_RBX;
if (MIN_I8<=i<=MAX_I8)
ICU32(tempi,i<<24+0xDB6B48);
@@ -377,7 +377,7 @@ U0 ICMulEqu(CIntermediateCode *tempi,I64 ip)
ICU24(tempi,0xDB6948);
ICU32(tempi,i);
}
- ICMov(tempi,TY_DISP+tempi->a1.type_pointed,REG_RCX,0,
+ ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0,
TY_REG+RT_I64,REG_RBX,0,ip);
}
} else {
@@ -388,7 +388,7 @@ U0 ICMulEqu(CIntermediateCode *tempi,I64 ip)
if (tempi->ic_flags & ICF_NOT_ADDR) {
if (tempi->ic_flags & ICF_A1_FIRST) {
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,
- tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,ip);
ICMov(tempi,TY_REG+RT_I64,REG_RBX,0,
tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip);
@@ -396,11 +396,11 @@ U0 ICMulEqu(CIntermediateCode *tempi,I64 ip)
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,
tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip);
ICMov(tempi,TY_REG+RT_I64,REG_RBX,0,
- tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,ip);
}
ICU24(tempi,i);
- ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,TY_REG+RT_I64,REG_RAX,0,ip);
} else {
if (tempi->ic_flags & ICF_A1_FIRST) {
@@ -415,9 +415,9 @@ U0 ICMulEqu(CIntermediateCode *tempi,I64 ip)
tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip);
}
ICMov(tempi,TY_REG+RT_I64,REG_RBX,0,
- TY_DISP+tempi->a1.type_pointed,REG_RCX,0,ip);
+ TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0,ip);
ICU24(tempi,i);
- ICMov(tempi,TY_DISP+tempi->a1.type_pointed,REG_RCX,0,
+ ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0,
TY_REG+RT_I64,REG_RAX,0,ip);
}
}
@@ -454,7 +454,7 @@ U0 ICDivEqu(CIntermediateCode *tempi,Bool is_mod,I64 ip)
if (tempi->ic_flags & ICF_NOT_ADDR) {
if (tempi->ic_flags & ICF_A1_FIRST) {
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,
- tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,ip);
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,
tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip);
@@ -462,7 +462,7 @@ U0 ICDivEqu(CIntermediateCode *tempi,Bool is_mod,I64 ip)
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,
tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip);
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,
- tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,ip);
}
if (tempi->ic_class->raw_type&1) {
@@ -473,10 +473,10 @@ U0 ICDivEqu(CIntermediateCode *tempi,Bool is_mod,I64 ip)
ICU24(tempi,0xF9F748);
}
if (is_mod)
- ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,TY_REG+RT_I64,REG_RDX,0,ip);
else
- ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,TY_REG+RT_I64,REG_RAX,0,ip);
} else {
if (tempi->ic_flags & ICF_A1_FIRST) {
@@ -492,7 +492,7 @@ U0 ICDivEqu(CIntermediateCode *tempi,Bool is_mod,I64 ip)
tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip);
}
//dangerous might clobber RBX in Mov, but it doesn't
- ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,TY_DISP+tempi->a1.type_pointed,
+ ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,TY_DISP+tempi->a1.type_pointed_to,
REG_RBX,0,ip);
if (tempi->ic_class->raw_type&1) {
ICZero(tempi,REG_RDX);
@@ -502,10 +502,10 @@ U0 ICDivEqu(CIntermediateCode *tempi,Bool is_mod,I64 ip)
ICU24(tempi,0xF9F748);
}
if (is_mod)
- ICMov(tempi,TY_DISP+tempi->a1.type_pointed,REG_RBX,0,
+ ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,REG_RBX,0,
TY_REG+RT_I64,REG_RDX,0,ip);
else
- ICMov(tempi,TY_DISP+tempi->a1.type_pointed,REG_RBX,0,
+ ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,REG_RBX,0,
TY_REG+RT_I64,REG_RAX,0,ip);
}
if (tempi->r.type&TY_MASK) {
@@ -542,7 +542,7 @@ U0 ICMod(CIntermediateCode *tempi,I64 ip)
TY_REG+RT_I64,REG_RDX,0,ip);
}
-U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed,
+U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed_to,
I64 t1,I64 r1,I64 d1,I64 t2,I64 r2,I64 d2,
I64 t3,I64 r3,I64 d3,I64 op,I64 ip)
{
@@ -551,14 +551,14 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed,
if (tempi->ic_flags & ICF_NOT_ADDR) {
if (t3&TY_MASK==TY_IMM) {
ICAddSubEctImm(tempi,
- t2&TY_MASK+type_pointed,r2,d2,t2&TY_MASK+
- type_pointed,r2,d2,d3,op,ip);
+ t2&TY_MASK+type_pointed_to,r2,d2,t2&TY_MASK+
+ type_pointed_to,r2,d2,d3,op,ip);
if (t1&TY_MASK)
- ICMov(tempi,t1,r1,d1,t2&TY_MASK+type_pointed,r2,d2,ip);
+ ICMov(tempi,t1,r1,d1,t2&TY_MASK+type_pointed_to,r2,d2,ip);
return;
} else {
done=FALSE;
- if (type_pointed>=RT_I64) {
+ if (type_pointed_to>=RT_I64) {
if (!(t1&TY_MASK) &&
TY_REG<=t2&TY_MASK<=TY_RIP_DISP32) {
if (t3&TY_MASK==TY_REG)
@@ -567,7 +567,7 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed,
temp=REG_RCX;
ICMov(tempi,TY_REG+RT_I64,temp,0,t3,r3,d3,ip);
}
- i=ICModr1(temp,t2&TY_MASK+type_pointed,r2,d2);
+ i=ICModr1(temp,t2&TY_MASK+type_pointed_to,r2,d2);
if (tempi->ic_flags&ICF_LOCK)
ICU8(tempi,OC_LOCK_PREFIX);
ICRex(tempi,i.u8[1]);
@@ -583,13 +583,13 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed,
result_reg=REG_RCX;
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip);
}
- i=ICModr1(result_reg,t3&TY_MASK+type_pointed,r3,d3);
+ i=ICModr1(result_reg,t3&TY_MASK+type_pointed_to,r3,d3);
if (tempi->ic_flags&ICF_LOCK)
ICU8(tempi,OC_LOCK_PREFIX);
ICRex(tempi,i.u8[1]);
ICU16(tempi,i.u8[2]<<8+op.u8[0]);
ICModr2(tempi,i,d3,ip+4);
- ICMov(tempi,t2&TY_MASK+type_pointed,r2,d2,
+ ICMov(tempi,t2&TY_MASK+type_pointed_to,r2,d2,
TY_REG+RT_I64,result_reg,0,ip);
done=TRUE;
}
@@ -601,7 +601,7 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed,
else {
result_reg=REG_RCX;
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,
- t2&TY_MASK+type_pointed,r2,d2,ip);
+ t2&TY_MASK+type_pointed_to,r2,d2,ip);
}
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,t3,r3,d3,ip);
} else {
@@ -611,7 +611,7 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed,
else {
result_reg=REG_RCX;
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,
- t2&TY_MASK+type_pointed,r2,d2,ip);
+ t2&TY_MASK+type_pointed_to,r2,d2,ip);
}
}
if (tempi->ic_flags&ICF_LOCK)
@@ -621,7 +621,7 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed,
else
ICU8(tempi,0x48);
ICU16(tempi,0xC000+op.u8[0]+(result_reg&7)<<11);
- ICMov(tempi,t2&TY_MASK+type_pointed,r2,d2,
+ ICMov(tempi,t2&TY_MASK+type_pointed_to,r2,d2,
TY_REG+RT_I64,result_reg,0,ip);
}
}
@@ -631,25 +631,25 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed,
if (!d3.u32[1]) {
if (tempi->ic_flags&ICF_NO_DEPEND_RESULT &&
t2&TY_MASK==TY_REG && d3(U64)<=MAX_I8) {
- ICSlashOp(tempi,TY_DISP+type_pointed,r2,0,0x838000+op.u8[4],ip);
+ ICSlashOp(tempi,TY_DISP+type_pointed_to,r2,0,0x838000+op.u8[4],ip);
ICU8(tempi,d3);
done=TRUE;
} 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);
+ TY_DISP+type_pointed_to,REG_RCX,0,ip);
result_reg=REG_RAX;
if (tempi->ic_flags&ICF_LOCK)
ICU8(tempi,OC_LOCK_PREFIX);
ICU16(tempi,op.u8[3]<<8+0x40);
ICU32(tempi,d3);
- ICMov(tempi,TY_DISP+type_pointed,REG_RCX,0,
+ ICMov(tempi,TY_DISP+type_pointed_to,REG_RCX,0,
TY_REG+RT_I64,result_reg,0,ip);
done=TRUE;
- } else if (type_pointed&RT_MASKic_flags&ICF_LOCK)
ICU8(tempi,OC_LOCK_PREFIX);
@@ -663,7 +663,7 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed,
ICU16(tempi,op.u8[2]<<8+0x40);
ICU8(tempi,d3);
}
- ICMov(tempi,TY_DISP+type_pointed,REG_RCX,0,
+ ICMov(tempi,TY_DISP+type_pointed_to,REG_RCX,0,
TY_REG+RT_I64,result_reg,0,ip);
done=TRUE;
}
@@ -677,13 +677,14 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed,
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,t3,r3,d3,ip);
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip);
}
- ICMov(tempi,TY_REG+RT_I64,REG_RBX,0,TY_DISP+type_pointed,REG_RCX,0,ip);
+ ICMov(tempi,TY_REG+RT_I64,REG_RBX,0,TY_DISP+type_pointed_to,REG_RCX,0,ip);
result_reg=REG_RBX;
if (tempi->ic_flags&ICF_LOCK)
ICU8(tempi,OC_LOCK_PREFIX);
ICU8(tempi,0x48);
ICU16(tempi,0xC000+op.u8[0]+(result_reg&7)<<11);
- ICMov(tempi,TY_DISP+type_pointed,REG_RCX,0,TY_REG+RT_I64,result_reg,0,ip);
+ ICMov(tempi,TY_DISP+type_pointed_to,REG_RCX,0,
+ TY_REG+RT_I64,result_reg,0,ip);
}
}
if (t1&TY_MASK)
@@ -723,8 +724,9 @@ U0 ICShift(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,
ICMov(tempi,t1,r1,d1,TY_REG+RT_I64,result_reg,0,ip);
}
-U0 ICShiftEqu(CIntermediateCode *tempi,I64 type_pointed,I64 t1,I64 r1,I64 d1,
- I64 t2,I64 r2,I64 d2,I64 t3,I64 r3,I64 d3,I64 us,I64 is,I64 ip)
+U0 ICShiftEqu(CIntermediateCode *tempi,I64 type_pointed_to,
+ I64 t1,I64 r1,I64 d1,I64 t2,I64 r2,I64 d2,I64 t3,I64 r3,I64 d3,
+ I64 us,I64 is,I64 ip)
{
I64 result_reg;
if (tempi->ic_class->raw_type&1 || tempi->ic_flags & ICF_USE_UNSIGNED)
@@ -735,7 +737,8 @@ U0 ICShiftEqu(CIntermediateCode *tempi,I64 type_pointed,I64 t1,I64 r1,I64 d1,
result_reg=r2;
else {
result_reg=REG_RAX;
- ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,t2&TY_MASK+type_pointed,r2,d2,ip);
+ ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,
+ t2&TY_MASK+type_pointed_to,r2,d2,ip);
}
if (t3&TY_MASK!=TY_IMM)
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t3,r3,d3,ip);
@@ -746,7 +749,8 @@ U0 ICShiftEqu(CIntermediateCode *tempi,I64 type_pointed,I64 t1,I64 r1,I64 d1,
result_reg=r2;
else {
result_reg=REG_RAX;
- ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,t2&TY_MASK+type_pointed,r2,d2,ip);
+ ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,
+ t2&TY_MASK+type_pointed_to,r2,d2,ip);
}
}
if (result_reg>7)
@@ -762,7 +766,7 @@ U0 ICShiftEqu(CIntermediateCode *tempi,I64 type_pointed,I64 t1,I64 r1,I64 d1,
}
} else
ICU16(tempi,is.u16[1]+(result_reg&7)<<8);
- ICMov(tempi,t2&TY_MASK+type_pointed,r2,d2,TY_REG+RT_I64,result_reg,0,ip);
+ ICMov(tempi,t2&TY_MASK+type_pointed_to,r2,d2,TY_REG+RT_I64,result_reg,0,ip);
} else {
if (tempi->ic_flags & ICF_A1_FIRST) {
ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,t2,r2,d2,ip);
@@ -773,7 +777,7 @@ U0 ICShiftEqu(CIntermediateCode *tempi,I64 type_pointed,I64 t1,I64 r1,I64 d1,
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t3,r3,d3,ip);
ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,t2,r2,d2,ip);
}
- ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,TY_DISP+type_pointed,REG_RDX,0,ip);
+ ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,TY_DISP+type_pointed_to,REG_RDX,0,ip);
result_reg=REG_RAX;
ICU8(tempi,0x48);
if (t3&TY_MASK==TY_IMM) {
@@ -785,7 +789,8 @@ U0 ICShiftEqu(CIntermediateCode *tempi,I64 type_pointed,I64 t1,I64 r1,I64 d1,
}
} else
ICU16(tempi,is.u16[1]+(result_reg&7)<<8);
- ICMov(tempi,TY_DISP+type_pointed,REG_RDX,0,TY_REG+RT_I64,result_reg,0,ip);
+ ICMov(tempi,
+ TY_DISP+type_pointed_to,REG_RDX,0,TY_REG+RT_I64,result_reg,0,ip);
}
if (t1&TY_MASK)
ICMov(tempi,t1,r1,d1,TY_REG+RT_I64,result_reg,0,ip);
diff --git a/Compiler/BackB.CPP b/Compiler/BackB.CPP
index 0b744c10..37f30dfb 100644
--- a/Compiler/BackB.CPP
+++ b/Compiler/BackB.CPP
@@ -397,17 +397,17 @@ U0 ICPreIncDec(CIntermediateCode *tempi,I64 op,I64 ip)
if (tempi->ic_flags & ICF_NOT_ADDR) {
if (tempc->ptr_stars_cnt && tempc1->size!=1) {
ICAddSubEctImm(tempi,
- tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,
- tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,tempc1->size,op.u16[3],ip);
} else
ICSlashOp(tempi,
- tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,op,ip);
if (tempi->r.type&TY_MASK)
ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
- tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,ip);
} else {
if (tempi->a1.type&TY_MASK==TY_REG)
@@ -419,15 +419,15 @@ U0 ICPreIncDec(CIntermediateCode *tempi,I64 op,I64 ip)
}
if (tempc->ptr_stars_cnt &&
tempc1->size!=1) {
- ICAddSubEctImm(tempi,TY_DISP+tempi->a1.type_pointed,r,0,
- TY_DISP+tempi->a1.type_pointed,r,0,
+ ICAddSubEctImm(tempi,TY_DISP+tempi->a1.type_pointed_to,r,0,
+ TY_DISP+tempi->a1.type_pointed_to,r,0,
tempc1->size,op.u16[3],ip);
} else
ICSlashOp(tempi,
- TY_DISP+tempi->a1.type_pointed,r,0,op,ip);
+ TY_DISP+tempi->a1.type_pointed_to,r,0,op,ip);
if (tempi->r.type&TY_MASK)
ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
- TY_DISP+tempi->a1.type_pointed,r,0,ip);
+ TY_DISP+tempi->a1.type_pointed_to,r,0,ip);
}
}
@@ -438,17 +438,17 @@ U0 ICPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip)
if (tempi->ic_flags & ICF_NOT_ADDR) {
if (tempi->r.type&TY_MASK)
ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
- tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,ip);
if (tempc->ptr_stars_cnt && tempc1->size!=1)
ICAddSubEctImm(tempi,
- tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,
- tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,tempc1->size,op.u16[3],ip);
else
ICSlashOp(tempi,
- tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,op,ip);
} else {
if (tempi->a1.type&TY_MASK==TY_REG &&
@@ -461,12 +461,12 @@ U0 ICPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip)
}
if (tempi->r.type&TY_MASK)
ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
- TY_DISP+tempi->a1.type_pointed,r,0,ip);
+ TY_DISP+tempi->a1.type_pointed_to,r,0,ip);
if (tempc->ptr_stars_cnt && tempc1->size!=1)
- ICAddSubEctImm(tempi,TY_DISP+tempi->a1.type_pointed,r,0,
- TY_DISP+tempi->a1.type_pointed,r,0,tempc1->size,op.u16[3],ip);
+ ICAddSubEctImm(tempi,TY_DISP+tempi->a1.type_pointed_to,r,0,
+ TY_DISP+tempi->a1.type_pointed_to,r,0,tempc1->size,op.u16[3],ip);
else
- ICSlashOp(tempi,TY_DISP+tempi->a1.type_pointed,r,0,op,ip);
+ ICSlashOp(tempi,TY_DISP+tempi->a1.type_pointed_to,r,0,op,ip);
}
}
@@ -475,8 +475,8 @@ U0 ICDerefPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip)
I64 t,r;
CHashClass *tempc1=tempi->ic_class;
t=tempi->r.type&RT_MASK;
- if (t>tempi->a1.type_pointed)
- t=tempi->a1.type_pointed;
+ if (t>tempi->a1.type_pointed_to)
+ t=tempi->a1.type_pointed_to;
if (tempi->ic_flags & ICF_NOT_ADDR) {
if (tempi->a1.type&TY_MASK==TY_REG)
r=tempi->a1.reg;
@@ -526,7 +526,7 @@ U0 ICAssignPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip)
tempi->a1.type&TY_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp,ip);
r=REG_RDX;
}
- ICMov(tempi,TY_DISP+tempi->a1.type_pointed,r,0,
+ ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,r,0,
tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip);
if (tempi->r.type&TY_MASK)
ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
@@ -540,7 +540,7 @@ U0 ICAssignPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip)
ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,
tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip);
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,TY_DISP+RT_I64,REG_RDX,0,ip);
- ICMov(tempi,TY_DISP+tempi->a1.type_pointed,REG_RCX,0,
+ ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0,
tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip);
if (tempi->r.type&TY_MASK)
ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
diff --git a/Compiler/BackC.CPP b/Compiler/BackC.CPP
index 121890b7..355d5bcd 100644
--- a/Compiler/BackC.CPP
+++ b/Compiler/BackC.CPP
@@ -160,13 +160,13 @@ U0 ICAssign(CIntermediateCode *tempi,I64 ip)
{
CIntermediateCode *tempi1;
if (tempi->ic_flags & ICF_NOT_ADDR) {
- ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,
tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip);
if (tempi->r.type&TY_MASK) {
if (tempi->a1.type&TY_MASK==TY_REG)
ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
- tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,ip);
else
ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
@@ -182,7 +182,8 @@ U0 ICAssign(CIntermediateCode *tempi,I64 ip)
tempi->a2.reg==tempi->a1.reg ||
tempi->r.type&TY_MASK ||
tempi1->ic_flags&~ICG_NO_CVT_MASK) {
- ICMov(tempi,TY_DISP+tempi->a1.type_pointed,tempi->a1.reg,tempi->a1.disp,
+ ICMov(tempi,
+ TY_DISP+tempi->a1.type_pointed_to,tempi->a1.reg,tempi->a1.disp,
tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip);
if (tempi->r.type&TY_MASK)
ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
@@ -192,14 +193,14 @@ U0 ICAssign(CIntermediateCode *tempi,I64 ip)
~ICF_CODE_FINAL|ICF_DONT_RESTORE;
tempi->a1.disp=tempi1->ic_data;
OptSetNOP1(tempi1); //This better not be last pass!
- ICMov(tempi,TY_DISP+tempi->a1.type_pointed,
+ ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,
tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip);
}
} else {
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,
tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip);
- ICMov(tempi,TY_DISP+tempi->a1.type_pointed,REG_RCX,0,
+ ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0,
tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip);
if (tempi->r.type&TY_MASK)
ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
@@ -706,7 +707,7 @@ U0 ICAndEqu(CIntermediateCode *tempi,I64 ip2)
return;
}
}
- ICAddSubEctEqu(tempi,tempi->a1.type_pointed,
+ ICAddSubEctEqu(tempi,tempi->a1.type_pointed_to,
tempi->r.type,tempi->r.reg,tempi->r.disp,
tempi->a1.type,tempi->a1.reg,tempi->a1.disp,
tempi->a2.type,tempi->a2.reg,tempi->a2.disp,0x210425240423,ip2);
@@ -727,7 +728,7 @@ U0 ICOrEqu(CIntermediateCode *tempi,I64 ip2)
return;
}
}
- ICAddSubEctEqu(tempi,tempi->a1.type_pointed,
+ ICAddSubEctEqu(tempi,tempi->a1.type_pointed_to,
tempi->r.type,tempi->r.reg,tempi->r.disp,
tempi->a1.type,tempi->a1.reg,tempi->a1.disp,
tempi->a2.type,tempi->a2.reg,tempi->a2.disp,0x09010D0C010B,ip2);
@@ -748,7 +749,7 @@ U0 ICXorEqu(CIntermediateCode *tempi,I64 ip2)
return;
}
}
- ICAddSubEctEqu(tempi,tempi->a1.type_pointed,
+ ICAddSubEctEqu(tempi,tempi->a1.type_pointed_to,
tempi->r.type,tempi->r.reg,tempi->r.disp,
tempi->a1.type,tempi->a1.reg,tempi->a1.disp,
tempi->a2.type,tempi->a2.reg,tempi->a2.disp,0x310635340633,ip2);
diff --git a/Compiler/BackFA.CPP b/Compiler/BackFA.CPP
index 5e8c148e..c2db8ef9 100644
--- a/Compiler/BackFA.CPP
+++ b/Compiler/BackFA.CPP
@@ -9,7 +9,7 @@ U0 CmpNoteFloatOp(CCmpCtrl *cc,CIntermediateCode *tempi,
Bool link=FALSE;
if (cc->pass==7 && cc->last_float_op_ic &&
cc->last_dont_popable && dont_pushable) {
- nobound_switch (pos) {
+ switch [pos] {
case CN_A2:
if (cc->last_float_op_ic!=tempi && cc->dont_push_float)
link=TRUE;
@@ -589,15 +589,15 @@ U0 ICFModEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip)
if (tempi->ic_flags & ICF_NOT_ADDR) {
if (dont_push_float) {
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,
- tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,ip);
- if (tempi->a1.type_pointed!=RT_F64)
+ if (tempi->a1.type_pointed_to!=RT_F64)
ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,FALSE,ip);
} else if (tempi->ic_flags & ICF_A1_FIRST) {
ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,
- tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,ip);
- if (tempi->a1.type_pointed!=RT_F64)
+ if (tempi->a1.type_pointed_to!=RT_F64)
ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip);
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,
tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip);
@@ -605,28 +605,28 @@ U0 ICFModEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip)
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,
tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip);
ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,
- tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,ip);
- if (tempi->a1.type_pointed!=RT_F64)
+ if (tempi->a1.type_pointed_to!=RT_F64)
ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip);
}
//TODO: unpushable,unpop? Not sure
ICCopyTemplate(cc,tempi,CMP_TEMPLATE_MOD,FALSE,FALSE,FALSE,CN_MAIN);
- if (tempi->a1.type_pointed!=RT_F64)
+ if (tempi->a1.type_pointed_to!=RT_F64)
ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,TRUE,ip);
- ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,TY_REG+RT_I64,REG_RAX,0,ip);
if (tempi->r.type&TY_MASK)
ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
- tempi->a1.type&TY_MASK+tempi->a1.type_pointed,
+ tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to,
tempi->a1.reg,tempi->a1.disp,ip);
} else {
if (dont_push_float) {
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,tempi->a1.type,
tempi->a1.reg,tempi->a1.disp,ip);
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,
- TY_DISP+tempi->a1.type_pointed,REG_RCX,0,ip);
- if (tempi->a1.type_pointed!=RT_F64)
+ TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0,ip);
+ if (tempi->a1.type_pointed_to!=RT_F64)
ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,FALSE,ip);
} else if (tempi->ic_flags & ICF_A1_FIRST) {
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,tempi->a1.type,
@@ -634,8 +634,8 @@ U0 ICFModEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip)
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,
tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip);
ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,
- TY_DISP+tempi->a1.type_pointed,REG_RCX,0,ip);
- if (tempi->a1.type_pointed!=RT_F64)
+ TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0,ip);
+ if (tempi->a1.type_pointed_to!=RT_F64)
ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip);
} else {
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,
@@ -643,15 +643,15 @@ U0 ICFModEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip)
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,tempi->a1.type,
tempi->a1.reg,tempi->a1.disp,ip);
ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,
- TY_DISP+tempi->a1.type_pointed,REG_RCX,0,ip);
- if (tempi->a1.type_pointed!=RT_F64)
+ TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0,ip);
+ if (tempi->a1.type_pointed_to!=RT_F64)
ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip);
}
//TODO: unpushable,unpop? Not sure
ICCopyTemplate(cc,tempi,CMP_TEMPLATE_MOD,FALSE,FALSE,FALSE,CN_MAIN);
- if (tempi->a1.type_pointed!=RT_F64)
+ if (tempi->a1.type_pointed_to!=RT_F64)
ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,TRUE,ip);
- ICMov(tempi,TY_DISP+tempi->a1.type_pointed,REG_RCX,0,
+ ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0,
TY_REG+RT_I64,REG_RAX,0,ip);
if (tempi->r.type&TY_MASK)
ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
diff --git a/Compiler/BackFB.CPP b/Compiler/BackFB.CPP
index 9f35b1d0..5cd07fbe 100644
--- a/Compiler/BackFB.CPP
+++ b/Compiler/BackFB.CPP
@@ -16,31 +16,32 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
if (tempi->ic_flags & ICF_NOT_ADDR) {
p1_mem=FALSE;
if (dont_push_float) {
- if (a1->type_pointed!=RT_F64) {
+ if (a1->type_pointed_to!=RT_F64) {
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,
- a1->type&TY_MASK+a1->type_pointed,a1->reg,a1->disp,ip);
+ a1->type&TY_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip);
ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,FALSE,ip);
ICPush(tempi,TY_REG+RT_I64,REG_RAX,0,ip);
t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0;
rsp_size+=8;
} else {
- if (a1->type_pointed>=RT_I64 && (a1->type&TY_MASK==TY_DISP ||
+ if (a1->type_pointed_to>=RT_I64 && (a1->type&TY_MASK==TY_DISP ||
a1->type&TY_MASK==TY_RIP_DISP32 || a1->type&TY_MASK==TY_SIB)) {
- t1=a1->type_pointed+a1->type&TY_MASK;
+ t1=a1->type_pointed_to+a1->type&TY_MASK;
r1=a1->reg;
d1=a1->disp;
p1_mem=TRUE;
} else {
- ICPush(tempi,a1->type_pointed+a1->type&TY_MASK,a1->reg,a1->disp,ip);
+ ICPush(tempi,
+ a1->type_pointed_to+a1->type&TY_MASK,a1->reg,a1->disp,ip);
t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0;
rsp_size+=8;
}
}
} else if (tempi->ic_flags & ICF_A1_FIRST) {
- if (a1->type_pointed!=RT_F64 || a2->type&TY_MASK==TY_STK) {
+ if (a1->type_pointed_to!=RT_F64 || a2->type&TY_MASK==TY_STK) {
ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,
- a1->type&TY_MASK+a1->type_pointed,a1->reg,a1->disp,ip);
- if (a1->type_pointed!=RT_F64)
+ a1->type&TY_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip);
+ if (a1->type_pointed_to!=RT_F64)
ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip);
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,
a2->type,a2->reg,a2->disp,ip);
@@ -50,14 +51,15 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8;
t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0;
} else {
- if (a1->type_pointed>=RT_I64 && (a1->type&TY_MASK==TY_DISP ||
+ if (a1->type_pointed_to>=RT_I64 && (a1->type&TY_MASK==TY_DISP ||
a1->type&TY_MASK==TY_RIP_DISP32 || a1->type&TY_MASK==TY_SIB)) {
- t1=a1->type_pointed+a1->type&TY_MASK;
+ t1=a1->type_pointed_to+a1->type&TY_MASK;
r1=a1->reg;
d1=a1->disp;
p1_mem=TRUE;
} else {
- ICPush(tempi,a1->type_pointed+a1->type&TY_MASK,a1->reg,a1->disp,ip);
+ ICPush(tempi,
+ a1->type_pointed_to+a1->type&TY_MASK,a1->reg,a1->disp,ip);
t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0;
rsp_size+=8;
}
@@ -83,11 +85,11 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
}
}
} else {
- if (a1->type_pointed!=RT_F64 || a1->type&TY_MASK==TY_STK) {
+ if (a1->type_pointed_to!=RT_F64 || a1->type&TY_MASK==TY_STK) {
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip);
ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,
- a1->type&TY_MASK+a1->type_pointed,a1->reg,a1->disp,ip);
- if (a1->type_pointed!=RT_F64)
+ a1->type&TY_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip);
+ if (a1->type_pointed_to!=RT_F64)
ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip);
ICU16(tempi,0x5052); //PUSH EDX PUSH EAX
rsp_size=16;
@@ -112,14 +114,15 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
rsp_size+=8;
}
}
- if (a1->type_pointed>=RT_I64 && (a1->type&TY_MASK==TY_DISP ||
+ if (a1->type_pointed_to>=RT_I64 && (a1->type&TY_MASK==TY_DISP ||
a1->type&TY_MASK==TY_RIP_DISP32 || a1->type&TY_MASK==TY_SIB)) {
- t1=a1->type_pointed+a1->type&TY_MASK;
+ t1=a1->type_pointed_to+a1->type&TY_MASK;
r1=a1->reg;
d1=a1->disp;
p1_mem=TRUE;
} else {
- ICPush(tempi,a1->type_pointed+a1->type&TY_MASK,a1->reg,a1->disp,ip);
+ ICPush(tempi,
+ a1->type_pointed_to+a1->type&TY_MASK,a1->reg,a1->disp,ip);
t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0;
rsp_size+=8;
if (r2==REG_RSP+REG_RSP<<8)
@@ -127,7 +130,7 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
}
}
}
- if (!rsp_size && !(p1_mem && a1->type_pointed==RT_F64)) {
+ if (!rsp_size && !(p1_mem && a1->type_pointed_to==RT_F64)) {
rsp_size=8;
ICAddRSP(tempi,-8);
}
@@ -143,7 +146,7 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
}
ICSlashOp(tempi,t1,r1,d1,op,ip);
CmpNoteFloatOp(cc,tempi,TRUE,FALSE,CN_MAIN);
- if (p1_mem && a1->type_pointed==RT_F64) {
+ if (p1_mem && a1->type_pointed_to==RT_F64) {
ICSlashOp(tempi,t1,r1,d1,SLASH_OP_FSTP,ip);
if (rsp_size)
ICAddRSP(tempi,rsp_size);
@@ -156,39 +159,39 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
SLASH_OP_FSTP,ip);
ICAddRSP(tempi,rsp_size-8);
}
- if (a1->type_pointed!=RT_F64) {
+ if (a1->type_pointed_to!=RT_F64) {
ICPop(tempi,TY_REG+RT_I64,REG_RAX,0,ip);
ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,TRUE,ip);
- ICMov(tempi,a1->type&TY_MASK+a1->type_pointed,a1->reg,a1->disp,
+ ICMov(tempi,a1->type&TY_MASK+a1->type_pointed_to,a1->reg,a1->disp,
TY_REG+RT_I64,REG_RAX,0,ip);
} else
- ICPop(tempi,a1->type_pointed+a1->type&TY_MASK,a1->reg,a1->disp,ip);
+ ICPop(tempi,a1->type_pointed_to+a1->type&TY_MASK,a1->reg,a1->disp,ip);
}
if (tempi->r.type&TY_MASK)
ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
- a1->type&TY_MASK+a1->type_pointed,a1->reg,a1->disp,ip);
+ a1->type&TY_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip);
} else {
- if (a1->type_pointed>=RT_I64)
+ if (a1->type_pointed_to>=RT_I64)
p1_mem=TRUE;
else
p1_mem=FALSE;
if (dont_push_float) {
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip);
- if (a1->type_pointed!=RT_F64) {
+ if (a1->type_pointed_to!=RT_F64) {
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,
- TY_DISP+a1->type_pointed,REG_RCX,0,ip);
+ TY_DISP+a1->type_pointed_to,REG_RCX,0,ip);
ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,FALSE,ip);
ICPush(tempi,TY_REG+RT_I64,REG_RAX,0,ip);
} else
- ICPush(tempi,a1->type_pointed+TY_DISP,REG_RCX,0,ip);
+ ICPush(tempi,a1->type_pointed_to+TY_DISP,REG_RCX,0,ip);
t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0;
rsp_size+=8;
} else if (tempi->ic_flags & ICF_A1_FIRST) {
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip);
- if (a1->type_pointed!=RT_F64 || a2->type&TY_MASK==TY_STK) {
+ if (a1->type_pointed_to!=RT_F64 || a2->type&TY_MASK==TY_STK) {
ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,
- TY_DISP+a1->type_pointed,REG_RCX,0,ip);
- if (a1->type_pointed!=RT_F64)
+ TY_DISP+a1->type_pointed_to,REG_RCX,0,ip);
+ if (a1->type_pointed_to!=RT_F64)
ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip);
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip);
@@ -197,7 +200,7 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8;
t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0;
} else {
- ICPush(tempi,TY_DISP+a1->type_pointed,REG_RCX,0,ip);
+ ICPush(tempi,TY_DISP+a1->type_pointed_to,REG_RCX,0,ip);
t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0;
rsp_size+=8;
if (a2->type&RT_MASK>=RT_I64 && (a2->type&TY_MASK==TY_DISP ||
@@ -222,12 +225,12 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
}
}
} else {
- if (a1->type_pointed!=RT_F64 || a1->type&TY_MASK==TY_STK) {
+ if (a1->type_pointed_to!=RT_F64 || a1->type&TY_MASK==TY_STK) {
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip);
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip);
ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,
- TY_DISP+a1->type_pointed,REG_RCX,0,ip);
- if (a1->type_pointed!=RT_F64)
+ TY_DISP+a1->type_pointed_to,REG_RCX,0,ip);
+ if (a1->type_pointed_to!=RT_F64)
ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip);
ICU16(tempi,0x5052); //PUSH EDX PUSH EAX
rsp_size=16;
@@ -253,14 +256,14 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
}
}
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip);
- ICPush(tempi,TY_DISP+a1->type_pointed,REG_RCX,0,ip);
+ ICPush(tempi,TY_DISP+a1->type_pointed_to,REG_RCX,0,ip);
t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0;
rsp_size+=8;
if (r2==REG_RSP+REG_RSP<<8)
d2+=8;
}
}
- if (!rsp_size && !(p1_mem && a1->type_pointed==RT_F64)) {
+ if (!rsp_size && !(p1_mem && a1->type_pointed_to==RT_F64)) {
rsp_size=8;
ICAddRSP(tempi,-8);
}
@@ -277,8 +280,8 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
}
ICSlashOp(tempi,t1,r1,d1,op,ip);
CmpNoteFloatOp(cc,tempi,TRUE,FALSE,CN_MAIN);
- if (p1_mem && a1->type_pointed==RT_F64) {
- ICSlashOp(tempi,TY_DISP+a1->type_pointed,REG_RCX,0,
+ if (p1_mem && a1->type_pointed_to==RT_F64) {
+ ICSlashOp(tempi,TY_DISP+a1->type_pointed_to,REG_RCX,0,
SLASH_OP_FSTP,ip);
if (rsp_size)
ICAddRSP(tempi,rsp_size);
@@ -292,9 +295,9 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip)
ICAddRSP(tempi,rsp_size-8);
}
ICPop(tempi,TY_REG+RT_I64,REG_RAX,0,ip);
- if (a1->type_pointed!=RT_F64)
+ if (a1->type_pointed_to!=RT_F64)
ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,TRUE,ip);
- ICMov(tempi,TY_DISP+a1->type_pointed,REG_RCX,0,
+ ICMov(tempi,TY_DISP+a1->type_pointed_to,REG_RCX,0,
TY_REG+RT_I64,REG_RAX,0,ip);
}
if (tempi->r.type&TY_MASK)
@@ -569,13 +572,13 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip,
U0 ICFMul(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip)
{
if (tempi->a1.type&TY_MASK==TY_IMM &&
- tempi->a1.type_pointed&RT_MASK==RT_F64 &&
+ tempi->a1.type_pointed_to&RT_MASK==RT_F64 &&
tempi->a1.disp(F64)==1.0) {
CmpNoteFloatOp(cc,tempi,FALSE,FALSE,CN_MAIN);
ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip);
} else if (tempi->a2.type&TY_MASK==TY_IMM &&
- tempi->a2.type_pointed&RT_MASK==RT_F64 &&
+ tempi->a2.type_pointed_to&RT_MASK==RT_F64 &&
tempi->a2.disp(F64)==1.0) {
CmpNoteFloatOp(cc,tempi,FALSE,FALSE,CN_MAIN);
ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
@@ -587,7 +590,7 @@ U0 ICFMul(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip)
U0 ICFDiv(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip)
{
if (tempi->a2.type&TY_MASK==TY_IMM &&
- tempi->a2.type_pointed&RT_MASK==RT_F64 &&
+ tempi->a2.type_pointed_to&RT_MASK==RT_F64 &&
tempi->a2.disp(F64)==1.0) {
CmpNoteFloatOp(cc,tempi,FALSE,FALSE,CN_MAIN);
ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
diff --git a/Compiler/BackLib.CPP b/Compiler/BackLib.CPP
index ad97d50f..79fbd4ac 100644
--- a/Compiler/BackLib.CPP
+++ b/Compiler/BackLib.CPP
@@ -222,7 +222,7 @@ I64 ICModr1(I64 r,I64 t2,I64 r2,I64 d2)
U0 ICModr2(CIntermediateCode *tempi,I64 i,I64 d,I64 ip=0)
{//t=0 means no SIB
- nobound_switch (i.u8[0]) {
+ switch [i.u8[0]] {
case MDR_REG:
break;
case MDR_INDIRECT_REG:
@@ -648,8 +648,8 @@ U0 ICDeref(CIntermediateCode *tempi,I64 ip)
{
I64 t;
t=tempi->r.type&RT_MASK;
- if (t>tempi->a1.type_pointed)
- t=tempi->a1.type_pointed;
+ if (t>tempi->a1.type_pointed_to)
+ t=tempi->a1.type_pointed_to;
if (tempi->a1.type&TY_MASK==TY_REG)
ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,
TY_DISP+t,tempi->a1.reg,tempi->a1.disp,ip);
diff --git a/Compiler/CExcept.CPP b/Compiler/CExcept.CPP
index 77c9ec4a..038e38ae 100644
--- a/Compiler/CExcept.CPP
+++ b/Compiler/CExcept.CPP
@@ -140,10 +140,10 @@ U0 ICClassPut(CHashClass *c)
U0 ICArgPut(CICArg *a)
{
- if (a->type_pointed)
+ if (a->type_pointed_to)
"%Z %Z %Z ",
a->type&RT_MASK,"ST_RAW_TYPES",
- a->type_pointed&RT_MASK,"ST_RAW_TYPES",
+ a->type_pointed_to&RT_MASK,"ST_RAW_TYPES",
a->type>>4,"ST_TY_TYPES";
else
"%Z %Z ",
diff --git a/Compiler/CExts.CPP b/Compiler/CExts.CPP
index 8d628294..0b11f2a5 100644
--- a/Compiler/CExts.CPP
+++ b/Compiler/CExts.CPP
@@ -3,7 +3,7 @@ import U0 DocBinsValidate(CDoc *doc);
import U0 DocDel(CDoc *doc);
import U0 DocLoad(CDoc *doc,U8 *src2,I64 size);
import CDoc *DocNew(U8 *filename=NULL,CTask *task=NULL);
-import CDocEntry *DocPrint(CDoc *doc,U8 *fmt,...);
+import CDocEntry *DocPrint(CDoc *doc=NULL,U8 *fmt,...);
import CDocEntry *DocPutLine(CDoc *doc,CDocEntry *doc_e);
import I64 DocSize(CDoc *doc);
import Bool DocWrite(CDoc *doc,Bool prompt=FALSE);
diff --git a/Compiler/CMain.CPP b/Compiler/CMain.CPP
index 6f25d08d..d44a3e96 100644
--- a/Compiler/CMain.CPP
+++ b/Compiler/CMain.CPP
@@ -184,7 +184,7 @@ U0 CmpFixUpJITAsm(CCmpCtrl *cc,CAOT *tempaot)
while (tempa) {
tempa1=tempa->next;
ptr=ip2+tempa->ip;
- nobound_switch (tempa->type) {
+ switch [tempa->type] {
case AAT_ADD_U8: *ptr(U8 *) +=ip2; break;
case AAT_SUB_U8: *ptr(U8 *) -=ip2; break;
case AAT_ADD_U16: *ptr(U16 *)+=ip2; break;
@@ -250,7 +250,7 @@ U0 CmpFixUpJITAsm(CCmpCtrl *cc,CAOT *tempaot)
}
if (tempex || g_lb) {
ptr=tempie->ip+ip2;
- nobound_switch (tempie->type) {
+ switch [tempie->type] {
case IET_REL_I0:
case IET_IMM_U0:
break;
@@ -313,7 +313,7 @@ U0 CmpFixUpAOTAsm(CCmpCtrl *cc,CAOT *tempaot)
tempa1=tempa->next;
tempa->next=aotc->abss;
ptr=tempaot->buf+tempaot->ip+tempa->ip;
- nobound_switch (tempa->type) {
+ switch [tempa->type] {
case AAT_ADD_U8: *ptr(U8 *)+=ip2; break;
case AAT_SUB_U8: *ptr(U8 *)-=ip2; break;
case AAT_ADD_U16: *ptr(U16 *)+=ip2; break;
@@ -350,7 +350,7 @@ U0 CmpFixUpAOTAsm(CCmpCtrl *cc,CAOT *tempaot)
ptr=tempaot->buf+tempaot->ip+tempie->ip;
if (g_lb) {
i=g_lb->addr+tempaot->buf;
- nobound_switch (tempie->type) {
+ switch [tempie->type] {
case IET_REL_I0:
case IET_IMM_U0:
break;
diff --git a/Compiler/Compiler.BIN b/Compiler/Compiler.BIN
index 094b50fb..a0883630 100644
Binary files a/Compiler/Compiler.BIN and b/Compiler/Compiler.BIN differ
diff --git a/Compiler/Compiler.MAP b/Compiler/Compiler.MAP
index 42f54cae..131e9918 100644
--- a/Compiler/Compiler.MAP
+++ b/Compiler/Compiler.MAP
@@ -21,11 +21,11 @@ $LK,"AsmStoreNum",A="FL:::/Compiler/Asm.CPP.Z,263",BI=18$
$LK,"MDR_SIB_D8_INDIRECT_REG",A="FL:::/Compiler/BackLib.CPP.Z,137"$
$LK,"OptPass012",A="FL:::/Compiler/OptPass012.CPP.Z,23",BI=19$
$LK,"MemberLstSize",A="FL:::/Compiler/LexLib.CPP.Z,191",BI=20$
-$LK,"ICQueIns",A="FL:::/Compiler/BackC.CPP.Z,411",BI=21$
+$LK,"ICQueIns",A="FL:::/Compiler/BackC.CPP.Z,412",BI=21$
$LK,"ICAndBranch",A="FL:::/Compiler/BackC.CPP.Z,1",BI=22$
$LK,"MDR_D8_INDIRECT_REG",A="FL:::/Compiler/BackLib.CPP.Z,134"$
$LK,"U",A="FL:::/Compiler/UAsm.CPP.Z,649",BI=23$
-$LK,"ICQueRem",A="FL:::/Compiler/BackC.CPP.Z,493",BI=24$
+$LK,"ICQueRem",A="FL:::/Compiler/BackC.CPP.Z,494",BI=24$
$LK,"CN_R",A="FL:::/Compiler/BackFA.CPP.Z,4"$
$LK,"OptLead1",A="FL:::/Compiler/OptLib.CPP.Z,73",BI=25$
$LK,"CmpNoteFloatOp",A="FL:::/Compiler/BackFA.CPP.Z,6",BI=26$
@@ -75,7 +75,7 @@ $LK,"ICAdd",A="FL:::/Compiler/PrsLib.CPP.Z,79",BI=53$
$LK,"CmpRawType",A="FL:::/Compiler/OptLib.CPP.Z,509",BI=54$
$LK,"ICFOpEqu",A="FL:::/Compiler/BackFB.CPP.Z,1",BI=55$
$LK,"LexExpressionI64",A="FL:::/Compiler/PrsExp.CPP.Z,1135",BI=56$
-$LK,"ICQueInsRev",A="FL:::/Compiler/BackC.CPP.Z,452",BI=57$
+$LK,"ICQueInsRev",A="FL:::/Compiler/BackC.CPP.Z,453",BI=57$
$LK,"LexExpression",A="FL:::/Compiler/PrsExp.CPP.Z,1163",BI=58$
$LK,"PrsExpression",A="FL:::/Compiler/PrsExp.CPP.Z,264",BI=59$
$LK,"PrsClassNew",A="FL:::/Compiler/PrsLib.CPP.Z,40",BI=60$
@@ -87,7 +87,7 @@ $LK,"OptPass5",A="FL:::/Compiler/OptPass5.CPP.Z,1",BI=64$
$LK,"OptPass6",A="FL:::/Compiler/OptPass6.CPP.Z,111",BI=65$
$LK,"Echo",A="FL:::/Compiler/CMisc.CPP.Z,24",BI=66$
$LK,"PrsGlblVarLst",A="FL:::/Compiler/PrsStmt.CPP.Z,201",BI=67$
-$LK,"ICQueInit",A="FL:::/Compiler/BackC.CPP.Z,397",BI=68$
+$LK,"ICQueInit",A="FL:::/Compiler/BackC.CPP.Z,398",BI=68$
$LK,"ICCmp",A="FL:::/Compiler/BackB.CPP.Z,136",BI=69$
$LK,"ICAddRSP",A="FL:::/Compiler/BackLib.CPP.Z,69",BI=70$
$LK,"ICDiv",A="FL:::/Compiler/BackA.CPP.Z,428",BI=71$
@@ -111,7 +111,7 @@ $LK,"OptSetNOP1",A="FL:::/Compiler/OptLib.CPP.Z,17",BI=87$
$LK,"OptPass789A",A="FL:::/Compiler/OptPass789A.CPP.Z,1",BI=88$
$LK,"OptSetNOP2",A="FL:::/Compiler/OptLib.CPP.Z,25",BI=89$
$LK,"FBO1_F64",A="FL:::/Compiler/OptLib.CPP.Z,94"$
-$LK,"ICXorEqu",A="FL:::/Compiler/BackC.CPP.Z,736",BI=90$
+$LK,"ICXorEqu",A="FL:::/Compiler/BackC.CPP.Z,737",BI=90$
$LK,"ICToUpper",A="FL:::/Compiler/BackB.CPP.Z,355",BI=91$
$LK,"AsmLexExpression",A="FL:::/Compiler/AsmLib.CPP.Z,129",BI=92$
$LK,"ICMov",A="FL:::/Compiler/BackLib.CPP.Z,435",BI=93$
@@ -126,12 +126,12 @@ $LK,"ICSub",A="FL:::/Compiler/BackA.CPP.Z,207",BI=99$
$LK,"COCFloatConstFind",A="FL:::/Compiler/PrsLib.CPP.Z,164",BI=100$
$LK,"ICPut",A="FL:::/Compiler/CExcept.CPP.Z,186",BI=101$
$LK,"PrsArrayDims",A="FL:::/Compiler/PrsVar.CPP.Z,247",BI=102$
-$LK,"ICSqr",A="FL:::/Compiler/BackC.CPP.Z,581",BI=103$
+$LK,"ICSqr",A="FL:::/Compiler/BackC.CPP.Z,582",BI=103$
$LK,"FBO1_NOT_CONST",A="FL:::/Compiler/OptLib.CPP.Z,92"$
$LK,"CMP_TEMPLATES_DONT_POP",A="FL:::/Compiler/Templates.CPP.Z,178"$
$LK,"PrsClass",A="FL:::/Compiler/PrsStmt.CPP.Z,1",BI=104$
$LK,"MemberMetaData",A="FL:::/Compiler/LexLib.CPP.Z,45",BI=105$
-$LK,"ICSwitch",A="FL:::/Compiler/BackC.CPP.Z,757",BI=106$
+$LK,"ICSwitch",A="FL:::/Compiler/BackC.CPP.Z,758",BI=106$
$LK,"OptBrNotZero",A="FL:::/Compiler/OptLib.CPP.Z,358",BI=107$
$LK,"LexPutToken",A="FL:::/Compiler/CExcept.CPP.Z,1",BI=108$
$LK,"SLASH_OP_FDIV",A="FL:::/Compiler/BackLib.CPP.Z,268"$
@@ -140,14 +140,14 @@ $LK,"UAsmHashLoad",A="FL:::/Compiler/UAsm.CPP.Z,188",BI=110$
$LK,"UnusedExternWarning",A="FL:::/Compiler/CExcept.CPP.Z,104",BI=111$
$LK,"SLASH_OP_FILD",A="FL:::/Compiler/BackLib.CPP.Z,273"$
$LK,"ICXorXor",A="FL:::/Compiler/BackB.CPP.Z,98",BI=112$
-$LK,"PrsTryBlk",A="FL:::/Compiler/PrsStmt.CPP.Z,831",BI=113$
+$LK,"PrsTryBlk",A="FL:::/Compiler/PrsStmt.CPP.Z,838",BI=113$
$LK,"CInit",A="FL:::/Compiler/CMain.CPP.Z,684",BI=114$
$LK,"MemberMetaFind",A="FL:::/Compiler/LexLib.CPP.Z,56",BI=115$
$LK,"ExePrint2",A="FL:::/Compiler/CMain.CPP.Z,646",BI=116$
$LK,"FBO1_INT",A="FL:::/Compiler/OptLib.CPP.Z,93"$
$LK,"PE_DO_UNARY_OP",A="FL:::/Compiler/PrsExp.CPP.Z,8"$
$LK,"PrsVarInit",A="FL:::/Compiler/PrsVar.CPP.Z,1",BI=117$
-$LK,"ICOrEqu",A="FL:::/Compiler/BackC.CPP.Z,715",BI=118$
+$LK,"ICOrEqu",A="FL:::/Compiler/BackC.CPP.Z,716",BI=118$
$LK,"ICModr1",A="FL:::/Compiler/BackLib.CPP.Z,141",BI=119$
$LK,"ICModr2",A="FL:::/Compiler/BackLib.CPP.Z,223",BI=120$
$LK,"SLASH_OP_FMUL",A="FL:::/Compiler/BackLib.CPP.Z,267"$
@@ -162,20 +162,20 @@ $LK,"SLASH_OP_IMUL",A="FL:::/Compiler/BackLib.CPP.Z,259"$
$LK,"SLASH_OP_FSTP",A="FL:::/Compiler/BackLib.CPP.Z,271"$
$LK,"COCDel",A="FL:::/Compiler/PrsLib.CPP.Z,186",BI=127$
$LK,"PE_UNARY_TERM1",A="FL:::/Compiler/PrsExp.CPP.Z,1"$
-$LK,"ICFAdd",A="FL:::/Compiler/BackFB.CPP.Z,599",BI=128$
+$LK,"ICFAdd",A="FL:::/Compiler/BackFB.CPP.Z,602",BI=128$
$LK,"PE_UNARY_TERM2",A="FL:::/Compiler/PrsExp.CPP.Z,2"$
$LK,"CmdLinePmt",A="FL:::/Compiler/CMisc.CPP.Z,88",BI=129$
$LK,"AsmMakeArgMask",A="FL:::/Compiler/Asm.CPP.Z,172",BI=130$
$LK,"COCHeaderPut",A="FL:::/Compiler/PrsLib.CPP.Z,229",BI=131$
$LK,"PrsGlblInit",A="FL:::/Compiler/PrsVar.CPP.Z,206",BI=132$
-$LK,"ICAndEqu",A="FL:::/Compiler/BackC.CPP.Z,694",BI=133$
+$LK,"ICAndEqu",A="FL:::/Compiler/BackC.CPP.Z,695",BI=133$
$LK,"LexD2I32",A="FL:::/Compiler/CMisc.CPP.Z,52",BI=134$
$LK,"MemberLstNew",A="FL:::/Compiler/LexLib.CPP.Z,150",BI=135$
$LK,"LexD3I32",A="FL:::/Compiler/CMisc.CPP.Z,68",BI=136$
$LK,"OptClassFwd",A="FL:::/Compiler/OptLib.CPP.Z,9",BI=137$
$LK,"ICFCmp",A="FL:::/Compiler/BackFA.CPP.Z,545",BI=138$
$LK,"PrsSwitch",A="FL:::/Compiler/PrsStmt.CPP.Z,575",BI=139$
-$LK,"ICFDiv",A="FL:::/Compiler/BackFB.CPP.Z,587",BI=140$
+$LK,"ICFDiv",A="FL:::/Compiler/BackFB.CPP.Z,590",BI=140$
$LK,"AOTStoreCodeU8At",A="FL:::/Compiler/AsmLib.CPP.Z,108",BI=141$
$LK,"PE_PUSH_LOWER",A="FL:::/Compiler/PrsExp.CPP.Z,11"$
$LK,"OptPass6Lag",A="FL:::/Compiler/OptPass6.CPP.Z,28",BI=142$
@@ -188,7 +188,7 @@ $LK,"PrsOffsetOf",A="FL:::/Compiler/PrsExp.CPP.Z,348",BI=148$
$LK,"MDR_REG",A="FL:::/Compiler/BackLib.CPP.Z,132"$
$LK,"GetOption",A="FL:::/Compiler/CMisc.CPP.Z,6",BI=149$
$LK,"PrsDoWhile",A="FL:::/Compiler/PrsStmt.CPP.Z,503",BI=150$
-$LK,"ICShift",A="FL:::/Compiler/BackA.CPP.Z,693",BI=151$
+$LK,"ICShift",A="FL:::/Compiler/BackA.CPP.Z,694",BI=151$
$LK,"ICFMod",A="FL:::/Compiler/BackFA.CPP.Z,249",BI=152$
$LK,"COCPop",A="FL:::/Compiler/PrsLib.CPP.Z,121",BI=153$
$LK,"PrsExpression2",A="FL:::/Compiler/PrsExp.CPP.Z,65",BI=154$
@@ -196,12 +196,12 @@ $LK,"SLASH_OP_PUSH",A="FL:::/Compiler/BackLib.CPP.Z,262"$
$LK,"PE_DEREFERENCE",A="FL:::/Compiler/PrsExp.CPP.Z,5"$
$LK,"LexPopRestore",A="FL:::/Compiler/LexLib.CPP.Z,23",BI=155$
$LK,"ICUnaries",A="FL:::/Compiler/BackB.CPP.Z,1",BI=156$
-$LK,"ICFMul",A="FL:::/Compiler/BackFB.CPP.Z,569",BI=157$
-$LK,"ICShiftEqu",A="FL:::/Compiler/BackA.CPP.Z,726",BI=158$
+$LK,"ICFMul",A="FL:::/Compiler/BackFB.CPP.Z,572",BI=157$
+$LK,"ICShiftEqu",A="FL:::/Compiler/BackA.CPP.Z,727",BI=158$
$LK,"LexExpression2Bin",A="FL:::/Compiler/PrsExp.CPP.Z,1112",BI=159$
$LK,"ICFPow",A="FL:::/Compiler/BackFA.CPP.Z,280",BI=160$
$LK,"MapFileWrite",A="FL:::/Compiler/CHash.CPP.Z,90",BI=161$
-$LK,"ICFSub",A="FL:::/Compiler/BackFB.CPP.Z,635",BI=162$
+$LK,"ICFSub",A="FL:::/Compiler/BackFB.CPP.Z,638",BI=162$
$LK,"ICFModEqu",A="FL:::/Compiler/BackFA.CPP.Z,585",BI=163$
$LK,"CmpF1PushPop",A="FL:::/Compiler/OptLib.CPP.Z,529",BI=164$
$LK,"OptFree",A="FL:::/Compiler/OptLib.CPP.Z,33",BI=165$
@@ -225,7 +225,7 @@ $LK,"OptIC6",A="FL:::/Compiler/OptPass6.CPP.Z,1",BI=177$
$LK,"ICCmpAndBranch",A="FL:::/Compiler/BackB.CPP.Z,556",BI=178$
$LK,"ICDivEqu",A="FL:::/Compiler/BackA.CPP.Z,452",BI=179$
$LK,"PrsWhile",A="FL:::/Compiler/PrsStmt.CPP.Z,483",BI=180$
-$LK,"ICFCmpAndBranch",A="FL:::/Compiler/BackFB.CPP.Z,306",BI=181$
+$LK,"ICFCmpAndBranch",A="FL:::/Compiler/BackFB.CPP.Z,309",BI=181$
$LK,"Lex",A="FL:::/Compiler/Lex.CPP.Z,442",BI=182$
$LK,"ICTestAndBranch",A="FL:::/Compiler/BackB.CPP.Z,736",BI=183$
$LK,"uasm",A="FL:::/Compiler/Compiler.PRJ.Z,21"$
@@ -253,34 +253,34 @@ $LK,"MemberFind",A="FL:::/Compiler/LexLib.CPP.Z,67",BI=196$
$LK,"cmp",A="FL:::/Compiler/Compiler.PRJ.Z,16"$
$LK,"OptLag",A="FL:::/Compiler/OptLib.CPP.Z,40",BI=197$
$LK,"ICPostIncDec",A="FL:::/Compiler/BackB.CPP.Z,434",BI=198$
-$LK,"ICFPostIncDec",A="FL:::/Compiler/BackFB.CPP.Z,677",BI=199$
+$LK,"ICFPostIncDec",A="FL:::/Compiler/BackFB.CPP.Z,680",BI=199$
$LK,"ICTest",A="FL:::/Compiler/BackLib.CPP.Z,403",BI=200$
-$LK,"ICModU64",A="FL:::/Compiler/BackC.CPP.Z,588",BI=201$
+$LK,"ICModU64",A="FL:::/Compiler/BackC.CPP.Z,589",BI=201$
$LK,"ICLastIns",A="FL:::/Compiler/BackLib.CPP.Z,59",BI=202$
$LK,"PrsAsmImm",A="FL:::/Compiler/Asm.CPP.Z,1",BI=203$
$LK,"LexExtStr",A="FL:::/Compiler/LexLib.CPP.Z,218",BI=204$
$LK,"ICAddSubEctEqu",A="FL:::/Compiler/BackA.CPP.Z,545",BI=205$
$LK,"ICAddSubEctImm",A="FL:::/Compiler/BackA.CPP.Z,57",BI=206$
$LK,"ICPush",A="FL:::/Compiler/BackLib.CPP.Z,303",BI=207$
-$LK,"ICSwap",A="FL:::/Compiler/BackC.CPP.Z,632",BI=208$
+$LK,"ICSwap",A="FL:::/Compiler/BackC.CPP.Z,633",BI=208$
$LK,"CMP_TEMPLATES_DONT_PUSH",A="FL:::/Compiler/Templates.CPP.Z,267"$
$LK,"intermediate_code_table",A="FL:::/Compiler/CInit.CPP.Z,16"$
$LK,"ICZero",A="FL:::/Compiler/BackLib.CPP.Z,394",BI=209$
$LK,"CmpCtrlDel",A="FL:::/Compiler/Lex.CPP.Z,58",BI=210$
$LK,"ICClassPut",A="FL:::/Compiler/CExcept.CPP.Z,117",BI=211$
$LK,"ICAssign",A="FL:::/Compiler/BackC.CPP.Z,159",BI=212$
-$LK,"ICFTemplateFun",A="FL:::/Compiler/BackFB.CPP.Z,701",BI=213$
+$LK,"ICFTemplateFun",A="FL:::/Compiler/BackFB.CPP.Z,704",BI=213$
$LK,"MemberAdd",A="FL:::/Compiler/LexLib.CPP.Z,103",BI=214$
$LK,"PrsPush",A="FL:::/Compiler/PrsLib.CPP.Z,1",BI=215$
$LK,"SLASH_OP_FDIVR",A="FL:::/Compiler/BackLib.CPP.Z,269"$
$LK,"SLASH_OP_FISTTP",A="FL:::/Compiler/BackLib.CPP.Z,272"$
$LK,"CmpCtrlSize",A="FL:::/Compiler/Lex.CPP.Z,70",BI=216$
-$LK,"ICLocalVarInit",A="FL:::/Compiler/BackC.CPP.Z,923",BI=217$
+$LK,"ICLocalVarInit",A="FL:::/Compiler/BackC.CPP.Z,924",BI=217$
$LK,"PrsFor",A="FL:::/Compiler/PrsStmt.CPP.Z,526",BI=218$
$LK,"PassTrace",A="FL:::/Compiler/CMisc.CPP.Z,11",BI=219$
$LK,"PrsPopDeref",A="FL:::/Compiler/PrsLib.CPP.Z,21",BI=220$
$LK,"ICCopyTemplate",A="FL:::/Compiler/BackFA.CPP.Z,75",BI=221$
-$LK,"PrsStmt",A="FL:::/Compiler/PrsStmt.CPP.Z,893",BI=222$
+$LK,"PrsStmt",A="FL:::/Compiler/PrsStmt.CPP.Z,900",BI=222$
$LK,"PrsFun",A="FL:::/Compiler/PrsStmt.CPP.Z,132",BI=223$
$LK,"LexIncludeStr",A="FL:::/Compiler/Lex.CPP.Z,298",BI=224$
$LK,"PrsType",A="FL:::/Compiler/PrsVar.CPP.Z,287",BI=225$
@@ -289,7 +289,7 @@ $LK,"cmp_type_flags_src_code",A="FL:::/Compiler/Lex.CPP.Z,327"$
$LK,"PrsVarInit2",A="FL:::/Compiler/PrsVar.CPP.Z,123",BI=227$
$LK,"PrsPop",A="FL:::/Compiler/PrsLib.CPP.Z,6",BI=228$
$LK,"asm_seg_prefixes",A="FL:::/Compiler/Asm.CPP.Z,388"$
-$LK,"ICMinMax",A="FL:::/Compiler/BackC.CPP.Z,509",BI=229$
+$LK,"ICMinMax",A="FL:::/Compiler/BackC.CPP.Z,510",BI=229$
$LK,"CmpLoadDefines",A="FL:::/Compiler/CInit.CPP.Z,205",BI=230$
$LK,"PrsIf",A="FL:::/Compiler/PrsStmt.CPP.Z,456",BI=231$
$LK,"ICBuiltInFloatConst",A="FL:::/Compiler/BackLib.CPP.Z,413",BI=232$
@@ -307,12 +307,12 @@ $LK,"PE_CHECK_BINARY_OPS1",A="FL:::/Compiler/PrsExp.CPP.Z,6"$
$LK,"PE_CHECK_BINARY_OPS2",A="FL:::/Compiler/PrsExp.CPP.Z,7"$
$LK,"LexBackupLastChar",A="FL:::/Compiler/LexLib.CPP.Z,1",BI=242$
$LK,"Trace",A="FL:::/Compiler/CMisc.CPP.Z,19",BI=243$
-$LK,"ICBrBitOps",A="FL:::/Compiler/BackC.CPP.Z,211",BI=244$
+$LK,"ICBrBitOps",A="FL:::/Compiler/BackC.CPP.Z,212",BI=244$
$LK,"LexGetChar",A="FL:::/Compiler/Lex.CPP.Z,107",BI=245$
$LK,"LexSkipEol",A="FL:::/Compiler/Lex.CPP.Z,269",BI=246$
$LK,"ICFlagBranch",A="FL:::/Compiler/BackB.CPP.Z,785",BI=247$
$LK,"SLASH_OP_FSUBR",A="FL:::/Compiler/BackLib.CPP.Z,266"$
-$LK,"ICFPreIncDec",A="FL:::/Compiler/BackFB.CPP.Z,657",BI=248$
+$LK,"ICFPreIncDec",A="FL:::/Compiler/BackFB.CPP.Z,660",BI=248$
$LK,"ExeFile",A="FL:::/Compiler/CMain.CPP.Z,616",BI=249$
$LK,"COCMiscNew",A="FL:::/Compiler/PrsLib.CPP.Z,143",BI=250$
$LK,"cmp_templates_dont_pop",A="FL:::/Compiler/CExts.CPP.Z,43"$
@@ -323,120 +323,106 @@ $LK,"COCGoToLabelFind",A="FL:::/Compiler/PrsLib.CPP.Z,152",BI=254$
$LK,"OptMVCompare",A="FL:::/Compiler/OptLib.CPP.Z,556",BI=255$
$LK,"ICToBool",A="FL:::/Compiler/BackB.CPP.Z,378",BI=256$
$LK,"PrsFunJoin",A="FL:::/Compiler/PrsStmt.CPP.Z,68",BI=257$
-$LK,"PrsNoUnusedWarn",A="FL:::/Compiler/PrsStmt.CPP.Z,780",BI=258$
+$LK,"PrsNoUnusedWarn",A="FL:::/Compiler/PrsStmt.CPP.Z,787",BI=258$
$LK,"OptFixSizeOf",A="FL:::/Compiler/OptLib.CPP.Z,485",BI=259$
$LK,"cmp_templates_dont_push",A="FL:::/Compiler/CExts.CPP.Z,45"$
$LK,"cmp_templates_dont_push_pop",A="FL:::/Compiler/CExts.CPP.Z,46"$
$LK,"LexAttachDoc",A="FL:::/Compiler/Lex.CPP.Z,330",BI=260$
-$LK,"PrsStreamBlk",A="FL:::/Compiler/PrsStmt.CPP.Z,794",BI=261$
+$LK,"PrsStreamBlk",A="FL:::/Compiler/PrsStmt.CPP.Z,801",BI=261$
$LK,"cmp_templates_dont_push2",A="FL:::/Compiler/CExts.CPP.Z,44"$
$LK,"InstEntryFind",A="FL:::/Compiler/UAsm.CPP.Z,66",BI=262$
$LK,"PrsDotDotDot",A="FL:::/Compiler/PrsVar.CPP.Z,381",BI=263$
$LK,"ICMulEqu",A="FL:::/Compiler/BackA.CPP.Z,344",BI=264$
$LK,"AsmPrsInsFlags",A="FL:::/Compiler/AsmInit.CPP.Z,1",BI=265$
- H 2 @ # # $ $ !$ &$ Q$ S$ $ p$ $ $ $ $ + k k $k ,k 7k Ck Nk mk Pk yk k k k k k k k !l Cl [l Hl gl l zl l l l l l l m m m m H <