Skip to content

Commit c2bf9cc

Browse files
committed
Convert to FCall
1 parent 7d0e068 commit c2bf9cc

File tree

15 files changed

+365
-357
lines changed

15 files changed

+365
-357
lines changed

src/coreclr/classlibnative/float/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ include_directories("../inc")
33
set(FLOAT_SOURCES
44
floatdouble.cpp
55
floatsingle.cpp
6+
divmodint.cpp
67
)
78

89
add_library_clr(comfloat_wks OBJECT ${FLOAT_SOURCES})
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
4+
#ifdef TARGET_32BIT
5+
6+
#include <common.h>
7+
8+
#include "divmodint.h"
9+
10+
#include <optsmallperfcritical.h>
11+
12+
FCIMPL2(int32_t, COMDivModInt::DivInt32, int32_t dividend, int32_t divisor)
13+
FCALL_CONTRACT;
14+
15+
return dividend / divisor;
16+
FCIMPLEND
17+
18+
FCIMPL2(uint32_t, COMDivModInt::DivUInt32, uint32_t dividend, uint32_t divisor)
19+
FCALL_CONTRACT;
20+
21+
return dividend / divisor;
22+
FCIMPLEND
23+
24+
FCIMPL2(int64_t, COMDivModInt::DivInt64, int64_t dividend, int64_t divisor)
25+
FCALL_CONTRACT;
26+
27+
return dividend / divisor;
28+
FCIMPLEND
29+
30+
FCIMPL2(uint64_t, COMDivModInt::DivUInt64, uint64_t dividend, uint64_t divisor)
31+
FCALL_CONTRACT;
32+
33+
return dividend / divisor;
34+
FCIMPLEND
35+
36+
FCIMPL2(int32_t, COMDivModInt::ModInt32, int32_t dividend, int32_t divisor)
37+
FCALL_CONTRACT;
38+
39+
return dividend % divisor;
40+
FCIMPLEND
41+
42+
FCIMPL2(uint32_t, COMDivModInt::ModUInt32, uint32_t dividend, uint32_t divisor)
43+
FCALL_CONTRACT;
44+
45+
return dividend % divisor;
46+
FCIMPLEND
47+
48+
FCIMPL2(int64_t, COMDivModInt::ModInt64, int64_t dividend, int64_t divisor)
49+
FCALL_CONTRACT;
50+
51+
return dividend % divisor;
52+
FCIMPLEND
53+
54+
FCIMPL2(uint64_t, COMDivModInt::ModUInt64, uint64_t dividend, uint64_t divisor)
55+
FCALL_CONTRACT;
56+
57+
return dividend % divisor;
58+
FCIMPLEND
59+
60+
#endif // TARGET_32BIT
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
4+
#ifndef _DIVMODINT_H_
5+
#define _DIVMODINT_H_
6+
7+
#include <object.h>
8+
#include <fcall.h>
9+
10+
class COMDivModInt {
11+
public:
12+
FCDECL2(static int32_t, DivInt32, int32_t dividend, int32_t divisor);
13+
FCDECL2(static uint32_t, DivUInt32, uint32_t dividend, uint32_t divisor);
14+
FCDECL2(static int64_t, DivInt64, int64_t dividend, int64_t divisor);
15+
FCDECL2(static uint64_t, DivUInt64, uint64_t dividend, uint64_t divisor);
16+
FCDECL2(static int32_t, ModInt32, int32_t dividend, int32_t divisor);
17+
FCDECL2(static uint32_t, ModUInt32, uint32_t dividend, uint32_t divisor);
18+
FCDECL2(static int64_t, ModInt64, int64_t dividend, int64_t divisor);
19+
FCDECL2(static uint64_t, ModUInt64, uint64_t dividend, uint64_t divisor);
20+
};
21+
22+
#endif // _DIVMODINT_H_

src/coreclr/inc/jithelpers.h

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,35 +34,44 @@
3434

3535
JITHELPER(CORINFO_HELP_UNDEF, NULL, METHOD__NIL)
3636

