From: Juho S. <js...@us...> - 2004-12-04 15:16:58
|
Update of /cvsroot/sbcl/sbcl/src/compiler/x86-64 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5083/src/compiler/x86-64 Modified Files: Tag: x86-64-again-branch type-vops.lisp Log Message: 0.8.15.14.x86-64-again-branch.27: * Treat the context register values as unsigned-long instead of unsigned-int. * Fix broken logic in SIGNED-BYTE-32-P with NOT-P. Index: type-vops.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/x86-64/type-vops.lisp,v retrieving revision 1.1.8.6 retrieving revision 1.1.8.7 diff -u -d -r1.1.8.6 -r1.1.8.7 --- type-vops.lisp 29 Nov 2004 21:04:34 -0000 1.1.8.6 +++ type-vops.lisp 4 Dec 2004 15:16:47 -0000 1.1.8.7 @@ -182,8 +182,12 @@ (move rax-tn value) (inst test rax-tn 7) (inst jmp :ne (if not-p target not-target)) - (inst sar rax-tn (+ 32 3 -1)) - (inst jmp (if not-p :nz :z) target) + (inst sar rax-tn (+ 32 3 -1)) + (if not-p + (progn + (inst jmp :nz target) + (inst jmp not-target)) + (inst jmp :z target)) (inst cmp rax-tn -1) (inst jmp (if not-p :ne :eq) target) NOT-TARGET)) |