- (:cost 10)
- (:return-style :full-call)
- (:policy :safe)
- (:translate ,translate)
- (:save-p t))
- ((:arg x (descriptor-reg any-reg) a0-offset)
- (:arg y (descriptor-reg any-reg) a1-offset)
-
- (:res res descriptor-reg a0-offset)
-
- (:temp temp non-descriptor-reg nl0-offset)
- (:temp lip interior-reg lip-offset)
- (:temp nargs any-reg nargs-offset)
- (:temp ocfp any-reg ocfp-offset))
- (inst and x 3 temp)
- (inst bne temp DO-STATIC-FN)
- (inst and y 3 temp)
- (inst beq temp DO-COMPARE)
-
- DO-STATIC-FN
- (inst ldl lip (static-function-offset ',static-fn) null-tn)
- (inst li (fixnumize 2) nargs)
- (inst move cfp-tn ocfp)
- (inst move csp-tn cfp-tn)
- (inst jmp zero-tn lip)
-
- DO-COMPARE
- ,cmp
- (inst move null-tn res)
- (inst ,(if not-p 'bne 'beq) temp done)
- (load-symbol res t)
- DONE)))
+ (:cost 10)
+ (:return-style :full-call)
+ (:policy :safe)
+ (:translate ,translate)
+ (:save-p t))
+ ((:arg x (descriptor-reg any-reg) a0-offset)
+ (:arg y (descriptor-reg any-reg) a1-offset)
+
+ (:res res descriptor-reg a0-offset)
+
+ (:temp temp non-descriptor-reg nl0-offset)
+ (:temp lip interior-reg lip-offset)
+ (:temp nargs any-reg nargs-offset)
+ (:temp ocfp any-reg ocfp-offset))
+ (inst and x 3 temp)
+ (inst bne temp DO-STATIC-FN)
+ (inst and y 3 temp)
+ (inst beq temp DO-COMPARE)
+
+ DO-STATIC-FN
+ (inst ldl lip (static-fun-offset ',static-fn) null-tn)
+ (inst li (fixnumize 2) nargs)
+ (inst move cfp-tn ocfp)
+ (inst move csp-tn cfp-tn)
+ (inst jmp zero-tn lip)
+
+ DO-COMPARE
+ ,cmp
+ (inst move null-tn res)
+ (inst ,(if not-p 'bne 'beq) temp done)
+ (load-symbol res t)
+ DONE)))