37-
// Arithmetic
38-
DYNAMICJITHELPER(CORINFO_HELP_DIV, NULL, METHOD__MATH__DIVIDE_CHECKED)
39-
DYNAMICJITHELPER(CORINFO_HELP_MOD, NULL, METHOD__MATH__MODULUS_CHECKED)
40-
DYNAMICJITHELPER(CORINFO_HELP_UDIV, NULL, METHOD__MATH__DIVIDE_UNSIGNED)
41-
DYNAMICJITHELPER(CORINFO_HELP_UMOD, NULL, METHOD__MATH__MODULUS_UNSIGNED)
42-
4337
// CORINFO_HELP_DBL2INT, CORINFO_HELP_DBL2UINT, and CORINFO_HELP_DBL2LONG get
4438
// patched for CPUs that support SSE2 (P4 and above).
45-
#ifndef TARGET_64BIT
39+
#ifdef TARGET_32BIT
40+
// Arithmetic
41+
DYNAMICJITHELPER(CORINFO_HELP_DIV, NULL, METHOD__MATH__DIV_INT32)
42+
DYNAMICJITHELPER(CORINFO_HELP_MOD, NULL, METHOD__MATH__MOD_INT32)
43+
DYNAMICJITHELPER(CORINFO_HELP_UDIV, NULL, METHOD__MATH__DIV_UINT32)
44+
DYNAMICJITHELPER(CORINFO_HELP_UMOD, NULL, METHOD__MATH__MOD_UINT32)
45+
4646
JITHELPER(CORINFO_HELP_LLSH, JIT_LLsh, METHOD__NIL)
4747
JITHELPER(CORINFO_HELP_LRSH, JIT_LRsh, METHOD__NIL)
4848
JITHELPER(CORINFO_HELP_LRSZ, JIT_LRsz, METHOD__NIL)
49-
#else // !TARGET_64BIT
49+
#else // TARGET_32BIT
50+
DYNAMICJITHELPER(CORINFO_HELP_DIV, NULL, METHOD__NIL)
51+
DYNAMICJITHELPER(CORINFO_HELP_MOD, NULL, METHOD__NIL)
52+
DYNAMICJITHELPER(CORINFO_HELP_UDIV, NULL, METHOD__NIL)
53+
DYNAMICJITHELPER(CORINFO_HELP_UMOD, NULL, METHOD__NIL)
54+
5055
JITHELPER(CORINFO_HELP_LLSH, NULL, METHOD__NIL)
5156
JITHELPER(CORINFO_HELP_LRSH, NULL, METHOD__NIL)
5257
JITHELPER(CORINFO_HELP_LRSZ, NULL, METHOD__NIL)
53-
#endif // TARGET_64BIT
58+
#endif // TARGET_32BIT
5459
JITHELPER(CORINFO_HELP_LMUL, JIT_LMul, METHOD__NIL)
55-
#ifndef TARGET_64BIT
60+
#ifdef TARGET_32BIT
5661
DYNAMICJITHELPER(CORINFO_HELP_LMUL_OVF, NULL, METHOD__MATH__MULTIPLY_CHECKED_INT64)
5762
DYNAMICJITHELPER(CORINFO_HELP_ULMUL_OVF, NULL, METHOD__MATH__MULTIPLY_CHECKED_UINT64)
63+
DYNAMICJITHELPER(CORINFO_HELP_LDIV, NULL, METHOD__MATH__DIV_INT64)
64+
DYNAMICJITHELPER(CORINFO_HELP_LMOD, NULL, METHOD__MATH__MOD_INT64)
65+
DYNAMICJITHELPER(CORINFO_HELP_ULDIV, NULL, METHOD__MATH__DIV_UINT64)
66+
DYNAMICJITHELPER(CORINFO_HELP_ULMOD, NULL, METHOD__MATH__MOD_UINT64)
5867
#else
5968
DYNAMICJITHELPER(CORINFO_HELP_LMUL_OVF, NULL, METHOD__NIL)
6069
DYNAMICJITHELPER(CORINFO_HELP_ULMUL_OVF, NULL, METHOD__NIL)
61-
#endif // TARGET_64BIT
62-
DYNAMICJITHELPER(CORINFO_HELP_LDIV, NULL, METHOD__MATH__DIVIDE_LONGS)
63-
DYNAMICJITHELPER(CORINFO_HELP_LMOD, NULL, METHOD__MATH__MODULUS_LONGS)
64-
DYNAMICJITHELPER(CORINFO_HELP_ULDIV, NULL, METHOD__MATH__DIVIDE_ULONGS)
65-
DYNAMICJITHELPER(CORINFO_HELP_ULMOD, NULL, METHOD__MATH__MODULUS_ULONGS)
70+
DYNAMICJITHELPER(CORINFO_HELP_LDIV, NULL, METHOD__NIL)
71+
DYNAMICJITHELPER(CORINFO_HELP_LMOD, NULL, METHOD__NIL)
72+
DYNAMICJITHELPER(CORINFO_HELP_ULDIV, NULL, METHOD__NIL)
73+
DYNAMICJITHELPER(CORINFO_HELP_ULMOD, NULL, METHOD__NIL)
74+
#endif // TARGET_32BIT
6675
JITHELPER(CORINFO_HELP_LNG2DBL, JIT_Lng2Dbl, METHOD__NIL)
6776
JITHELPER(CORINFO_HELP_ULNG2DBL, JIT_ULng2Dbl, METHOD__NIL)
6877
JITHELPER(CORINFO_HELP_DBL2INT, JIT_Dbl2Int, METHOD__NIL)

