That's weird because the entire point of the change was to take the accessors *outside* of the eval-when.
(macroexpand '(sb!disassem:define-instruction-format (xinstr 32 :default-printer '(:name :tab data))
(op-to-a :field (byte 16 16))
(data :field (byte 16 0) :reader xinstr-data)))
(EVAL-WHEN (:COMPILE-TOPLEVEL :EXECUTE)
(LET ((#:G626 32))
(SETF (GETHASH 'XINSTR SB-DISASSEM::*DISASSEM-INST-FORMATS*)
(SB-DISASSEM::MAKE-INST-FORMAT 'XINSTR (SB-DISASSEM::BITS-TO-BYTES #:G626)
'(:NAME :TAB DATA)
(SB-DISASSEM::MAKE-ARG 0 #:G626 'OP-TO-A :FIELD
(BYTE 16 16))
(SB-DISASSEM::MAKE-ARG 1 #:G626 'DATA :FIELD
(BYTE 16 0)))))))
(DECLAIM (INLINE XINSTR-DATA))
(DEFUN XINSTR-DATA (SB-DISASSEM:DCHUNK SB-DISASSEM::DSTATE)
(DECLARE (IGNORABLE SB-DISASSEM:DCHUNK SB-DISASSEM::DSTATE))
(SB-DISASSEM::ARG-ACCESS-MACRO DATA XINSTR SB-DISASSEM:DCHUNK SB-DISASSEM::DSTATE)))
Is that function definitely not in the image? (vs I made a typo when changing 'unimp-control')?
The ppc instruction file uses an especially weird paradigm where most of the define-instruction's are themselves inside other macros, but it should have been enough that the define-format said it wanted a :READER.
Any guidance on this would be appreciated while I think about it.