Some more adaptions to new semantics of ncgg

This commit is contained in:
ceriel 1987-11-10 13:37:19 +00:00
parent ae6e2acb87
commit 2f37e8d600

View file

@ -696,7 +696,8 @@ with REG src2 src2
kills allexeptcon kills allexeptcon
gen move %2,{regdef2,%1} gen move %2,{regdef2,%1}
move %3,{regind2,%1,2} move %3,{regind2,%1,2}
with REG STACK with REG
kills ALL
gen mov {autoinc,sp},{autoinc,%1} gen mov {autoinc,sp},{autoinc,%1}
mov {autoinc,sp},{regdef2,%1} mov {autoinc,sp},{regdef2,%1}
@ -732,14 +733,16 @@ with REG relative8
mov {autoinc,%a},{autoinc,%1} mov {autoinc,%a},{autoinc,%1}
mov {autoinc,%a},{autoinc,%1} mov {autoinc,%a},{autoinc,%1}
mov {regdef2,%a},{regdef2,%1} mov {regdef2,%a},{regdef2,%1}
with REG STACK with REG
kills ALL
gen mov {autoinc,sp},{autoinc,%1} gen mov {autoinc,sp},{autoinc,%1}
mov {autoinc,sp},{autoinc,%1} mov {autoinc,sp},{autoinc,%1}
mov {autoinc,sp},{autoinc,%1} mov {autoinc,sp},{autoinc,%1}
mov {autoinc,sp},{regdef2,%1} mov {autoinc,sp},{regdef2,%1}
pat sti pat sti
with REG STACK with REG
kills ALL
uses REG={const2,$1/2} uses REG={const2,$1/2}
gen 1: gen 1:
mov {autoinc,sp},{autoinc,%1} mov {autoinc,sp},{autoinc,%1}
@ -887,7 +890,7 @@ with src2 ODDREG
gen mul %1,%2 yields %2 gen mul %1,%2 yields %2
pat mli $1==4 pat mli $1==4
with STACK kills ALL
gen jsr pc,{label, "mli4~"} yields r1 r0 gen jsr pc,{label, "mli4~"} yields r1 r0
pat dvi $1==2 pat dvi $1==2
@ -903,7 +906,7 @@ with src2 src2 STACK
div {autoinc,sp},r0 yields r0 div {autoinc,sp},r0 yields r0
pat dvi $1==4 pat dvi $1==4
with STACK kills ALL
gen jsr pc,{label, "dvi4~"} yields r1 r0 gen jsr pc,{label, "dvi4~"} yields r1 r0
pat rmi $1==2 pat rmi $1==2
@ -919,7 +922,7 @@ with src2 src2 STACK
div {autoinc,sp},r0 yields r1 div {autoinc,sp},r0 yields r1
pat rmi $1==4 pat rmi $1==4
with STACK kills ALL
gen jsr pc,{label, "rmi4~"} yields r1 r0 gen jsr pc,{label, "rmi4~"} yields r1 r0
pat ngi $1==2 pat ngi $1==2
@ -981,23 +984,23 @@ pat sbu leaving sbi $1
pat mlu $1==2 leaving mli 2 pat mlu $1==2 leaving mli 2
pat mlu $1==4 pat mlu $1==4
with STACK kills ALL
gen jsr pc,{label, "mlu4~"} yields r1 r0 gen jsr pc,{label, "mlu4~"} yields r1 r0
pat dvu $1==2 pat dvu $1==2
with STACK kills ALL
gen jsr pc,{label, "dvu2~"} yields r0 gen jsr pc,{label, "dvu2~"} yields r0
pat dvu $1==4 pat dvu $1==4
with STACK kills ALL
gen jsr pc,{label, "dvu4~"} yields r1 r0 gen jsr pc,{label, "dvu4~"} yields r1 r0
pat rmu $1==2 pat rmu $1==2
with STACK kills ALL
gen jsr pc,{label, "rmu2~"} yields r1 gen jsr pc,{label, "rmu2~"} yields r1
pat rmu $1==4 pat rmu $1==4
with STACK kills ALL
gen jsr pc,{label, "rmu4~"} yields r1 r0 gen jsr pc,{label, "rmu4~"} yields r1 r0
pat slu leaving sli $1 pat slu leaving sli $1
@ -1018,7 +1021,7 @@ gen move %1,%a.2
ashc {const2,0-$1},%a yields %a.2 ashc {const2,0-$1},%a yields %a.2
pat sru $1==4 pat sru $1==4
with STACK kills ALL
gen move {const2,$1},r0 gen move {const2,$1},r0
jsr pc,{label, "sru~"} jsr pc,{label, "sru~"}
@ -1244,7 +1247,7 @@ gen move {const2,$1/2},r0
****************************************/ ****************************************/
pat cii pat cii
with STACK kills ALL
gen jsr pc,{label, "cii~"} gen jsr pc,{label, "cii~"}
pat cfi leaving cfu pat cfi leaving cfu
@ -1252,23 +1255,23 @@ pat ciu leaving cuu
pat cui leaving cuu pat cui leaving cuu
pat cfu pat cfu
with STACK kills ALL
gen jsr pc,{label, "cfi~"} gen jsr pc,{label, "cfi~"}
pat cif pat cif
with STACK kills ALL
gen jsr pc,{label, "cif~"} gen jsr pc,{label, "cif~"}
pat cuf pat cuf
with STACK kills ALL
gen jsr pc,{label, "cuf~"} gen jsr pc,{label, "cuf~"}
pat cff pat cff
with STACK kills ALL
gen jsr pc,{label, "cff~"} gen jsr pc,{label, "cff~"}
pat cuu pat cuu
with STACK kills ALL
gen jsr pc,{label, "cuu~"} gen jsr pc,{label, "cuu~"}
pat loc loc cii $1==1 && $2==2 pat loc loc cii $1==1 && $2==2
@ -1392,7 +1395,7 @@ with REG REG
bic %1,%2 yields %2 bic %1,%2 yields %2
pat and defined($1) pat and defined($1)
with STACK kills ALL
gen move {const2,$1}, r0 gen move {const2,$1}, r0
jsr pc,{label, "and~"} jsr pc,{label, "and~"}
@ -1431,7 +1434,7 @@ with REG REG
gen xor %2,%1 yields %1 gen xor %2,%1 yields %1
pat xor defined($1) pat xor defined($1)
with STACK kills ALL
gen move {const2,$1},r0 gen move {const2,$1},r0
jsr pc,{label, "xor~"} jsr pc,{label, "xor~"}
@ -1455,7 +1458,7 @@ with REG ODDREG
ashc %1,%2 yields %2 ashc %1,%2 yields %2
pat rol defined($1) pat rol defined($1)
with STACK kills ALL
gen move {const2,$1},r0 gen move {const2,$1},r0
jsr pc,{label, "rol~"} jsr pc,{label, "rol~"}
@ -1467,7 +1470,7 @@ with REG ODDREG
ashc %1,%2 yields %2 ashc %1,%2 yields %2
pat ror defined($1) pat ror defined($1)
with STACK kills ALL
gen move {const2,$1},r0 gen move {const2,$1},r0
jsr pc,{label, "ror~"} jsr pc,{label, "ror~"}
@ -1528,7 +1531,8 @@ gen ash %1,%a yields %a
leaving and 2 zne $2 leaving and 2 zne $2
pat inn defined($1) pat inn defined($1)
with src2 STACK with src2
kills ALL
gen move %1,r1 gen move %1,r1
move {const2,$1},r0 move {const2,$1},r0
jsr pc,{label, "inn~"} yields r0 jsr pc,{label, "inn~"} yields r0
@ -1539,7 +1543,8 @@ uses REG={const2,1}
gen ash %1,%a yields %a gen ash %1,%a yields %a
pat set defined($1) pat set defined($1)
with src2 STACK with src2
kills ALL
gen move %1,r1 gen move %1,r1
move {const2,$1},r0 move {const2,$1},r0
jsr pc,{label, "set~"} jsr pc,{label, "set~"}
@ -1589,7 +1594,7 @@ gen mul {const2,rom($1,3)},%1 yields {regconst2,%1,(0-rom($1,3))*rom($1,1)}
leaving adi 2 leaving adi 2
pat aar $1==2 pat aar $1==2
with STACK kills ALL
gen mov {autoinc,sp},r0 gen mov {autoinc,sp},r0
mov {autoinc,sp},r1 mov {autoinc,sp},r1
jsr pc,{label, "aar~"} jsr pc,{label, "aar~"}
@ -1597,28 +1602,28 @@ gen mov {autoinc,sp},r0
pat lae sar defined(rom($1,3)) leaving lae $1 aar $2 sti rom($1,3) pat lae sar defined(rom($1,3)) leaving lae $1 aar $2 sti rom($1,3)
pat lae lar defined(rom($1,3)) leaving lae $1 aar $2 loi rom($1,3) pat lae lar defined(rom($1,3)) leaving lae $1 aar $2 loi rom($1,3)
pat sar $1==2 pat sar $1==2
with STACK kills ALL
gen mov {autoinc,sp},r0 gen mov {autoinc,sp},r0
mov {autoinc,sp},r1 mov {autoinc,sp},r1
jsr pc,{label, "sar~"} jsr pc,{label, "sar~"}
pat lar $1==2 pat lar $1==2
with STACK kills ALL
gen mov {autoinc,sp},r0 gen mov {autoinc,sp},r0
mov {autoinc,sp},r1 mov {autoinc,sp},r1
jsr pc,{label, "lar~"} jsr pc,{label, "lar~"}
#ifdef UNTESTED #ifdef UNTESTED
pat aar !defined($1) pat aar !defined($1)
with STACK kills ALL
gen jsr pc,{label, "iaar~"} gen jsr pc,{label, "iaar~"}
pat sar !defined($1) pat sar !defined($1)
with STACK kills ALL
gen jsr pc,{label, "isar~"} gen jsr pc,{label, "isar~"}
pat lar !defined($1) pat lar !defined($1)
with STACK kills ALL
gen jsr pc,{label, "ilar~"} gen jsr pc,{label, "ilar~"}
#endif #endif
@ -1634,34 +1639,35 @@ with REG src2
neg %1 yields %1 neg %1 yields %1
pat cmi $1==4 pat cmi $1==4
with STACK kills ALL
gen jsr pc,{label, "cmi4~"} yields r0 gen jsr pc,{label, "cmi4~"} yields r0
pat cmf defined($1) pat cmf defined($1)
with STACK kills ALL
gen move {const2,$1},r0 gen move {const2,$1},r0
jsr pc,{label, "cmf~"} yields r0 jsr pc,{label, "cmf~"} yields r0
pat cmu $1==2 leaving cmp pat cmu $1==2 leaving cmp
pat cmu $1==4 pat cmu $1==4
with STACK kills ALL
gen jsr pc,{label, "cmu4~"} yields r0 gen jsr pc,{label, "cmu4~"} yields r0
pat cmu defined($1) pat cmu defined($1)
with STACK kills ALL
gen move {const2,$1},r0 gen move {const2,$1},r0
jsr pc,{label, "cmu~"} yields r0 jsr pc,{label, "cmu~"} yields r0
pat cms $1==2 leaving cmi $1 pat cms $1==2 leaving cmi $1
pat cms defined($1) pat cms defined($1)
with STACK kills ALL
gen move {const2,$1},r0 gen move {const2,$1},r0
jsr pc,{label, "cms~"} yields r0 jsr pc,{label, "cms~"} yields r0
pat cms !defined($1) pat cms !defined($1)
with src2 STACK with src2
kills ALL
gen move %1,r0 gen move %1,r0
jsr pc,{label, "cms~"} yields r0 jsr pc,{label, "cms~"} yields r0
@ -1984,18 +1990,19 @@ pat and zne $1==2 call andzen("jne")
************************************************/ ************************************************/
pat cal pat cal
with STACK kills ALL
gen jsr pc,{label, $1} gen jsr pc,{label, $1}
pat cai pat cai
with REG STACK with REG
kills ALL
gen jsr pc,{regdef2,%1} gen jsr pc,{regdef2,%1}
pat lfr $1==2 yields r0 pat lfr $1==2 yields r0
pat lfr $1==4 yields r1 r0 pat lfr $1==4 yields r1 r0
pat lfr $1==8 yields {relative8,"retar"} pat lfr $1==8 yields {relative8,"retar"}
pat lfr pat lfr
with STACK kills ALL
gen move {const2,$1},r0 gen move {const2,$1},r0
jsr pc,{label, "lfr~"} jsr pc,{label, "lfr~"}
@ -2027,7 +2034,7 @@ pat ret $1==8 yields {addr_external, "retar"}
leaving sti 8 ret 0 leaving sti 8 ret 0
pat ret pat ret
with STACK kills ALL
gen move {const2,$1},r0 gen move {const2,$1},r0
jmp {label,"ret~"} jmp {label,"ret~"}
@ -2091,25 +2098,27 @@ gen
1: 1:
pat lae csa $2==2 pat lae csa $2==2
with src2 STACK with src2
kills ALL
gen move %1,r1 gen move %1,r1
move {addr_external,$1},r0 move {addr_external,$1},r0
jmp {label, "csa~"} jmp {label, "csa~"}
pat csa $1==2 pat csa $1==2
with STACK kills ALL
gen mov {autoinc,sp},r0 gen mov {autoinc,sp},r0
mov {autoinc,sp},r1 mov {autoinc,sp},r1
jmp {label, "csa~"} jmp {label, "csa~"}
pat lae csb $2==2 pat lae csb $2==2
with src2 STACK with src2
kills ALL
gen move %1,r1 gen move %1,r1
move {addr_external,$1},r0 move {addr_external,$1},r0
jmp {label, "csb~"} jmp {label, "csb~"}
pat csb $1==2 pat csb $1==2
with STACK kills ALL
gen mov {autoinc,sp},r0 gen mov {autoinc,sp},r0
mov {autoinc,sp},r1 mov {autoinc,sp},r1
jmp {label, "csb~"} jmp {label, "csb~"}
@ -2124,21 +2133,23 @@ with src2 src2 yields %2 %1 %2 %1
pat dup $1==8 pat dup $1==8
with exact long8 yields %1 %1 with exact long8 yields %1 %1
with STACK with STACK
kills ALL
gen move {const2, $1}, r0 gen move {const2, $1}, r0
jsr pc,{label, "dup~"} jsr pc,{label, "dup~"}
pat dup pat dup
with STACK kills ALL
gen move {const2, $1}, r0 gen move {const2, $1}, r0
jsr pc,{label, "dup~"} jsr pc,{label, "dup~"}
pat dus $1==2 pat dus $1==2
with src2 STACK with src2
kills ALL
gen move %1,r0 gen move %1,r0
jsr pc,{label, "dup~"} jsr pc,{label, "dup~"}
pat gto pat gto
with STACK kills ALL
gen mov {addr_external, $1},{autodec,sp} gen mov {addr_external, $1},{autodec,sp}
jmp {label, "gto~"} jmp {label, "gto~"}
@ -2163,11 +2174,11 @@ gen mov sp,%a yields %a
pat lor $1==2 yields {relative2,"reghp~"} pat lor $1==2 yields {relative2,"reghp~"}
pat mon pat mon
with STACK kills ALL
gen jsr pc,{label, "mon~"} gen jsr pc,{label, "mon~"}
pat nop pat nop
with STACK kills ALL
gen jsr pc,{label, "nop~"} gen jsr pc,{label, "nop~"}
pat rck $1==2 pat rck $1==2
@ -2182,30 +2193,32 @@ gen move {relative2,"trppc~"},%a
mov %1,{relative2,"trppc~"} yields %a mov %1,{relative2,"trppc~"} yields %a
pat sim pat sim
with STACK kills ALL
gen jsr pc,{label, "sim~"} gen jsr pc,{label, "sim~"}
pat str $1==0 pat str $1==0
with src2 with src2
kills ALL
gen mov %1,lb gen mov %1,lb
pat str $1==1 pat str $1==1
with src2 STACK with src2
kills ALL
gen mov %1,sp gen mov %1,sp
pat str $1==2 pat str $1==2
with STACK kills ALL
gen jsr pc,{label, "strhp~"} gen jsr pc,{label, "strhp~"}
pat trp pat trp
with STACK kills ALL
gen jsr pc,{label, "trp~"} gen jsr pc,{label, "trp~"}
pat exg $1==2 pat exg $1==2
with src2 src2 yields %1 %2 with src2 src2 yields %1 %2
pat exg defined($1) pat exg defined($1)
with STACK kills ALL
gen move {const2,$1},r0 gen move {const2,$1},r0
jsr pc,{label, "exg~"} jsr pc,{label, "exg~"}