src/coreclr/nativeaot/Runtime.Base/src/System/Runtime/CompilerServices/RuntimeHelpers.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,5 @@ public static int OffsetToStringData
1818

1919
[Intrinsic]
2020
public static extern void InitializeArray(Array array, RuntimeFieldHandle fldHandle);
21-
22-
public const string QCall = "*";
2321
}
2422
}

src/coreclr/nativeaot/Runtime/MathHelpers.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,25 +56,25 @@ FCIMPL1_D(uint32_t, RhpDbl2UInt, double val)
5656
FCIMPLEND
5757

5858
#ifndef HOST_64BIT
59-
EXTERN_C int64_t QCALLTYPE Math_ActualDivisionLong(int64_t i, int64_t j)
59+
EXTERN_C int64_t F_CALL_CONV InternalDivInt64(int64_t i, int64_t j)
6060
{
6161
ASSERT(j && "Divide by zero!");
6262
return i / j;
6363
}
6464

65-
EXTERN_C uint64_t QCALLTYPE Math_ActualDivisionULong(uint64_t i, uint64_t j)
65+
EXTERN_C uint64_t F_CALL_CONV InternalDivUInt64(uint64_t i, uint64_t j)
6666
{
6767
ASSERT(j && "Divide by zero!");
6868
return i / j;
6969
}
7070

71-
EXTERN_C int64_t QCALLTYPE Math_ActualModulusLong(int64_t i, int64_t j)
71+
EXTERN_C int64_t F_CALL_CONV InternalModInt64(int64_t i, int64_t j)
7272
{
7373
ASSERT(j && "Divide by zero!");
7474
return i % j;
7575
}
7676

