FLOATING-VECTOR-CONS FLONUM-ACOS FLONUM-ASIN FLONUM-ATAN
FLONUM-ATAN2 FLONUM-CEILING FLONUM-COS FLONUM-EXP FLONUM-EXPM1
FLONUM-FLOOR FLONUM-LOG FLONUM-LOG1P FLONUM-ROUND FLONUM-SIN
- FLONUM-TAN FLONUM-TRUNCATE GCD-FIXNUM STRING-ALLOCATE VECTOR-CONS
- FLONUM-IS-NEGATIVE?))
\ No newline at end of file
+ FLONUM-TAN FLONUM-TRUNCATE GCD-FIXNUM STRING-ALLOCATE VECTOR-CONS))
\ No newline at end of file
(flonum-source-reference! source)
(INST-EA (@PCR ,(allocate-double-float-bits-label double-flobits:zero)))))
+(define-rule predicate
+ (FLONUM-PRED-1-ARG FLONUM-IS-NEGATIVE? (REGISTER (? source)))
+ (set-current-branches! (lambda (label)
+ (LAP (JNZ (@PCR ,label))))
+ (lambda (label)
+ (LAP (JZ (@PCR ,label)))))
+ (let ((temp (temporary-register-reference)))
+ (LAP (MOVMSKF P D ,temp ,(flonum-source-reference! source))
+ (TEST B ,temp (&U 1)))))
+
(define-rule predicate
(FLONUM-PRED-2-ARGS (? predicate)
(REGISTER (? source1))