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 2006/11/03 16:31:48 UTC
svn commit: r470858 -
/incubator/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32BBPolling.cpp
Author: gshimansky
Date: Fri Nov 3 07:31:47 2006
New Revision: 470858
URL: http://svn.apache.org/viewvc?view=rev&rev=470858
Log:
Applied HARMONY-2017 Linux em64t build failed due to typeInt32 is undefined in Ia32BBPolling.cpp
Tests passed on win32 and ubuntu
Modified:
incubator/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32BBPolling.cpp
Modified: incubator/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32BBPolling.cpp
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32BBPolling.cpp?view=diff&rev=470858&r1=470857&r2=470858
==============================================================================
--- incubator/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32BBPolling.cpp (original)
+++ incubator/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32BBPolling.cpp Fri Nov 3 07:31:47 2006
@@ -254,11 +254,13 @@
return tlsBaseReg;
} else {
+ Type* tlsBaseType;
#ifdef _EM64T_
- tlsBaseReg = irManager.newOpnd(irManager.getTypeManager().getUnmanagedPtrType(irManager.getTypeManager().getIntPtrType()), Constraint(OpndKind_GPReg));
+ tlsBaseType = irManager.getTypeManager().getUnmanagedPtrType(irManager.getTypeManager().getIntPtrType());
+ tlsBaseReg = irManager.newOpnd(tlsBaseType, Constraint(OpndKind_GPReg));
#else
- Type* typeInt32 = irManager.getTypeManager().getPrimitiveType(Type::Int32);
- tlsBaseReg = irManager.newOpnd(typeInt32, Constraint(RegName_EAX)|
+ tlsBaseType = irManager.getTypeManager().getPrimitiveType(Type::Int32);
+ tlsBaseReg = irManager.newOpnd(tlsBaseType, Constraint(RegName_EAX)|
RegName_EBX |
RegName_ECX |
RegName_EDX |
@@ -274,15 +276,18 @@
Opnd::RuntimeInfo::Kind_HelperAddress,
(void*)CompilationInterface::Helper_GetTLSBase
);
- Opnd* tlsBase = irManager.newOpnd(typeInt32);
+ Opnd* tlsBase = irManager.newOpnd(tlsBaseType);
bbpFlagAddrBlock->appendInst(irManager.newCallInst(target, &CallingConvention_STDCALL, 0, NULL, tlsBase));
#else // PLATFORM_POSIX
+#ifdef _EM64T_
+#error "BBP not implemented on windows/em64t"
+#endif
// TLS base can be obtained from [fs:0x14]
- Opnd* tlsBase = irManager.newMemOpnd(typeInt32, MemOpndKind_Any, NULL, 0x14, RegName_FS);
+ Opnd* tlsBase = irManager.newMemOpnd(tlsBaseType, MemOpndKind_Any, NULL, 0x14, RegName_FS);
#endif // PLATFORM_POSIX
if (version == 4 || version == 6) {
- Opnd * offset = irManager.newImmOpnd(typeInt32, gcFlagOffsetOffset);
+ Opnd * offset = irManager.newImmOpnd(tlsBaseType, gcFlagOffsetOffset);
bbpFlagAddrBlock->appendInst(irManager.newInstEx(Mnemonic_ADD, 1, tlsBaseReg, tlsBase, offset));
} else {
bbpFlagAddrBlock->appendInst(irManager.newInst(Mnemonic_MOV, tlsBaseReg, tlsBase));