77-
EXTERN_C uint64_t QCALLTYPE Math_ActualModulusULong(uint64_t i, uint64_t j)
77+
EXTERN_C uint64_t F_CALL_CONV InternalModUInt64(uint64_t i, uint64_t j)
7878
{
7979
ASSERT(j && "Divide by zero!");
8080
return i % j;
@@ -95,25 +95,25 @@ FCIMPLEND
9595
#endif
9696

9797
#ifdef HOST_ARM
98-
EXTERN_C int32_t QCALLTYPE Math_ActualDivisionInt(int32_t i, int32_t j)
98+
EXTERN_C int32_t F_CALL_CONV InternalDivInt32(int32_t i, int32_t j)
9999
{
100100
ASSERT(j && "Divide by zero!");
101101
return i / j;
102102
}
103103

104-
EXTERN_C uint32_t QCALLTYPE Math_ActualDivisionUInt(uint32_t i, uint32_t j)
104+
EXTERN_C uint32_t F_CALL_CONV InternalDivUInt32(uint32_t i, uint32_t j)
105105
{
106106
ASSERT(j && "Divide by zero!");
107107
return i / j;
108108
}
109109

110-
EXTERN_C int32_t QCALLTYPE Math_ActualModulusInt(int32_t i, int32_t j)
110+
EXTERN_C int32_t F_CALL_CONV InternalModInt32(int32_t i, int32_t j)
111111
{
112112
ASSERT(j && "Divide by zero!");
113113
return i % j;
114114
}
115115

116-
EXTERN_C uint32_t QCALLTYPE Math_ActualModulusUInt(uint32_t i, uint32_t j)
116+
EXTERN_C uint32_t F_CALL_CONV InternalModUInt32(uint32_t i, uint32_t j)
117117
{
118118
ASSERT(j && "Divide by zero!");
119119
return i % j;

src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/JitHelper.cs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -233,30 +233,30 @@ public static void GetEntryPoint(TypeSystemContext context, ReadyToRunHelper id,
233233
}
234234
break;
235235

236-
case ReadyToRunHelper.Mod:
237-
methodDesc = context.SystemModule.GetKnownType("System", "Math").GetKnownMethod("ModulusChecked", null);
236+
case ReadyToRunHelper.Div:
237+
methodDesc = context.SystemModule.GetKnownType("System", "Math").GetKnownMethod("DivInt32", null);
238238
break;
239-
case ReadyToRunHelper.UMod:
240-
methodDesc = context.SystemModule.GetKnownType("System", "Math").GetKnownMethod("ModulusUnsigned", null);
239+
case ReadyToRunHelper.UDiv:
240+
methodDesc = context.SystemModule.GetKnownType("System", "Math").GetKnownMethod("DivUInt32", null);
241241
break;
242-
case ReadyToRunHelper.ULMod:
243-
methodDesc = context.SystemModule.GetKnownType("System", "Math").GetKnownMethod("ModulusUnsignedLongs", null);
242+
case ReadyToRunHelper.LDiv:
243+
methodDesc = context.SystemModule.GetKnownType("System", "Math").GetKnownMethod("DivInt64", null);
244244
break;
245-
case ReadyToRunHelper.LMod:
246-
methodDesc = context.SystemModule.GetKnownType("System", "Math").GetKnownMethod("ModulusLongs", null);
245+
case ReadyToRunHelper.ULDiv:
246+
methodDesc = context.SystemModule.GetKnownType("System", "Math").GetKnownMethod("DivUInt64", null);
247247
break;
248248

249-
case ReadyToRunHelper.Div:
250-
methodDesc = context.SystemModule.GetKnownType("System", "Math").GetKnownMethod("DivideChecked", null);
249+
case ReadyToRunHelper.Mod:
250+
methodDesc = context.SystemModule.GetKnownType("System", "Math").GetKnownMethod("ModInt32", null);
251251
break;
252-
case ReadyToRunHelper.UDiv:
253-
methodDesc = context.SystemModule.GetKnownType("System", "Math").GetKnownMethod("DivideUnsigned", null);
252+
case ReadyToRunHelper.UMod:
253+
methodDesc = context.SystemModule.GetKnownType("System", "Math").GetKnownMethod("ModulUInt32", null);
254254
break;
255-
case ReadyToRunHelper.ULDiv:
256-
methodDesc = context.SystemModule.GetKnownType("System", "Math").GetKnownMethod("DivideUnsignedLongs", null);
255+
case ReadyToRunHelper.LMod:
256+
methodDesc = context.SystemModule.GetKnownType("System", "Math").GetKnownMethod("ModInt64", null);
257257
break;
258-
case ReadyToRunHelper.LDiv:
259-
methodDesc = context.SystemModule.GetKnownType("System", "Math").GetKnownMethod("DivideLongs", null);
258+
case ReadyToRunHelper.ULMod:
259+
methodDesc = context.SystemModule.GetKnownType("System", "Math").GetKnownMethod("ModUInt64", null);
260260
break;
261261

262262
case ReadyToRunHelper.LRsz:

src/coreclr/vm/JitQCallHelpers.h

Lines changed: 0 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -22,71 +22,4 @@ extern "C" void * QCALLTYPE ResolveVirtualFunctionPointer(QCall::ObjectHandleOnS
2222
extern "C" CORINFO_GENERIC_HANDLE QCALLTYPE GenericHandleWorker(MethodDesc * pMD, MethodTable * pMT, LPVOID signature, DWORD dictionaryIndexAndSlot, Module* pModule);
2323
extern "C" void QCALLTYPE InitClassHelper(MethodTable* pMT);
2424

25-
#ifdef TARGET_32BIT
26-
extern "C" int32_t QCALLTYPE Math_ActualDivisionInt(int32_t i, int32_t j)
27-
{
28-
QCALL_CONTRACT_NO_GC_TRANSITION
29-
30-
ASSERT(j && "Divide by zero!");
31-
return i / j;
32-
}
33-
34-
extern "C" uint32_t QCALLTYPE Math_ActualDivisionUInt(uint32_t i, uint32_t j)
35-
{
36-
QCALL_CONTRACT_NO_GC_TRANSITION
37-
38-
ASSERT(j && "Divide by zero!");
39-
return i / j;
40-
}
41-
42-
extern "C" int32_t QCALLTYPE Math_ActualModulusInt(int32_t i, int32_t j)
43-
{
44-
QCALL_CONTRACT_NO_GC_TRANSITION
45-
46-
ASSERT(j && "Divide by zero!");
47-
return i % j;
48-
}
49-
50-
extern "C" uint32_t QCALLTYPE Math_ActualModulusUInt(uint32_t i, uint32_t j)
51-
{
52-
QCALL_CONTRACT_NO_GC_TRANSITION
53-
54-
ASSERT(j && "Divide by zero!");
55-
return i % j;
56-
}
57-
58-
extern "C" int64_t QCALLTYPE Math_ActualDivisionLong(int64_t i, int64_t j)
59-
{
60-
QCALL_CONTRACT_NO_GC_TRANSITION
61-
62-
ASSERT(j && "Divide by zero!");
63-
return i / j;
64-
}
65-
66-
extern "C" uint64_t QCALLTYPE Math_ActualDivisionULong(uint64_t i, uint64_t j)
67-
{
68-
QCALL_CONTRACT_NO_GC_TRANSITION
69-
70-
ASSERT(j && "Divide by zero!");
71-
return i / j;
72-
}
73-
74-
extern "C" int64_t QCALLTYPE Math_ActualModulusLong(int64_t i, int64_t j)
75-
{
76-
QCALL_CONTRACT_NO_GC_TRANSITION
77-
78-
ASSERT(j && "Divide by zero!");
79-
return i % j;
80-
}
81-
82-
extern "C" uint64_t QCALLTYPE Math_ActualModulusULong(uint64_t i, uint64_t j)
83-
{
84-
QCALL_CONTRACT_NO_GC_TRANSITION
85-
86-
ASSERT(j && "Divide by zero!");
87-
return i % j;
88-
}
89-
90-
#endif // TARGET_32BIT
91-
9225
#endif //_JITQCALLHELPERS_H

src/coreclr/vm/corelib.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include "comsynchronizable.h"
2929
#include "floatdouble.h"
3030
#include "floatsingle.h"
31+
#include "divmodint.h"
3132
#include "comdatetime.h"
3233
#include "debugdebugger.h"
3334
#include "assemblynative.hpp"

src/coreclr/vm/corelib.h

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -259,22 +259,23 @@ DEFINE_CLASS(INT128, System, Int128)
259259
DEFINE_CLASS(UINT128, System, UInt128)
260260

261261
DEFINE_CLASS(MATH, System, Math)
262-
#ifndef TARGET_64BIT
263-
DEFINE_METHOD(MATH, MULTIPLY_CHECKED_INT64, MultiplyChecked, SM_Long_Long_RetLong)
264-
DEFINE_METHOD(MATH, MULTIPLY_CHECKED_UINT64, MultiplyChecked, SM_ULong_ULong_RetULong)
265-
#endif
266262
DEFINE_METHOD(MATH, CONVERT_TO_INT32_CHECKED, ConvertToInt32Checked, NoSig)
267263
DEFINE_METHOD(MATH, CONVERT_TO_UINT32_CHECKED, ConvertToUInt32Checked, NoSig)
268264
DEFINE_METHOD(MATH, CONVERT_TO_INT64_CHECKED, ConvertToInt64Checked, NoSig)
269265
DEFINE_METHOD(MATH, CONVERT_TO_UINT64_CHECKED, ConvertToUInt64Checked, NoSig)
270-
DEFINE_METHOD(MATH, DIVIDE_CHECKED, DivideChecked, NoSig)
271-
DEFINE_METHOD(MATH, MODULUS_CHECKED, ModulusChecked, NoSig)
272-
DEFINE_METHOD(MATH, DIVIDE_UNSIGNED, DivideUnsigned, NoSig)
273-
DEFINE_METHOD(MATH, MODULUS_UNSIGNED, ModulusUnsigned, NoSig)
274-
DEFINE_METHOD(MATH, DIVIDE_LONGS, DivideLongs, NoSig)
275-
DEFINE_METHOD(MATH, MODULUS_LONGS, ModulusLongs, NoSig)
276-
DEFINE_METHOD(MATH, DIVIDE_ULONGS, DivideUnsignedLongs, NoSig)
277-
DEFINE_METHOD(MATH, MODULUS_ULONGS, ModulusUnsignedLongs, NoSig)
266+
267+
#ifdef TARGET_32BIT
268+
DEFINE_METHOD(MATH, MULTIPLY_CHECKED_INT64, MultiplyChecked, SM_Long_Long_RetLong)
269+
DEFINE_METHOD(MATH, MULTIPLY_CHECKED_UINT64, MultiplyChecked, SM_ULong_ULong_RetULong)
270+
DEFINE_METHOD(MATH, DIV_INT32, DivInt32, NoSig)
271+
DEFINE_METHOD(MATH, DIV_UINT32, DivUInt32, NoSig)
272+
DEFINE_METHOD(MATH, DIV_INT64, DivInt64, NoSig)
273+
DEFINE_METHOD(MATH, DIV_UINT64, DivUInt64, NoSig)
274+
DEFINE_METHOD(MATH, MOD_INT32, ModInt32, NoSig)
275+
DEFINE_METHOD(MATH, MOD_UINT32, ModUInt32, NoSig)
276+
DEFINE_METHOD(MATH, MOD_INT64, ModInt64, NoSig)
277+
DEFINE_METHOD(MATH, MOD_UINT64, ModUInt64, NoSig)
278+
#endif // TARGET_32BIT
278279

279280
DEFINE_CLASS(DYNAMICMETHOD, ReflectionEmit, DynamicMethod)
280281

src/coreclr/vm/ecalllist.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,16 @@ FCFuncStart(gMathFuncs)
227227
FCFuncElement("Sqrt", COMDouble::Sqrt)
228228
FCFuncElement("Tan", COMDouble::Tan)
229229
FCFuncElement("Tanh", COMDouble::Tanh)
230+
#ifdef TARGET_32BIT
231+
FCFuncElement("InternalDivInt32", COMDivModInt::DivInt32)
232+
FCFuncElement("InternalDivUInt32", COMDivModInt::DivUInt32)
233+
FCFuncElement("InternalDivInt64", COMDivModInt::DivInt64)
234+
FCFuncElement("InternalDivUInt64", COMDivModInt::DivUInt64)
235+
FCFuncElement("InternalModInt32", COMDivModInt::ModInt32)
236+
FCFuncElement("InternalModUInt32", COMDivModInt::ModUInt32)
237+
FCFuncElement("InternalModInt64", COMDivModInt::ModInt64)
238+
FCFuncElement("InternalModUInt64", COMDivModInt::ModUInt64)
239+
#endif // TARGET_32BIT
230240
FCFuncEnd()
231241

232242
FCFuncStart(gMathFFuncs)

0 commit comments

Comments
 (0)