Raymond Toy pushed to branch issue-185-x86-shorter-insts at cmucl / cmucl

Commits:

1 changed file:

Changes:

  • src/compiler/x86/insts.lisp
    ... ... @@ -1304,19 +1304,12 @@
    1304 1304
     
    
    1305 1305
     (defun arith-logical-constant-control (chunk inst stream dstate)
    
    1306 1306
         (declare (ignore inst stream))
    
    1307
    -    (let ((opcode (ldb (byte 8 0) chunk))
    
    1308
    -	  (signed-imm-data (ldb (byte 8 16) chunk)))
    
    1309
    -      ;; See emit-random-arith-inst for the case where we use an 8-bit
    
    1310
    -      ;; signed immediate value in the instruction.  We print a note
    
    1311
    -      ;; only if we have a 8-bit immediate and the 8-bit value is
    
    1312
    -      ;; negative (MSB is 1).
    
    1313
    -      (when (and (= opcode #b10000011)
    
    1314
    -		 (logbitp 7 signed-imm-data))
    
    1315
    -	(disassem:note #'(lambda (stream)
    
    1316
    -			   (princ (ldb (byte 32 0)
    
    1317
    -				       (sign-extend signed-imm-data 8))
    
    1318
    -				  stream))
    
    1319
    -		       dstate))))
    
    1307
    +    (when (= (ldb (byte 8 0) chunk) #b10000011)
    
    1308
    +      (let ((imm (sign-extend (ldb (byte 8 16) chunk) 8)))
    
    1309
    +	(when (minusp imm)
    
    1310
    +	  (disassem:note #'(lambda (stream)
    
    1311
    +			     (princ (ldb (byte 32 0) imm) stream))
    
    1312
    +			 dstate)))))
    
    1320 1313
     
    
    1321 1314
     (eval-when (compile eval)
    
    1322 1315
       (defun arith-inst-printer-list (subop &key control)