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