Raymond Toy pushed to branch issue-95-fix-disassem-syntax at cmucl / cmucl
Commits:
-
a99465d8
by Raymond Toy at 2021-01-10T11:06:53-08:00
1 changed file:
Changes:
... | ... | @@ -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)
|