changeset 16047:692c25719837

Bugfix: Prefix byte missing for AMD64 byte instructions
author Christian Wimmer <christian.wimmer@oracle.com>
date Thu, 05 Jun 2014 15:37:57 -0700
parents 942e4b7712e1
children 0498791b33e8
files graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java src/cpu/x86/vm/assembler_x86.cpp
diffstat 2 files changed, 2 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java	Thu Jun 05 12:19:39 2014 -0700
+++ b/graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java	Thu Jun 05 15:37:57 2014 -0700
@@ -2052,7 +2052,7 @@
             if (srcEnc >= 8) {
                 emitByte(Prefix.REXB);
                 srcEnc -= 8;
-            } else if (byteinst && srcEnc >= 4) {
+            } else if (byteinst && (srcEnc >= 4 || dstEnc >= 4)) {
                 emitByte(Prefix.REX);
             }
         } else {
--- a/src/cpu/x86/vm/assembler_x86.cpp	Thu Jun 05 12:19:39 2014 -0700
+++ b/src/cpu/x86/vm/assembler_x86.cpp	Thu Jun 05 15:37:57 2014 -0700
@@ -4567,7 +4567,7 @@
     if (src_enc >= 8) {
       prefix(REX_B);
       src_enc -= 8;
-    } else if (byteinst && src_enc >= 4) {
+    } else if (byteinst && (src_enc >= 4 || dst_enc >= 4)) {
       prefix(REX);
     }
   } else {