Author: zoltan
Date: 2005-03-28 16:09:11 -0500 (Mon, 28 Mar 2005)
New Revision: 42316

Modified:
   trunk/mono/mono/arch/ChangeLog
   trunk/mono/mono/arch/amd64/amd64-codegen.h
Log:
2005-03-28  Zoltan Varga  <[EMAIL PROTECTED]>

        * amd64/amd64-codegen.h: Avoid emitting a rex in some places.


Modified: trunk/mono/mono/arch/ChangeLog
===================================================================
--- trunk/mono/mono/arch/ChangeLog      2005-03-28 20:00:15 UTC (rev 42315)
+++ trunk/mono/mono/arch/ChangeLog      2005-03-28 21:09:11 UTC (rev 42316)
@@ -1,3 +1,7 @@
+2005-03-28  Zoltan Varga  <[EMAIL PROTECTED]>
+
+       * amd64/amd64-codegen.h: Avoid emitting a rex in some places.
+
 2005-03-15  Zoltan Varga  <[EMAIL PROTECTED]>
 
        * amd64/amd64-codegen.h (amd64_emit_rex): Emit a rex when accessing the

Modified: trunk/mono/mono/arch/amd64/amd64-codegen.h
===================================================================
--- trunk/mono/mono/arch/amd64/amd64-codegen.h  2005-03-28 20:00:15 UTC (rev 
42315)
+++ trunk/mono/mono/arch/amd64/amd64-codegen.h  2005-03-28 21:09:11 UTC (rev 
42316)
@@ -82,7 +82,7 @@
                        (((reg_modrm) > 7) ? AMD64_REX_R : 0) | \
                        (((reg_index) > 7) ? AMD64_REX_X : 0) | \
                        (((reg_rm_base_opcode) > 7) ? AMD64_REX_B : 0); \
-               if ((_amd64_rex_bits != 0) || ((width == 1))) *(inst)++ = 
AMD64_REX(_amd64_rex_bits); \
+               if ((_amd64_rex_bits != 0) || (((width) == 1))) *(inst)++ = 
AMD64_REX(_amd64_rex_bits); \
        } while (0)
 
 typedef union {
@@ -281,7 +281,7 @@
        do {    \
                if ((size) == 2) \
                        *(inst)++ = (unsigned char)0x66; \
-               amd64_emit_rex(inst, (size), 0, 0, (basereg)); \
+               amd64_emit_rex(inst, (size) == 1 ? 0 : (size), 0, 0, 
(basereg)); \
                if ((size) == 1) {      \
                        *(inst)++ = (unsigned char)0xc6;        \
                        x86_membase_emit ((inst), 0, (basereg) & 0x7, (disp));  
\
@@ -538,7 +538,7 @@
 #define amd64_neg_mem_size(inst,mem,size) do { amd64_emit_rex 
((inst),(size),0,0,0); x86_neg_mem((inst),(mem)); } while (0)
 #define amd64_neg_membase_size(inst,basereg,disp,size) do { amd64_emit_rex 
((inst),(size),0,0,(basereg)); x86_neg_membase((inst),((basereg)&0x7),(disp)); 
} while (0)
 #define amd64_neg_reg_size(inst,reg,size) do { amd64_emit_rex 
((inst),(size),0,0,(reg)); x86_neg_reg((inst),((reg)&0x7)); } while (0)
-#define amd64_nop_size(inst,size) do { amd64_emit_rex ((inst),(size),0,0,0); 
x86_nop(inst); } while (0)
+#define amd64_nop_size(inst,size) do { x86_nop(inst); } while (0)
 //#define amd64_alu_reg_imm_size(inst,opc,reg,imm,size) do { amd64_emit_rex 
((inst),(size),0,0,(reg)); x86_alu_reg_imm((inst),(opc),((reg)&0x7),(imm)); } 
while (0)
 #define amd64_alu_mem_imm_size(inst,opc,mem,imm,size) do { amd64_emit_rex 
((inst),(size),0,0,0); x86_alu_mem_imm((inst),(opc),(mem),(imm)); } while (0)
 #define amd64_alu_membase_imm_size(inst,opc,basereg,disp,imm,size) do { 
amd64_emit_rex ((inst),(size),0,0,(basereg)); 
x86_alu_membase_imm((inst),(opc),((basereg)&0x7),(disp),(imm)); } while (0)
@@ -664,9 +664,9 @@
 #define amd64_branch_size(inst,cond,target,is_signed,size) do { amd64_emit_rex 
((inst),(size),0,0,0); x86_branch((inst),(cond),(target),(is_signed)); } while 
(0)
 #define amd64_branch_disp_size(inst,cond,disp,is_signed,size) do { 
amd64_emit_rex ((inst),(size),0,0,0); 
x86_branch_disp((inst),(cond),(disp),(is_signed)); } while (0)
 #define amd64_set_reg_size(inst,cond,reg,is_signed,size) do { 
amd64_emit_rex((inst),1,0,0,(reg)); 
x86_set_reg((inst),(cond),((reg)&0x7),(is_signed)); } while (0)
-#define amd64_set_mem_size(inst,cond,mem,is_signed,size) do { amd64_emit_rex 
((inst),(size),0,0,0); x86_set_mem((inst),(cond),(mem),(is_signed)); } while (0)
-#define amd64_set_membase_size(inst,cond,basereg,disp,is_signed,size) do { 
amd64_emit_rex ((inst),(size),0,0,(basereg)); 
x86_set_membase((inst),(cond),((basereg)&0x7),(disp),(is_signed)); } while (0)
-#define amd64_call_imm_size(inst,disp,size) do { amd64_emit_rex 
((inst),(size),0,0,0); x86_call_imm((inst),(disp)); } while (0)
+#define amd64_set_mem_size(inst,cond,mem,is_signed,size) do { 
x86_set_mem((inst),(cond),(mem),(is_signed)); } while (0)
+#define amd64_set_membase_size(inst,cond,basereg,disp,is_signed,size) do { 
amd64_emit_rex ((inst),0,0,0,(basereg)); 
x86_set_membase((inst),(cond),((basereg)&0x7),(disp),(is_signed)); } while (0)
+#define amd64_call_imm_size(inst,disp,size) do { x86_call_imm((inst),(disp)); 
} while (0)
 //#define amd64_call_reg_size(inst,reg,size) do { amd64_emit_rex 
((inst),(size),0,0,(reg)); x86_call_reg((inst),((reg)&0x7)); } while (0)
 #define amd64_call_mem_size(inst,mem,size) do { amd64_emit_rex 
((inst),(size),0,0,0); x86_call_mem((inst),(mem)); } while (0)
 #define amd64_call_code_size(inst,target,size) do { 
x86_call_code((inst),(target)); } while (0)

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to