ack/mach/i80/top/table

63 lines
2.1 KiB
Plaintext
Raw Permalink Normal View History

/* 8080 desciptor table for ACK target optimizer */
MAXOP 2;
%%;
X, Y, Z { TRUE };
%%;
mvi X, Y : mov X, Z -> mov X, Z ;
xchg : inx h : xchg -> inx d ;
xchg : inx d : xchg -> inx h ;
2019-02-16 00:18:31 +00:00
adi 0 -> xra a ;
ori 0 -> ora a ;
xri 0 -> ora a ;
adi 0 -> ora a ;
sui 0 -> ora a ;
cpi 0 -> ora a ;
call X : ret -> jmp X ;
push h : lxi h, X : pop d -> lxi d, X : xchg ;
push d : lxi d, X : pop h -> lxi h, X : xchg ;
2019-02-16 00:18:31 +00:00
push h : lhld X : pop d -> xchg : lhld X ;
X -1 -> X 255 ;
X -2 -> X 254 ;
X -3 -> X 253 ;
X -4 -> X 252 ;
mov a, X : adi -4 : mov X, a : kill a -> dcr X : dcr X : dcr X : dcr X;
mov a, X : adi -3 : mov X, a : kill a -> dcr X : dcr X : dcr X ;
mov a, X : adi -2 : mov X, a : kill a -> dcr X : dcr X ;
mov a, X : adi -1 : mov X, a : kill a -> dcr X ;
mov a, X : adi 0 : mov X, a : kill a -> ;
mov a, X : adi 1 : mov X, a : kill a -> inr X ;
mov a, X : adi 2 : mov X, a : kill a -> inr X : inr X ;
mov a, X : adi 3 : mov X, a : kill a -> inr X : inr X : inr X ;
mov a, X : adi 4 : mov X, a : kill a -> inr X : inr X : inr X : inr X;
mov a, X : sbi -4 : mov X, a : kill a -> inr X : inr X : inr X : inr X;
mov a, X : sbi -3 : mov X, a : kill a -> inr X : inr X : inr X ;
mov a, X : sbi -2 : mov X, a : kill a -> inr X : inr X ;
mov a, X : sbi -1 : mov X, a : kill a -> inr X ;
mov a, X : sbi 0 : mov X, a : kill a -> ;
mov a, X : sbi 1 : mov X, a : kill a -> dcr X ;
mov a, X : sbi 2 : mov X, a : kill a -> dcr X : dcr X ;
mov a, X : sbi 3 : mov X, a : kill a -> dcr X : dcr X : dcr X ;
mov a, X : sbi 4 : mov X, a : kill a -> dcr X : dcr X : dcr X : dcr X ;
mov a, X : ani 0 : mov X, a : kill a -> mvi X, 0 ;
mov a, X : ani 255 : mov X, a : kill a -> ;
mov a, X : ori 0 : mov X, a : kill a -> ;
mov a, X : ori 255 : mov X, a : kill a -> mvi X, 255 ;
mov a, X : xri 0 : mov X, a : kill a -> ;
%%;