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