Several fixes: SDF was wrong, and shifts do NOT set contition codes properly
This commit is contained in:
parent
2361e37811
commit
bc2744ca5c
1 changed files with 8 additions and 12 deletions
|
@ -267,18 +267,17 @@ pop rm:wo.
|
||||||
push anyreg:ro cost(1,2).
|
push anyreg:ro cost(1,2).
|
||||||
push const:ro cost(1,2).
|
push const:ro cost(1,2).
|
||||||
push rm:ro cost(2,5).
|
push rm:ro cost(2,5).
|
||||||
rcl rm:rw:cc, ANYCON+SHIFT_CREG:ro cost(2,10).
|
rcl rm:rw, ANYCON+SHIFT_CREG:ro kills :cc cost(2,10).
|
||||||
rcr rm:rw:cc, ANYCON+SHIFT_CREG:ro cost(2,10).
|
rcr rm:rw, ANYCON+SHIFT_CREG:ro kills :cc cost(2,10).
|
||||||
ret cost(1,10).
|
ret cost(1,10).
|
||||||
rol rm:rw:cc, ANYCON+SHIFT_CREG:ro.
|
rol rm:rw, ANYCON+SHIFT_CREG:ro kills :cc.
|
||||||
ror rm:rw:cc, ANYCON+SHIFT_CREG:ro.
|
ror rm:rw, ANYCON+SHIFT_CREG:ro kills :cc.
|
||||||
sal rm:rw:cc, ANYCON+SHIFT_CREG:ro.
|
sal rm:rw, ANYCON+SHIFT_CREG:ro kills :cc.
|
||||||
sar rm:rw:cc, ANYCON+SHIFT_CREG:ro.
|
sar rm:rw, ANYCON+SHIFT_CREG:ro kills :cc.
|
||||||
sbb rm:rw:cc, regorconst:ro.
|
sbb rm:rw:cc, regorconst:ro.
|
||||||
sbb anyreg:rw:cc, rmorconst:ro.
|
sbb anyreg:rw:cc, rmorconst:ro.
|
||||||
shl rm:rw:cc, ANYCON+SHIFT_CREG:ro.
|
shl rm:rw, ANYCON+SHIFT_CREG:ro kills :cc.
|
||||||
shr rm:rw:cc, ANYCON+SHIFT_CREG:ro.
|
shr rm:rw, ANYCON+SHIFT_CREG:ro kills :cc.
|
||||||
sxx rm:rw:cc, ANYCON+SHIFT_CREG:ro.
|
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
sub LOCAL:rw:cc, rmorconst:ro. /* only for register variables; UNSAFE !!! */
|
sub LOCAL:rw:cc, rmorconst:ro. /* only for register variables; UNSAFE !!! */
|
||||||
#endif
|
#endif
|
||||||
|
@ -936,9 +935,6 @@ pat sdf
|
||||||
kills mem_nonlocals
|
kills mem_nonlocals
|
||||||
gen pop {EXTERN,%1.off+$1}
|
gen pop {EXTERN,%1.off+$1}
|
||||||
pop {EXTERN,%1.off+$1+4}
|
pop {EXTERN,%1.off+$1+4}
|
||||||
with halfindir regorconst
|
|
||||||
kills all_mems
|
|
||||||
gen mov %1,%2 yields %1 leaving stf $1+4
|
|
||||||
|
|
||||||
|
|
||||||
/****************************************************************
|
/****************************************************************
|
||||||
|
|
Loading…
Reference in a new issue