From bc2744ca5cecc3a820c5adc88879448af15991e7 Mon Sep 17 00:00:00 2001 From: ceriel Date: Mon, 14 Dec 1992 16:37:35 +0000 Subject: [PATCH] Several fixes: SDF was wrong, and shifts do NOT set contition codes properly --- mach/i386/ncg/table | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) 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 /**************************************************************** -- 2.34.1