You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by gs...@apache.org on 2007/10/12 14:50:57 UTC

svn commit: r584153 - /harmony/enhanced/drlvm/trunk/vm/port/src/lil/em64t/pim/stack_iterator_em64t.cpp

Author: gshimansky
Date: Fri Oct 12 05:50:22 2007
New Revision: 584153

URL: http://svn.apache.org/viewvc?rev=584153&view=rev
Log:
Fixed transfer control stub so that it would restore only 16 bits of eflags register


Modified:
    harmony/enhanced/drlvm/trunk/vm/port/src/lil/em64t/pim/stack_iterator_em64t.cpp

Modified: harmony/enhanced/drlvm/trunk/vm/port/src/lil/em64t/pim/stack_iterator_em64t.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/port/src/lil/em64t/pim/stack_iterator_em64t.cpp?rev=584153&r1=584152&r2=584153&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/port/src/lil/em64t/pim/stack_iterator_em64t.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/port/src/lil/em64t/pim/stack_iterator_em64t.cpp Fri Oct 12 05:50:22 2007
@@ -177,7 +177,7 @@
         return addr;
     }
 
-    const int STUB_SIZE = 240;
+    const int STUB_SIZE = 247;
     char * stub = (char *)malloc_fixed_code_for_jit(STUB_SIZE,
         DEFAULT_CODE_ALIGNMENT, CODE_BLOCK_HEAT_COLD, CAA_Allocate);
     char * ss = stub;
@@ -230,6 +230,7 @@
     ss = test(ss, rcx_opnd, rcx_opnd);
     ss = branch8(ss, Condition_Z,  Imm_Opnd(size_8, 0));
     char* patch_offset = ((char*)ss) - 1; // Store location for jump patch
+    ss = alu(ss, and_opc, rcx_opnd, Imm_Opnd(size_64, 0xffff));
     ss = push(ss,  rcx_opnd);
     *ss++ = (char)0x9D; // POPFD
     // Patch conditional jump