Mercurial > projects > ldc
comparison gen/aa.cpp @ 163:a8cd9bc1021a trunk
[svn r179] lots and lots of fixes, much more of tango now compiles/works.
author | lindquist |
---|---|
date | Mon, 05 May 2008 07:36:29 +0200 |
parents | ccd07d9f2ce9 |
children | 08cfde5f70d3 |
comparison
equal
deleted
inserted
replaced
162:1856c62af24b | 163:a8cd9bc1021a |
---|---|
79 | 79 |
80 // keyti param | 80 // keyti param |
81 llvm::Value* keyti = to_keyti(key); | 81 llvm::Value* keyti = to_keyti(key); |
82 keyti = DtoBitCast(keyti, funcTy->getParamType(1)); | 82 keyti = DtoBitCast(keyti, funcTy->getParamType(1)); |
83 | 83 |
84 // valuesize param | |
85 llvm::Value* valsize = DtoConstSize_t(getABITypeSize(DtoType(type))); | |
86 | |
84 // pkey param | 87 // pkey param |
85 llvm::Value* pkey = to_pkey(key); | 88 llvm::Value* pkey = to_pkey(key); |
86 pkey = DtoBitCast(pkey, funcTy->getParamType(2)); | 89 pkey = DtoBitCast(pkey, funcTy->getParamType(3)); |
87 | |
88 // valuesize param | |
89 llvm::Value* valsize = DtoConstSize_t(getABITypeSize(DtoType(type))); | |
90 | 90 |
91 // build arg vector | 91 // build arg vector |
92 std::vector<llvm::Value*> args; | 92 std::vector<llvm::Value*> args; |
93 args.push_back(aaval); | 93 args.push_back(aaval); |
94 args.push_back(keyti); | 94 args.push_back(keyti); |
95 args.push_back(valsize); | |
95 args.push_back(pkey); | 96 args.push_back(pkey); |
96 args.push_back(valsize); | |
97 | 97 |
98 // call runtime | 98 // call runtime |
99 llvm::Value* ret = gIR->ir->CreateCall(func, args.begin(), args.end(), "aa.index"); | 99 llvm::Value* ret = gIR->ir->CreateCall(func, args.begin(), args.end(), "aa.index"); |
100 | 100 |
101 // cast return value | 101 // cast return value |