Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kotas <jkotas@microsoft.com>2016-01-12 23:47:18 +0300
committerJan Kotas <jkotas@microsoft.com>2016-01-13 02:34:48 +0300
commit1ea2ab46fd18a66dd33dccda27dd7b4ad1c37f55 (patch)
tree8d2c25ffd2059f5f9db5055e43dd3ba4d494b728 /src/Native
parentc4232511ff688be60494042599eafa259a88b2aa (diff)
Implement StelemRef and LdelemaRef helpers
Diffstat (limited to 'src/Native')
-rw-r--r--src/Native/Bootstrap/main.cpp26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/Native/Bootstrap/main.cpp b/src/Native/Bootstrap/main.cpp
index 09cc1275d..a3aeb341a 100644
--- a/src/Native/Bootstrap/main.cpp
+++ b/src/Native/Bootstrap/main.cpp
@@ -15,6 +15,8 @@ extern "C" Object * RhNewObject(MethodTable * pMT);
extern "C" Object * RhNewArray(MethodTable * pMT, int32_t elements);
extern "C" void * RhTypeCast_IsInstanceOf(void * pObject, MethodTable * pMT);
extern "C" void * RhTypeCast_CheckCast(void * pObject, MethodTable * pMT);
+extern "C" void RhpStelemRef(void * pArray, int index, void * pObj);
+extern "C" void * RhpLdelemaRef(void * pArray, int index, MethodTable * pMT);
extern "C" __declspec(noreturn) void RhpThrowEx(void * pEx);
#ifdef CPPCODEGEN
@@ -39,6 +41,16 @@ extern "C" Object * __isinst(void * obj, MethodTable * pTargetMT)
return (Object *)RhTypeCast_IsInstanceOf(obj, pTargetMT);
}
+extern "C" void __stelem_ref(void * pArray, unsigned idx, void * obj)
+{
+ RhpStelemRef(pArray, idx, obj);
+}
+
+extern "C" void* __ldelema_ref(void * pArray, unsigned idx, MethodTable * type)
+{
+ return RhpLdelemaRef(pArray, idx, type);
+}
+
extern "C" void __throw_exception(void * pEx)
{
RhpThrowEx(pEx);
@@ -136,18 +148,6 @@ Object * __allocate_string(int32_t len)
#endif
}
-extern "C" void __stelem_ref(System::Array * pArray, unsigned idx, Object * val)
-{
- // TODO: Range checks, writer barrier, etc.
- ((Object **)(pArray->GetArrayData()))[idx] = val;
-}
-
-extern "C" void* __ldelema_ref(System::Array * pArray, unsigned idx, MethodTable * type)
-{
- // TODO: Range checks, etc.
- return &(((Object **)(pArray->GetArrayData()))[idx]);
-}
-
void PrintStringObject(System::String *pStringToPrint)
{
// Get the number of characters in managed string (stored as UTF16)
@@ -221,7 +221,7 @@ Object * __get_commandline_args(int argc, char * argv[])
for (int i = 0; i < argc; i++)
{
- __stelem_ref(args, i, __load_string_literal(argv[i]));
+ RhpStelemRef(args, i, __load_string_literal(argv[i]));
}
return (Object *)args;