From: ceriel Date: Wed, 28 Jan 1987 23:22:07 +0000 (+0000) Subject: Added IOR, AND, XOR, COM without parameters, because the X-Git-Tag: release-5-5~4888 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=0331b0a1e29f97ee5f3c88695ddf8b06478b100e;p=ack.git Added IOR, AND, XOR, COM without parameters, because the Pascal runtime system needs at least one of them. Also deleted some old bug circumvention --- diff --git a/mach/ns/ncg/table b/mach/ns/ncg/table index 5b2080d60..607c1a6f6 100644 --- a/mach/ns/ncg/table +++ b/mach/ns/ncg/table @@ -29,7 +29,6 @@ EM_BSIZE=8 PROPERTIES -USELESS /* Bug circumvention */ REG /* Normal registers */ FREG /* Floating point registers */ DFREG(8) /* double floating reg for double precision */ @@ -537,7 +536,6 @@ with exact addr_external yields {absolute8, %1.disp} with exact LOCAL yields {memrel8, fp, %1.ind, 0} pat loi defined($1) -with USELESS with REG STACK uses REG = {const4, $1} gen addd %a, %1 @@ -751,7 +749,6 @@ with regcon4 consrc4 consrc4 move %2, {regrel4, %1.reg, %1.disp+4} pat sti defined($1) -with USELESS with REG STACK uses REG={const4, $1} gen 1: @@ -938,12 +935,10 @@ kills absolute + rel + memregrelcon4 gen ashd {const4, $2}, {absolute4, $1} pat loc sri $2 == 4 -with USELESS with REG gen ashd {const4,0-$1}, %1 yields %1 pat sri $1 == 4 -with USELESS with REG REG gen negd %1, %1 ashd %1, %2 yields %2 @@ -1021,12 +1016,10 @@ with STACK pat slu leaving sli $1 pat loc sru $2 == 4 -with USELESS with REG gen lshd {const4, 0-$1}, %1 yields %1 pat sru $1 == 4 -with USELESS with REG REG gen negd %1, %1 lshd %1, %2 yields %2 @@ -1201,7 +1194,6 @@ pat sbs $1==4 leaving sbi 4 *****************************************************************/ pat inc -with USELESS with REG gen addd {const4,1}, %1 yields %1 with exact STACK @@ -1234,7 +1226,6 @@ kills absolute, rel, memregrelcon4 gen addd {const4,1},{absolute4, $1} pat dec -with USELESS with REG gen addd {const4,0-1}, %1 yields %1 with exact STACK @@ -1424,6 +1415,16 @@ with STACK addr {regrel4, r1, 4}, r1 acbd {const4, 0-4}, r0, {label, "1b"} +pat and !defined($1) +with REG STACK +uses REG + gen addr {memregrel4, sp, 0}, %a + addd %1, %a + 1: + andd {TOS}, {regrel4, %a, 0} + addr {regrel4, %a, 4}, %a + acbd {const4, 0-4}, %1, {label, "1b"} + pat lol ior stl $1==$3 && $2==4 with src4 kills rel, LOCAL %ind-4 < $1 && %ind+4 > $1 @@ -1485,6 +1486,16 @@ with STACK addr {regrel4, r1, 4}, r1 acbd {const4, 0-4}, r0, {label, "1b"} +pat ior !defined($1) +with REG STACK +uses REG + gen addr {memregrel4, sp, 0}, %a + addd %1, %a + 1: + ord {TOS}, {regrel4, %a, 0} + addr {regrel4, %a, 4}, %a + acbd {const4, 0-4}, %1, {label, "1b"} + pat xor $1==4 with src4 REG gen xord %1, %2 yields %2 @@ -1500,8 +1511,17 @@ with STACK addr {regrel4, r1, 4}, r1 acbd {const4, 0-4}, r0, {label, "1b"} +pat xor !defined($1) +with REG STACK +uses REG + gen addr {memregrel4, sp, 0}, %a + addd %1, %a + 1: + xord {TOS}, {regrel4, %a, 0} + addr {regrel4, %a, 4}, %a + acbd {const4, 0-4}, %1, {label, "1b"} + pat com $1==4 -with USELESS with REG gen comd %1, %1 yields %1 @@ -1514,17 +1534,24 @@ with STACK addr {regrel4, r1, 4}, r1 acbd {const4, 0-4}, r0, {label, "1b"} +pat com !defined($1) +with REG STACK +uses REG + gen addr {memregrel4, sp, 0}, %a + 1: + comd {regrel4, %a, 0}, {regrel4, %a, 0} + addr {regrel4, %a, 4}, %a + acbd {const4, 0-4}, %1, {label, "1b"} + pat rol $1 == 4 with src124 REG gen rotd %1, %2 yields %2 pat loc ror $2 == 4 -with USELESS with REG gen rotd {const4, 0-$1}, %1 yields %1 pat ror $1 == 4 -with USELESS with REG REG gen negd %1, %1 rotd %1, %2 yields %2 @@ -1614,19 +1641,16 @@ pat lae aar $2==2 && rom($1,3)==1 && rom($1,1)!=0 adp 0-rom($1,1) pat lae aar $2==2 && rom($1,3)==2 && rom($1,1)==0 -with USELESS with REG gen ashd {const4, 1}, %1 yields %1 leaving adi 2 pat lae aar $2==2 && rom($1,3)==2 && rom($1,1)!=0 -with USELESS with REG gen ashd {const4, 1}, %1 yields {regcon4, %1,(0-2)*rom($1,1)} leaving adi 2 pat lae aar $2==4 && rom($1,3)==4 && rom($1,1)==0 -with USELESS with REG addr_local uses REG gen addr {memregrelsid, %2.ind, fp, %1}, %a @@ -1638,7 +1662,6 @@ uses REG with leaving lae $1 aar $2 pat lae aar $2==4 && rom($1,3)==4 && rom($1,1)!=0 -with USELESS with REG addr_local uses REG gen subd {const4, rom($1,1)}, %1 @@ -1652,13 +1675,11 @@ uses REG with leaving lae $1 aar $2 pat lae lar $2==4 && rom($1,3)==4 && rom($1,1)==0 -with USELESS with REG addr_local yields {memregrelsid, %2.ind, fp, %1} with REG addr_external yields {abssid, %2.disp, %1} with leaving lae $1 lar $2 pat lae lar $2==4 && rom($1,3)==4 && rom($1,1)!=0 -with USELESS with REG addr_local gen subd {const4, rom($1,1)}, %1 yields {memregrelsid, %2.ind, fp, %1} @@ -1692,7 +1713,6 @@ with src4 REG gen indexd %2, {const4, rom($1,3)-1}, %1 yields %2 pat lae aar $2==4 && rom($1,1)!=0 -with USELESS with REG REG gen subd {const4,rom($1,1)}, %1 indexd %2, {const4, rom($1,3)-1}, %1 yields %2 @@ -1985,7 +2005,6 @@ with STACK gen jsr {absolute4, $1} pat cai -with USELESS with REG STACK gen jsr %1 @@ -2020,7 +2039,6 @@ with STACK gen adjspd {const4,0-$1} pat ass $1==4 -with USELESS with REG STACK gen negd %1, %1 adjspd %1 @@ -2030,13 +2048,11 @@ with const4 STACK pat blm $1==0 pat blm $1==4 -with USELESS with REG REG kills allmincon gen move {regrel4, %2, 0}, {regrel4, %1, 0} pat blm $1>4 && $1<=16 -with USELESS with REG REG kills allmincon gen movmd %2, %1, {const4, $1} @@ -2054,7 +2070,6 @@ kills allmincon gen movmd {LOCAL, %2.ind}, {LOCAL, %1.ind}, {const4, $1} pat blm $1>16 -with USELESS with REG REG kills allmincon uses REG={const4,$1} @@ -2065,7 +2080,6 @@ kills allmincon acbd {const4, 0-4}, %a, {label, "1b"} pat bls $1==4 -with USELESS with REG kills ALL gen 1: