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,3 +1,4 @@
|
|||
|
||||
/************************************************************/
|
||||
/************************************************************/
|
||||
/******* ******/
|
||||
|
@ -53,8 +54,9 @@ SETS
|
|||
reg1 = reg + lbreg + mem .
|
||||
bdhsp = regpair + stackpointer .
|
||||
bdhpsw = regpair + psword .
|
||||
src1 = reg .
|
||||
src2 = hlorde + const2 .
|
||||
immediate2 = const2 + label .
|
||||
src1 = reg + const1 .
|
||||
src2 = hlorde + const2 + label .
|
||||
src1or2 = src1 + src2 .
|
||||
|
||||
INSTRUCTIONS
|
||||
|
@ -101,7 +103,7 @@ INSTRUCTIONS
|
|||
lda label:ro kills a cost(3,13) .
|
||||
ldax regind:ro kills a cost(1,7) .
|
||||
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) .
|
||||
mvi reg1:wo,const1:ro cost(2,7) .
|
||||
/* nop cost(1,0) . */
|
||||
|
@ -149,7 +151,7 @@ from reg to regpair
|
|||
gen mov %2.2,%1
|
||||
mvi %2.1,{const1,0}
|
||||
|
||||
from const2 + label to bdhsp
|
||||
from immediate2 to bdhsp
|
||||
gen lxi %2,%1
|
||||
|
||||
from const1 to reg
|
||||
|
@ -161,7 +163,7 @@ gen mov %2.1,%1.1
|
|||
|
||||
TESTS
|
||||
|
||||
to test areg
|
||||
to test areg /* just a dummy test, never used */
|
||||
gen cmp %1
|
||||
|
||||
STACKINGRULES
|
||||
|
@ -179,12 +181,12 @@ gen push hl
|
|||
move %1,hl
|
||||
xthl.
|
||||
|
||||
from const2 + label to STACK
|
||||
from immediate2 to STACK
|
||||
uses hlorde
|
||||
gen lxi %a,%1
|
||||
push %a
|
||||
|
||||
from const2 + label to STACK
|
||||
from immediate2 to STACK
|
||||
gen push hl
|
||||
move %1,hl
|
||||
xthl.
|
||||
|
@ -205,7 +207,7 @@ gen dcx sp
|
|||
pop psw
|
||||
inx sp yields a
|
||||
|
||||
from const2 + label
|
||||
from immediate2
|
||||
uses regpair
|
||||
gen move %1,%a yields %a
|
||||
|
||||
|
@ -332,10 +334,8 @@ with hlreg
|
|||
uses reg
|
||||
gen mov %a,m yields %a
|
||||
with dereg
|
||||
uses areg /*** ??? ***/
|
||||
gen ldax de yields a
|
||||
with exact label
|
||||
uses areg /*** ??? ***/
|
||||
gen lda %1 yields a
|
||||
|
||||
pat loi $1==2
|
||||
|
@ -455,6 +455,65 @@ gen dad lb
|
|||
inx hl
|
||||
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
|
||||
with hlorde STACK
|
||||
|
@ -1197,7 +1256,6 @@ gen Call {label,".cmi4"} yields de
|
|||
|
||||
pat cmu $1==2
|
||||
with hlorde hlorde
|
||||
kills hlorde /***** ?????? ******/
|
||||
uses areg
|
||||
gen mov a,%2.1
|
||||
cmp %1.1
|
||||
|
@ -1341,7 +1399,8 @@ with exact areg
|
|||
uses hlorde={const2,0}
|
||||
gen cpi {const1,$1}
|
||||
jnz {label,"1f"}
|
||||
inx %a yields %a
|
||||
inx %a
|
||||
1: yields %a
|
||||
with yields {const2,$1}
|
||||
leaving cmi 2 teq
|
||||
|
||||
|
@ -1351,7 +1410,8 @@ with exact areg
|
|||
uses hlorde={const2,0}
|
||||
gen cpi {const1,$1}
|
||||
jz {label,"1f"}
|
||||
inx %a yields %a
|
||||
inx %a
|
||||
1: yields %a
|
||||
with yields {const2,$1}
|
||||
leaving cmi 2 tne
|
||||
|
||||
|
@ -1440,6 +1500,10 @@ with STACK
|
|||
gen pop psw
|
||||
ral.
|
||||
jc {label,$1}
|
||||
with hlorde
|
||||
gen mov a,%1.1
|
||||
ral.
|
||||
jc {label,$1}
|
||||
|
||||
pat zle
|
||||
with hlorde STACK
|
||||
|
@ -1472,6 +1536,10 @@ with STACK
|
|||
gen pop psw
|
||||
ral.
|
||||
jnc {label,$1}
|
||||
with hlorde
|
||||
gen mov a,%1.1
|
||||
ral.
|
||||
jnc {label,$1}
|
||||
|
||||
pat zgt
|
||||
with hlorde STACK
|
||||
|
|
Loading…
Reference in a new issue