From: sater Date: Fri, 13 Jul 1984 14:55:37 +0000 (+0000) Subject: Removed some patterns that have never been tested. X-Git-Tag: release-5-5~6197 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=da8966a6c87537d3b500a080b78c9d083f3036d5;p=ack.git Removed some patterns that have never been tested. Now if someone uses them he will hear that it doesn't work. That must be better then giving him code that probably won't work. All these patterns had to do with things like adf without an argument and things like that. --- diff --git a/mach/pdp/cg/table b/mach/pdp/cg/table index 50bbb5f8d..87899a138 100644 --- a/mach/pdp/cg/table +++ b/mach/pdp/cg/table @@ -35,6 +35,7 @@ */ /* #define REGPATCH /* save all registers in link block */ +/* #define UNTESTED /* include untested rules */ #ifdef REGPATCH #define SL 8 @@ -300,6 +301,7 @@ los $1==2 | | "mov (sp)+,r0" "mov (sp)+,r1" "jsr pc,los2~" | | | +#ifdef UNTESTED los !defined($1)| source2 | remove(all) "cmp %[1],$$2" @@ -307,6 +309,8 @@ los !defined($1)| source2 | "mov (sp)+,r0" "mov (sp)+,r1" "jsr pc,los2~" | | | +#endif + ldl | | | {LOCAL4, $1,4} | | lde | | | {relative4, $1} | | ldf | regconst2 | @@ -604,10 +608,12 @@ adi $1==4 | SCR_REG SCR_REG source2 source2 | "add %[1],%[3]" setcc(%[3]) erase(%[3]) erase(%[4]) | %[4] %[3] | | (6,1200)+%[1]+%[2] +#ifdef UNTESTED adi !defined($1)| source2 | remove(all) move(%[1],r0) "jsr pc,adi~" | | | +#endif sbi $1==2 | source2 SCR_REG | "sub %[1],%[2]" setcc(%[2]) erase(%[2]) | %[2] | | (2,450)+%[1] @@ -625,10 +631,12 @@ sbi $1==4 | source2-REG source2-REG SCR_REG SCR_REG | "sub %[2],2(sp)" "sbc (sp)" "sub %[1],(sp)" | | | (10,2800)+%[1]+%[2] +#ifdef UNTESTED sbi !defined($1)| source2 | remove(all) move(%[1],r0) "jsr pc,sbi~" | | | +#endif mli $1==2 | SCR_ODD_REG source2 | "mul %[2],%[1]" setcc(%[1]) erase(%[1]) | %[1] | |(2,3300)+%[2] @@ -638,10 +646,12 @@ mli $1==2 | SCR_ODD_REG source2 | mli $1==4 | | remove(all) "jsr pc,mli4~" | r1 r0 | | +#ifdef UNTESTED mli !defined($1)| source2 | remove(all) move(%[1],r0) "jsr pc,mli~" | | | +#endif dvi $1==2 | source2 source2 | allocate(%[2],REG_PAIR) "mov %[2],%[a.2]" @@ -655,10 +665,12 @@ dvi $1==2 | source2 source2 | "div (sp)+,r0" | r0 | |(100,10000) dvi $1==4 | | remove(all) "jsr pc,dvi4~" | r1 r0 | | +#ifdef UNTESTED dvi !defined($1)| source2 | remove(all) move(%[1],r0) "jsr pc,dvi~" | | | +#endif rmi $1==2 | source2 source2 | allocate(%[2],REG_PAIR) "mov %[2],%[a.2]" @@ -672,10 +684,12 @@ rmi $1==2 | source2 source2 | "div (sp)+,r0" | r1 | |(100,10000) rmi $1==4 | | remove(all) "jsr pc,rmi4~" | r1 r0 | | +#ifdef UNTESTED rmi !defined($1)| source2 | remove(all) move(%[1],r0) "jsr pc,rmi~" | | | +#endif ngi $1==2 | SCR_REG | "neg %[1]" setcc(%[1]) erase(%[1]) | %[1] | | (2,750) @@ -685,10 +699,12 @@ ngi $1==4 | SCR_REG SCR_REG | "sbc %[1]" setcc(%[1]) erase(%[1]) erase(%[2]) | %[2] %[1] | | (6,1800) +#ifdef UNTESTED ngi !defined($1)| source2 | remove(all) move(%[1],r0) "jsr pc,ngi~" | | | +#endif loc sli $1==1 && $2==2 | SCR_REG | "asl %[1]" setcc(%[1]) erase(%[1]) | %[1]| | @@ -698,10 +714,12 @@ sli $1==2 | source2 SCR_REG | sli $1==4 | source2 SCR_REG_PAIR | "ashc %[1],%[2]" setcc(%[2]) erase(%[2]) | %[2] | | +#ifdef UNTESTED sli !defined($1)| source2 | remove(all) move(%[1],r0) "jsr pc,sli~" | | | +#endif loc sri $1==1 && $2==2 | SCR_REG | "asr %[1]" setcc(%[1]) erase(%[1]) | %[1]| | @@ -719,10 +737,12 @@ sri $1==4 | SCR_REG SCR_REG_PAIR | "neg %[1]" "ashc %[1],%[2]" setcc(%[2]) erase(%[1]) erase(%[2]) | %[2] | | +#ifdef UNTESTED sri !defined($1)| source2 | remove(all) move(%[1],r0) "jsr pc,sri~" | | | +#endif /************************************************ * Group 4 : unsigned arithmetic * @@ -739,26 +759,32 @@ sbu | | | | sbi $1 | mlu $1==2 | | | | mli $1 | mlu $1==4 | | remove(all) "jsr pc,mlu4~" | r1 r0 | | +#ifdef UNTESTED mlu !defined($1)| source2 | remove(all) move(%[1],r0) "jsr pc,mlu~" | | | +#endif dvu $1==2 | | remove(all) "jsr pc,dvu2~" | r0 | | dvu $1==4 | | remove(all) "jsr pc,dvu4~" | r1 r0 | | +#ifdef UNTESTED dvu !defined($1)| source2 | remove(all) move(%[1],r0) "jsr pc,dvu~" | | | +#endif rmu $1==2 | | remove(all) "jsr pc,rmu2~" | r1 | | rmu $1==4 | | remove(all) "jsr pc,rmu4~" | r1 r0 | | +#ifdef UNTESTED rmu !defined($1)| source2 | remove(all) move(%[1],r0) "jsr pc,rmu~" | | | +#endif slu | | | | sli $1 | sru $1==2 | SCR_REG xsource2 | allocate(%[2],REG_PAIR) @@ -777,10 +803,12 @@ sru $1==4 | | remove(all) move({CONST2,$1},r0) "jsr pc,sru~" erase(r0) | | | +#ifdef UNTESTED sru !defined($1)| source2 | remove(all) move(%[1],r0) "jsr pc,sru~" | | | +#endif /************************************************ * Group 5 : Floating point arithmetic * @@ -800,20 +828,24 @@ adf $1==8 | double8 SCR_DBL_REG | ... | SCR_DBL_REG double8 | "addf %[2],%[1]" samecc erase(%[1]) | %[1] | | (2,6000)+%[2] +#ifdef UNTESTED adf !defined($1)| source2 | remove(ALL) move(%[1],r0) "jsr pc,adf~" | | | +#endif sbf $1==4 | FLT_REG SCR_FLT_REG | "subf %[1],%[2]" samecc erase(%[2]) | %[2] | | (2,5000)+%[1] sbf $1==8 | double8 SCR_DBL_REG | "subf %[1],%[2]" samecc erase(%[2]) | %[2] | | (2,6000)+%[1] +#ifdef UNTESTED sbf !defined($1)| source2 | remove(ALL) move(%[1],r0) "jsr pc,sbf~" | | | +#endif mlf $1==4 | FLT_REG SCR_FLT_REG | "mulf %[1],%[2]" samecc erase(%[2]) | %[2] | | (2,7000)+%[1] @@ -826,30 +858,36 @@ mlf $1==8 | double8 SCR_DBL_REG | ... | SCR_DBL_REG double8 | "mulf %[2],%[1]" samecc erase(%[1]) | %[1] | | (2,10000)+%[2] +#ifdef UNTESTED mlf !defined($1)| source2 | remove(ALL) move(%[1],r0) "jsr pc,mlf~" | | | +#endif dvf $1==4 | FLT_REG SCR_FLT_REG | "divf %[1],%[2]" samecc erase(%[2]) | %[2] | | (2,8000)+%[1] dvf $1==8 | double8 SCR_DBL_REG | "divf %[1],%[2]" samecc erase(%[2]) | %[2] | | (2,12000)+%[1] +#ifdef UNTESTED dvf !defined($1)| source2 | remove(ALL) move(%[1],r0) "jsr pc,dvf~" | | | +#endif ngf $1==4 | SCR_FLT_REG | "negf %[1]" samecc erase(%[1]) | %[1] | |(2,2700) ngf $1==8 | SCR_DBL_REG | "negf %[1]" samecc erase(%[1]) | %[1] | |(2,2700) +#ifdef UNTESTED ngf !defined($1)| source2 | remove(ALL) move(%[1],r0) "jsr pc,ngf~" | | | +#endif fif $1==4 | longf4 FLT_REG | allocate(FLT_REG_PAIR) move(%[1],%[a.1]) @@ -860,10 +898,12 @@ fif $1==8 | double8 double8 | move(%[1],%[a.1]) "modf %[2],%[a]" samecc erase(%[a.1]) | %[a.1] %[a.2] | | (2,15000)+%[2] +#ifdef UNTESTED fif !defined($1)| source2 | remove(ALL) move(%[1],r0) "jsr pc,fif~" | | | +#endif fef $1==4 | FLT_REG | allocate(REG) "movei %[1],%[a]" @@ -876,10 +916,12 @@ fef $1==8 | DBL_REG | "movie $$0,%[1]" samecc erase(%[1]) |%[1] %[a] | | (4,5000) +#ifdef UNTESTED fef !defined($1)| source2 | remove(ALL) move(%[1],r0) "jsr pc,fef~" | | | +#endif /**************************************** * Group 6 : pointer arithmetic. * @@ -1084,6 +1126,7 @@ zer !defined($1)| SCR_REG | * Group 8 : Convert instructions * ****************************************/ +#ifdef UNTESTED cii | | remove(all) " jsr pc,cii~" | | | cfi | | | | cfu | @@ -1099,6 +1142,8 @@ ciu | | | | cuu | cui | | | | cuu | cuu | | remove(all) "jsr pc,cuu~" | | | +#endif + loc loc cii $1==1 && $2==2 | source1or2 | allocate(%[1],REG) "movb %[1],%[a]" @@ -1212,11 +1257,13 @@ and defined($1) | | remove(all) move({CONST2,$1}, r0) "jsr pc,and~" erase(r0) | | | +#ifdef UNTESTED and !defined($1)| source2 | remove(all) move(%[1],r0) "jsr pc,and~" erase(r0) | | | +#endif ior $1==2 | SCR_REG source2 | "bis %[2],%[1]" setcc(%[1]) @@ -1245,6 +1292,7 @@ ior defined($1) | | remove(all) "1:\tbis (sp)+,(%[a])+" "sob %[b],1b" erase(%[a]) erase(%[b]) | | | (12,2100+$1*975) +#ifdef UNTESTED ior !defined($1)| SCR_REG | remove(all) allocate(REG=%[1]) @@ -1253,6 +1301,7 @@ ior !defined($1)| SCR_REG | "1:\tbis (sp)+,(%[a])+" "sob %[1],1b" erase(%[1]) erase(%[a]) | | | +#endif xor $1==2 | REG SCR_REG | "xor %[1],%[2]" setcc(%[2]) @@ -1265,11 +1314,13 @@ xor defined($1) | | remove(all) move({CONST2,$1},r0) "jsr pc,xor~" erase(r0) | | | +#ifdef UNTESTED xor !defined($1)| source2 | remove(all) move(%[1],r0) "jsr pc,xor~" erase(r0) | | | +#endif com $1==2 | SCR_REG | "com %[1]" setcc(%[1]) @@ -1280,6 +1331,7 @@ com defined($1) | | remove(all) "1:\tcom (%[b])+" "sob %[a],1b" erase(%[a]) | | | (10,1800+$1*825) +#ifdef UNTESTED com !defined($1)| SCR_REG | remove(all) allocate(REG) @@ -1288,6 +1340,7 @@ com !defined($1)| SCR_REG | "1:\tcom (%[a])+" "sob %[1],1b" erase(%[1]) | | | +#endif rol $1==2 | CONST2 SCR_ODD_REG | "ashc $$%(%[1.num]-16%),%[2]" setcc(%[2]) @@ -1301,11 +1354,13 @@ rol defined($1) | | remove(all) move({CONST2,$1},r0) "jsr pc,rol~" erase(r0) | | | +#ifdef UNTESTED rol !defined($1)| source2 | remove(all) move(%[1],r0) "jsr pc,rol~" erase(r0) | | | +#endif ror $1==2 | CONST2 SCR_ODD_REG | "ashc $$%(0-%[1.num]%),%[2]" setcc(%[2]) @@ -1318,11 +1373,13 @@ ror defined($1) | | remove(all) move({CONST2,$1},r0) "jsr pc,ror~" erase(r0) | | | +#ifdef UNTESTED ror !defined($1)| source2 | remove(all) move(%[1],r0) "jsr pc,ror~" erase(r0) | | | +#endif com and $1==2 && $2==2 | source2 SCR_REG | "bic %[1],%[2]" setcc(%[2]) @@ -1371,12 +1428,14 @@ inn defined($1) | source2 | move({CONST2,$1},r0) "jsr pc,inn~" erase(r01) | r0 | | +#ifdef UNTESTED inn !defined($1)| source2 | remove(all) move(%[1],r0) "mov (sp)+,r1" "jsr pc,inn~" erase(r01) | r0 | | +#endif set $1==2 | REG | allocate(REG={CONST2,1}) "ash %[1],%[a]" @@ -1445,8 +1504,10 @@ aar $1==2 | | "mov (sp)+,r1" "jsr pc,aar~" erase(r01) | | | +#ifdef UNTESTED aar !defined($1) | | remove(all) "jsr pc,iaar~" | | | +#endif lae sar defined(rom(1,3)) | | | | lae $1 aar $2 sti rom(1,3) | lae lar defined(rom(1,3)) | | | | lae $1 aar $2 loi rom(1,3) | sar $1==2 | | @@ -1455,16 +1516,20 @@ sar $1==2 | | "mov (sp)+,r1" "jsr pc,sar~" erase(r01) | | | +#ifdef UNTESTED sar !defined($1) | | remove(all) "jsr pc,isar~" | | | +#endif lar $1==2 | | remove(all) "mov (sp)+,r0" "mov (sp)+,r1" "jsr pc,lar~" erase(r01) | | | +#ifdef UNTESTED lar !defined($1) | | remove(all) "jsr pc,ilar~" | | | +#endif /**************************************** * group 12 : Compare instructions * @@ -1481,41 +1546,49 @@ cmi $1==2 | source2 SCR_REG | erase(%[1]) | %[1] | | cmi $1==4 | | remove(all) "jsr pc,cmi4~" | r0 | | +#ifdef UNTESTED cmi !defined($1) | source2 | remove(all) move(%[1],r0) "jsr pc,cmi~" erase(r0) | r0 | | +#endif cmf defined($1) | | remove(ALL) move({CONST2,$1},r0) "jsr pc,cmf~" erase(r0) | r0 | | +#ifdef UNTESTED cmf !defined($1)| source2 | remove(ALL) move(%[1],r0) "jsr pc,cmf~" erase(r0) | r0 | | +#endif cmu $1==2 | | | | cmp | cmu $1==4 | | remove(all) "jsr pc,cmu4~" | r0 | | cmu defined($1) | | remove(all) move({CONST2,$1},r0) "jsr pc,cmu~" | r0 | | +#ifdef UNTESTED cmu !defined($1)| source2 | remove(all) move(%[1],r0) "jsr pc,cmu~" erase(r0) | r0 | | +#endif cms $1==2 | | | | cmi $1 | cms defined($1) | | remove(all) move({CONST2,$1},r0) "jsr pc,cms~" erase(r0) | r0 | | +#ifdef UNTESTED cms !defined($1)| source2 | remove(all) move(%[1],r0) "jsr pc,cms~" erase(r0) | r0 | | +#endif cmp | source2 source2 | allocate(REG = {CONST2,0}) "cmp %[1],%[2]" @@ -2156,11 +2229,13 @@ asp | | remove(all) "add $$$1,sp" | | | ass $1==2 | | remove(all) "add (sp)+,sp" | | | +#ifdef UNTESTED ass !defined($1)| source2 | remove(all) "cmp %[1],$$2" "beq 1f;jmp unknown~;1:" "add (sp)+,sp" | | | +#endif blm $1==4 | SCR_REG SCR_REG | "mov (%[2])+,(%[1])+" @@ -2186,6 +2261,7 @@ bls $1==2 | source2 | move(%[1],r0) "jsr pc,blm~" erase(r01) | | | +#ifdef UNTESTED bls !defined($1)| source2 source2 | remove(all) "cmp %[1],$$2" @@ -2193,6 +2269,7 @@ bls !defined($1)| source2 source2 | move(%[2],r0) "jsr pc,blm~" erase(r01) | | | +#endif lae csa $2==2 | source2 | remove(all) move(%[1],r1) @@ -2203,6 +2280,7 @@ csa $1==2 | | "mov (sp)+,r0" "mov (sp)+,r1" "jmp csa~" | | | +#ifdef UNTESTED csa !defined($1)| source2 | remove(all) "cmp %[1],$$2" @@ -2210,6 +2288,7 @@ csa !defined($1)| source2 | "mov (sp)+,r0" "mov (sp)+,r1" "jmp csa~" | | | +#endif lae csb $2==2 | source2 | remove(all) move(%[1],r1) @@ -2221,6 +2300,7 @@ csb $1==2 | | "mov (sp)+,r0" "mov (sp)+,r1" "jmp csb~" | | | +#ifdef UNTESTED csb !defined($1)| source2 | remove(all) "cmp %[1],$$2" @@ -2228,6 +2308,7 @@ csb !defined($1)| source2 | "mov (sp)+,r0" "mov (sp)+,r1" "jmp csb~" | | | +#endif dup $1==2 | REG | | %[1] %[1] | | dup $1==4 | NC longf4 | | %[1] %[1] | | ... | source2 source2 | | %[2] %[1] %[2] %[1] | | @@ -2245,6 +2326,7 @@ dus $1==2 | source2 | move(%[1],r0) "jsr pc,dup~" erase(r01) | | | +#ifdef UNTESTED dus !defined($1)| source2 | remove(all) "cmp %[1],$$2" @@ -2252,6 +2334,7 @@ dus !defined($1)| source2 | "mov (sp)+,r0" "jsr pc,dup~" erase(r01) | | | +#endif gto | | remove(all) "mov $$$1,-(sp)" "jmp gto~" | | | @@ -2273,12 +2356,14 @@ rck $1==2 | source2 | remove(all) move(%[1],r0) "jsr pc,rck~" | | | +#ifdef UNTESTED rck !defined($1)| source2 source2 | remove(all) "cmp %[1],$$2" "beq 1f;jmp unknown~;1:" move(%[2],r0) "jsr pc,rck~" | | | +#endif #else rck $1==2 | source2 | | | | rck !defined($1)| source2 source2 | | | |