Raymond Toy pushed to branch issue-95-fix-disassem-syntax at cmucl / cmucl

Commits:

1 changed file:

Changes:

  • src/compiler/x86/insts.lisp
    ... ... @@ -797,7 +797,7 @@
    797 797
       (op      :field (byte 7 1))
    
    798 798
       (width   :field (byte 1 0)	:type 'width)
    
    799 799
       (reg/mem :fields (list (byte 2 14) (byte 3 8))
    
    800
    -	   			:type 'reg/mem)
    
    800
    +	   			:type 'sized-reg/mem)
    
    801 801
       (reg     :field (byte 3 11)	:type 'reg)
    
    802 802
       ;; optional fields
    
    803 803
       (imm))
    
    ... ... @@ -835,7 +835,10 @@
    835 835
     (disassem:define-instruction-format
    
    836 836
         (accum-reg/mem 16
    
    837 837
          :include 'reg/mem :default-printer '(:name :tab accum ", " reg/mem))
    
    838
    -  (reg/mem :type 'reg/mem)		; don't need a size
    
    838
    +  ;; This format uses the accumulator, so the size is known; therefore
    
    839
    +  ;; we don't really need to print out the memory size, but let's do
    
    840
    +  ;; it for consistency.
    
    841
    +  (reg/mem :type 'sized-reg/mem)
    
    839 842
       (accum :type 'accum))
    
    840 843
     
    
    841 844
     ;;; Same as reg-reg/mem, but with a prefix of #b00001111
    
    ... ... @@ -1132,7 +1135,8 @@
    1132 1135
     	      (error "Bogus args to XCHG: ~S ~S" operand1 operand2)))))))
    
    1133 1136
     
    
    1134 1137
     (define-instruction lea (segment dst src)
    
    1135
    -  (:printer reg-reg/mem ((op #b1000110) (width 1)))
    
    1138
    +  ;; Don't need to print out the width for the LEA instruction
    
    1139
    +  (:printer reg-reg/mem ((op #b1000110) (width 1) (reg/mem nil :type 'reg/mem)))
    
    1136 1140
       (:emitter
    
    1137 1141
        (assert (dword-reg-p dst))
    
    1138 1142
        (emit-byte segment #b10001101)