mirror of
git://git.code.sf.net/p/sbcl/sbcl
synced 2026-09-10 07:26:40 -04:00
Don't let the CONJUGATE VOPs be overridden by a transform
This commit is contained in:
parent
64efbd61f7
commit
373080b6a4
|
|
@ -3905,7 +3905,7 @@
|
|||
(:generator 1
|
||||
(inst rbit res arg)))
|
||||
|
||||
(deftransform abs ((x) (:or ((signed-word) signed-word)) * :vop t)
|
||||
(deftransform abs ((x) ((signed-word) signed-word) * :vop t)
|
||||
t)
|
||||
|
||||
(define-vop (abs)
|
||||
|
|
|
|||
|
|
@ -413,6 +413,12 @@
|
|||
(frob %negate/complex-double-float s-fneg %negate
|
||||
complex-double-reg complex-double-float :2d))
|
||||
|
||||
|
||||
(deftransform conjugate ((number) (:or ((complex-double-float) *)
|
||||
((complex-single-float) *)) *
|
||||
:vop t)
|
||||
t)
|
||||
|
||||
(macrolet ((frob (name sc type real-inst-size complex-inst-size)
|
||||
`(define-vop (,name)
|
||||
(:args (x :scs (,sc)))
|
||||
|
|
|
|||
|
|
@ -689,7 +689,8 @@
|
|||
(deftransform conjugate ((x) (real))
|
||||
'x)
|
||||
|
||||
(deftransform conjugate ((x) (complex))
|
||||
(deftransform conjugate ((x) (complex) * :node node)
|
||||
(delay-ir1-transform node :ir1-phases)
|
||||
`(complex (realpart x) (- (imagpart x))))
|
||||
|
||||
;;; The number is of type REAL.
|
||||
|
|
|
|||
|
|
@ -854,6 +854,12 @@
|
|||
(note-float-location 'sqrt vop x)
|
||||
(inst sqrtss y x)))
|
||||
|
||||
|
||||
(deftransform conjugate ((number) (:or ((complex-double-float) *)
|
||||
((complex-single-float) *)) *
|
||||
:vop t)
|
||||
t)
|
||||
|
||||
(macrolet ((frob ((name translate sc type) &body body)
|
||||
`(define-vop (,name)
|
||||
(:args (x :scs (,sc) :target y))
|
||||
|
|
|
|||
|
|
@ -330,4 +330,6 @@
|
|||
("iso-8859-2.pure" 765)
|
||||
("iso-8859-3.pure" 765)
|
||||
("fifo-slow.impure" 2070)
|
||||
("utf-8.pure" 700))
|
||||
("utf-8.pure" 700)
|
||||
("threads-slow.pure" 6296)
|
||||
("semaphore.pure" 7578))
|
||||
|
|
|
|||
Loading…
Reference in a new issue