From dfe8d13304734d3f1d4561efbd38b5d4202933c3 Mon Sep 17 00:00:00 2001 From: burniouf Date: Sun, 22 Jan 2023 15:38:20 +0100 Subject: [PATCH] CC:more bugfix, small optimization that reduces code by ...20% :-) --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/CC.S.F.txt | 27 +++++++++++++-------------- BIN/CC.S.KW.txt | 36 ++++++++++++++++++++---------------- BIN/CC.S.SCOPE.txt | 26 ++++++++++++-------------- BIN/CC.S.STMT.txt | 2 +- BIN/CC.S.SYM.txt | 27 +++++++++++++++++++++++++-- 6 files changed, 71 insertions(+), 47 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index ee6b9501171eb8cd8bad3161a9b84b099b11b657..80f9b4e254ff6b31db0b5a3c1e79c9ead504dfc1 100644 GIT binary patch delta 304526 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

* z?)&IIpXJb3`g(UNL>_1k|FTqf9pAZ_)>2-}=u9@2k=}R3%i3xttu1kPntNzMYG!9T zEo?4Q)HnBuHLV?cy`y5@#Gmdyu>5E(R7!8iQ+K9NA6|OMzSK<{L4;=BP=Ui(XFIlsAiI`lm zUElj@rcH9Sw6jIOKxLL2d$JI_vZu9a*GuobiQl=DdQ7Y7c@-_pns5sf(3_6|H}j!i zd;2T5=pWs;YOP7llBHT_{g#Ct-*|7~1uFoYT|D@;*Pe2>b{mZD^F79e)GuDoKmFR9GU7gSc=JYRF38S>=y_e@`{`2sflqya z4_W3*F+FJJ+b;In3LX*-tJVSji_tRvm0C@GEhpRwkvHil(;w!yF7u^HoB4$0K4;ti z=<7GhkLc39S2A*$yhVQj$Q{Na&i@(eq_Ge~JEEe*Qj50tMTw4B&kHvxcBe(| zIWNaVXiFDLtZ~w7vGknmXElDMb&65U9!H=0tW(Tma=(c6f-ol`ydE@7tOuniiN>{k z7K4(LB6#h_QhSQ6ClQN1oI^)X4wHM%%T6PQig7Z_lG1b1o@QJe>KD>HjgsCIOaGpL z@_>l-V!Mzs&^S5DqV}BZmudW}motk#onOvuqntT>LYr@p#id{H1#RKovC?-&>R9D7 z@t0ToZc*%ozmub)o*WJ9NmL$g=ZTh-l+Uz?a%~ zr?Gq}a$R<(2yDNL8FQ=Jw=pVxRORG#v_G1oj#MLgqL=2-uGSKJr6f;L8PFuoVS`NMfpyyF(%=zdee_qob{t5|(aukzEzQ{x`= z9m6V9`L;FGVpUzR4C|;i?s(|ijr32Hu%sGsQ2hHDp#T^uYeQB14@T{|gx~q9&m~ViQj}ON4uz)LZP`zW6=+*gWmYy<5M~*AX+nr2WD4N^7XShwp4xlo(oc5>L#aBOBhS$WEg5C2c!|v8a@GRNvH@ zB-3(|_WjpyjSZs5`Q6{z8}!YJ?^b*-MLF{5VfJhyy81p;L z&)8ng&$v+YQ>r&V@&x@6PxOdyY-kmrJioen5|h393V*auv`@@YZZt+TksV&Btzd&Q z#J6v$t=C%>njX{|Dlb=P&>O delta 304022 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.G CC.bInitCode jsr STMT.New00 bcs .99 - jsr STMT.SetTypeCP + jsr STMT.SetTypeCP type = {} bcs .99 + jmp SCOPE.AddLocal function () { .99 rts *-------------------------------------- @@ -147,6 +144,9 @@ F.Def.END lda #'X' define EXIT Label jsr SYM.NewLabelA bcs .9 + jsr SCOPE.RemLocal function () {} + bcs .9 + jsr STMT.Close bcs .9 @@ -154,7 +154,7 @@ F.Def.END lda #'X' define EXIT Label jsr CODE.EmitPCC bcs .9 - jsr SCOPE.Close + jsr SCOPE.Close function () {}; bcs .9 .9 rts @@ -228,7 +228,8 @@ F.NewArg >LDYA.G CC.SymID >LDYA.G CC.SymIDSave >STYA.G CC.SymID -.9 rts +.9 +F.NewArg.RTS rts *-------------------------------------- * in : ZPSymPtr * Y,A = Expected T/Q @@ -255,11 +256,9 @@ F.CallRetV sec bpl .1 jsr EXP.GetYASizeOfInAX - txa - jsr CODE.AddLocal - bcc .1 - rts + jsr CODE.AddLocal add room for return value + bcs F.NewArg.RTS .1 jsr CORE.GetNCharNB skip '(' bcs .90 diff --git a/BIN/CC.S.KW.txt b/BIN/CC.S.KW.txt index ad4b29c2..4e918752 100644 --- a/BIN/CC.S.KW.txt +++ b/BIN/CC.S.KW.txt @@ -3,7 +3,7 @@ NEW *-------------------------------------- * Built in Keywords *-------------------------------------- -KW.IF jsr SCOPE.New IF { +KW.IF jsr SCOPE.New IF ( bcs .99 jsr CC.GetCharNB @@ -54,7 +54,7 @@ KW.IF.END jsr STMT.Close jsr SYM.NewLabelA bcs .99 - jmp SCOPE.Close } IF + jmp SCOPE.Close IF ) *-------------------------------------- .2 lda #'X' jsr SYM.LookupLabelA @@ -91,11 +91,11 @@ KW.ELSE.END jsr STMT.Close jsr SYM.NewLabelA bcs .99 - jmp SCOPE.Close } IF + jmp SCOPE.Close IF } .99 rts *-------------------------------------- -KW.WHILE jsr SCOPE.New +KW.WHILE jsr SCOPE.New WHILE ( bcs .99 lda #'C' define CONT Label @@ -157,11 +157,11 @@ KW.WHILE.END jsr STMT.Close lda #'B' define BREAK Label jsr SYM.NewLabelA - jmp SCOPE.Close + jmp SCOPE.Close WHILE ) .99 rts *-------------------------------------- -KW.DO jsr SCOPE.New +KW.DO jsr SCOPE.New DO { bcs .99 lda #'C' define CONT Label @@ -171,7 +171,7 @@ KW.DO jsr SCOPE.New >LDYA L.PCC.SLEEP jsr CODE.EmitPCC bcs .99 - + jsr STMT.New00 bcs .99 @@ -221,7 +221,7 @@ KW.DO.END jsr STMT.Close jsr SYM.NewLabelA bcs .99 - jmp SCOPE.Close + jmp SCOPE.Close D0 ) .9 lda #E.CSYN sec @@ -243,7 +243,13 @@ KW.DO.END jsr STMT.Close * break: * } *-------------------------------------- -KW.FOR jsr CC.GetCharNB +KW.FOR jsr SCOPE.New FOR ( + bcs .19 + + jsr SCOPE.AddLocal FOR (int... + bcs .19 + + jsr CC.GetCharNB bcs .19 cmp #'(' @@ -252,9 +258,6 @@ KW.FOR jsr CC.GetCharNB jsr CORE.GetNCharNB skip '(' bcs .29 - jsr SCOPE.New for ( - bcs .19 - >LDYA L.CC.TYPEQUAL jsr CC.LookupID bcs .1 @@ -349,7 +352,7 @@ KW.FOR jsr CC.GetCharNB KW.FOR.END >LDYA L.PCC.SLEEP jsr CODE.EmitPCC bcs .99 - + lda #$60 jsr CODE.EmitByte set RTS for JSR code; @@ -362,6 +365,9 @@ KW.FOR.END >LDYA L.PCC.SLEEP jsr SYM.NewLabelA bcs .99 + jsr SCOPE.RemLocal FOR (int...) {}; + bcs .99 + jmp SCOPE.Close FOR ) .99 rts @@ -629,11 +635,9 @@ KW.CONTINUE lda #'C' .99 rts *-------------------------------------- KW.RETURN lda #'R' - jsr SYM.LookupLabelA + jsr SYM.LookupLabelA Y,A=T/Q bcs .99 - txa - jsr EXP.Eval bcs .99 diff --git a/BIN/CC.S.SCOPE.txt b/BIN/CC.S.SCOPE.txt index 8e34ca77..d725487b 100644 --- a/BIN/CC.S.SCOPE.txt +++ b/BIN/CC.S.SCOPE.txt @@ -41,15 +41,6 @@ SCOPE.New lda ScopePtr lda #0 sta (ScopeStk),y #SCOPE.FrameSize - lda #'F' - jsr SYM.LookupLabelA - bcs .99 - - txa - - jsr CODE.AddLocal - bcs .99 - .DO _DBG_SCOPE=1 >PUSHW L.MSG.DEBUG.SCIN jsr SCOPE.Push @@ -77,7 +68,15 @@ SCOPE.New lda ScopePtr .99 SCOPE.New.RTS rts *-------------------------------------- -SCOPE.Close lda #'F' define FRAME SIZE +SCOPE.AddLocal lda #'F' + jsr SYM.LookupLabelA + bcs SCOPE.New.RTS + + txa + + jmp CODE.AddLocal +*-------------------------------------- +SCOPE.RemLocal lda #'F' define FRAME SIZE jsr SYM.NewLabelA bcs SCOPE.New.RTS @@ -87,10 +86,9 @@ SCOPE.Close lda #'F' define FRAME SIZE iny lda (ScopeStk),y #SCOPE.FrameSize - jsr CODE.RemLocal - bcs SCOPE.New.RTS - - .DO _DBG_SCOPE=1 + jmp CODE.RemLocal +*-------------------------------------- +SCOPE.Close .DO _DBG_SCOPE=1 >PUSHW L.MSG.DEBUG.SCOUT jsr SCOPE.Push lda ScopePtr diff --git a/BIN/CC.S.STMT.txt b/BIN/CC.S.STMT.txt index fda36279..e162a1be 100644 --- a/BIN/CC.S.STMT.txt +++ b/BIN/CC.S.STMT.txt @@ -224,7 +224,7 @@ STMT.Close lda StmtPtr cmp #'}' bne .2 - jsr SCOPE.Close + jsr SCOPE.Close {}; bcs .99 .2 lda StmtPtr diff --git a/BIN/CC.S.SYM.txt b/BIN/CC.S.SYM.txt index a0d9a5c2..66a57b89 100644 --- a/BIN/CC.S.SYM.txt +++ b/BIN/CC.S.SYM.txt @@ -717,6 +717,9 @@ SYM.NewLabelR ldy #SYM.Q sta (pData),y rts *-------------------------------------- +* _R : Y,A = T/Q +* others : X,Y = SYM.Addr +*-------------------------------------- SYM.LookupLabelA cmp #'R' beq .1 @@ -778,13 +781,12 @@ SYM.LookupLabelA plx >LDA.G CC.Label+1 - ldy #SYM.T return T/Q cmp #'R' beq .4 ldy #SYM.Addr -.4 lda (ZPLookupPtr),y + lda (ZPLookupPtr),y pha @@ -800,6 +802,27 @@ SYM.LookupLabelA * clc + rts + +.4 ldy #SYM.T return T/Q + + lda (ZPLookupPtr),y + + pha + + iny #SYM.Q + lda (ZPLookupPtr),y + pha + + txa + >SYSCALL FreeMem + + pla + ply + +* clc + + .99 rts *-------------------------------------- SYM.LookupFree >LDA.G CC.LookupIdx