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.
This commit is contained in:
sater 1984-07-13 14:55:37 +00:00
parent caa918f7d9
commit da8966a6c8

View file

@ -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 | | | |