Lines Matching full:call_inst
229 llvm::Value* EmitInvoke(llvm::CallInst& call_inst);
234 bool EmitIntrinsic(llvm::CallInst& call_inst, llvm::Value** result);
236 bool EmitIntrinsicStringLengthOrIsEmpty(llvm::CallInst& call_inst,
243 void Expand_TestSuspend(llvm::CallInst& call_inst);
245 void Expand_MarkGCCard(llvm::CallInst& call_inst);
264 void Expand_FilledNewArray(llvm::CallInst& call_inst);
299 llvm::Value* Expand_Invoke(llvm::CallInst& call_inst);
301 llvm::Value* Expand_DivRem(llvm::CallInst& call_inst, bool is_div, JType op_jty);
327 llvm::Value* Expand_HLIGet(llvm::CallInst& call_inst, JType field_jty);
328 void Expand_HLIPut(llvm::CallInst& call_inst, JType field_jty);
330 llvm::Value* Expand_HLSget(llvm::CallInst& call_inst, JType field_jty);
331 void Expand_HLSput(llvm::CallInst& call_inst, JType field_jty);
333 llvm::Value* Expand_HLArrayGet(llvm::CallInst& call_inst, JType field_jty);
334 void Expand_HLArrayPut(llvm::CallInst& call_inst, JType field_jty);
336 llvm::Value* Expand_ConstString(llvm::CallInst& call_inst);
337 llvm::Value* Expand_ConstClass(llvm::CallInst& call_inst);
339 void Expand_MonitorEnter(llvm::CallInst& call_inst);
340 void Expand_MonitorExit(llvm::CallInst& call_inst);
342 void Expand_HLCheckCast(llvm::CallInst& call_inst);
343 llvm::Value* Expand_InstanceOf(llvm::CallInst& call_inst);
345 llvm::Value* Expand_NewInstance(llvm::CallInst& call_inst);
347 llvm::Value* Expand_HLInvoke(llvm::CallInst& call_inst);
349 llvm::Value* Expand_OptArrayLength(llvm::CallInst& call_inst);
350 llvm::Value* Expand_NewArray(llvm::CallInst& call_inst);
351 llvm::Value* Expand_HLFilledNewArray(llvm::CallInst& call_inst);
352 void Expand_HLFillArrayData(llvm::CallInst& call_inst);
425 llvm::CallInst& call_inst);
476 llvm::CallInst* call_inst = llvm::dyn_cast<llvm::CallInst>(inst_iter);
479 if (call_inst) {
480 llvm::Function* callee_func = call_inst->getCalledFunction();
495 if (llvm::Value* new_value = ExpandIntrinsic(intr_id, *call_inst)) {
833 llvm::Value* GBCExpanderPass::EmitInvoke(llvm::CallInst& call_inst) {
834 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
836 static_cast<art::InvokeType>(LV2UInt(call_inst.getArgOperand(0)));
839 LV2UInt(call_inst.getArgOperand(1)));
842 llvm::Value* this_addr = (!is_static) ? call_inst.getArgOperand(3) : NULL;
900 for (uint32_t i = 3; i < call_inst.getNumArgOperands(); ++i) {
901 args.push_back(call_inst.getArgOperand(i));
905 llvm::Type* func_type = GetFunctionType(call_inst.getType(),
926 bool GBCExpanderPass::EmitIntrinsic(llvm::CallInst& call_inst,
930 uint32_t callee_method_idx = LV2UInt(call_inst.getArgOperand(1));
935 return EmitIntrinsicStringLengthOrIsEmpty(call_inst, result,
939 return EmitIntrinsicStringLengthOrIsEmpty(call_inst, result,
947 bool GBCExpanderPass::EmitIntrinsicStringLengthOrIsEmpty(llvm::CallInst& call_inst,
951 static_cast<art::InvokeType>(LV2UInt(call_inst.getArgOperand(0)));
953 DCHECK_EQ(call_inst.getNumArgOperands(), 4U);
955 llvm::Value* this_object = call_inst.getArgOperand(3);
975 void GBCExpanderPass::Expand_TestSuspend(llvm::CallInst& call_inst) {
976 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
1000 llvm::Type* ret_type = call_inst.getParent()->getParent()->getReturnType();
1012 void GBCExpanderPass::Expand_MarkGCCard(llvm::CallInst& call_inst) {
1013 irb_.Runtime().EmitMarkGCCard(call_inst.getArgOperand(0), call_inst.getArgOperand(1));
1069 void GBCExpanderPass::Expand_FilledNewArray(llvm::CallInst& call_inst) {
1071 llvm::Value* array = call_inst.getArgOperand(0);
1074 llvm::cast<llvm::ConstantInt>(call_inst.getArgOperand(1))->getZExtValue();
1076 DCHECK_GT(call_inst.getNumArgOperands(), 2U);
1077 unsigned num_elements = (call_inst.getNumArgOperands() - 2);
1106 llvm::Value* reg_value = call_inst.getArgOperand(2 + i);
1243 llvm::Value* GBCExpanderPass::Expand_Invoke(llvm::CallInst& call_inst) {
1245 llvm::Value* callee_method_object_addr = call_inst.getArgOperand(0);
1246 unsigned num_args = call_inst.getNumArgOperands();
1247 llvm::Type* ret_type = call_inst.getType();
1253 args.push_back(call_inst.getArgOperand(i));
1272 llvm::Value* GBCExpanderPass::Expand_DivRem(llvm::CallInst& call_inst,
1274 llvm::Value* dividend = call_inst.getArgOperand(0);
1275 llvm::Value* divisor = call_inst.getArgOperand(1);
1276 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
1569 llvm::Value* GBCExpanderPass::Expand_HLArrayGet(llvm::CallInst& call_inst,
1571 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
1572 llvm::Value* array_addr = call_inst.getArgOperand(1);
1573 llvm::Value* index_value = call_inst.getArgOperand(2);
1574 int opt_flags = LV2UInt(call_inst.getArgOperand(0));
1588 void GBCExpanderPass::Expand_HLArrayPut(llvm::CallInst& call_inst,
1590 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
1591 llvm::Value* new_value = call_inst.getArgOperand(1);
1592 llvm::Value* array_addr = call_inst.getArgOperand(2);
1593 llvm::Value* index_value = call_inst.getArgOperand(3);
1594 int opt_flags = LV2UInt(call_inst.getArgOperand(0));
1619 llvm::Value* GBCExpanderPass::Expand_HLIGet(llvm::CallInst& call_inst,
1621 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
1622 llvm::Value* object_addr = call_inst.getArgOperand(1);
1623 uint32_t field_idx = LV2UInt(call_inst.getArgOperand(2));
1624 int opt_flags = LV2UInt(call_inst.getArgOperand(0));
1682 void GBCExpanderPass::Expand_HLIPut(llvm::CallInst& call_inst,
1684 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
1685 llvm::Value* new_value = call_inst.getArgOperand(1);
1686 llvm::Value* object_addr = call_inst.getArgOperand(2);
1687 uint32_t field_idx = LV2UInt(call_inst.getArgOperand(3));
1688 int opt_flags = LV2UInt(call_inst.getArgOperand(0));
1889 llvm::Value* GBCExpanderPass::Expand_HLSget(llvm::CallInst& call_inst,
1891 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
1892 uint32_t field_idx = LV2UInt(call_inst.getArgOperand(0));
1968 void GBCExpanderPass::Expand_HLSput(llvm::CallInst& call_inst,
1970 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
1971 uint32_t field_idx = LV2UInt(call_inst.getArgOperand(0));
1972 llvm::Value* new_value = call_inst.getArgOperand(1);
2061 llvm::Value* GBCExpanderPass::Expand_ConstString(llvm::CallInst& call_inst) {
2062 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
2063 uint32_t string_idx = LV2UInt(call_inst.getArgOperand(0));
2123 llvm::Value* GBCExpanderPass::Expand_ConstClass(llvm::CallInst& call_inst) {
2124 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
2125 uint32_t type_idx = LV2UInt(call_inst.getArgOperand(0));
2132 void GBCExpanderPass::Expand_MonitorEnter(llvm::CallInst& call_inst) {
2133 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
2134 llvm::Value* object_addr = call_inst.getArgOperand(1);
2135 int opt_flags = LV2UInt(call_inst.getArgOperand(0));
2146 void GBCExpanderPass::Expand_MonitorExit(llvm::CallInst& call_inst) {
2147 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
2148 llvm::Value* object_addr = call_inst.getArgOperand(1);
2149 int opt_flags = LV2UInt(call_inst.getArgOperand(0));
2162 void GBCExpanderPass::Expand_HLCheckCast(llvm::CallInst& call_inst) {
2163 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
2164 uint32_t type_idx = LV2UInt(call_inst.getArgOperand(0));
2165 llvm::Value* object_addr = call_inst.getArgOperand(1);
2216 llvm::Value* GBCExpanderPass::Expand_InstanceOf(llvm::CallInst& call_inst) {
2217 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
2218 uint32_t type_idx = LV2UInt(call_inst.getArgOperand(0));
2219 llvm::Value* object_addr = call_inst.getArgOperand(1);
2287 llvm::Value* GBCExpanderPass::Expand_NewInstance(llvm::CallInst& call_inst) {
2288 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
2289 uint32_t type_idx = LV2UInt(call_inst.getArgOperand(0));
2316 llvm::Value* GBCExpanderPass::Expand_HLInvoke(llvm::CallInst& call_inst) {
2317 art::InvokeType invoke_type = static_cast<art::InvokeType>(LV2UInt(call_inst.getArgOperand(0)));
2322 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
2323 llvm::Value* this_addr = call_inst.getArgOperand(3);
2324 int opt_flags = LV2UInt(call_inst.getArgOperand(2));
2330 if (EmitIntrinsic(call_inst, &result)) {
2334 return EmitInvoke(call_inst);
2337 llvm::Value* GBCExpanderPass::Expand_OptArrayLength(llvm::CallInst& call_inst) {
2338 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
2340 llvm::Value* array_addr = call_inst.getArgOperand(1);
2341 int opt_flags = LV2UInt(call_inst.getArgOperand(0));
2349 llvm::Value* GBCExpanderPass::Expand_NewArray(llvm::CallInst& call_inst) {
2350 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
2351 uint32_t type_idx = LV2UInt(call_inst.getArgOperand(0));
2352 llvm::Value* length = call_inst.getArgOperand(1);
2357 llvm::Value* GBCExpanderPass::Expand_HLFilledNewArray(llvm::CallInst& call_inst) {
2358 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
2359 uint32_t type_idx = LV2UInt(call_inst.getArgOperand(1));
2360 uint32_t length = call_inst.getNumArgOperands() - 3;
2403 llvm::Value* reg_value = call_inst.getArgOperand(i+3);
2415 void GBCExpanderPass::Expand_HLFillArrayData(llvm::CallInst& call_inst) {
2416 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
2418 LV2SInt(call_inst.getArgOperand(0));
2419 llvm::Value* array_addr = call_inst.getArgOperand(1);
2867 llvm::CallInst& call_inst) {
2874 Expand_TestSuspend(call_inst);
2878 Expand_TestSuspend(call_inst);
2882 Expand_MarkGCCard(call_inst);
2888 return ExpandToRuntime(ThrowException, call_inst);
2891 uint32_t dex_pc = LV2UInt(call_inst.getMetadata("DexOff")->getOperand(0));
2896 call_inst.getArgOperand(0));
2908 return ExpandToRuntime(FindCatchBlock, call_inst);
2911 return ExpandToRuntime(ThrowDivZeroException, call_inst);
2914 return ExpandToRuntime(ThrowNullPointerException, call_inst);
2917 return ExpandToRuntime(ThrowIndexOutOfBounds, call_inst);
2922 return Expand_ConstString(call_inst);
2925 return Expand_LoadStringFromDexCache(call_inst.getArgOperand(0));
2928 return ExpandToRuntime(ResolveString, call_inst);
2933 return Expand_ConstClass(call_inst);
2936 return ExpandToRuntime(InitializeTypeAndVerifyAccess, call_inst);
2939 return Expand_LoadTypeFromDexCache(call_inst.getArgOperand(0));
2942 return ExpandToRuntime(InitializeType, call_inst);
2947 Expand_LockObject(call_inst.getArgOperand(0));
2951 Expand_UnlockObject(call_inst.getArgOperand(0));
2957 return ExpandToRuntime(CheckCast, call_inst);
2960 Expand_HLCheckCast(call_inst);
2964 return ExpandToRuntime(IsAssignable, call_inst);
2969 return ExpandToRuntime(AllocObject, call_inst);
2972 return ExpandToRuntime(AllocObjectWithAccessCheck, call_inst);
2977 return Expand_NewInstance(call_inst);
2980 return Expand_InstanceOf(call_inst);
2985 return Expand_NewArray(call_inst);
2988 return Expand_OptArrayLength(call_inst);
2991 return EmitLoadArrayLength(call_inst.getArgOperand(0));
2994 return ExpandToRuntime(AllocArray, call_inst);
2998 call_inst);
3001 return ExpandToRuntime(CheckAndAllocArray, call_inst);
3005 call_inst);
3008 return Expand_ArrayGet(call_inst.getArgOperand(0),
3009 call_inst.getArgOperand(1),
3013 return Expand_ArrayGet(call_inst.getArgOperand(0),
3014 call_inst.getArgOperand(1),
3018 return Expand_ArrayGet(call_inst.getArgOperand(0),
3019 call_inst.getArgOperand(1),
3023 return Expand_ArrayGet(call_inst.getArgOperand(0),
3024 call_inst.getArgOperand(1),
3028 return Expand_ArrayGet(call_inst.getArgOperand(0),
3029 call_inst.getArgOperand(1),
3033 return Expand_ArrayGet(call_inst.getArgOperand(0),
3034 call_inst.getArgOperand(1),
3038 return Expand_ArrayGet(call_inst.getArgOperand(0),
3039 call_inst.getArgOperand(1),
3043 Expand_ArrayPut(call_inst.getArgOperand(0),
3044 call_inst.getArgOperand(1),
3045 call_inst.getArgOperand(2),
3050 Expand_ArrayPut(call_inst.getArgOperand(0),
3051 call_inst.getArgOperand(1),
3052 call_inst.getArgOperand(2),
3057 Expand_ArrayPut(call_inst.getArgOperand(0),
3058 call_inst.getArgOperand(1),
3059 call_inst.getArgOperand(2),
3064 Expand_ArrayPut(call_inst.getArgOperand(0),
3065 call_inst.getArgOperand(1),
3066 call_inst.getArgOperand(2),
3071 Expand_ArrayPut(call_inst.getArgOperand(0),
3072 call_inst.getArgOperand(1),
3073 call_inst.getArgOperand(2),
3078 Expand_ArrayPut(call_inst.getArgOperand(0),
3079 call_inst.getArgOperand(1),
3080 call_inst.getArgOperand(2),
3085 Expand_ArrayPut(call_inst.getArgOperand(0),
3086 call_inst.getArgOperand(1),
3087 call_inst.getArgOperand(2),
3092 return ExpandToRuntime(CheckPutArrayElement, call_inst);
3095 Expand_FilledNewArray(call_inst);
3099 return ExpandToRuntime(FillArrayData, call_inst);
3102 Expand_HLFillArrayData(call_inst);
3106 return Expand_HLFilledNewArray(call_inst);
3115 return ExpandToRuntime(Get32Instance, call_inst);
3118 return ExpandToRuntime(Get64Instance, call_inst);
3121 return ExpandToRuntime(GetObjectInstance, call_inst);
3124 return Expand_IGetFast(call_inst.getArgOperand(0),
3125 call_inst.getArgOperand(1),
3126 call_inst.getArgOperand(2),
3130 return Expand_IGetFast(call_inst.getArgOperand(0),
3131 call_inst.getArgOperand(1),
3132 call_inst.getArgOperand(2),
3136 return Expand_IGetFast(call_inst.getArgOperand(0),
3137 call_inst.getArgOperand(1),
3138 call_inst.getArgOperand(2),
3142 return Expand_IGetFast(call_inst.getArgOperand(0),
3143 call_inst.getArgOperand(1),
3144 call_inst.getArgOperand(2),
3148 return Expand_IGetFast(call_inst.getArgOperand(0),
3149 call_inst.getArgOperand(1),
3150 call_inst.getArgOperand(2),
3154 return Expand_IGetFast(call_inst.getArgOperand(0),
3155 call_inst.getArgOperand(1),
3156 call_inst.getArgOperand(2),
3160 return Expand_IGetFast(call_inst.getArgOperand(0),
3161 call_inst.getArgOperand(1),
3162 call_inst.getArgOperand(2),
3170 return ExpandToRuntime(Set32Instance, call_inst);
3173 return ExpandToRuntime(Set64Instance, call_inst);
3176 return ExpandToRuntime(SetObjectInstance, call_inst);
3179 Expand_IPutFast(call_inst.getArgOperand(0),
3180 call_inst.getArgOperand(1),
3181 call_inst.getArgOperand(2),
3182 call_inst.getArgOperand(3),
3187 Expand_IPutFast(call_inst.getArgOperand(0),
3188 call_inst.getArgOperand(1),
3189 call_inst.getArgOperand(2),
3190 call_inst.getArgOperand(3),
3195 Expand_IPutFast(call_inst.getArgOperand(0),
3196 call_inst.getArgOperand(1),
3197 call_inst.getArgOperand(2),
3198 call_inst.getArgOperand(3),
3203 Expand_IPutFast(call_inst.getArgOperand(0),
3204 call_inst.getArgOperand(1),
3205 call_inst.getArgOperand(2),
3206 call_inst.getArgOperand(3),
3211 Expand_IPutFast(call_inst.getArgOperand(0),
3212 call_inst.getArgOperand(1),
3213 call_inst.getArgOperand(2),
3214 call_inst.getArgOperand(3),
3219 Expand_IPutFast(call_inst.getArgOperand(0),
3220 call_inst.getArgOperand(1),
3221 call_inst.getArgOperand(2),
3222 call_inst.getArgOperand(3),
3227 Expand_IPutFast(call_inst.getArgOperand(0),
3228 call_inst.getArgOperand(1),
3229 call_inst.getArgOperand(2),
3230 call_inst.getArgOperand(3),
3241 return ExpandToRuntime(Get32Static, call_inst);
3244 return ExpandToRuntime(Get64Static, call_inst);
3247 return ExpandToRuntime(GetObjectStatic, call_inst);
3250 return Expand_SGetFast(call_inst.getArgOperand(0),
3251 call_inst.getArgOperand(1),
3252 call_inst.getArgOperand(2),
3256 return Expand_SGetFast(call_inst.getArgOperand(0),
3257 call_inst.getArgOperand(1),
3258 call_inst.getArgOperand(2),
3262 return Expand_SGetFast(call_inst.getArgOperand(0),
3263 call_inst.getArgOperand(1),
3264 call_inst.getArgOperand(2),
3268 return Expand_SGetFast(call_inst.getArgOperand(0),
3269 call_inst.getArgOperand(1),
3270 call_inst.getArgOperand(2),
3274 return Expand_SGetFast(call_inst.getArgOperand(0),
3275 call_inst.getArgOperand(1),
3276 call_inst.getArgOperand(2),
3280 return Expand_SGetFast(call_inst.getArgOperand(0),
3281 call_inst.getArgOperand(1),
3282 call_inst.getArgOperand(2),
3286 return Expand_SGetFast(call_inst.getArgOperand(0),
3287 call_inst.getArgOperand(1),
3288 call_inst.getArgOperand(2),
3296 return ExpandToRuntime(Set32Static, call_inst);
3299 return ExpandToRuntime(Set64Static, call_inst);
3302 return ExpandToRuntime(SetObjectStatic, call_inst);
3305 Expand_SPutFast(call_inst.getArgOperand(0),
3306 call_inst.getArgOperand(1),
3307 call_inst.getArgOperand(2),
3308 call_inst.getArgOperand(3),
3313 Expand_SPutFast(call_inst.getArgOperand(0),
3314 call_inst.getArgOperand(1),
3315 call_inst.getArgOperand(2),
3316 call_inst.getArgOperand(3),
3321 Expand_SPutFast(call_inst.getArgOperand(0),
3322 call_inst.getArgOperand(1),
3323 call_inst.getArgOperand(2),
3324 call_inst.getArgOperand(3),
3329 Expand_SPutFast(call_inst.getArgOperand(0),
3330 call_inst.getArgOperand(1),
3331 call_inst.getArgOperand(2),
3332 call_inst.getArgOperand(3),
3337 Expand_SPutFast(call_inst.getArgOperand(0),
3338 call_inst.getArgOperand(1),
3339 call_inst.getArgOperand(2),
3340 call_inst.getArgOperand(3),
3345 Expand_SPutFast(call_inst.getArgOperand(0),
3346 call_inst.getArgOperand(1),
3347 call_inst.getArgOperand(2),
3348 call_inst.getArgOperand(3),
3353 Expand_SPutFast(call_inst.getArgOperand(0),
3354 call_inst.getArgOperand(1),
3355 call_inst.getArgOperand(2),
3356 call_inst.getArgOperand(3),
3361 return Expand_LoadDeclaringClassSSB(call_inst.getArgOperand(0));
3364 return Expand_LoadClassSSBFromDexCache(call_inst.getArgOperand(0));
3367 return ExpandToRuntime(InitializeStaticStorage, call_inst);
3372 return Expand_HLArrayGet(call_inst, kInt);
3375 return Expand_HLArrayGet(call_inst, kBoolean);
3378 return Expand_HLArrayGet(call_inst, kByte);
3381 return Expand_HLArrayGet(call_inst, kChar);
3384 return Expand_HLArrayGet(call_inst, kShort);
3387 return Expand_HLArrayGet(call_inst, kFloat);
3390 return Expand_HLArrayGet(call_inst, kLong);
3393 return Expand_HLArrayGet(call_inst, kDouble);
3396 return Expand_HLArrayGet(call_inst, kObject);
3399 Expand_HLArrayPut(call_inst, kInt);
3403 Expand_HLArrayPut(call_inst, kBoolean);
3407 Expand_HLArrayPut(call_inst, kByte);
3411 Expand_HLArrayPut(call_inst, kChar);
3415 Expand_HLArrayPut(call_inst, kShort);
3419 Expand_HLArrayPut(call_inst, kFloat);
3423 Expand_HLArrayPut(call_inst, kLong);
3427 Expand_HLArrayPut(call_inst, kDouble);
3431 Expand_HLArrayPut(call_inst, kObject);
3437 return Expand_HLIGet(call_inst, kInt);
3440 return Expand_HLIGet(call_inst, kBoolean);
3443 return Expand_HLIGet(call_inst, kByte);
3446 return Expand_HLIGet(call_inst, kChar);
3449 return Expand_HLIGet(call_inst, kShort);
3452 return Expand_HLIGet(call_inst, kFloat);
3455 return Expand_HLIGet(call_inst, kLong);
3458 return Expand_HLIGet(call_inst, kDouble);
3461 return Expand_HLIGet(call_inst, kObject);
3464 Expand_HLIPut(call_inst, kInt);
3468 Expand_HLIPut(call_inst, kBoolean);
3472 Expand_HLIPut(call_inst, kByte);
3476 Expand_HLIPut(call_inst, kChar);
3480 Expand_HLIPut(call_inst, kShort);
3484 Expand_HLIPut(call_inst, kFloat);
3488 Expand_HLIPut(call_inst, kLong);
3492 Expand_HLIPut(call_inst, kDouble);
3496 Expand_HLIPut(call_inst, kObject);
3507 return Expand_HLInvoke(call_inst);
3512 return ExpandToRuntime(FindStaticMethodWithAccessCheck, call_inst);
3515 return ExpandToRuntime(FindDirectMethodWithAccessCheck, call_inst);
3518 return ExpandToRuntime(FindVirtualMethodWithAccessCheck, call_inst);
3521 return ExpandToRuntime(FindSuperMethodWithAccessCheck, call_inst);
3524 return ExpandToRuntime(FindInterfaceMethodWithAccessCheck, call_inst);
3527 return Expand_GetSDCalleeMethodObjAddrFast(call_inst.getArgOperand(0));
3531 call_inst.getArgOperand(0), call_inst.getArgOperand(1));
3534 return ExpandToRuntime(FindInterfaceMethod, call_inst);
3546 return Expand_Invoke(call_inst);
3551 return Expand_DivRem(call_inst, /* is_div */true, kInt);
3554 return Expand_DivRem(call_inst, /* is_div */false, kInt);
3557 return Expand_DivRem(call_inst, /* is_div */true, kLong);
3560 return Expand_DivRem(call_inst, /* is_div */false, kLong);
3563 return ExpandToRuntime(art_d2l, call_inst);
3566 return ExpandToRuntime(art_d2i, call_inst);
3569 return ExpandToRuntime(art_f2l, call_inst);
3572 return ExpandToRuntime(art_f2i, call_inst);
3577 return Expand_HLSget(call_inst, kInt);
3580 return Expand_HLSget(call_inst, kBoolean);
3583 return Expand_HLSget(call_inst, kByte);
3586 return Expand_HLSget(call_inst, kChar);
3589 return Expand_HLSget(call_inst, kShort);
3592 return Expand_HLSget(call_inst, kFloat);
3595 return Expand_HLSget(call_inst, kLong);
3598 return Expand_HLSget(call_inst, kDouble);
3601 return Expand_HLSget(call_inst, kObject);
3604 Expand_HLSput(call_inst, kInt);
3608 Expand_HLSput(call_inst, kBoolean);
3612 Expand_HLSput(call_inst, kByte);
3616 Expand_HLSput(call_inst, kChar);
3620 Expand_HLSput(call_inst, kShort);
3624 Expand_HLSput(call_inst, kFloat);
3628 Expand_HLSput(call_inst, kLong);
3632 Expand_HLSput(call_inst, kDouble);
3636 Expand_HLSput(call_inst, kObject);
3642 Expand_MonitorEnter(call_inst);
3646 Expand_MonitorExit(call_inst);
3652 Expand_AllocaShadowFrame(call_inst.getArgOperand(0));
3656 Expand_SetVReg(call_inst.getArgOperand(0),
3657 call_inst.getArgOperand(1));
3665 Expand_UpdateDexPC(call_inst.getArgOperand(0));
3672 return Expand_FPCompare(call_inst.getArgOperand(0),
3673 call_inst.getArgOperand(1),
3678 return Expand_FPCompare(call_inst.getArgOperand(0),
3679 call_inst.getArgOperand(1),
3683 return Expand_LongCompare(call_inst.getArgOperand(0),
3684 call_inst.getArgOperand(1));
3690 return call_inst.getArgOperand(0);
3693 return irb_.CreateBitCast(call_inst.getArgOperand(0),
3697 return irb_.CreateBitCast(call_inst.getArgOperand(0),
3701 CHECK_EQ(LV2UInt(call_inst.getArgOperand(0)), 0U);
3718 return call_inst.getArgOperand(0);
3723 return Expand_IntegerShift(call_inst.getArgOperand(0),
3724 call_inst.getArgOperand(1),
3728 return Expand_IntegerShift(call_inst.getArgOperand(0),
3729 call_inst.getArgOperand(1),
3733 return Expand_IntegerShift(call_inst.getArgOperand(0),
3734 call_inst.getArgOperand(1),
3738 return Expand_IntegerShift(call_inst.getArgOperand(0),
3739 call_inst.getArgOperand(1),
3743 return Expand_IntegerShift(call_inst.getArgOperand(0),
3744 call_inst.getArgOperand(1),
3748 return Expand_IntegerShift(call_inst.getArgOperand(0),
3749 call_inst.getArgOperand(1),
3755 return irb_.CreateZExt(irb_.CreateTrunc(call_inst.getArgOperand(0), irb_.getJCharTy()),
3759 return irb_.CreateSExt(irb_.CreateTrunc(call_inst.getArgOperand(0), irb_.getJShortTy()),
3763 return irb_.CreateSExt(irb_.CreateTrunc(call_inst.getArgOperand(0), irb_.getJByteTy()),
3770 llvm::SwitchInst* si = llvm::dyn_cast<llvm::SwitchInst>(call_inst.getNextNode());
3774 return call_inst.getArgOperand(0);