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