Raymond Toy pushed to branch issue-185-x86-shorter-insts at cmucl / cmucl
Commits: 54ba7245 by Carl S. Shapiro at 2023-04-25T23:53:54+00:00 Simplify testing for signed-imm-byte data using sign-extend function., - - - - -
1 changed file:
- src/compiler/x86/insts.lisp
Changes:
===================================== src/compiler/x86/insts.lisp ===================================== @@ -1304,19 +1304,12 @@
(defun arith-logical-constant-control (chunk inst stream dstate) (declare (ignore inst stream)) - (let ((opcode (ldb (byte 8 0) chunk)) - (signed-imm-data (ldb (byte 8 16) chunk))) - ;; See emit-random-arith-inst for the case where we use an 8-bit - ;; signed immediate value in the instruction. We print a note - ;; only if we have a 8-bit immediate and the 8-bit value is - ;; negative (MSB is 1). - (when (and (= opcode #b10000011) - (logbitp 7 signed-imm-data)) - (disassem:note #'(lambda (stream) - (princ (ldb (byte 32 0) - (sign-extend signed-imm-data 8)) - stream)) - dstate)))) + (when (= (ldb (byte 8 0) chunk) #b10000011) + (let ((imm (sign-extend (ldb (byte 8 16) chunk) 8))) + (when (minusp imm) + (disassem:note #'(lambda (stream) + (princ (ldb (byte 32 0) imm) stream)) + dstate)))))
(eval-when (compile eval) (defun arith-inst-printer-list (subop &key control)
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/54ba7245abe655147e6dfe07...