(add `(&U ,imm)))
((and (zero? (bitwise-and imm (bit-mask 12 0)))
(fits-in-unsigned-12? (shift-right imm 12)))
- (add `(&U ,imm LSL 12)))
+ (add `(LSL (&U ,imm) 12)))
((fits-in-unsigned-12? (- imm))
(sub `(&U ,(- imm))))
- ((and (zero? (bitwise-and imm (bit-mask 12 0)))
+ ((and (zero? (bitwise-and (- imm) (bit-mask 12 0)))
(fits-in-unsigned-12? (shift-right (- imm) 12)))
- (sub `(&U ,(- imm) LSL 12)))
+ (sub `(LSL (&U ,(- imm)) 12)))
(else
(let ((temp (allocate-temporary-register! 'GENERAL)))
(LAP ,@(load-unsigned-immediate temp imm)