From: ceriel Date: Mon, 14 Dec 1992 16:37:35 +0000 (+0000) Subject: Several fixes: SDF was wrong, and shifts do NOT set contition codes properly X-Git-Tag: release-5-5~374 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=bc2744ca5cecc3a820c5adc88879448af15991e7;p=ack.git Several fixes: SDF was wrong, and shifts do NOT set contition codes properly --- diff --git a/mach/i386/ncg/table b/mach/i386/ncg/table index 4e0018f1b..c48322afb 100644 --- a/mach/i386/ncg/table +++ b/mach/i386/ncg/table @@ -267,18 +267,17 @@ pop rm:wo. push anyreg:ro cost(1,2). push const:ro cost(1,2). push rm:ro cost(2,5). -rcl rm:rw:cc, ANYCON+SHIFT_CREG:ro cost(2,10). -rcr 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, ANYCON+SHIFT_CREG:ro kills :cc cost(2,10). ret cost(1,10). -rol rm:rw:cc, ANYCON+SHIFT_CREG:ro. -ror rm:rw:cc, ANYCON+SHIFT_CREG:ro. -sal rm:rw:cc, ANYCON+SHIFT_CREG:ro. -sar rm:rw:cc, ANYCON+SHIFT_CREG:ro. +rol rm:rw, ANYCON+SHIFT_CREG:ro kills :cc. +ror rm:rw, ANYCON+SHIFT_CREG:ro kills :cc. +sal rm:rw, ANYCON+SHIFT_CREG:ro kills :cc. +sar rm:rw, ANYCON+SHIFT_CREG:ro kills :cc. sbb rm:rw:cc, regorconst:ro. sbb anyreg:rw:cc, rmorconst:ro. -shl rm:rw:cc, ANYCON+SHIFT_CREG:ro. -shr rm:rw:cc, ANYCON+SHIFT_CREG:ro. -sxx rm:rw:cc, ANYCON+SHIFT_CREG:ro. +shl rm:rw, ANYCON+SHIFT_CREG:ro kills :cc. +shr rm:rw, ANYCON+SHIFT_CREG:ro kills :cc. #ifdef REGVARS sub LOCAL:rw:cc, rmorconst:ro. /* only for register variables; UNSAFE !!! */ #endif @@ -936,9 +935,6 @@ pat sdf kills mem_nonlocals gen pop {EXTERN,%1.off+$1} pop {EXTERN,%1.off+$1+4} - with halfindir regorconst - kills all_mems - gen mov %1,%2 yields %1 leaving stf $1+4 /****************************************************************