- ((immediate zero)
- (let ((offset (- (+ (if (sc-is index zero)
- 0
- (ash (tn-value index)
- (- sb!vm:word-shift ,shift)))
- (ash offset sb!vm:word-shift))
- lowtag)))
- (etypecase offset
- ((signed-byte 16)
- (inst ,ri-op value object offset))
- ((or (unsigned-byte 32) (signed-byte 32))
- (inst lr temp offset)
- (inst ,rr-op value object temp)))))
- (t
- ,@(unless (zerop shift)
- `((inst srwi temp index ,shift)))
- (inst addi temp ,(if (zerop shift) 'index 'temp)
- (- (ash offset sb!vm:word-shift) lowtag))
- (inst ,rr-op value object temp)))
+ ((immediate zero)
+ (let ((offset (- (+ (if (sc-is index zero)
+ 0
+ (ash (tn-value index)
+ (- word-shift ,shift)))
+ (ash offset word-shift))
+ lowtag)))
+ (etypecase offset
+ ((signed-byte 16)
+ (inst ,ri-op value object offset))
+ ((or (unsigned-byte 32) (signed-byte 32))
+ (inst lr temp offset)
+ (inst ,rr-op value object temp)))))
+ (t
+ ,@(unless (zerop shift)
+ `((inst srwi temp index ,shift)))
+ (inst addi temp ,(if (zerop shift) 'index 'temp)
+ (- (ash offset word-shift) lowtag))
+ (inst ,rr-op value object temp)))