You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by va...@apache.org on 2007/05/17 12:08:38 UTC
svn commit: r538862 -
/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32GCMap.cpp
Author: varlax
Date: Thu May 17 03:08:37 2007
New Revision: 538862
URL: http://svn.apache.org/viewvc?view=rev&rev=538862
Log:
Fixed failing assertion after [r538551] HARMONY-3636
Modified:
harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32GCMap.cpp
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32GCMap.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32GCMap.cpp?view=diff&rev=538862&r1=538861&r2=538862
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32GCMap.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32GCMap.cpp Thu May 17 03:08:37 2007
@@ -113,13 +113,13 @@
return field_is_magic(field->getFieldHandle());
}
-static void checkManaged2UnmanagedConv(IRManager& irm, Opnd* opnd, Inst* skipInst) {
+static void checkManaged2UnmanagedConv(IRManager& irm, Opnd* opnd) {
const Nodes& nodes = irm.getFlowGraph()->getNodes();
for (Nodes::const_iterator it = nodes.begin(), end = nodes.end(); it!=end; ++it) {
Node* node = *it;
if (node->isBlockNode()) {
for (Inst* inst = (Inst*)node->getLastInst(); inst!=NULL; inst = inst->getPrevInst()) {
- if (inst->getMnemonic() != Mnemonic_MOV || inst == skipInst) {
+ if (inst->getMnemonic() != Mnemonic_MOV) {
continue;
}
Opnd* op0 = inst->getOpnd(0);
@@ -168,9 +168,8 @@
for (int i = liveOpnds.getNext(); i != -1; i = liveOpnds.getNext()) {
Opnd* opnd = irm.getOpnd(i);
#ifdef _DEBUG
- if (opnd->getType()->isUnmanagedPtr()) {
- Inst* skipInst= opnd == callRes ? inst : NULL; // skip this call from the check if opnd is the result of the call
- checkManaged2UnmanagedConv(irm, opnd, skipInst);
+ if (opnd->getType()->isUnmanagedPtr() && opnd != callRes ) {
+ checkManaged2UnmanagedConv(irm, opnd);
}
#endif