comparison gen/toir.cpp @ 809:69a5e4a6fc0f

Changed some hardcoded offset/alignment for classes in DMD, broke offsets for 64bits. Changed ClassInfo generation to no longer access the default initializer of ClassInfo, fixes problems with index mismatch.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Sun, 30 Nov 2008 20:22:09 +0100
parents 28ce72c60a21
children 446263a8a30d
comparison
equal deleted inserted replaced
808:4ad1e7b10378 809:69a5e4a6fc0f
2033 LOG_SCOPE; 2033 LOG_SCOPE;
2034 2034
2035 DValue* u = e1->toElem(p); 2035 DValue* u = e1->toElem(p);
2036 2036
2037 LLValue* value = u->getRVal(); 2037 LLValue* value = u->getRVal();
2038 LLValue* minusone = llvm::ConstantInt::get(value->getType(), -1, true); 2038 LLValue* minusone = llvm::ConstantInt::get(value->getType(), (uint64_t)-1, true);
2039 value = llvm::BinaryOperator::Create(llvm::Instruction::Xor, value, minusone, "tmp", p->scopebb()); 2039 value = llvm::BinaryOperator::Create(llvm::Instruction::Xor, value, minusone, "tmp", p->scopebb());
2040 2040
2041 return new DImValue(type, value); 2041 return new DImValue(type, value);
2042 } 2042 }
2043 2043