Mercurial > projects > ldc
comparison gen/toir.c @ 42:0b9b286b67b6 trunk
[svn r46] fix for shift operations
added a simple opengl binding in demos
author | lindquist |
---|---|
date | Fri, 19 Oct 2007 15:16:11 +0200 |
parents | 8b0e809563df |
children | ea65e12b0dd0 |
comparison
equal
deleted
inserted
replaced
41:835320b88ad6 | 42:0b9b286b67b6 |
---|---|
2248 { \ | 2248 { \ |
2249 Logger::print("%sAssignExp::toElem: %s | %s\n", #X, toChars(), type->toChars()); \ | 2249 Logger::print("%sAssignExp::toElem: %s | %s\n", #X, toChars(), type->toChars()); \ |
2250 LOG_SCOPE; \ | 2250 LOG_SCOPE; \ |
2251 elem* u = e1->toElem(p); \ | 2251 elem* u = e1->toElem(p); \ |
2252 elem* v = e2->toElem(p); \ | 2252 elem* v = e2->toElem(p); \ |
2253 llvm::Value* tmp = llvm::BinaryOperator::create(llvm::Instruction::Y, u->getValue(), v->getValue(), "tmp", p->scopebb()); \ | 2253 llvm::Value* uval = u->getValue(); \ |
2254 Logger::cout() << *tmp << '|' << *u->mem << '\n'; \ | 2254 assert(uval); \ |
2255 llvm::Value* vval = v->getValue(); \ | |
2256 assert(vval); \ | |
2257 llvm::Value* tmp = llvm::BinaryOperator::create(llvm::Instruction::Y, uval, vval, "tmp", p->scopebb()); \ | |
2255 if (u->mem == 0) \ | 2258 if (u->mem == 0) \ |
2256 LLVM_DtoGiveArgumentStorage(u); \ | 2259 LLVM_DtoGiveArgumentStorage(u); \ |
2260 Logger::cout() << *tmp << '|' << *u->mem << '\n'; \ | |
2257 new llvm::StoreInst(LLVM_DtoPointedType(u->mem, tmp), u->mem, p->scopebb()); \ | 2261 new llvm::StoreInst(LLVM_DtoPointedType(u->mem, tmp), u->mem, p->scopebb()); \ |
2258 delete u; \ | 2262 delete u; \ |
2259 delete v; \ | 2263 delete v; \ |
2260 elem* e = new elem; \ | 2264 elem* e = new elem; \ |
2261 e->mem = u->mem; \ | 2265 e->mem = u->mem; \ |