Author: mcfirst Date: Sun May 4 04:31:29 2008 New Revision: 653199 URL: http://svn.apache.org/viewvc?rev=653199&view=rev Log: Applying the patch from HARMONY-5789 [drlvm][jet] Smoke test classloader.StreassLoader crashes DRLVM in server mode on Windows x86-64 platform Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/cg_meth.cpp harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/enc.cpp harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/enc.h Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/cg_meth.cpp URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/cg_meth.cpp?rev=653199&r1=653198&r2=653199&view=diff ============================================================================== --- harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/cg_meth.cpp (original) +++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/cg_meth.cpp Sun May 4 04:31:29 2008 @@ -167,7 +167,7 @@ } // #ifdef _EM64T_ - mov(fill, (unsigned long)0xDEADBEEFDEADBEEF); + mov(fill, (uint_ptr)0xDEADBEEFDEADBEEF); #else mov(fill, 0xDEADBEEF); #endif Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/enc.cpp URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/enc.cpp?rev=653199&r1=653198&r2=653199&view=diff ============================================================================== --- harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/enc.cpp (original) +++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/enc.cpp Sun May 4 04:31:29 2008 @@ -370,7 +370,7 @@ } else { #ifdef _EM64T_ - long val = va_arg(valist, long); + int_ptr val = va_arg(valist, int_ptr); mov(Opnd(i64, sp, cs.off(i)), val); #else int val = lo32((jlong)(int_ptr)addr); @@ -382,7 +382,7 @@ } else if (jt==i64) { #ifdef _EM64T_ - long val = va_arg(valist, long); + int_ptr val = va_arg(valist, int_ptr); mov(gr == gr_x ? Opnd(i64, sp, cs.off(i)) : Opnd(i64, gr), val); #else assert(false); Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/enc.h URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/enc.h?rev=653199&r1=653198&r2=653199&view=diff ============================================================================== --- harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/enc.h (original) +++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/enc.h Sun May 4 04:31:29 2008 @@ -63,6 +63,7 @@ * @brief A signed integer type, with the same size as a pointer. */ typedef POINTER_SIZE_SINT int_ptr; +typedef POINTER_SIZE_INT uint_ptr; /** * @brief A dynamically grown byte array. @@ -559,25 +560,29 @@ clear(); m_jt = i32; m_lval = ival; } +#ifdef POINTER64 /** - * @brief Constructs immediate operand of platform-dependent size. + * @brief Constructs #i64 immediate operand. * - * It's i32 on IA32 and i64 on EM64T and IPF. + * @note Using Opnd(int_ptr) on 32-bit architecture leads to ambiguity + * with Opnd(int), so Opnd(int_ptr) is under #ifdef. */ - Opnd(long lval) + Opnd(int_ptr lval) { clear(); m_jt = iplatf; m_lval = lval; } /** - * @brief Constructs immediate operand of platform-dependent size. + * @brief Constructs i64 immediate operand. * - * It's i32 on IA32 and i64 on EM64T and IPF. + * @note Using Opnd(uint_ptr) on 32-bit architecture leads to ambiguity + * with Opnd(unsigned), so Opnd(uint_ptr) is under #ifdef. */ - Opnd(unsigned long lval) + Opnd(uint_ptr lval) { clear(); m_jt = iplatf; m_lval = lval; } +#endif /** * @brief Constructs memory operand with no type (jvoid).