- (inst add ptr offset res)))
-
-(define-vop (pointer+-c)
- (:translate sap+)
- (:args (ptr :scs (sap-reg)))
- (:info offset)
- (:arg-types system-area-pointer (:constant (signed-byte 11)))
- (:results (res :scs (sap-reg)))
- (:result-types system-area-pointer)
- (:policy :fast-safe)
- (:generator 1
- (inst addi offset ptr res)))
+ (sc-case offset
+ (signed-reg
+ (inst add ptr offset res))
+ (immediate
+ (cond
+ ((and (< (tn-value offset) (ash 1 10))
+ (> (tn-value offset) (- (ash 1 10))))
+ (inst addi (tn-value offset) ptr res))
+ (t
+ (inst li (tn-value offset) res)
+ (inst add ptr res res)))))))