Fix bug in IMUL L/Q rules: immediate operand is a long, not a word.
authorTaylor R Campbell <campbell@mumble.net>
Fri, 30 Oct 2009 23:51:11 +0000 (19:51 -0400)
committerTaylor R Campbell <campbell@mumble.net>
Fri, 30 Oct 2009 23:51:11 +0000 (19:51 -0400)
src/compiler/machines/x86-64/instr1.scm

index 294572171685efb61a95790a710836d59d77451c..8efff15c6c2ed896f8b04ae6c547d9969c9c5a3a 100644 (file)
@@ -430,7 +430,7 @@ USA.
 
   (((? size operand-size) (R (? target))
                          (? source r/m-ea)
-                         (& (? multiplier sign-extended-word)))
+                         (& (? multiplier sign-extended-long)))
    (PREFIX (OPERAND size) (ModR/M target source))
    (BITS (8 #x6b))
    (ModR/M target source)
@@ -438,7 +438,7 @@ USA.
 
   (((? size operand-size) (R (? target))
                          (? source r/m-ea)
-                         (&U (? multiplier zero-extended-word)))
+                         (&U (? multiplier zero-extended-long)))
    (PREFIX (OPERAND size) (ModR/M target source))
    (BITS (8 #x6b))
    (ModR/M target source)