1e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao/* 2e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao * Copyright (C) 2012 The Android Open Source Project 3e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao * 4e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao * Licensed under the Apache License, Version 2.0 (the "License"); 5e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao * you may not use this file except in compliance with the License. 6e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao * You may obtain a copy of the License at 7e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao * 8e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao * http://www.apache.org/licenses/LICENSE-2.0 9e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao * 10e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao * Unless required by applicable law or agreed to in writing, software 11e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao * distributed under the License is distributed on an "AS IS" BASIS, 12e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao * See the License for the specific language governing permissions and 14e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao * limitations under the License. 15e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao */ 16e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 17e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// DEF_INTRINSICS_FUNC(ID, NAME, ATTR, RET_TYPE, 18e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) 19e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#ifndef DEF_INTRINSICS_FUNC 20e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao# error "missing DEF_INTRINSICS_FUNC definition!" 21e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#endif 22e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 23e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#define _EVAL_DEF_INTRINSICS_FUNC(ID, NAME, ATTR, RET_TYPE, ...) \ 24e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao DEF_INTRINSICS_FUNC(ID, NAME, ATTR, RET_TYPE, __VA_ARGS__) 25e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 26e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#define _EXPAND_ARG0() kNone, kNone, kNone, kNone, kNone 27e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#define _EXPAND_ARG1(ARG1) ARG1, kNone, kNone, kNone, kNone 28e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#define _EXPAND_ARG2(ARG1, ARG2) ARG1, ARG2, kNone, kNone, kNone 29e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#define _EXPAND_ARG3(ARG1, ARG2, ARG3) ARG1, ARG2, ARG3, kNone, kNone 30e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#define _EXPAND_ARG4(ARG1, ARG2, ARG3, ARG4) ARG1, ARG2, ARG3, ARG4, kNone 31e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#define _EXPAND_ARG5(ARG1, ARG2, ARG3, ARG4, ARG5) \ 32e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao ARG1, ARG2, ARG3, ARG4, ARG5 33e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 34e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#define _JTYPE(TYPE, SPACE) _JTYPE_OF_ ## TYPE ## _UNDER_ ## SPACE 35e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 36e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// Note: These should be consistent with the type return from 37e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// IRBuilder::GetJType([type], kArray). 38e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#define _JTYPE_OF_kInt1Ty_UNDER_kArray kInt8Ty 39e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#define _JTYPE_OF_kInt8Ty_UNDER_kArray kInt8Ty 40e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#define _JTYPE_OF_kInt16Ty_UNDER_kArray kInt16Ty 41e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#define _JTYPE_OF_kInt32Ty_UNDER_kArray kInt32Ty 42e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#define _JTYPE_OF_kInt64Ty_UNDER_kArray kInt64Ty 43e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#define _JTYPE_OF_kJavaObjectTy_UNDER_kArray kJavaObjectTy 44e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 45e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// Note: These should be consistent with the type return from 46e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// IRBuilder::GetJType([type], kField). 47e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#define _JTYPE_OF_kInt1Ty_UNDER_kField kInt32Ty 48e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#define _JTYPE_OF_kInt8Ty_UNDER_kField kInt32Ty 49e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#define _JTYPE_OF_kInt16Ty_UNDER_kField kInt32Ty 50e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#define _JTYPE_OF_kInt32Ty_UNDER_kField kInt32Ty 51e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#define _JTYPE_OF_kInt64Ty_UNDER_kField kInt64Ty 52e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#define _JTYPE_OF_kJavaObjectTy_UNDER_kField kJavaObjectTy 53e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 54e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao//---------------------------------------------------------------------------- 55e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// Thread 56e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao//---------------------------------------------------------------------------- 57e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 5876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// Thread* art_portable_get_current_thread() 59e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(GetCurrentThread, 6076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_get_current_thread, 6121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrReadNone | kAttrNoThrow, 6221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kJavaThreadTy, 6321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG0()) 6421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 6576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_test_suspend(Thread* thread) 6621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(TestSuspend, 6776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_test_suspend, 6821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNoThrow, 6921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 7021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG1(kJavaThreadTy)) 7121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 7276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_check_suspend() /* Expands to GetCurrentThread/TestSuspend */ 7321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(CheckSuspend, 7476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_check_suspend, 7521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNoThrow, 7621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 77e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG0()) 78e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 7976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_mark_gc_card(Object* new_value, Object* object) 8021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(MarkGCCard, 8176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_mark_gc_card, 8221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNoThrow, 8321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 8421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG2(kJavaObjectTy, kJavaObjectTy)) 8521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 86e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao//---------------------------------------------------------------------------- 87e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// Exception 88e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao//---------------------------------------------------------------------------- 89e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 90c9f40dd0a3dba696fc694d51fb82b61dcff19066Bill Buzbee// Should not expand - introduces the catch targets for a potentially 91c9f40dd0a3dba696fc694d51fb82b61dcff19066Bill Buzbee// throwing instruction. The result is a switch key and this 92c9f40dd0a3dba696fc694d51fb82b61dcff19066Bill Buzbee// instruction will be followed by a switch statement. The catch 93c9f40dd0a3dba696fc694d51fb82b61dcff19066Bill Buzbee// targets will be enumerated as cases of the switch, with the fallthrough 94c9f40dd0a3dba696fc694d51fb82b61dcff19066Bill Buzbee// designating the block containing the potentially throwing instruction. 9576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// bool art_portable_catch_targets(int dex_pc) 96c9f40dd0a3dba696fc694d51fb82b61dcff19066Bill Buzbee_EVAL_DEF_INTRINSICS_FUNC(CatchTargets, 9776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_catch_targets, 98c9f40dd0a3dba696fc694d51fb82b61dcff19066Bill Buzbee kAttrReadOnly | kAttrNoThrow, 99c9f40dd0a3dba696fc694d51fb82b61dcff19066Bill Buzbee kInt32Ty, 100c9f40dd0a3dba696fc694d51fb82b61dcff19066Bill Buzbee _EXPAND_ARG1(kInt32ConstantTy)) 101c9f40dd0a3dba696fc694d51fb82b61dcff19066Bill Buzbee 10276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_throw_exception(JavaObject* exception) 10321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(ThrowException, 10476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_throw_exception, 10521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrDoThrow, 10621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 107f71bf5ad4e1872e4dfc71de65641ed518e2b38daTDYa _EXPAND_ARG1(kJavaObjectTy)) 108f71bf5ad4e1872e4dfc71de65641ed518e2b38daTDYa 10976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_hl_throw_exception(JavaObject* exception) 110f71bf5ad4e1872e4dfc71de65641ed518e2b38daTDYa_EVAL_DEF_INTRINSICS_FUNC(HLThrowException, 11176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_throw_exception, 112f71bf5ad4e1872e4dfc71de65641ed518e2b38daTDYa kAttrDoThrow, 113f71bf5ad4e1872e4dfc71de65641ed518e2b38daTDYa kVoidTy, 11421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG1(kJavaObjectTy)) 11521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 11676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// JavaObject* art_portable_get_current_exception() 117e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(GetException, 11876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_get_current_exception, 119e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 120c9f40dd0a3dba696fc694d51fb82b61dcff19066Bill Buzbee kJavaObjectTy, 121e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG0()) 122e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 12376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// bool art_portable_is_exception_pending() 124e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(IsExceptionPending, 12576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_is_exception_pending, 126e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 127e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kInt1Ty, 128e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG0()) 129e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 13076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// int art_portable_find_catch_block(Method* method, int try_item_offset) 131e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(FindCatchBlock, 13276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_find_catch_block, 133e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 134e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kInt32Ty, 135e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kJavaMethodTy, kInt32ConstantTy)) 136e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 13776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_throw_div_zero() 138e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(ThrowDivZeroException, 13976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_throw_div_zero, 14021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrDoThrow, 141e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 142e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG0()) 143e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 14476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_throw_null_pointer_exception(uint32_t dex_pc) 145e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(ThrowNullPointerException, 14676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_throw_null_pointer_exception, 14721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrDoThrow, 148e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 149e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG1(kInt32ConstantTy)) 150e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 15176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_throw_array_bounds(int index, int array_len) 152e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(ThrowIndexOutOfBounds, 15376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_throw_array_bounds, 15421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrDoThrow, 155e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 156e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kInt32Ty, kInt32Ty)) 157e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 158e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao//---------------------------------------------------------------------------- 159e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// ConstString 160e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao//---------------------------------------------------------------------------- 161e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 16276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// JavaObject* art_portable_const_string(uint32_t string_idx) 163e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(ConstString, 16476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_const_string, 165e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 166e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kJavaObjectTy, 167e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG1(kInt32ConstantTy)) 168e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 16976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// JavaObject* art_portable_load_string_from_dex_cache(Method* method, uint32_t string_idx) 17021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(LoadStringFromDexCache, 17176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_load_string_from_dex_cache, 172e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 173e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kJavaObjectTy, 174e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG1(kInt32ConstantTy)) 175e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 17676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// JavaObject* art_portable_resolve_string(Method* method, uint32_t string_idx) 17721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(ResolveString, 17876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_resolve_string, 17921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 18021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kJavaObjectTy, 18121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG2(kJavaMethodTy, kInt32ConstantTy)) 18221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 183e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao//---------------------------------------------------------------------------- 184101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee// ConstClass 185101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee//---------------------------------------------------------------------------- 18621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 18776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// JavaObject* art_portable_const_class(uint32_t type_idx) 188101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(ConstClass, 18976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_const_class, 190101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrReadOnly | kAttrNoThrow, 191101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kJavaObjectTy, 192101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee _EXPAND_ARG1(kInt32ConstantTy)) 193101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 19476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// JavaObject* art_portable_initialize_type_and_verify_access(uint32_t type_idx, 19521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Method* referrer, 19621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Thread* thread) 19721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InitializeTypeAndVerifyAccess, 19876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_initialize_type_and_verify_access, 19921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 20021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kJavaObjectTy, 20121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kJavaMethodTy, kJavaThreadTy)) 20221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 20376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// JavaObject* art_portable_load_type_from_dex_cache(uint32_t type_idx) 20421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(LoadTypeFromDexCache, 20576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_load_type_from_dex_cache, 20621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrReadOnly | kAttrNoThrow, 20721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kJavaObjectTy, 20821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG1(kInt32ConstantTy)) 20921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 21076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// JavaObject* art_portable_initialize_type(uint32_t type_idx, 21121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Method* referrer, 21221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Thread* thread) 21321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InitializeType, 21476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_initialize_type, 21521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 21621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kJavaObjectTy, 21721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kJavaMethodTy, kJavaThreadTy)) 21821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 21921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao//---------------------------------------------------------------------------- 22021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Lock 22121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao//---------------------------------------------------------------------------- 22221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 22376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_lock_object(JavaObject* obj, Thread* thread) 22421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(LockObject, 22576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_lock_object, 22621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNoThrow, 22721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 22821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG2(kJavaObjectTy, kJavaThreadTy)) 22921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 23076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_unlock_object(JavaObject* obj, Thread* thread) 23121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(UnlockObject, 23276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_unlock_object, 23321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 23421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 23521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG2(kJavaObjectTy, kJavaThreadTy)) 23621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 237101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee//---------------------------------------------------------------------------- 23821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Cast 239101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee//---------------------------------------------------------------------------- 24021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 24176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_check_cast(JavaObject* dest_type, JavaObject* src_type) 242101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(CheckCast, 24376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_check_cast, 24421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 24521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 24621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG2(kJavaObjectTy, kJavaObjectTy)) 24721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 24876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_hl_check_cast(uint32_t type_idx, JavaObject* obj) 24921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(HLCheckCast, 25076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_check_cast, 251101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrReadOnly | kAttrNoThrow, 252101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kVoidTy, 253101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee _EXPAND_ARG2(kInt32ConstantTy, kJavaObjectTy)) 254101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 25576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// int art_portable_is_assignable(JavaObject* dest_type, JavaObject* src_type) 25621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(IsAssignable, 25776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_is_assignable, 25821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrReadOnly | kAttrNoThrow, 25921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kInt32Ty, 26021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG2(kJavaObjectTy, kJavaObjectTy)) 26121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 26221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao//---------------------------------------------------------------------------- 26321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Allocation 26421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao//---------------------------------------------------------------------------- 26521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 26676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// JavaObject* art_portable_alloc_object(uint32_t type_idx, 26721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Method* referrer, 26821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Thread* thread) 26921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(AllocObject, 27076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_alloc_object, 27121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 27221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kJavaObjectTy, 27321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kJavaMethodTy, kJavaThreadTy)) 27421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 27576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// JavaObject* art_portable_alloc_object_with_access_check(uint32_t type_idx, 27621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Method* referrer, 27721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Thread* thread) 27821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(AllocObjectWithAccessCheck, 27976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_alloc_object_with_access_check, 28021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 28121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kJavaObjectTy, 28221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kJavaMethodTy, kJavaThreadTy)) 28321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 284101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee//---------------------------------------------------------------------------- 2858fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// Instance 2864f1181fe061d3529f72e1237e7662bf9bc73c6e2buzbee//---------------------------------------------------------------------------- 2874f1181fe061d3529f72e1237e7662bf9bc73c6e2buzbee 28876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// JavaObject* art_portable_new_instance(uint32_t type_idx) 2894f1181fe061d3529f72e1237e7662bf9bc73c6e2buzbee_EVAL_DEF_INTRINSICS_FUNC(NewInstance, 29076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_new_instance, 2914f1181fe061d3529f72e1237e7662bf9bc73c6e2buzbee kAttrNone, 2924f1181fe061d3529f72e1237e7662bf9bc73c6e2buzbee kJavaObjectTy, 2934f1181fe061d3529f72e1237e7662bf9bc73c6e2buzbee _EXPAND_ARG1(kInt32Ty)) 2944f1181fe061d3529f72e1237e7662bf9bc73c6e2buzbee 29576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// bool art_portable_instance_of(uint32_t type_idx, JavaObject* ref) 2968fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(InstanceOf, 29776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_instance_of, 2988fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrNone, 2994f4dfc7ce0d309448d6fc47737c1f3c0a9eda7e5buzbee kInt32Ty, 3008fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG2(kInt32Ty, kJavaObjectTy)) 3018fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 3024f1181fe061d3529f72e1237e7662bf9bc73c6e2buzbee//---------------------------------------------------------------------------- 303e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// Array 304e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao//---------------------------------------------------------------------------- 305e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 30676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// JavaObject* art_portable_new_array(uint32_t type_idx, uint32_t array_size) 307e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(NewArray, 30876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_new_array, 309e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNone, 310e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kJavaObjectTy, 311e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kInt32ConstantTy, kInt32Ty)) 312e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 31376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// uint32_t art_portable_opt_array_length(int32_t opt_flags, JavaObject* array) 31421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(OptArrayLength, 31576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_opt_array_length, 31621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrReadOnly | kAttrNoThrow, 31721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kInt32Ty, 31821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG2(kInt32Ty, kJavaObjectTy)) 31921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 32076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// uint32_t art_portable_array_length(JavaObject* array) 32121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(ArrayLength, 32276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_array_length, 32321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrReadOnly | kAttrNoThrow, 32421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kInt32Ty, 32521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG1(kJavaObjectTy)) 32621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 32776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// JavaObject* art_portable_alloc_array(uint32_t type_idx, 32821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Method* referrer, 32921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// uint32_t length, 33021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Thread* thread) 33121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(AllocArray, 33276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_alloc_array, 333101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrNone, 33421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kJavaObjectTy, 33521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kJavaMethodTy, kInt32Ty, kJavaThreadTy)) 33621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 33776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// JavaObject* art_portable_alloc_array_with_access_check(uint32_t type_idx, 33821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Method* referrer, 33921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// uint32_t length, 34021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Thread* thread) 34121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(AllocArrayWithAccessCheck, 34276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_alloc_array_with_access_check, 34321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 34421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kJavaObjectTy, 34521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kJavaMethodTy, kInt32Ty, kJavaThreadTy)) 34621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 34776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// JavaObject* art_portable_check_and_alloc_array(uint32_t type_idx, 34821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Method* referrer, 34921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// uint32_t length, 35021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Thread* thread) 35121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(CheckAndAllocArray, 35276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_check_and_alloc_array, 35321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 35421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kJavaObjectTy, 35521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kJavaMethodTy, kInt32ConstantTy, kJavaThreadTy)) 35621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 35776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// JavaObject* art_portable_check_and_alloc_array_with_access_check(uint32_t type_idx, 35821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Method* referrer, 35921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// uint32_t length, 36021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Thread* thread) 36121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(CheckAndAllocArrayWithAccessCheck, 36276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_check_and_alloc_array_with_access_check, 36321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 36421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kJavaObjectTy, 36521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kJavaMethodTy, kInt32ConstantTy, kJavaThreadTy)) 366101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 36776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// art_portable_aget_* and art_portable_aput_* never generate exception since the 368e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// necessary checking on arguments (e.g., array and index) has already done 369e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// before invocation of these intrinsics. 370e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// 37176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// [type] void art_portable_aget_[type](JavaObject* array, uint32_t index) 372e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(ArrayGet, 37376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_aget, 374e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 375e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _JTYPE(kInt32Ty, kArray), 376e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kJavaObjectTy, kInt32Ty)) 377e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 378e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(ArrayGetWide, 37976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_aget_wide, 380e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 381e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _JTYPE(kInt64Ty, kArray), 382e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kJavaObjectTy, kInt32Ty)) 383e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 384e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(ArrayGetObject, 38576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_aget_object, 386e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 387e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _JTYPE(kJavaObjectTy, kArray), 388e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kJavaObjectTy, kInt32Ty)) 389e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 390e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(ArrayGetBoolean, 39176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_aget_boolean, 392e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 393e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _JTYPE(kInt1Ty, kArray), 394e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kJavaObjectTy, kInt32Ty)) 395e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 396e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(ArrayGetByte, 39776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_aget_byte, 398e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 399e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _JTYPE(kInt8Ty, kArray), 400e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kJavaObjectTy, kInt32Ty)) 401e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 402e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(ArrayGetChar, 40376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_aget_char, 404e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 405e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _JTYPE(kInt16Ty, kArray), 406e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kJavaObjectTy, kInt32Ty)) 407e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 408e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(ArrayGetShort, 40976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_aget_short, 410e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 411e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _JTYPE(kInt16Ty, kArray), 412e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kJavaObjectTy, kInt32Ty)) 413e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 41476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_aput_[type]([type] value, JavaObject* array, uint32_t index) 415e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(ArrayPut, 41676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_aput, 417e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNoThrow, 418e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 419e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(_JTYPE(kInt32Ty, kArray), kJavaObjectTy, kInt32Ty)) 420e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 421e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(ArrayPutWide, 42276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_aput_wide, 423e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNoThrow, 424e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 425e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(_JTYPE(kInt64Ty, kArray), kJavaObjectTy, kInt32Ty)) 426e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 427e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(ArrayPutObject, 42876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_aput_object, 429e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNoThrow, 430e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 431e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(_JTYPE(kJavaObjectTy, kArray), kJavaObjectTy, kInt32Ty)) 432e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 433e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(ArrayPutBoolean, 43476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_aput_boolean, 435e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNoThrow, 436e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 437e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(_JTYPE(kInt1Ty, kArray), kJavaObjectTy, kInt32Ty)) 438e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 439e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(ArrayPutByte, 44076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_aput_byte, 441e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNoThrow, 442e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 443e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(_JTYPE(kInt8Ty, kArray), kJavaObjectTy, kInt32Ty)) 444e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 445e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(ArrayPutChar, 44676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_aput_char, 447e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNoThrow, 448e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 449e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(_JTYPE(kInt16Ty, kArray), kJavaObjectTy, kInt32Ty)) 450e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 451e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(ArrayPutShort, 45276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_aput_short, 453e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNoThrow, 454e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 455e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(_JTYPE(kInt16Ty, kArray), kJavaObjectTy, kInt32Ty)) 456e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 45776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_check_put_array_element(JavaObject* value, JavaObject* array) 458e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(CheckPutArrayElement, 45976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_check_put_array_element, 46021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 461e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 462e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kJavaObjectTy, kJavaObjectTy)) 463e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 46476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_filled_new_array(Array* array, 46521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// uint32_t elem_jty, ...) 46621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(FilledNewArray, 46776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_filled_new_array, 46821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNoThrow, 46921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 47021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG3(kJavaObjectTy, kInt32ConstantTy, kVarArgTy)) 47121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 47276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_fill_array_data(Method* referrer, 47321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// uint32_t dex_pc, 47421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Array* array, 47521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// uint32_t payload_offset) 47621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(FillArrayData, 47776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_fill_array_data, 47821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 47921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 48021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kJavaMethodTy, kInt32ConstantTy, kJavaObjectTy, kInt32ConstantTy)) 48121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 48276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_hl_fill_array_data(int32_t offset, JavaObject* array) 48321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(HLFillArrayData, 48476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_fill_array_data, 48521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 48621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 48721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG2(kInt32ConstantTy, kJavaObjectTy)) 48821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 48921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao//---------------------------------------------------------------------------- 49021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Instance Field 49121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao//---------------------------------------------------------------------------- 49221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 49376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// [type] art_portable_iget_[type](uint32_t field_idx, 49421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Method* referrer, 49521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// JavaObject* obj) 49621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldGet, 49776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iget, 49821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 49921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _JTYPE(kInt32Ty, kField), 50021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kJavaMethodTy, kJavaObjectTy)) 50121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 50221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldGetWide, 50376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iget_wide, 50421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 50521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _JTYPE(kInt64Ty, kField), 50621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kJavaMethodTy, kJavaObjectTy)) 50721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 50821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldGetObject, 50976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iget_object, 51021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 51121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _JTYPE(kJavaObjectTy, kField), 51221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kJavaMethodTy, kJavaObjectTy)) 51321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 51421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldGetBoolean, 51576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iget_boolean, 51621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 51721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _JTYPE(kInt1Ty, kField), 51821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kJavaMethodTy, kJavaObjectTy)) 51921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 52021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldGetByte, 52176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iget_byte, 52221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 52321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _JTYPE(kInt8Ty, kField), 52421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kJavaMethodTy, kJavaObjectTy)) 52521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 52621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldGetChar, 52776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iget_char, 52821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 52921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _JTYPE(kInt16Ty, kField), 53021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kJavaMethodTy, kJavaObjectTy)) 53121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 53221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldGetShort, 53376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iget_short, 53421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 53521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _JTYPE(kInt16Ty, kField), 53621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kJavaMethodTy, kJavaObjectTy)) 53721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 53876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// [type] art_portable_iget_[type].fast(int field_offset, 53921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// bool is_volatile, 54021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// JavaObject* obj) 54121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldGetFast, 54276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iget.fast, 54321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrReadOnly | kAttrNoThrow, 54421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _JTYPE(kInt32Ty, kField), 54521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kInt1ConstantTy, kJavaObjectTy)) 54621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 54721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldGetWideFast, 54876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iget_wide.fast, 54921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrReadOnly | kAttrNoThrow, 55021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _JTYPE(kInt64Ty, kField), 55121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kInt1ConstantTy, kJavaObjectTy)) 55221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 55321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldGetObjectFast, 55476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iget_object.fast, 55521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrReadOnly | kAttrNoThrow, 55621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _JTYPE(kJavaObjectTy, kField), 55721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kInt1ConstantTy, kJavaObjectTy)) 55821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 55921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldGetBooleanFast, 56076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iget_boolean.fast, 56121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrReadOnly | kAttrNoThrow, 56221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _JTYPE(kInt1Ty, kField), 56321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kInt1ConstantTy, kJavaObjectTy)) 56421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 56521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldGetByteFast, 56676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iget_byte.fast, 56721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrReadOnly | kAttrNoThrow, 56821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _JTYPE(kInt8Ty, kField), 56921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kInt1ConstantTy, kJavaObjectTy)) 57021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 57121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldGetCharFast, 57276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iget_char.fast, 57321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrReadOnly | kAttrNoThrow, 57421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _JTYPE(kInt16Ty, kField), 57521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kInt1ConstantTy, kJavaObjectTy)) 57621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 57721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldGetShortFast, 57876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iget_short.fast, 57921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrReadOnly | kAttrNoThrow, 58021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _JTYPE(kInt16Ty, kField), 58121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kInt1ConstantTy, kJavaObjectTy)) 58221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 58376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_iput_[type](uint32_t field_idx, 58421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Method* referrer, 58521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// JavaObject* obj, 58621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// [type] new_value) 58721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldPut, 58876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iput, 58921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 59021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 59121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kJavaMethodTy, kJavaObjectTy, _JTYPE(kInt32Ty, kField))) 59221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 59321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldPutWide, 59476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iput_wide, 59521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 59621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 59721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kJavaMethodTy, kJavaObjectTy, _JTYPE(kInt64Ty, kField))) 59821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 59921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldPutObject, 60076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iput_object, 60121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 60221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 60321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kJavaMethodTy, kJavaObjectTy, _JTYPE(kJavaObjectTy, kField))) 60421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 60521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldPutBoolean, 60676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iput_boolean, 60721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 60821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 60921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kJavaMethodTy, kJavaObjectTy, _JTYPE(kInt1Ty, kField))) 61021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 61121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldPutByte, 61276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iput_byte, 61321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 61421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 61521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kJavaMethodTy, kJavaObjectTy, _JTYPE(kInt8Ty, kField))) 61621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 61721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldPutChar, 61876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iput_char, 61921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 62021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 62121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kJavaMethodTy, kJavaObjectTy, _JTYPE(kInt16Ty, kField))) 62221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 62321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldPutShort, 62476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iput_short, 62521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 62621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 62721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kJavaMethodTy, kJavaObjectTy, _JTYPE(kInt16Ty, kField))) 62821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 62976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_iput_[type].fast(int field_offset, 63021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// bool is_volatile, 63121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// JavaObject* obj, 63221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// [type] new_value) 63321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldPutFast, 63476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iput.fast, 63521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNoThrow, 63621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 63721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kInt1ConstantTy, kJavaObjectTy, _JTYPE(kInt32Ty, kField))) 63821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 63921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldPutWideFast, 64076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iput_wide.fast, 64121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNoThrow, 64221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 64321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kInt1ConstantTy, kJavaObjectTy, _JTYPE(kInt64Ty, kField))) 64421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 64521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldPutObjectFast, 64676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iput_object.fast, 64721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNoThrow, 64821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 64921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kInt1ConstantTy, kJavaObjectTy, _JTYPE(kJavaObjectTy, kField))) 65021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 65121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldPutBooleanFast, 65276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iput_boolean.fast, 65321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNoThrow, 65421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 65521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kInt1ConstantTy, kJavaObjectTy, _JTYPE(kInt1Ty, kField))) 65621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 65721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldPutByteFast, 65876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iput_byte.fast, 65921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNoThrow, 66021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 66121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kInt1ConstantTy, kJavaObjectTy, _JTYPE(kInt8Ty, kField))) 66221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 66321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldPutCharFast, 66476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iput_char.fast, 66521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNoThrow, 66621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 66721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kInt1ConstantTy, kJavaObjectTy, _JTYPE(kInt16Ty, kField))) 66821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 66921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InstanceFieldPutShortFast, 67076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_iput_short.fast, 67121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNoThrow, 67221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kVoidTy, 67321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kInt1ConstantTy, kJavaObjectTy, _JTYPE(kInt16Ty, kField))) 67421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 675e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao//---------------------------------------------------------------------------- 676e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// Static Field 677e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao//---------------------------------------------------------------------------- 678e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 67976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// [type] art_portable_sget_[type](uint32_t field_idx, Method* referrer) 680e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldGet, 68176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sget, 68221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 683e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _JTYPE(kInt32Ty, kField), 684e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kInt32ConstantTy, kJavaMethodTy)) 685e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 686e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldGetWide, 68776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sget_wide, 68821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 689e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _JTYPE(kInt64Ty, kField), 690e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kInt32ConstantTy, kJavaMethodTy)) 691e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 692e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldGetObject, 69376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sget_object, 69421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 695e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _JTYPE(kJavaObjectTy, kField), 696e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kInt32ConstantTy, kJavaMethodTy)) 697e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 698e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldGetBoolean, 69976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sget_boolean, 70021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 701e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _JTYPE(kInt1Ty, kField), 702e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kInt32ConstantTy, kJavaMethodTy)) 703e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 704e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldGetByte, 70576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sget_byte, 70621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 707e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _JTYPE(kInt8Ty, kField), 708e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kInt32ConstantTy, kJavaMethodTy)) 709e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 710e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldGetChar, 71176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sget_char, 71221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 713e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _JTYPE(kInt16Ty, kField), 714e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kInt32ConstantTy, kJavaMethodTy)) 715e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 716e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldGetShort, 71776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sget_short, 71821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 719e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _JTYPE(kInt16Ty, kField), 720e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kInt32ConstantTy, kJavaMethodTy)) 721e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 72276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// [type] art_portable_sget_[type].fast(JavaObject* ssb, 723e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// int field_offset, 724e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// bool is_volatile) 725e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldGetFast, 72676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sget.fast, 727e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 728e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _JTYPE(kInt32Ty, kField), 729e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(kJavaObjectTy, kInt32ConstantTy, kInt1ConstantTy)) 730e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 731e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldGetWideFast, 73276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sget_wide.fast, 733e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 734e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _JTYPE(kInt64Ty, kField), 735e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(kJavaObjectTy, kInt32ConstantTy, kInt1ConstantTy)) 736e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 737e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldGetObjectFast, 73876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sget_object.fast, 739e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 740e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _JTYPE(kJavaObjectTy, kField), 741e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(kJavaObjectTy, kInt32ConstantTy, kInt1ConstantTy)) 742e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 743e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldGetBooleanFast, 74476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sget_boolean.fast, 745e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 746e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _JTYPE(kInt1Ty, kField), 747e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(kJavaObjectTy, kInt32ConstantTy, kInt1ConstantTy)) 748e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 749e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldGetByteFast, 75076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sget_byte.fast, 751e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 752e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _JTYPE(kInt8Ty, kField), 753e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(kJavaObjectTy, kInt32ConstantTy, kInt1ConstantTy)) 754e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 755e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldGetCharFast, 75676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sget_char.fast, 757e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 758e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _JTYPE(kInt16Ty, kField), 759e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(kJavaObjectTy, kInt32ConstantTy, kInt1ConstantTy)) 760e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 761e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldGetShortFast, 76276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sget_short.fast, 763e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 764e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _JTYPE(kInt16Ty, kField), 765e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(kJavaObjectTy, kInt32ConstantTy, kInt1ConstantTy)) 766e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 76776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_sput_[type](uint32_t field_idx, 768e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// Method* referrer, 769e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// [type] new_value) 770e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldPut, 77176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sput, 772e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNone, 773e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 774e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kJavaMethodTy, _JTYPE(kInt32Ty, kField))) 775e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 776e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldPutWide, 77776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sput_wide, 778e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNone, 779e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 780e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kJavaMethodTy, _JTYPE(kInt64Ty, kField))) 781e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 782e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldPutObject, 78376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sput_object, 784e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNone, 785e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 786e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kJavaMethodTy, _JTYPE(kJavaObjectTy, kField))) 787e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 788e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldPutBoolean, 78976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sput_boolean, 790e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNone, 791e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 792e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kJavaMethodTy, _JTYPE(kInt1Ty, kField))) 793e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 794e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldPutByte, 79576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sput_byte, 796e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNone, 797e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 798e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kJavaMethodTy, _JTYPE(kInt8Ty, kField))) 799e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 800e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldPutChar, 80176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sput_char, 802e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNone, 803e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 804e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kJavaMethodTy, _JTYPE(kInt16Ty, kField))) 805e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 806e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldPutShort, 80776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sput_short, 808e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNone, 809e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 810e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kJavaMethodTy, _JTYPE(kInt16Ty, kField))) 811e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 81276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_sput_[type].fast(JavaObject* ssb, 813e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// int field_offset, 814e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// bool is_volatile, 815e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// [type] new_value) 816e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldPutFast, 81776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sput.fast, 818e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNoThrow, 819e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 820e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG4(kJavaObjectTy, kInt32ConstantTy, kInt1ConstantTy, _JTYPE(kInt32Ty, kField))) 821e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 822e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldPutWideFast, 82376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sput_wide.fast, 824e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNoThrow, 825e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 826e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG4(kJavaObjectTy, kInt32ConstantTy, kInt1ConstantTy, _JTYPE(kInt64Ty, kField))) 827e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 828e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldPutObjectFast, 82976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sput_object.fast, 830e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNoThrow, 831e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 832e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG4(kJavaObjectTy, kInt32ConstantTy, kInt1ConstantTy, _JTYPE(kJavaObjectTy, kField))) 833e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 834e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldPutBooleanFast, 83576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sput_boolean.fast, 836e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNoThrow, 837e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 838e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG4(kJavaObjectTy, kInt32ConstantTy, kInt1ConstantTy, _JTYPE(kInt1Ty, kField))) 839e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 840e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldPutByteFast, 84176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sput_byte.fast, 842e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNoThrow, 843e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 844e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG4(kJavaObjectTy, kInt32ConstantTy, kInt1ConstantTy, _JTYPE(kInt8Ty, kField))) 845e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 846e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldPutCharFast, 84776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sput_char.fast, 848e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNoThrow, 849e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 850e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG4(kJavaObjectTy, kInt32ConstantTy, kInt1ConstantTy, _JTYPE(kInt16Ty, kField))) 851e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 852e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(StaticFieldPutShortFast, 85376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_sput_short.fast, 854e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNoThrow, 855e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 856e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG4(kJavaObjectTy, kInt32ConstantTy, kInt1ConstantTy, _JTYPE(kInt16Ty, kField))) 857e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 85876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// JavaObject* art_portable_load_declaring_class_ssb(Method* method) 859e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// Load the static storage base of the class that given method resides 860e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(LoadDeclaringClassSSB, 86176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_load_declaring_class_ssb, 862e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 863e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kJavaObjectTy, 864e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG1(kJavaMethodTy)) 865e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 86676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// JavaObject* art_portable_load_class_ssb_from_dex_cache(uint32_t type_idx) 867e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(LoadClassSSBFromDexCache, 86876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_load_class_ssb_from_dex_cache, 869e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 870e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kJavaObjectTy, 871e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG1(kInt32ConstantTy)) 872e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 87376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// JavaObject* art_portable_init_and_load_class_ssb(uint32_t type_idx, 874e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// Method* referrer, 875e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// Thread* thread) 876e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InitializeAndLoadClassSSB, 87776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_init_and_load_class_ssb, 878e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNone, 879e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kJavaObjectTy, 880e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG3(kInt32ConstantTy, kJavaMethodTy, kJavaThreadTy)) 881e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 882e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao//---------------------------------------------------------------------------- 8838fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// High-level Array get/put 8848fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// 88576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// Similar to art_portable_aget/aput_xxx, but checks not yet performed. 8868fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// OptFlags contain info describing whether frontend has determined that 8878fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// null check and/or array bounds check may be skipped. 8888fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// 88976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// [type] void art_portable_hl_aget_[type](int optFlags, JavaObject* array, uint32_t index) 8908fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLArrayGet, 89176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_aget, 8928fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 8938fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kInt32Ty, 8948fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG3(kInt32Ty, kJavaObjectTy, kInt32Ty)) 8958fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 8968fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLArrayGetFloat, 89776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_aget_float, 8988fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 8998fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kFloatTy, 9008fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG3(kInt32Ty, kJavaObjectTy, kInt32Ty)) 9018fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 9028fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLArrayGetWide, 90376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_aget_wide, 9048fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 9058fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kInt64Ty, 9068fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG3(kInt32Ty, kJavaObjectTy, kInt32Ty)) 9078fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 9088fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLArrayGetDouble, 90976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_aget_double, 9108fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 9118fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kDoubleTy, 9128fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG3(kInt32Ty, kJavaObjectTy, kInt32Ty)) 9138fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 9148fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLArrayGetObject, 91576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_aget_object, 9168fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 9178fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kJavaObjectTy, 9188fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG3(kInt32Ty, kJavaObjectTy, kInt32Ty)) 9198fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 9208fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLArrayGetBoolean, 92176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_aget_boolean, 9228fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 92376592633b491e294d78db2c4dbc44ca679004b71buzbee kInt32Ty, 9248fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG3(kInt32Ty, kJavaObjectTy, kInt32Ty)) 9258fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 9268fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLArrayGetByte, 92776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_aget_byte, 9288fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 92976592633b491e294d78db2c4dbc44ca679004b71buzbee kInt32Ty, 9308fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG3(kInt32Ty, kJavaObjectTy, kInt32Ty)) 9318fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 9328fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLArrayGetChar, 93376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_aget_char, 9348fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 93576592633b491e294d78db2c4dbc44ca679004b71buzbee kInt32Ty, 9368fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG3(kInt32Ty, kJavaObjectTy, kInt32Ty)) 9378fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 9388fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLArrayGetShort, 93976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_aget_short, 9408fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 94176592633b491e294d78db2c4dbc44ca679004b71buzbee kInt32Ty, 9428fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG3(kInt32Ty, kJavaObjectTy, kInt32Ty)) 9438fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 94476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_aput_[type](int optFlags, [type] value, JavaObject* array, uint32_t index) 9458fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLArrayPut, 94676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_aput, 9478fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrNoThrow, 9488fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kVoidTy, 9498fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG4(kInt32Ty, kInt32Ty, kJavaObjectTy, kInt32Ty)) 9508fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 9518fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLArrayPutFloat, 95276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_aput_float, 9538fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrNoThrow, 9548fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kVoidTy, 9558fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG4(kInt32Ty, kFloatTy, kJavaObjectTy, kInt32Ty)) 9568fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 9578fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLArrayPutWide, 95876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_aput_wide, 9598fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrNoThrow, 9608fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kVoidTy, 9618fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG4(kInt32Ty, kInt64Ty, kJavaObjectTy, kInt32Ty)) 9628fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 9638fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLArrayPutDouble, 96476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_aput_double, 9658fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrNoThrow, 9668fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kVoidTy, 9678fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG4(kInt32Ty, kDoubleTy, kJavaObjectTy, kInt32Ty)) 9688fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 9698fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLArrayPutObject, 97076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_aput_object, 9718fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrNoThrow, 9728fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kVoidTy, 9738fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG4(kInt32Ty, kJavaObjectTy, kJavaObjectTy, kInt32Ty)) 9748fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 9758fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLArrayPutBoolean, 97676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_aput_boolean, 9778fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrNoThrow, 9788fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kVoidTy, 97976592633b491e294d78db2c4dbc44ca679004b71buzbee _EXPAND_ARG4(kInt32Ty, kInt32Ty, kJavaObjectTy, kInt32Ty)) 9808fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 9818fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLArrayPutByte, 98276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_aput_byte, 9838fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrNoThrow, 9848fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kVoidTy, 98576592633b491e294d78db2c4dbc44ca679004b71buzbee _EXPAND_ARG4(kInt32Ty, kInt32Ty, kJavaObjectTy, kInt32Ty)) 9868fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 9878fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLArrayPutChar, 98876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_aput_char, 9898fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrNoThrow, 9908fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kVoidTy, 99176592633b491e294d78db2c4dbc44ca679004b71buzbee _EXPAND_ARG4(kInt32Ty, kInt32Ty, kJavaObjectTy, kInt32Ty)) 9928fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 9938fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLArrayPutShort, 99476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_aput_short, 9958fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrNoThrow, 9968fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kVoidTy, 99776592633b491e294d78db2c4dbc44ca679004b71buzbee _EXPAND_ARG4(kInt32Ty, kInt32Ty, kJavaObjectTy, kInt32Ty)) 9988fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 9998fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee//---------------------------------------------------------------------------- 1000101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee// High-level Instance get/put 1001101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee// 100276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// Similar to art_portable_iget/iput_xxx, but checks not yet performed. 1003101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee// OptFlags contain info describing whether frontend has determined that 1004101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee// null check may be skipped. 1005101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee// 100676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// [type] void art_portable_hl_iget_[type](int optFlags, JavaObject* obj, uint32_t field_idx) 1007101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(HLIGet, 100876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_iget, 1009101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrReadOnly | kAttrNoThrow, 1010101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kInt32Ty, 1011101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee _EXPAND_ARG3(kInt32Ty, kJavaObjectTy, kInt32Ty)) 1012101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 1013101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(HLIGetFloat, 101476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_iget_float, 1015101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrReadOnly | kAttrNoThrow, 1016101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kFloatTy, 1017101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee _EXPAND_ARG3(kInt32Ty, kJavaObjectTy, kInt32Ty)) 1018101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 1019101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(HLIGetWide, 102076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_iget_wide, 1021101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrReadOnly | kAttrNoThrow, 1022101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kInt64Ty, 1023101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee _EXPAND_ARG3(kInt32Ty, kJavaObjectTy, kInt32Ty)) 1024101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 1025101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(HLIGetDouble, 102676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_iget_double, 1027101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrReadOnly | kAttrNoThrow, 1028101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kDoubleTy, 1029101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee _EXPAND_ARG3(kInt32Ty, kJavaObjectTy, kInt32Ty)) 1030101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 1031101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(HLIGetObject, 103276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_iget_object, 1033101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrReadOnly | kAttrNoThrow, 1034101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kJavaObjectTy, 1035101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee _EXPAND_ARG3(kInt32Ty, kJavaObjectTy, kInt32Ty)) 1036101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 1037101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(HLIGetBoolean, 103876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_iget_boolean, 1039101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrReadOnly | kAttrNoThrow, 104076592633b491e294d78db2c4dbc44ca679004b71buzbee kInt32Ty, 1041101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee _EXPAND_ARG3(kInt32Ty, kJavaObjectTy, kInt32Ty)) 1042101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 1043101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(HLIGetByte, 104476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_iget_byte, 1045101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrReadOnly | kAttrNoThrow, 104676592633b491e294d78db2c4dbc44ca679004b71buzbee kInt32Ty, 1047101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee _EXPAND_ARG3(kInt32Ty, kJavaObjectTy, kInt32Ty)) 1048101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 1049101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(HLIGetChar, 105076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_iget_char, 1051101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrReadOnly | kAttrNoThrow, 105276592633b491e294d78db2c4dbc44ca679004b71buzbee kInt32Ty, 1053101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee _EXPAND_ARG3(kInt32Ty, kJavaObjectTy, kInt32Ty)) 1054101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 1055101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(HLIGetShort, 105676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_iget_short, 1057101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrReadOnly | kAttrNoThrow, 105876592633b491e294d78db2c4dbc44ca679004b71buzbee kInt32Ty, 1059101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee _EXPAND_ARG3(kInt32Ty, kJavaObjectTy, kInt32Ty)) 1060101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 106176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_iput_[type](int optFlags, [type] value, JavaObject* obj, uint32_t field_idx) 1062101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(HLIPut, 106376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_iput, 1064101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrNoThrow, 1065101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kVoidTy, 1066101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee _EXPAND_ARG4(kInt32Ty, kInt32Ty, kJavaObjectTy, kInt32Ty)) 1067101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 1068101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(HLIPutFloat, 106976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_iput_float, 1070101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrNoThrow, 1071101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kVoidTy, 1072101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee _EXPAND_ARG4(kInt32Ty, kFloatTy, kJavaObjectTy, kInt32Ty)) 1073101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 1074101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(HLIPutWide, 107576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_iput_wide, 1076101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrNoThrow, 1077101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kVoidTy, 1078101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee _EXPAND_ARG4(kInt32Ty, kInt64Ty, kJavaObjectTy, kInt32Ty)) 1079101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 1080101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(HLIPutDouble, 108176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_iput_double, 1082101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrNoThrow, 1083101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kVoidTy, 1084101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee _EXPAND_ARG4(kInt32Ty, kDoubleTy, kJavaObjectTy, kInt32Ty)) 1085101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 1086101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(HLIPutObject, 108776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_iput_object, 1088101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrNoThrow, 1089101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kVoidTy, 1090101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee _EXPAND_ARG4(kInt32Ty, kJavaObjectTy, kJavaObjectTy, kInt32Ty)) 1091101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 1092101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(HLIPutBoolean, 109376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_iput_boolean, 1094101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrNoThrow, 1095101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kVoidTy, 109676592633b491e294d78db2c4dbc44ca679004b71buzbee _EXPAND_ARG4(kInt32Ty, kInt32Ty, kJavaObjectTy, kInt32Ty)) 1097101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 1098101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(HLIPutByte, 109976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_iput_byte, 1100101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrNoThrow, 1101101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kVoidTy, 110276592633b491e294d78db2c4dbc44ca679004b71buzbee _EXPAND_ARG4(kInt32Ty, kInt32Ty, kJavaObjectTy, kInt32Ty)) 1103101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 1104101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(HLIPutChar, 110576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_iput_char, 1106101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrNoThrow, 1107101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kVoidTy, 110876592633b491e294d78db2c4dbc44ca679004b71buzbee _EXPAND_ARG4(kInt32Ty, kInt32Ty, kJavaObjectTy, kInt32Ty)) 1109101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 1110101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(HLIPutShort, 111176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_iput_short, 1112101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrNoThrow, 1113101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kVoidTy, 111476592633b491e294d78db2c4dbc44ca679004b71buzbee _EXPAND_ARG4(kInt32Ty, kInt32Ty, kJavaObjectTy, kInt32Ty)) 1115101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 1116101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee//---------------------------------------------------------------------------- 11176969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee// High-level Invokes (fast-path determination not yet performed) 11186969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee// 11196969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee// NOTE: We expect these intrinsics to be temporary. Once calling conventions are 11206969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee// fully merged, the unified front end will lower down to the 11216969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee// InvokeRetxxx() intrinsics in the next section and these will be 11226969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee// removed. 11236969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee// 1124101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee// arg0: InvokeType [ignored if FilledNewArray] 1125101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee// arg1: method_idx [ignored if FilledNewArray] 11266969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee// arg2: optimization_flags (primary to note whether null checking is needed) 11276969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee// [arg3..argN]: actual arguments 11286969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee//---------------------------------------------------------------------------- 11296969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee// INVOKE method returns void 11306969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee_EVAL_DEF_INTRINSICS_FUNC(HLInvokeVoid, 113176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_invoke.void, 11326969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee kAttrNone, 11336969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee kVoidTy, 11346969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee _EXPAND_ARG1(kVarArgTy)) 11356969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee 11366969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee// INVOKE method returns object 11376969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee_EVAL_DEF_INTRINSICS_FUNC(HLInvokeObj, 113876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_invoke.obj, 11396969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee kAttrNone, 11406969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee kJavaObjectTy, 11416969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee _EXPAND_ARG1(kVarArgTy)) 11426969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee 11436969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee// INVOKE method returns int 11446969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee_EVAL_DEF_INTRINSICS_FUNC(HLInvokeInt, 114576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_invoke.i32, 11466969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee kAttrNone, 11476969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee kInt32Ty, 11486969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee _EXPAND_ARG1(kVarArgTy)) 11496969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee 11506969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee// INVOKE method returns float 11516969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee_EVAL_DEF_INTRINSICS_FUNC(HLInvokeFloat, 115276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_invoke.f32, 11536969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee kAttrNone, 11546969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee kFloatTy, 11556969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee _EXPAND_ARG1(kVarArgTy)) 11566969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee 11576969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee// INVOKE method returns long 11586969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee_EVAL_DEF_INTRINSICS_FUNC(HLInvokeLong, 115976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_invoke.i64, 11606969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee kAttrNone, 11616969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee kInt64Ty, 11626969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee _EXPAND_ARG1(kVarArgTy)) 11636969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee 11646969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee// INVOKE method returns double 11656969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee_EVAL_DEF_INTRINSICS_FUNC(HLInvokeDouble, 116676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_invoke.f64, 11676969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee kAttrNone, 11686969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee kDoubleTy, 11696969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee _EXPAND_ARG1(kVarArgTy)) 11706969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee 1171101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee// FILLED_NEW_ARRAY returns object 117221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(HLFilledNewArray, 117376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_filled_new_array, 1174101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrNone, 1175101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kJavaObjectTy, 1176101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee _EXPAND_ARG1(kVarArgTy)) 1177101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 11786969d50c820bd63043940b0e0f0ddc6e6ac763b0buzbee//---------------------------------------------------------------------------- 1179e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// Invoke 1180e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao//---------------------------------------------------------------------------- 1181e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 118276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// Method* art_portable_find_static_method_with_access_check(uint32_t method_idx, 118321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// JavaObject* this, 118421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Method* referrer, 118521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Thread* thread) 118621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(FindStaticMethodWithAccessCheck, 118776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_find_static_method_with_access_check, 118821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 118921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kJavaMethodTy, 119021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kJavaObjectTy, kJavaMethodTy, kJavaThreadTy)) 119121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 119276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// Method* art_portable_find_direct_method_with_access_check(uint32_t method_idx, 119321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// JavaObject* this, 119421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Method* referrer, 119521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Thread* thread) 119621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(FindDirectMethodWithAccessCheck, 119776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_find_direct_method_with_access_check, 119821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 119921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kJavaMethodTy, 120021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kJavaObjectTy, kJavaMethodTy, kJavaThreadTy)) 120121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 120276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// Method* art_portable_find_virtual_method_with_access_check(uint32_t method_idx, 120321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// JavaObject* this, 120421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Method* referrer, 120521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Thread* thread) 120621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(FindVirtualMethodWithAccessCheck, 120776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_find_virtual_method_with_access_check, 120821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 120921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kJavaMethodTy, 121021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kJavaObjectTy, kJavaMethodTy, kJavaThreadTy)) 121121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 121276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// Method* art_portable_find_super_method_with_access_check(uint32_t method_idx, 121321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// JavaObject* this, 121421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Method* referrer, 121521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Thread* thread) 121621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(FindSuperMethodWithAccessCheck, 121776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_find_super_method_with_access_check, 121821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 1219e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kJavaMethodTy, 122021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kJavaObjectTy, kJavaMethodTy, kJavaThreadTy)) 122121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 122276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// Method* art_portable_find_interface_method_with_access_check(uint32_t method_idx, 122321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// JavaObject* this, 122421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Method* referrer, 122521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// Thread* thread) 122621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(FindInterfaceMethodWithAccessCheck, 122776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_find_interface_method_with_access_check, 122821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 122921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kJavaMethodTy, 123021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kJavaObjectTy, kJavaMethodTy, kJavaThreadTy)) 1231e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 123276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// Method* art_portable_get_sd_callee_method_obj_addr(uint32_t method_idx) 1233e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(GetSDCalleeMethodObjAddrFast, 123476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_get_sd_callee_method_obj_addr_fast, 123521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrReadOnly | kAttrNoThrow, 1236e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kJavaMethodTy, 1237e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG1(kInt32ConstantTy)) 1238e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 123976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// Method* art_portable_get_virtual_callee_method_obj_addr(uint32_t vtable_idx, 1240e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// JavaObject* this) 1241e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(GetVirtualCalleeMethodObjAddrFast, 124276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_get_virtual_callee_method_obj_addr_fast, 1243e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrReadOnly | kAttrNoThrow, 1244e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kJavaMethodTy, 1245e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kInt32ConstantTy, kJavaObjectTy)) 1246e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 124776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// Method* art_portable_get_interface_callee_method_obj_addr(uint32_t method_idx, 1248e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// JavaObject* this, 1249e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// Method* referrer, 1250e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// Thread* thread) 1251e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(GetInterfaceCalleeMethodObjAddrFast, 125276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_get_interface_callee_method_obj_addr_fast, 125321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 1254e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kJavaMethodTy, 1255e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG4(kInt32ConstantTy, kJavaObjectTy, kJavaMethodTy, kJavaThreadTy)) 1256e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 125776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// [type] art_portable_invoke.[type](Method* callee, ...) 1258e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// INVOKE method returns void 1259e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InvokeRetVoid, 126076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_invoke.void, 1261e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNone, 1262e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 1263e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kJavaMethodTy, kVarArgTy)) 1264e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 126521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// INVOKE method returns the value of type boolean 126621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InvokeRetBoolean, 126776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_invoke.bool, 126821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 126921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kInt1Ty, 127021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG2(kJavaMethodTy, kVarArgTy)) 127121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 127221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// INVOKE method returns the value of type byte 127321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InvokeRetByte, 127476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_invoke.byte, 127521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 127621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kInt8Ty, 127721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG2(kJavaMethodTy, kVarArgTy)) 127821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 127921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// INVOKE method returns the value of type char 128021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InvokeRetChar, 128176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_invoke.char, 128221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 128321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kInt16Ty, 128421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG2(kJavaMethodTy, kVarArgTy)) 128521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 128621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// INVOKE method returns the value of type short 128721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InvokeRetShort, 128876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_invoke.short, 128921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 129021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kInt16Ty, 129121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG2(kJavaMethodTy, kVarArgTy)) 129221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 129321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// INVOKE method returns the value of type int 129421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InvokeRetInt, 129576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_invoke.int, 1296e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNone, 1297e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kInt32Ty, 1298e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kJavaMethodTy, kVarArgTy)) 1299e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 130021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// INVOKE method returns the value of type long 130121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InvokeRetLong, 130276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_invoke.long, 1303e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNone, 1304e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kInt64Ty, 1305e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kJavaMethodTy, kVarArgTy)) 1306e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 130721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// INVOKE method returns the value of type float 130821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InvokeRetFloat, 130976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_invoke.float, 131021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 131121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kFloatTy, 131221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG2(kJavaMethodTy, kVarArgTy)) 131321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 131421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// INVOKE method returns the value of type double 131521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InvokeRetDouble, 131676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_invoke.double, 131721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrNone, 131821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kDoubleTy, 131921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG2(kJavaMethodTy, kVarArgTy)) 132021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 132121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao// INVOKE method returns the value of type "object" 1322e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(InvokeRetObject, 132376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_invoke.object, 1324e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNone, 1325e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kJavaObjectTy, 1326e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kJavaMethodTy, kVarArgTy)) 1327e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 1328e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao//---------------------------------------------------------------------------- 1329e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// Math 1330e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao//---------------------------------------------------------------------------- 1331e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 133276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// int art_portable_{div,rem}_int(int a, int b) 1333e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(DivInt, 133476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_div_int, 133521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrReadNone | kAttrNoThrow, 1336e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kInt32Ty, 1337e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kInt32Ty, kInt32Ty)) 1338e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 1339e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(RemInt, 134076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_rem_int, 134121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrReadNone | kAttrNoThrow, 1342e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kInt32Ty, 1343e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kInt32Ty, kInt32Ty)) 1344e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 134576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// long art_portable_{div,rem}_long(long a, long b) 1346e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(DivLong, 134776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_div_long, 134821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrReadNone | kAttrNoThrow, 1349e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kInt64Ty, 1350e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kInt64Ty, kInt64Ty)) 1351e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 1352e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(RemLong, 135376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_rem_long, 135421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrReadNone | kAttrNoThrow, 1355e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kInt64Ty, 1356e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG2(kInt64Ty, kInt64Ty)) 1357e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 135876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// int64_t art_portable_d2l(double f) 135921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(D2L, 136076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_d2l, 136121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrReadNone | kAttrNoThrow, 136221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kInt64Ty, 136321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG1(kDoubleTy)) 1364e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 136576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// int32_t art_portable_d2l(double f) 136621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(D2I, 136776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_d2i, 136821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrReadNone | kAttrNoThrow, 136921d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kInt32Ty, 137021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG1(kDoubleTy)) 137121d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 137276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// int64_t art_portable_f2l(float f) 137321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(F2L, 137476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_f2l, 137521d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrReadNone | kAttrNoThrow, 137621d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kInt64Ty, 137721d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG1(kFloatTy)) 137821d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao 137976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// int32_t art_portable_f2i(float f) 138021d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(F2I, 138176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_f2i, 138221d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kAttrReadNone | kAttrNoThrow, 138321d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao kInt32Ty, 138421d28f510eb590f52810c83f1f3f37fe5f4adf46Shih-wei Liao _EXPAND_ARG1(kFloatTy)) 1385e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 13868fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee//---------------------------------------------------------------------------- 13878fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// sput intrinsics to assist MIR to Greenland_ir conversion. 13888fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// "HL" versions - will be deprecated when fast/slow path handling done 13898fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// in the common frontend. 13908fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee//---------------------------------------------------------------------------- 13918fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 13928fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// void sput_hl(int field_idx, int val) 13938fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLSput, 139476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_sput, 13958fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 13968fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kVoidTy, 13978fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG2(kInt32Ty, kInt32Ty)) 13988fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 13998fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// void sput_hl_object(int field_idx, object* val) 14008fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLSputObject, 140176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_sput_object, 14028fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 14038fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kVoidTy, 14048fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG2(kInt32Ty, kJavaObjectTy)) 14058fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 14068fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// void sput_hl_boolean(int field_idx, kInt1Ty) 14078fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLSputBoolean, 140876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_sput_boolean, 14098fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 14108fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kVoidTy, 141176592633b491e294d78db2c4dbc44ca679004b71buzbee _EXPAND_ARG2(kInt32Ty, kInt32Ty)) 14128fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 14138fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// void sput_hl_byte(int field_idx, int val) 14148fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLSputByte, 141576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_sput_byte, 14168fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 14178fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kVoidTy, 141876592633b491e294d78db2c4dbc44ca679004b71buzbee _EXPAND_ARG2(kInt32Ty, kInt32Ty)) 14198fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 14208fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// void sput_hl_char(int field_idx, kInt16Ty val) 14218fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLSputChar, 142276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_sput_char, 14238fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 14248fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kVoidTy, 142576592633b491e294d78db2c4dbc44ca679004b71buzbee _EXPAND_ARG2(kInt32Ty, kInt32Ty)) 14268fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 14278fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// void sput_hl_short(int field_idx, int val) 14288fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLSputShort, 142976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_sput_short, 14308fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 14318fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kVoidTy, 143276592633b491e294d78db2c4dbc44ca679004b71buzbee _EXPAND_ARG2(kInt32Ty, kInt32Ty)) 14338fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 14348fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// void sput_hl_wide(int field_idx, long val) 14358fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLSputWide, 143676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_sput_wide, 14378fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 14388fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kVoidTy, 14398fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG2(kInt32Ty, kInt64Ty)) 14408fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 14418fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// void sput_hl_double(int field_idx, double val) 14428fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLSputDouble, 144376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_sput_double, 14448fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 14458fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kVoidTy, 14468fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG2(kInt32Ty, kDoubleTy)) 14478fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 14488fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// void sput_hl_float(int field_idx, float val) 14498fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLSputFloat, 145076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_sput_float, 14518fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 14528fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kVoidTy, 14538fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG2(kInt32Ty, kFloatTy)) 14542cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee 1455e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao//---------------------------------------------------------------------------- 14564f1181fe061d3529f72e1237e7662bf9bc73c6e2buzbee// sget intrinsics to assist MIR to Greenland_ir conversion. 14578fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// "HL" versions - will be deprecated when fast/slow path handling done 14588fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// in the common frontend. 14594f1181fe061d3529f72e1237e7662bf9bc73c6e2buzbee//---------------------------------------------------------------------------- 14604f1181fe061d3529f72e1237e7662bf9bc73c6e2buzbee 14618fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// int sget_hl(int field_idx) 14628fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLSget, 146376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_sget, 14648fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 14658fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kInt32Ty, 14668fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG1(kInt32Ty)) 14678fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 14688fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// object* sget_hl_object(int field_idx) 14698fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLSgetObject, 147076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_sget_object, 14714f1181fe061d3529f72e1237e7662bf9bc73c6e2buzbee kAttrReadOnly | kAttrNoThrow, 14724f1181fe061d3529f72e1237e7662bf9bc73c6e2buzbee kJavaObjectTy, 14734f1181fe061d3529f72e1237e7662bf9bc73c6e2buzbee _EXPAND_ARG1(kInt32Ty)) 14744f1181fe061d3529f72e1237e7662bf9bc73c6e2buzbee 14758fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// boolean sget_hl_boolean(int field_idx) 14768fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLSgetBoolean, 147776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_sget_boolean, 14788fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 147976592633b491e294d78db2c4dbc44ca679004b71buzbee kInt32Ty, 14808fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG1(kInt32Ty)) 14818fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 14828fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// byte sget_hl_byte(int field_idx) 14838fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLSgetByte, 148476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_sget_byte, 14858fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 148676592633b491e294d78db2c4dbc44ca679004b71buzbee kInt32Ty, 14878fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG1(kInt32Ty)) 14888fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 14898fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// char sget_hl_char(int field_idx) 14908fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLSgetChar, 149176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_sget_char, 14928fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 149376592633b491e294d78db2c4dbc44ca679004b71buzbee kInt32Ty, 14948fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG1(kInt32Ty)) 14958fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 14968fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// char sget_hl_short(int field_idx) 14978fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLSgetShort, 149876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_sget_short, 14998fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 150076592633b491e294d78db2c4dbc44ca679004b71buzbee kInt32Ty, 15018fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG1(kInt32Ty)) 15028fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 15038fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// char sget_hl_wide(int field_idx) 15048fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLSgetWide, 150576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_sget_wide, 15068fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 15078fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kInt64Ty, 15088fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG1(kInt32Ty)) 15098fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 15108fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// char sget_hl_double(int field_idx) 15118fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLSgetDouble, 151276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_sget_double, 15138fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 15148fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kDoubleTy, 15158fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG1(kInt32Ty)) 15168fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 15178fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// char sget_hl_float(int field_idx) 15188fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(HLSgetFloat, 151976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_hl_sget_float, 15208fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 15218fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kFloatTy, 15228fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee _EXPAND_ARG1(kInt32Ty)) 15238fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee//---------------------------------------------------------------------------- 15248fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee// Monitor enter/exit 15258fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee//---------------------------------------------------------------------------- 152676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// uint32_t art_portable_monitor_enter(int optFlags, JavaObject* obj) 15278fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(MonitorEnter, 152876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_monitor_enter, 15298fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 15308fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kVoidTy, 153176592633b491e294d78db2c4dbc44ca679004b71buzbee _EXPAND_ARG2(kInt32Ty, kJavaObjectTy)) 15328fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 153376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// uint32_t art_portable_monitor_exit(int optFlags, JavaObject* obj) 15348fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee_EVAL_DEF_INTRINSICS_FUNC(MonitorExit, 153576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_monitor_exit, 15368fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kAttrReadOnly | kAttrNoThrow, 15378fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee kVoidTy, 153876592633b491e294d78db2c4dbc44ca679004b71buzbee _EXPAND_ARG2(kInt32Ty, kJavaObjectTy)) 15398fa0fda8e1b6aa0a759990b3d32b78bb08065e0fbuzbee 15404f1181fe061d3529f72e1237e7662bf9bc73c6e2buzbee//---------------------------------------------------------------------------- 1541e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// Shadow Frame 1542e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao//---------------------------------------------------------------------------- 1543e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 154476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_alloca_shadow_frame(int num_entry) 1545e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(AllocaShadowFrame, 154676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_alloca_shadow_frame, 1547e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNoThrow, 1548e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 1549ce4cc0d1818e872c1c7f3c3519a82259afd5c288TDYa _EXPAND_ARG1(kInt32ConstantTy)) 1550e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 155176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_set_vreg(int entry_idx, ...) 15528e950c117975d23f50ed7e32ca5db01a813c25d0TDYa_EVAL_DEF_INTRINSICS_FUNC(SetVReg, 155376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_set_vreg, 15548e950c117975d23f50ed7e32ca5db01a813c25d0TDYa kAttrNoThrow, 15558e950c117975d23f50ed7e32ca5db01a813c25d0TDYa kVoidTy, 15568e950c117975d23f50ed7e32ca5db01a813c25d0TDYa _EXPAND_ARG2(kInt32ConstantTy, kVarArgTy)) 15578e950c117975d23f50ed7e32ca5db01a813c25d0TDYa 155876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_pop_shadow_frame() 1559e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(PopShadowFrame, 156076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_pop_shadow_frame, 1561e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNoThrow, 1562e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 1563e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG0()) 1564e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 156576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers// void art_portable_update_dex_pc(uint32_t dex_pc) 1566e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao_EVAL_DEF_INTRINSICS_FUNC(UpdateDexPC, 156776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_update_dex_pc, 1568e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kAttrNoThrow, 1569e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao kVoidTy, 1570e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao _EXPAND_ARG1(kInt32ConstantTy)) 1571e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 15722cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee//---------------------------------------------------------------------------- 157376592633b491e294d78db2c4dbc44ca679004b71buzbee// FP Comparison 157476592633b491e294d78db2c4dbc44ca679004b71buzbee//---------------------------------------------------------------------------- 157576592633b491e294d78db2c4dbc44ca679004b71buzbee// int cmpl_float(float, float) 157676592633b491e294d78db2c4dbc44ca679004b71buzbee_EVAL_DEF_INTRINSICS_FUNC(CmplFloat, 157776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_cmpl_float, 157876592633b491e294d78db2c4dbc44ca679004b71buzbee kAttrReadOnly | kAttrNoThrow, 157976592633b491e294d78db2c4dbc44ca679004b71buzbee kInt32Ty, 158076592633b491e294d78db2c4dbc44ca679004b71buzbee _EXPAND_ARG2(kFloatTy, kFloatTy)) 158176592633b491e294d78db2c4dbc44ca679004b71buzbee 158276592633b491e294d78db2c4dbc44ca679004b71buzbee// int cmpg_float(float, float) 158376592633b491e294d78db2c4dbc44ca679004b71buzbee_EVAL_DEF_INTRINSICS_FUNC(CmpgFloat, 158476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_cmpg_float, 158576592633b491e294d78db2c4dbc44ca679004b71buzbee kAttrReadOnly | kAttrNoThrow, 158676592633b491e294d78db2c4dbc44ca679004b71buzbee kInt32Ty, 158776592633b491e294d78db2c4dbc44ca679004b71buzbee _EXPAND_ARG2(kFloatTy, kFloatTy)) 158876592633b491e294d78db2c4dbc44ca679004b71buzbee 158976592633b491e294d78db2c4dbc44ca679004b71buzbee// int cmpl_double(double, double) 159076592633b491e294d78db2c4dbc44ca679004b71buzbee_EVAL_DEF_INTRINSICS_FUNC(CmplDouble, 159176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_cmpl_double, 159276592633b491e294d78db2c4dbc44ca679004b71buzbee kAttrReadOnly | kAttrNoThrow, 159376592633b491e294d78db2c4dbc44ca679004b71buzbee kInt32Ty, 159476592633b491e294d78db2c4dbc44ca679004b71buzbee _EXPAND_ARG2(kDoubleTy, kDoubleTy)) 159576592633b491e294d78db2c4dbc44ca679004b71buzbee 159676592633b491e294d78db2c4dbc44ca679004b71buzbee// int cmpg_double(double, double) 159776592633b491e294d78db2c4dbc44ca679004b71buzbee_EVAL_DEF_INTRINSICS_FUNC(CmpgDouble, 159876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_cmpg_double, 159976592633b491e294d78db2c4dbc44ca679004b71buzbee kAttrReadOnly | kAttrNoThrow, 160076592633b491e294d78db2c4dbc44ca679004b71buzbee kInt32Ty, 160176592633b491e294d78db2c4dbc44ca679004b71buzbee _EXPAND_ARG2(kDoubleTy, kDoubleTy)) 160276592633b491e294d78db2c4dbc44ca679004b71buzbee 160376592633b491e294d78db2c4dbc44ca679004b71buzbee//---------------------------------------------------------------------------- 160476592633b491e294d78db2c4dbc44ca679004b71buzbee// Long Comparison 160576592633b491e294d78db2c4dbc44ca679004b71buzbee//---------------------------------------------------------------------------- 160676592633b491e294d78db2c4dbc44ca679004b71buzbee// int cmp_long(long, long) 160776592633b491e294d78db2c4dbc44ca679004b71buzbee_EVAL_DEF_INTRINSICS_FUNC(CmpLong, 160876ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_cmp_long, 160976592633b491e294d78db2c4dbc44ca679004b71buzbee kAttrReadOnly | kAttrNoThrow, 161076592633b491e294d78db2c4dbc44ca679004b71buzbee kInt32Ty, 161176592633b491e294d78db2c4dbc44ca679004b71buzbee _EXPAND_ARG2(kInt64Ty, kInt64Ty)) 161276592633b491e294d78db2c4dbc44ca679004b71buzbee 161376592633b491e294d78db2c4dbc44ca679004b71buzbee//---------------------------------------------------------------------------- 16142cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee// Const intrinsics to assist MIR to Greenland_ir conversion. Should not materialize 16152cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee// For simplicity, all use integer input 16162cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee//---------------------------------------------------------------------------- 16172cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee// int const_int(int) 16182cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee_EVAL_DEF_INTRINSICS_FUNC(ConstInt, 161976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_const_int, 16202cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kAttrReadOnly | kAttrNoThrow, 16212cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kInt32Ty, 16222cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee _EXPAND_ARG1(kInt32Ty)) 16232cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee 1624c9f40dd0a3dba696fc694d51fb82b61dcff19066Bill Buzbee// JavaObject* const_obj(int) 16252cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee_EVAL_DEF_INTRINSICS_FUNC(ConstObj, 162676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_const_obj, 16272cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kAttrReadOnly | kAttrNoThrow, 16282cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kJavaObjectTy, 16292cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee _EXPAND_ARG1(kInt32Ty)) 16302cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee 1631c9f40dd0a3dba696fc694d51fb82b61dcff19066Bill Buzbee// long const_long(long) 16322cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee_EVAL_DEF_INTRINSICS_FUNC(ConstLong, 163376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_const_long, 16342cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kAttrReadOnly | kAttrNoThrow, 16352cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kInt64Ty, 16362cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee _EXPAND_ARG1(kInt64Ty)) 16372cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee 1638c9f40dd0a3dba696fc694d51fb82b61dcff19066Bill Buzbee// float const_float(int) 16392cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee_EVAL_DEF_INTRINSICS_FUNC(ConstFloat, 164076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_const_Float, 16412cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kAttrReadOnly | kAttrNoThrow, 16422cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kFloatTy, 16432cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee _EXPAND_ARG1(kInt32Ty)) 16442cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee 1645c9f40dd0a3dba696fc694d51fb82b61dcff19066Bill Buzbee// double const_double(long) 16462cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee_EVAL_DEF_INTRINSICS_FUNC(ConstDouble, 164776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_const_Double, 16482cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kAttrReadOnly | kAttrNoThrow, 16492cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kDoubleTy, 16502cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee _EXPAND_ARG1(kInt64Ty)) 16512cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee 16522cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee 16532cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee//---------------------------------------------------------------------------- 16542cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee// Copy intrinsics to assist MIR to Greenland_ir conversion. Should not materialize 16552cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee//---------------------------------------------------------------------------- 16562cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee 16572cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee// void method_info(void) 16582cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee_EVAL_DEF_INTRINSICS_FUNC(MethodInfo, 165976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_method_info, 16602cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kAttrReadOnly | kAttrNoThrow, 16612cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kVoidTy, 16622cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee _EXPAND_ARG0()) 16632cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee 16642cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee// int copy_int(int) 16652cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee_EVAL_DEF_INTRINSICS_FUNC(CopyInt, 166676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_copy_int, 16672cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kAttrReadOnly | kAttrNoThrow, 16682cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kInt32Ty, 16692cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee _EXPAND_ARG1(kInt32Ty)) 16702cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee 167175e4b60d28355d4c33d50093d9d2603ffdea82dcLogan Chien// JavaObject* copy_obj(obj) 16722cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee_EVAL_DEF_INTRINSICS_FUNC(CopyObj, 167376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_copy_obj, 16742cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kAttrReadOnly | kAttrNoThrow, 16752cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kJavaObjectTy, 16762cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee _EXPAND_ARG1(kJavaObjectTy)) 16772cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee 16782a83e8f06031948741ae3dda3633433ddd669693buzbee// long copy_long(long) 16792cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee_EVAL_DEF_INTRINSICS_FUNC(CopyLong, 168076ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_copy_long, 16812cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kAttrReadOnly | kAttrNoThrow, 16822cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kInt64Ty, 16832cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee _EXPAND_ARG1(kInt64Ty)) 16842cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee 168575e4b60d28355d4c33d50093d9d2603ffdea82dcLogan Chien// float copy_float(float) 16862cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee_EVAL_DEF_INTRINSICS_FUNC(CopyFloat, 168776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_copy_Float, 16882cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kAttrReadOnly | kAttrNoThrow, 16892cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kFloatTy, 16902cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee _EXPAND_ARG1(kFloatTy)) 16912cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee 169275e4b60d28355d4c33d50093d9d2603ffdea82dcLogan Chien// double copy_double(double) 16932cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee_EVAL_DEF_INTRINSICS_FUNC(CopyDouble, 169476ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_copy_Double, 16952cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kAttrReadOnly | kAttrNoThrow, 16962cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee kDoubleTy, 16972cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee _EXPAND_ARG1(kDoubleTy)) 16982cfc639fc803bf67e3d2a961f2b637220c86d5f7buzbee 1699101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee//---------------------------------------------------------------------------- 17002a83e8f06031948741ae3dda3633433ddd669693buzbee// Shift intrinsics. Shift semantics for Dalvik are a bit different than 17012a83e8f06031948741ae3dda3633433ddd669693buzbee// the llvm shift operators. For 32-bit shifts, the shift count is constrained 17022a83e8f06031948741ae3dda3633433ddd669693buzbee// to the range of 0..31, while for 64-bit shifts we limit to 0..63. 17032a83e8f06031948741ae3dda3633433ddd669693buzbee// Further, the shift count for Long shifts in Dalvik is 32 bits, while 17042a83e8f06031948741ae3dda3633433ddd669693buzbee// llvm requires a 64-bit shift count. For GBC, we represent shifts as an 17052a83e8f06031948741ae3dda3633433ddd669693buzbee// intrinsic to allow most efficient target-dependent lowering. 17062a83e8f06031948741ae3dda3633433ddd669693buzbee//---------------------------------------------------------------------------- 17072a83e8f06031948741ae3dda3633433ddd669693buzbee// long shl_long(long,int) 17082a83e8f06031948741ae3dda3633433ddd669693buzbee_EVAL_DEF_INTRINSICS_FUNC(SHLLong, 170976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_shl_long, 17102a83e8f06031948741ae3dda3633433ddd669693buzbee kAttrReadOnly | kAttrNoThrow, 17112a83e8f06031948741ae3dda3633433ddd669693buzbee kInt64Ty, 17122a83e8f06031948741ae3dda3633433ddd669693buzbee _EXPAND_ARG2(kInt64Ty,kInt32Ty)) 17132a83e8f06031948741ae3dda3633433ddd669693buzbee// long shr_long(long,int) 17142a83e8f06031948741ae3dda3633433ddd669693buzbee_EVAL_DEF_INTRINSICS_FUNC(SHRLong, 171576ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_shr_long, 17162a83e8f06031948741ae3dda3633433ddd669693buzbee kAttrReadOnly | kAttrNoThrow, 17172a83e8f06031948741ae3dda3633433ddd669693buzbee kInt64Ty, 17182a83e8f06031948741ae3dda3633433ddd669693buzbee _EXPAND_ARG2(kInt64Ty,kInt32Ty)) 17192a83e8f06031948741ae3dda3633433ddd669693buzbee// long ushr_long(long,int) 17202a83e8f06031948741ae3dda3633433ddd669693buzbee_EVAL_DEF_INTRINSICS_FUNC(USHRLong, 172176ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_ushl_long, 17222a83e8f06031948741ae3dda3633433ddd669693buzbee kAttrReadOnly | kAttrNoThrow, 17232a83e8f06031948741ae3dda3633433ddd669693buzbee kInt64Ty, 17242a83e8f06031948741ae3dda3633433ddd669693buzbee _EXPAND_ARG2(kInt64Ty,kInt32Ty)) 17252a83e8f06031948741ae3dda3633433ddd669693buzbee// int shl_int(int,int) 17262a83e8f06031948741ae3dda3633433ddd669693buzbee_EVAL_DEF_INTRINSICS_FUNC(SHLInt, 172776ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_shl_int, 17282a83e8f06031948741ae3dda3633433ddd669693buzbee kAttrReadOnly | kAttrNoThrow, 17292a83e8f06031948741ae3dda3633433ddd669693buzbee kInt32Ty, 17302a83e8f06031948741ae3dda3633433ddd669693buzbee _EXPAND_ARG2(kInt32Ty,kInt32Ty)) 17312a83e8f06031948741ae3dda3633433ddd669693buzbee// long shr_int(int,int) 17322a83e8f06031948741ae3dda3633433ddd669693buzbee_EVAL_DEF_INTRINSICS_FUNC(SHRInt, 173376ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_shr_int, 17342a83e8f06031948741ae3dda3633433ddd669693buzbee kAttrReadOnly | kAttrNoThrow, 17352a83e8f06031948741ae3dda3633433ddd669693buzbee kInt32Ty, 17362a83e8f06031948741ae3dda3633433ddd669693buzbee _EXPAND_ARG2(kInt32Ty,kInt32Ty)) 17372a83e8f06031948741ae3dda3633433ddd669693buzbee// int ushr_long(int,int) 17382a83e8f06031948741ae3dda3633433ddd669693buzbee_EVAL_DEF_INTRINSICS_FUNC(USHRInt, 173976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_ushl_int, 17402a83e8f06031948741ae3dda3633433ddd669693buzbee kAttrReadOnly | kAttrNoThrow, 17412a83e8f06031948741ae3dda3633433ddd669693buzbee kInt32Ty, 17422a83e8f06031948741ae3dda3633433ddd669693buzbee _EXPAND_ARG2(kInt32Ty,kInt32Ty)) 17432a83e8f06031948741ae3dda3633433ddd669693buzbee//---------------------------------------------------------------------------- 1744101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee// Conversion instrinsics. Note: these should eventually be removed. We 1745101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee// can express these directly in bitcode, but by using intrinsics the 1746101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee// Quick compiler can be more efficient. Some extra optimization infrastructure 1747101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee// will have to be developed to undo the bitcode verbosity when these are 1748101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee// done inline. 1749101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee//---------------------------------------------------------------------------- 1750101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee// int int_to_byte(int) 1751101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(IntToByte, 175276ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_int_to_byte, 1753101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrReadOnly | kAttrNoThrow, 1754101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kInt32Ty, 1755101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee _EXPAND_ARG1(kInt32Ty)) 1756101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 1757101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee// int int_to_char(int) 1758101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(IntToChar, 175976ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_int_to_char, 1760101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrReadOnly | kAttrNoThrow, 1761101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kInt32Ty, 1762101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee _EXPAND_ARG1(kInt32Ty)) 1763101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee 1764101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee// int int_to_short(int) 1765101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee_EVAL_DEF_INTRINSICS_FUNC(IntToShort, 176676ae4fe651c77619aeeb4dd395c7ec8fc29685fcIan Rogers art_portable_int_to_short, 1767101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kAttrReadOnly | kAttrNoThrow, 1768101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee kInt32Ty, 1769101305f7ca3da8c665e3c5f7cdf9e1f22f009567buzbee _EXPAND_ARG1(kInt32Ty)) 1770e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 17710d43d5465f43eb8838e8ad3c02045d4d8c7ee380Sebastien Hertz//---------------------------------------------------------------------------- 17720d43d5465f43eb8838e8ad3c02045d4d8c7ee380Sebastien Hertz// Memory barrier 17730d43d5465f43eb8838e8ad3c02045d4d8c7ee380Sebastien Hertz//---------------------------------------------------------------------------- 17740d43d5465f43eb8838e8ad3c02045d4d8c7ee380Sebastien Hertz// void constructor_barrier() 17750d43d5465f43eb8838e8ad3c02045d4d8c7ee380Sebastien Hertz_EVAL_DEF_INTRINSICS_FUNC(ConstructorBarrier, 17760d43d5465f43eb8838e8ad3c02045d4d8c7ee380Sebastien Hertz art_portable_constructor_barrier, 17770d43d5465f43eb8838e8ad3c02045d4d8c7ee380Sebastien Hertz kAttrReadOnly | kAttrNoThrow, 17780d43d5465f43eb8838e8ad3c02045d4d8c7ee380Sebastien Hertz kVoidTy, 17790d43d5465f43eb8838e8ad3c02045d4d8c7ee380Sebastien Hertz _EXPAND_ARG0()) 17800d43d5465f43eb8838e8ad3c02045d4d8c7ee380Sebastien Hertz 1781e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao// Clean up all internal used macros 1782e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#undef _EXPAND_ARG0 1783e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#undef _EXPAND_ARG1 1784e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#undef _EXPAND_ARG2 1785e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#undef _EXPAND_ARG3 1786e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#undef _EXPAND_ARG4 1787e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#undef _EXPAND_ARG5 1788e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 1789e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#undef _JTYPE_OF_kInt1Ty_UNDER_kArray 1790e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#undef _JTYPE_OF_kInt8Ty_UNDER_kArray 1791e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#undef _JTYPE_OF_kInt16Ty_UNDER_kArray 1792e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#undef _JTYPE_OF_kInt32Ty_UNDER_kArray 1793e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#undef _JTYPE_OF_kInt64Ty_UNDER_kArray 1794e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#undef _JTYPE_OF_kJavaObjectTy_UNDER_kArray 1795e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 1796e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#undef _JTYPE_OF_kInt1Ty_UNDER_kField 1797e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#undef _JTYPE_OF_kInt8Ty_UNDER_kField 1798e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#undef _JTYPE_OF_kInt16Ty_UNDER_kField 1799e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#undef _JTYPE_OF_kInt32Ty_UNDER_kField 1800e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#undef _JTYPE_OF_kInt64Ty_UNDER_kField 1801e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#undef _JTYPE_OF_kJavaObjectTy_UNDER_kField 1802e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao 1803e94d9b23c52ec0f36c8a132914eac33bc707faffShih-wei Liao#undef DEF_INTRINSICS_FUNC 1804