src1 and src2 extended.
Errors in 'pat loc cmi teq' and 'pat loc cmi tne' recovered. Second stack-pattern for 'pat zlt' and 'pat zge' added. Patterns for 'lil loc adi sil', 'lil inc sil', 'lil dec sil' and 'sil lil' added.
This commit is contained in:
parent
ea337060ec
commit
a849b751a9
1 changed files with 81 additions and 13 deletions
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
/************************************************************/
|
/************************************************************/
|
||||||
/************************************************************/
|
/************************************************************/
|
||||||
/******* ******/
|
/******* ******/
|
||||||
|
@ -53,8 +54,9 @@ SETS
|
||||||
reg1 = reg + lbreg + mem .
|
reg1 = reg + lbreg + mem .
|
||||||
bdhsp = regpair + stackpointer .
|
bdhsp = regpair + stackpointer .
|
||||||
bdhpsw = regpair + psword .
|
bdhpsw = regpair + psword .
|
||||||
src1 = reg .
|
immediate2 = const2 + label .
|
||||||
src2 = hlorde + const2 .
|
src1 = reg + const1 .
|
||||||
|
src2 = hlorde + const2 + label .
|
||||||
src1or2 = src1 + src2 .
|
src1or2 = src1 + src2 .
|
||||||
|
|
||||||
INSTRUCTIONS
|
INSTRUCTIONS
|
||||||
|
@ -101,7 +103,7 @@ INSTRUCTIONS
|
||||||
lda label:ro kills a cost(3,13) .
|
lda label:ro kills a cost(3,13) .
|
||||||
ldax regind:ro kills a cost(1,7) .
|
ldax regind:ro kills a cost(1,7) .
|
||||||
lhld label:ro kills hl cost(3,16) .
|
lhld label:ro kills hl cost(3,16) .
|
||||||
lxi bdhsp:wo,const2+label:ro cost(3,10) .
|
lxi bdhsp:wo,immediate2:ro cost(3,10) .
|
||||||
mov reg1:wo,reg1:ro cost(1,5) .
|
mov reg1:wo,reg1:ro cost(1,5) .
|
||||||
mvi reg1:wo,const1:ro cost(2,7) .
|
mvi reg1:wo,const1:ro cost(2,7) .
|
||||||
/* nop cost(1,0) . */
|
/* nop cost(1,0) . */
|
||||||
|
@ -149,7 +151,7 @@ from reg to regpair
|
||||||
gen mov %2.2,%1
|
gen mov %2.2,%1
|
||||||
mvi %2.1,{const1,0}
|
mvi %2.1,{const1,0}
|
||||||
|
|
||||||
from const2 + label to bdhsp
|
from immediate2 to bdhsp
|
||||||
gen lxi %2,%1
|
gen lxi %2,%1
|
||||||
|
|
||||||
from const1 to reg
|
from const1 to reg
|
||||||
|
@ -161,7 +163,7 @@ gen mov %2.1,%1.1
|
||||||
|
|
||||||
TESTS
|
TESTS
|
||||||
|
|
||||||
to test areg
|
to test areg /* just a dummy test, never used */
|
||||||
gen cmp %1
|
gen cmp %1
|
||||||
|
|
||||||
STACKINGRULES
|
STACKINGRULES
|
||||||
|
@ -179,12 +181,12 @@ gen push hl
|
||||||
move %1,hl
|
move %1,hl
|
||||||
xthl.
|
xthl.
|
||||||
|
|
||||||
from const2 + label to STACK
|
from immediate2 to STACK
|
||||||
uses hlorde
|
uses hlorde
|
||||||
gen lxi %a,%1
|
gen lxi %a,%1
|
||||||
push %a
|
push %a
|
||||||
|
|
||||||
from const2 + label to STACK
|
from immediate2 to STACK
|
||||||
gen push hl
|
gen push hl
|
||||||
move %1,hl
|
move %1,hl
|
||||||
xthl.
|
xthl.
|
||||||
|
@ -205,7 +207,7 @@ gen dcx sp
|
||||||
pop psw
|
pop psw
|
||||||
inx sp yields a
|
inx sp yields a
|
||||||
|
|
||||||
from const2 + label
|
from immediate2
|
||||||
uses regpair
|
uses regpair
|
||||||
gen move %1,%a yields %a
|
gen move %1,%a yields %a
|
||||||
|
|
||||||
|
@ -332,10 +334,8 @@ with hlreg
|
||||||
uses reg
|
uses reg
|
||||||
gen mov %a,m yields %a
|
gen mov %a,m yields %a
|
||||||
with dereg
|
with dereg
|
||||||
uses areg /*** ??? ***/
|
|
||||||
gen ldax de yields a
|
gen ldax de yields a
|
||||||
with exact label
|
with exact label
|
||||||
uses areg /*** ??? ***/
|
|
||||||
gen lda %1 yields a
|
gen lda %1 yields a
|
||||||
|
|
||||||
pat loi $1==2
|
pat loi $1==2
|
||||||
|
@ -455,6 +455,65 @@ gen dad lb
|
||||||
inx hl
|
inx hl
|
||||||
mov m,d
|
mov m,d
|
||||||
|
|
||||||
|
pat sil lil $1==$2
|
||||||
|
with dereg
|
||||||
|
uses hlreg={const2,$1}, areg
|
||||||
|
gen dad lb
|
||||||
|
mov a,m
|
||||||
|
inx hl
|
||||||
|
mov h,m
|
||||||
|
mov l,a
|
||||||
|
mov m,e
|
||||||
|
inx hl
|
||||||
|
mov m,d yields de
|
||||||
|
|
||||||
|
pat lil loc adi sil $1==$4 && $3==2
|
||||||
|
with STACK
|
||||||
|
uses hlreg={const2,$1}, dereg, areg
|
||||||
|
gen dad lb
|
||||||
|
mov e,m
|
||||||
|
inx hl
|
||||||
|
mov h,m
|
||||||
|
mov l,e
|
||||||
|
mov e,m
|
||||||
|
inx hl
|
||||||
|
mov d,m
|
||||||
|
push hl
|
||||||
|
lxi hl,{const2,$2}
|
||||||
|
dad de
|
||||||
|
xchg.
|
||||||
|
pop hl
|
||||||
|
mov m,d
|
||||||
|
dcx hl
|
||||||
|
mov m,e
|
||||||
|
|
||||||
|
pat lil inc sil $1==$3
|
||||||
|
uses hlreg={const2,$1}
|
||||||
|
gen dad lb
|
||||||
|
mov e,m
|
||||||
|
inx hl
|
||||||
|
mov h,m
|
||||||
|
mov l,e
|
||||||
|
inr m
|
||||||
|
jnz {label,"1f"}
|
||||||
|
inx hl
|
||||||
|
inr m
|
||||||
|
1:
|
||||||
|
|
||||||
|
pat lil dec sil $1==$3
|
||||||
|
uses hlreg={const2,$1}
|
||||||
|
gen dad lb
|
||||||
|
mov e,m
|
||||||
|
inx hl
|
||||||
|
mov h,m
|
||||||
|
mov l,e
|
||||||
|
mov e,m
|
||||||
|
inx hl
|
||||||
|
mov d,m
|
||||||
|
dcx de
|
||||||
|
mov m,d
|
||||||
|
dcx hl
|
||||||
|
mov m,e
|
||||||
|
|
||||||
pat stf
|
pat stf
|
||||||
with hlorde STACK
|
with hlorde STACK
|
||||||
|
@ -1197,7 +1256,6 @@ gen Call {label,".cmi4"} yields de
|
||||||
|
|
||||||
pat cmu $1==2
|
pat cmu $1==2
|
||||||
with hlorde hlorde
|
with hlorde hlorde
|
||||||
kills hlorde /***** ?????? ******/
|
|
||||||
uses areg
|
uses areg
|
||||||
gen mov a,%2.1
|
gen mov a,%2.1
|
||||||
cmp %1.1
|
cmp %1.1
|
||||||
|
@ -1341,7 +1399,8 @@ with exact areg
|
||||||
uses hlorde={const2,0}
|
uses hlorde={const2,0}
|
||||||
gen cpi {const1,$1}
|
gen cpi {const1,$1}
|
||||||
jnz {label,"1f"}
|
jnz {label,"1f"}
|
||||||
inx %a yields %a
|
inx %a
|
||||||
|
1: yields %a
|
||||||
with yields {const2,$1}
|
with yields {const2,$1}
|
||||||
leaving cmi 2 teq
|
leaving cmi 2 teq
|
||||||
|
|
||||||
|
@ -1351,7 +1410,8 @@ with exact areg
|
||||||
uses hlorde={const2,0}
|
uses hlorde={const2,0}
|
||||||
gen cpi {const1,$1}
|
gen cpi {const1,$1}
|
||||||
jz {label,"1f"}
|
jz {label,"1f"}
|
||||||
inx %a yields %a
|
inx %a
|
||||||
|
1: yields %a
|
||||||
with yields {const2,$1}
|
with yields {const2,$1}
|
||||||
leaving cmi 2 tne
|
leaving cmi 2 tne
|
||||||
|
|
||||||
|
@ -1440,6 +1500,10 @@ with STACK
|
||||||
gen pop psw
|
gen pop psw
|
||||||
ral.
|
ral.
|
||||||
jc {label,$1}
|
jc {label,$1}
|
||||||
|
with hlorde
|
||||||
|
gen mov a,%1.1
|
||||||
|
ral.
|
||||||
|
jc {label,$1}
|
||||||
|
|
||||||
pat zle
|
pat zle
|
||||||
with hlorde STACK
|
with hlorde STACK
|
||||||
|
@ -1472,6 +1536,10 @@ with STACK
|
||||||
gen pop psw
|
gen pop psw
|
||||||
ral.
|
ral.
|
||||||
jnc {label,$1}
|
jnc {label,$1}
|
||||||
|
with hlorde
|
||||||
|
gen mov a,%1.1
|
||||||
|
ral.
|
||||||
|
jnc {label,$1}
|
||||||
|
|
||||||
pat zgt
|
pat zgt
|
||||||
with hlorde STACK
|
with hlorde STACK
|
||||||
|
|
Loading…
Reference in a new issue