Skip to content

Commit

Permalink
0.8.9.47:
Browse files Browse the repository at this point in the history
        * Merged patch by Lutz Euler for the bug 245a.
  • Loading branch information
Alexey Dejneka committed Apr 15, 2004
1 parent 6a9bbe6 commit ba2143e
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 3 deletions.
1 change: 0 additions & 1 deletion BUGS
Expand Up @@ -882,7 +882,6 @@ WORKAROUND:
; The variable Y is defined but never used.

245: bugs in disassembler
a. On X86 an immediate operand for IMUL is printed incorrectly.
b. On X86 operand size prefix is not recognized.

251:
Expand Down
1 change: 1 addition & 0 deletions src/compiler/disassem.lisp
Expand Up @@ -347,6 +347,7 @@
(let* ((old-arg (car this-arg-temps))
(new-arg (find (arg-name old-arg) args :key #'arg-name)))
(and new-arg
(= (arg-position old-arg) (arg-position new-arg))
(every (lambda (this-kind-temps)
(funcall (find-arg-form-checker
(car this-kind-temps))
Expand Down
11 changes: 10 additions & 1 deletion src/compiler/x86/insts.lisp
Expand Up @@ -264,6 +264,14 @@
+default-operand-size+)))
(sb!disassem:read-suffix (width-bits width) dstate))))

(sb!disassem:define-arg-type signed-imm-word
:prefilter (lambda (value dstate)
(declare (ignore value)) ; always nil anyway
(let ((width
(or (sb!disassem:dstate-get-prop dstate 'word-width)
+default-operand-size+)))
(sb!disassem:read-signed-suffix (width-bits width) dstate))))

;;; needed for the ret imm16 instruction
(sb!disassem:define-arg-type imm-word-16
:prefilter (lambda (value dstate)
Expand Down Expand Up @@ -1272,7 +1280,8 @@
(define-instruction imul (segment dst &optional src1 src2)
(:printer accum-reg/mem ((op '(#b1111011 #b101))))
(:printer ext-reg-reg/mem ((op #b1010111)))
(:printer reg-reg/mem ((op #b0110100) (width 1) (imm nil :type 'imm-word))
(:printer reg-reg/mem ((op #b0110100) (width 1)
(imm nil :type 'signed-imm-word))
'(:name :tab reg ", " reg/mem ", " imm))
(:printer reg-reg/mem ((op #b0110101) (width 1)
(imm nil :type 'signed-imm-byte))
Expand Down
2 changes: 1 addition & 1 deletion version.lisp-expr
Expand Up @@ -17,4 +17,4 @@
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
"0.8.9.46"
"0.8.9.47"

0 comments on commit ba2143e

Please sign in to comment.