projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.32.12: Fix slot-value on specialized parameters in SVUC methods
[sbcl.git]
/
src
/
compiler
/
x86-64
/
pred.lisp
diff --git
a/src/compiler/x86-64/pred.lisp
b/src/compiler/x86-64/pred.lisp
index
c74ed60
..
8c9b2fd
100644
(file)
--- a/
src/compiler/x86-64/pred.lisp
+++ b/
src/compiler/x86-64/pred.lisp
@@
-78,6
+78,10
@@
((unsigned-byte-64 unsigned-byte-63)
unsigned-reg move-if/unsigned)
(signed-byte-64 signed-reg move-if/signed)
((unsigned-byte-64 unsigned-byte-63)
unsigned-reg move-if/unsigned)
(signed-byte-64 signed-reg move-if/signed)
+ ;; FIXME: Can't use CMOV with byte registers, and characters live
+ ;; in such outside of unicode builds. A better solution then just
+ ;; disabling MOVE-IF/CHAR should be possible, though.
+ #!+sb-unicode
(character character-reg move-if/char)
((single-float complex-single-float
(character character-reg move-if/char)
((single-float complex-single-float
@@
-103,10
+107,6
@@
(let ((scn (sc-number-or-lose representation)))
(labels ((make-tn ()
(make-representation-tn ptype scn))
(let ((scn (sc-number-or-lose representation)))
(labels ((make-tn ()
(make-representation-tn ptype scn))
- (immediate-tn-p (tn)
- (and (eq (sb!c::tn-kind tn) :constant)
- (eq (sb!c::immediate-constant-sc (tn-value tn))
- (sc-number-or-lose 'immediate))))
(frob-tn (tn)
(if (immediate-tn-p tn)
tn
(frob-tn (tn)
(if (immediate-tn-p tn)
tn
@@
-202,6
+202,8
@@
unsigned-num unsigned-reg unsigned-stack)
(def-move-if move-if/signed
signed-num signed-reg signed-stack)
unsigned-num unsigned-reg unsigned-stack)
(def-move-if move-if/signed
signed-num signed-reg signed-stack)
+ ;; FIXME: See *CMOV-PTYPE-REPRESENTATION-VOP* above.
+ #!+sb-unicode
(def-move-if move-if/char
character character-reg character-stack)
(def-move-if move-if/sap
(def-move-if move-if/char
character character-reg character-stack)
(def-move-if move-if/sap