diff options
Diffstat (limited to 'vm/compiler/codegen/arm/CalloutHelper.h')
-rw-r--r-- | vm/compiler/codegen/arm/CalloutHelper.h | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/vm/compiler/codegen/arm/CalloutHelper.h b/vm/compiler/codegen/arm/CalloutHelper.h index 931cf0f7e..2660108df 100644 --- a/vm/compiler/codegen/arm/CalloutHelper.h +++ b/vm/compiler/codegen/arm/CalloutHelper.h @@ -31,37 +31,37 @@ #define LOAD_FUNC_ADDR(cUnit, reg, addr) loadConstant(cUnit, reg, addr) /* Conversions */ -float __aeabi_i2f(int op1); // OP_INT_TO_FLOAT -int __aeabi_f2iz(float op1); // OP_FLOAT_TO_INT -float __aeabi_d2f(double op1); // OP_DOUBLE_TO_FLOAT -double __aeabi_f2d(float op1); // OP_FLOAT_TO_DOUBLE -double __aeabi_i2d(int op1); // OP_INT_TO_DOUBLE -int __aeabi_d2iz(double op1); // OP_DOUBLE_TO_INT -float __aeabi_l2f(long op1); // OP_LONG_TO_FLOAT -double __aeabi_l2d(long op1); // OP_LONG_TO_DOUBLE +extern "C" float __aeabi_i2f(int op1); // OP_INT_TO_FLOAT +extern "C" int __aeabi_f2iz(float op1); // OP_FLOAT_TO_INT +extern "C" float __aeabi_d2f(double op1); // OP_DOUBLE_TO_FLOAT +extern "C" double __aeabi_f2d(float op1); // OP_FLOAT_TO_DOUBLE +extern "C" double __aeabi_i2d(int op1); // OP_INT_TO_DOUBLE +extern "C" int __aeabi_d2iz(double op1); // OP_DOUBLE_TO_INT +extern "C" float __aeabi_l2f(long op1); // OP_LONG_TO_FLOAT +extern "C" double __aeabi_l2d(long op1); // OP_LONG_TO_DOUBLE s8 dvmJitf2l(float op1); // OP_FLOAT_TO_LONG s8 dvmJitd2l(double op1); // OP_DOUBLE_TO_LONG /* Single-precision FP arithmetics */ -float __aeabi_fadd(float a, float b); // OP_ADD_FLOAT[_2ADDR] -float __aeabi_fsub(float a, float b); // OP_SUB_FLOAT[_2ADDR] -float __aeabi_fdiv(float a, float b); // OP_DIV_FLOAT[_2ADDR] -float __aeabi_fmul(float a, float b); // OP_MUL_FLOAT[_2ADDR] -float fmodf(float a, float b); // OP_REM_FLOAT[_2ADDR] +extern "C" float __aeabi_fadd(float a, float b); // OP_ADD_FLOAT[_2ADDR] +extern "C" float __aeabi_fsub(float a, float b); // OP_SUB_FLOAT[_2ADDR] +extern "C" float __aeabi_fdiv(float a, float b); // OP_DIV_FLOAT[_2ADDR] +extern "C" float __aeabi_fmul(float a, float b); // OP_MUL_FLOAT[_2ADDR] +extern "C" float fmodf(float a, float b); // OP_REM_FLOAT[_2ADDR] /* Double-precision FP arithmetics */ -double __aeabi_dadd(double a, double b); // OP_ADD_DOUBLE[_2ADDR] -double __aeabi_dsub(double a, double b); // OP_SUB_DOUBLE[_2ADDR] -double __aeabi_ddiv(double a, double b); // OP_DIV_DOUBLE[_2ADDR] -double __aeabi_dmul(double a, double b); // OP_MUL_DOUBLE[_2ADDR] -double fmod(double a, double b); // OP_REM_DOUBLE[_2ADDR] +extern "C" double __aeabi_dadd(double a, double b); // OP_ADD_DOUBLE[_2ADDR] +extern "C" double __aeabi_dsub(double a, double b); // OP_SUB_DOUBLE[_2ADDR] +extern "C" double __aeabi_ddiv(double a, double b); // OP_DIV_DOUBLE[_2ADDR] +extern "C" double __aeabi_dmul(double a, double b); // OP_MUL_DOUBLE[_2ADDR] +extern "C" double fmod(double a, double b); // OP_REM_DOUBLE[_2ADDR] /* Integer arithmetics */ -int __aeabi_idivmod(int op1, int op2); // OP_REM_INT[_2ADDR|_LIT8|_LIT16] -int __aeabi_idiv(int op1, int op2); // OP_DIV_INT[_2ADDR|_LIT8|_LIT16] +extern "C" int __aeabi_idivmod(int op1, int op2); // OP_REM_INT[_2ADDR|_LIT8|_LIT16] +extern "C" int __aeabi_idiv(int op1, int op2); // OP_DIV_INT[_2ADDR|_LIT8|_LIT16] /* Long long arithmetics - OP_REM_LONG[_2ADDR] & OP_DIV_LONG[_2ADDR] */ -long long __aeabi_ldivmod(long long op1, long long op2); +extern "C" long long __aeabi_ldivmod(long long op1, long long op2); /* Originally declared in Sync.h */ bool dvmUnlockObject(struct Thread* self, struct Object* obj); //OP_MONITOR_EXIT @@ -110,7 +110,7 @@ Object* dvmAllocObject(ClassObject* clazz, int flags); // OP_NEW_INSTANCE * Functions declared in gDvmInlineOpsTable[] are used for * OP_EXECUTE_INLINE & OP_EXECUTE_INLINE_RANGE. */ -double sqrt(double x); // INLINE_MATH_SQRT +extern "C" double sqrt(double x); // INLINE_MATH_SQRT /* * The following functions are invoked through the compiler templates (declared |