Add support for multi-dimensional array initialization
authorMike Danes <onemihaid@hotmail.com>
Tue, 22 Mar 2016 21:14:38 +0000 (23:14 +0200)
committerMike Danes <onemihaid@hotmail.com>
Wed, 8 Jun 2016 16:32:13 +0000 (19:32 +0300)
commitac0e309c1e95e1009b58701851833b8775c18d20
tree56a3f14aba0c3b2229d4a8add1297080852828b9
parent60768376da8f2300e8cd71754bc886f9cdcff389
Add support for multi-dimensional array initialization

This extends impInitializeArrayIntrinsic to support MD arrays in addition to SD arrays. This includes support for SD arrays which are created via CORINFO_HELP_NEW_MDARR when the lower bound is not specified or known to be 0.

The generated code is similar to the code generated for the SD arrays, for example:
  call CORINFO_HELP_NEW_MDARR
  mov rdx, 0x202AB822050
  lea rcx, bword ptr [rax+32]
  vmovdqu ymm0, qword ptr [rdx]
  vmovdqu qword ptr [rcx], ymm0
  mov r8d, dword ptr [rdx+16]
  mov dword ptr [rcx+16], r8d

Commit migrated from https://github.com/dotnet/coreclr/commit/9c635bde59d979cd3359e5e12d743839481b38be
src/coreclr/src/jit/compiler.h
src/coreclr/src/jit/ee_il_dll.cpp
src/coreclr/src/jit/importer.cpp [changed mode: 0755->0644]
src/coreclr/src/jit/instr.cpp
src/coreclr/src/jit/lower.cpp
src/coreclr/tests/src/JIT/Methodical/Arrays/misc/_il_dbginitializearray.ilproj [new file with mode: 0644]
src/coreclr/tests/src/JIT/Methodical/Arrays/misc/_il_relinitializearray.ilproj [new file with mode: 0644]
src/coreclr/tests/src/JIT/Methodical/Arrays/misc/initializearray.il [new file with mode: 0644]