2004-07-12 Ben Maurer <bmaurer@ximian.com>
authorBen Maurer <benm@mono-cvs.ximian.com>
Mon, 12 Jul 2004 16:53:05 +0000 (16:53 -0000)
committerBen Maurer <benm@mono-cvs.ximian.com>
Mon, 12 Jul 2004 16:53:05 +0000 (16:53 -0000)
* mini-x86.c (OP_CHECK_THIS): cmp DWORD PTR [eax], eax
is one byte shorter than cmp DWORD PTR [eax], 0.

svn path=/trunk/mono/; revision=31043

mono/mini/ChangeLog
mono/mini/mini-x86.c

index cef8bab87930828b9faa9f18f42593827760d8b0..b202029f9d744fbb456298ce9062fdab8ecc1007 100644 (file)
@@ -1,3 +1,7 @@
+2004-07-12  Ben Maurer  <bmaurer@ximian.com>
+
+       * mini-x86.c (OP_CHECK_THIS): cmp DWORD PTR [eax], eax
+       is one byte shorter than cmp DWORD PTR [eax], 0.
 
 Mon Jul 12 17:47:00 CEST 2004 Paolo Molaro <lupus@ximian.com>
 
index 14710b31792c017b6ad1af633ac4c805b86692bc..1b9f095d4e4d7138769783fb5b52a6414095e0d7 100644 (file)
@@ -2601,8 +2601,11 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                        break;
                }
                case OP_CHECK_THIS:
-                       /* ensure ins->sreg1 is not NULL */
-                       x86_alu_membase_imm (code, X86_CMP, ins->sreg1, 0, 0);
+                       /* ensure ins->sreg1 is not NULL
+                        * note that cmp DWORD PTR [eax], eax is one byte shorter than
+                        * cmp DWORD PTR [eax], 0
+                        */
+                       x86_alu_membase_reg (code, X86_CMP, ins->sreg1, 0, ins->sreg1);
                        break;
                case OP_ARGLIST: {
                        int hreg = ins->sreg1 == X86_EAX? X86_ECX: X86_EAX;