10c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen/* 20c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen * Copyright (C) 2012 The Android Open Source Project 30c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen * 40c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen * Licensed under the Apache License, Version 2.0 (the "License"); 50c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen * you may not use this file except in compliance with the License. 60c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen * You may obtain a copy of the License at 70c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen * 80c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen * http://www.apache.org/licenses/LICENSE-2.0 90c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen * 100c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen * Unless required by applicable law or agreed to in writing, software 110c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen * distributed under the License is distributed on an "AS IS" BASIS, 120c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen * See the License for the specific language governing permissions and 140c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen * limitations under the License. 150c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen */ 160c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen 170c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen 180c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen 190c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen#ifndef _DALVIK_NCG_AOT 200c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen#define _DALVIK_NCG_AOT 210c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chenint ncgAppGetEIP(); 220c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chenint get_eip_API(); 230c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chenint invokeInterpreter(bool fromApp); 240c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chenint invokeNcg(bool fromApp); 250c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chenint jumpToInterpNoChain(); 260c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chenint jumpToInterpPunt(); 270c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chenint jumpToExceptionThrown(int exceptionNum); 280c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chenvoid callFuncPtr(int funcPtr, const char* funcName); 290c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chenint call_helper_API(const char* helperName); 300c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chenint conditional_jump_global_API( 310c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen ConditionCode cc, const char* target, 320c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen bool isShortTerm); 330c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chenint unconditional_jump_global_API( 340c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen const char* target, bool isShortTerm); 350c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chenint load_imm_global_data_API(const char* dataName, 360c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen OpndSize size, 370c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen int reg, bool isPhysical); 380c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chenint load_global_data_API(const char* dataName, 390c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen OpndSize size, 400c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen int reg, bool isPhysical); 410c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chenint load_sd_global_data_API(const char* dataName, 420c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen int reg, bool isPhysical); 430c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chenint load_fp_stack_global_data_API(const char* dataName, 440c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen OpndSize size); 450c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen#endif 460c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen 47