Mercurial > projects > ldc
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 |