- ,@(let ((printers
- (if prefix
- `((:printer ext-xmm-xmm/mem
- ((prefix ,prefix) (op ,opcode-from)))
- (:printer ext-rex-xmm-xmm/mem
- ((prefix ,prefix) (op ,opcode-from)))
- (:printer ext-xmm-xmm/mem
- ((prefix ,prefix) (op ,opcode-to))
- '(:name :tab reg/mem ", " reg))
- (:printer ext-rex-xmm-xmm/mem
- ((prefix ,prefix) (op ,opcode-to))
- '(:name :tab reg/mem ", " reg)))
- `((:printer xmm-xmm/mem
- ((op ,opcode-from)))
- (:printer rex-xmm-xmm/mem
- ((op ,opcode-from)))
- (:printer xmm-xmm/mem
- ((op ,opcode-to))
- '(:name :tab reg/mem ", " reg))
- (:printer rex-xmm-xmm/mem
- ((op ,opcode-to))
- '(:name :tab reg/mem ", " reg))))))
- (if opcode-from printers (cddr printers)))
+ (:printer-list
+ '(,@(when opcode-from
+ (sse-inst-printer-list
+ 'xmm-xmm/mem prefix opcode-from))
+ ,@(sse-inst-printer-list
+ 'xmm-xmm/mem prefix opcode-to
+ :printer '(:name :tab reg/mem ", " reg))))