Home | History | Annotate | Download | only in portable

Lines Matching refs:irb_

56       context_(cunit_->GetLLVMContext()), irb_(*cunit_->GetIRBuilder()),
92 irb_.LoadFromObjectOffset(method_object_addr,
94 irb_.getJObjectTy(),
108 if (arg_iter->getType() == irb_.getJObjectTy()) {
114 ::llvm::StructType* shadow_frame_type = irb_.getShadowFrameTy(handle_scope_size);
115 ::llvm::AllocaInst* shadow_frame_ = irb_.CreateAlloca(shadow_frame_type);
118 irb_.StoreToObjectOffset(shadow_frame_,
120 irb_.getInt32(DexFile::kDexNoIndex),
124 ::llvm::Value* shadow_frame_upcast = irb_.CreateConstGEP2_32(shadow_frame_, 0, 0);
126 irb_.Runtime().EmitPushShadowFrame(shadow_frame_upcast, method_object_addr, handle_scope_size);
130 irb_.Runtime().EmitLoadFromThreadOffset(Thread::JniEnvOffset().Int32Value(),
131 irb_.getJObjectTy(),
136 irb_.LoadFromObjectOffset(method_object_addr,
150 irb_.getInt32(0), // No displacement for shadow frame pointer
151 irb_.getInt32(1), // handle scope
158 gep_index[2] = irb_.getInt32(handle_scope_member_index++);
159 ::llvm::Value* handle_scope_field_addr = irb_.CreateBitCast(irb_.CreateGEP(shadow_frame_, gep_index),
160 irb_.getJObjectTy()->getPointerTo());
161 irb_.CreateStore(this_object_or_class_object, handle_scope_field_addr, kTBAAShadowFrame);
163 this_object_or_class_object = irb_.CreateBitCast(handle_scope_field_addr, irb_.getJObjectTy());
167 if (arg_iter->getType() == irb_.getJObjectTy()) {
169 gep_index[2] = irb_.getInt32(handle_scope_member_index++);
170 ::llvm::Value* handle_scope_field_addr = irb_.CreateBitCast(irb_.CreateGEP(shadow_frame_, gep_index),
171 irb_.getJObjectTy()->getPointerTo());
172 irb_.CreateStore(arg_iter, handle_scope_field_addr, kTBAAShadowFrame);
175 ::llvm::Value* equal_null = irb_.CreateICmpEQ(arg_iter, irb_.getJNull());
177 irb_.CreateSelect(equal_null,
178 irb_.getJNull(),
179 irb_.CreateBitCast(handle_scope_field_addr, irb_.getJObjectTy()));
194 args.push_back(irb_.Runtime().EmitGetCurrentThread());
196 irb_.CreateCall(irb_.GetRuntime(func_id), args);
200 ::llvm::Value* retval = irb_.CreateCall(code_addr, args);
217 args.push_back(irb_.Runtime().EmitGetCurrentThread());
220 irb_.CreateCall(irb_.GetRuntime(func_id), args);
229 irb_.Runtime().EmitPopShadowFrame(old_shadow_frame);
234 irb_.CreateRetVoid();
238 irb_.CreateRet(irb_.CreateZExt(retval, irb_.getInt32Ty()));
242 irb_.CreateRet(irb_.CreateSExt(retval, irb_.getInt32Ty()));
245 irb_.CreateRet(retval);
276 irb_.SetInsertPoint(basic_block);
290 case 'V': ret_type = irb_.getJVoidTy(); break;
295 case 'I': ret_type = irb_.getJIntTy(); break;
296 case 'F': ret_type = irb_.getJFloatTy(); break;
297 case 'J': ret_type = irb_.getJLongTy(); break;
298 case 'D': ret_type = irb_.getJDoubleTy(); break;
299 case 'L': ret_type = irb_.getJObjectTy(); break;
305 args_type.push_back(irb_.getJObjectTy()); // method object pointer
310 args_type.push_back(irb_.getJType('L'));
314 args_type.push_back(irb_.getJType(shorty[i]));