From b94e807c6f35366a6bc8faf385e62abd9a6ea7c7 Mon Sep 17 00:00:00 2001 From: Vlad - Alexandru Ionescu Date: Thu, 9 Mar 2023 14:08:12 +0100 Subject: [PATCH 1/4] Initial work for investigating how to enable direct calls Signed-off-by: Vlad - Alexandru Ionescu --- src/mono/mono/mini/MyLib.dll.json | 146 +++++++++++++++++++ src/mono/mono/mini/aot-compiler.c | 7 +- src/mono/sample/HelloWorld/HelloWorld.csproj | 4 + src/mono/sample/HelloWorld/Program.cs | 8 +- src/mono/sample/MyLib/Class1.cs | 25 ++++ src/mono/sample/MyLib/MyLib.csproj | 9 ++ 6 files changed, 192 insertions(+), 7 deletions(-) create mode 100644 src/mono/mono/mini/MyLib.dll.json create mode 100644 src/mono/sample/MyLib/Class1.cs create mode 100644 src/mono/sample/MyLib/MyLib.csproj diff --git a/src/mono/mono/mini/MyLib.dll.json b/src/mono/mono/mini/MyLib.dll.json new file mode 100644 index 00000000000000..a308e30bac6753 --- /dev/null +++ b/src/mono/mono/mini/MyLib.dll.json @@ -0,0 +1,146 @@ +{ + "methods" : [ + { + "name" : ".ctor", + "signature" : "void Microsoft.CodeAnalysis.EmbeddedAttribute:.ctor ()", + "code_size" : "56", + "class" : "EmbeddedAttribute", + "namespace" : "Microsoft.CodeAnalysis", + "wrapper_type" : "none", + }, + { + "name" : ".ctor", + "signature" : "void System.Runtime.CompilerServices.NullableAttribute:.ctor (byte)", + "code_size" : "184", + "class" : "NullableAttribute", + "namespace" : "System.Runtime.CompilerServices", + "wrapper_type" : "none", + }, + { + "name" : ".ctor", + "signature" : "void System.Runtime.CompilerServices.NullableAttribute:.ctor (byte[])", + "code_size" : "120", + "class" : "NullableAttribute", + "namespace" : "System.Runtime.CompilerServices", + "wrapper_type" : "none", + }, + { + "name" : ".ctor", + "signature" : "void System.Runtime.CompilerServices.NullableContextAttribute:.ctor (byte)", + "code_size" : "72", + "class" : "NullableContextAttribute", + "namespace" : "System.Runtime.CompilerServices", + "wrapper_type" : "none", + }, + { + "name" : ".ctor", + "signature" : "void System.Runtime.CompilerServices.NullablePublicOnlyAttribute:.ctor (bool)", + "code_size" : "72", + "class" : "NullablePublicOnlyAttribute", + "namespace" : "System.Runtime.CompilerServices", + "wrapper_type" : "none", + }, + { + "name" : "getCat", + "signature" : "void MyLib.Class1:getCat ()", + "code_size" : "164", + "class" : "Class1", + "namespace" : "MyLib", + "wrapper_type" : "none", + }, + { + "name" : ".ctor", + "signature" : "void MyLib.Class1:.ctor ()", + "code_size" : "24", + "class" : "Class1", + "namespace" : "MyLib", + "wrapper_type" : "none", + }, + { + "name" : "get_animal", + "signature" : "string MyLib.Animal:get_animal ()", + "code_size" : "32", + "class" : "Animal", + "namespace" : "MyLib", + "wrapper_type" : "none", + }, + { + "name" : "set_animal", + "signature" : "void MyLib.Animal:set_animal (string)", + "code_size" : "88", + "class" : "Animal", + "namespace" : "MyLib", + "wrapper_type" : "none", + }, + { + "name" : ".ctor", + "signature" : "void MyLib.Animal:.ctor (string)", + "code_size" : "64", + "class" : "Animal", + "namespace" : "MyLib", + "wrapper_type" : "none", + }, + { + "name" : "isCat", + "signature" : "bool MyLib.Animal:isCat ()", + "code_size" : "120", + "class" : "Animal", + "namespace" : "MyLib", + "wrapper_type" : "none", + }, + ], + "plt" : [ + { "symbol" : "_p_1" }, + { "symbol" : "_p_2" }, + { "symbol" : "_p_3" }, + { "symbol" : "_p_4" }, + { "symbol" : "_p_5" }, + { "symbol" : "_p_6" }, + { "symbol" : "_p_7" }, + { "symbol" : "_p_8" }, + { "symbol" : "_p_9" }, + { "symbol" : "_p_10" }, + { "symbol" : "_p_11" }, + ], + "got" : [ + { "patch_name" : "image" }, + { "patch_name" : "mscorlib_got_addr" }, + { "patch_name" : "gc_card_table_addr" }, + { "patch_name" : "gc_nursery_start" }, + { "patch_name" : "aot_module" }, + { "patch_name" : "gc_nursery_bits" }, + { "patch_name" : "interruption_request_flag" }, + { "patch_name" : "gc_safe_point_flag" }, + { "patch_name" : "jit_icall_addr_nocall" }, + { "patch_name" : "jit_icall_addr_nocall" }, + { "patch_name" : "jit_icall_addr_nocall" }, + { "patch_name" : "jit_icall_addr_nocall" }, + { "patch_name" : "jit_icall_addr_nocall" }, + { "patch_name" : "jit_icall_addr_nocall" }, + { "patch_name" : "jit_icall_id" }, + { "patch_name" : "jit_icall_id" }, + { "patch_name" : "jit_icall_id" }, + { "patch_name" : "jit_icall_id" }, + { "patch_name" : "jit_icall_id" }, + { "patch_name" : "jit_icall_id" }, + { "patch_name" : "jit_icall_id" }, + { "patch_name" : "jit_icall_id" }, + { "patch_name" : "vtable" }, + { "patch_name" : "ldstr" }, + { "patch_name" : "vtable" }, + { "patch_name" : "ldstr" }, + { "patch_name" : "ldstr" }, + { "patch_name" : "ldstr" }, + { "patch_name" : "jit_icall_id" }, + { "patch_name" : "method" }, + { "patch_name" : "method" }, + { "patch_name" : "jit_icall_id" }, + { "patch_name" : "method" }, + { "patch_name" : "method" }, + { "patch_name" : "method" }, + { "patch_name" : "method" }, + { "patch_name" : "method" }, + { "patch_name" : "method" }, + { "patch_name" : "method" }, + ], +} \ No newline at end of file diff --git a/src/mono/mono/mini/aot-compiler.c b/src/mono/mono/mini/aot-compiler.c index 611a75b07b805d..444f8aa51f63d3 100644 --- a/src/mono/mono/mini/aot-compiler.c +++ b/src/mono/mono/mini/aot-compiler.c @@ -8570,6 +8570,9 @@ mono_aot_parse_options (const char *aot_options, MonoAotOptions *opts) for (guint i = 0; i < args->len; ++i) { const char *arg = (const char *)g_ptr_array_index (args, i); + opts->dump_json = TRUE; + + if (str_begins_with (arg, "outfile=")) { opts->outfile = g_strdup (arg + strlen ("outfile=")); } else if (str_begins_with (arg, "llvm-outfile=")) { @@ -14069,8 +14072,8 @@ get_wrapper_type_name (int type) return wrapper_type_names [type]; } -//#define DUMP_PLT -//#define DUMP_GOT +#define DUMP_PLT +#define DUMP_GOT static void aot_dump (MonoAotCompile *acfg) { diff --git a/src/mono/sample/HelloWorld/HelloWorld.csproj b/src/mono/sample/HelloWorld/HelloWorld.csproj index b4e843e802673c..0a94ab45f57990 100644 --- a/src/mono/sample/HelloWorld/HelloWorld.csproj +++ b/src/mono/sample/HelloWorld/HelloWorld.csproj @@ -4,6 +4,10 @@ $(NetCoreAppCurrent) + + + + diff --git a/src/mono/sample/HelloWorld/Program.cs b/src/mono/sample/HelloWorld/Program.cs index 0a65da4203a6d5..59b74eca24281f 100644 --- a/src/mono/sample/HelloWorld/Program.cs +++ b/src/mono/sample/HelloWorld/Program.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using MyLib; namespace HelloWorld { @@ -9,11 +10,8 @@ internal class Program { private static void Main(string[] args) { - bool isMono = typeof(object).Assembly.GetType("Mono.RuntimeStructs") != null; - Console.WriteLine($"Hello World {(isMono ? "from Mono!" : "from CoreCLR!")}"); - Console.WriteLine(typeof(object).Assembly.FullName); - Console.WriteLine(System.Reflection.Assembly.GetEntryAssembly ()); - Console.WriteLine(System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription); + Class1 c = new Class1(); + c.getCat(); } } } diff --git a/src/mono/sample/MyLib/Class1.cs b/src/mono/sample/MyLib/Class1.cs new file mode 100644 index 00000000000000..3643722dcd6cf8 --- /dev/null +++ b/src/mono/sample/MyLib/Class1.cs @@ -0,0 +1,25 @@ +namespace MyLib; + + +public class Class1 +{ + public void getCat() { + Animal a = new Animal("DOG"); + Console.WriteLine(a.isCat() ? "YES" : "NO"); + } +} + + +public class Animal +{ + private string animal{get; set;} + + public Animal(string animal) + { + this.animal = animal; + } + + public bool isCat() { + return string.Compare("CAT", animal) == 0 ? true : false; + } +} diff --git a/src/mono/sample/MyLib/MyLib.csproj b/src/mono/sample/MyLib/MyLib.csproj new file mode 100644 index 00000000000000..fa71b7ae6a3499 --- /dev/null +++ b/src/mono/sample/MyLib/MyLib.csproj @@ -0,0 +1,9 @@ + + + + net8.0 + enable + enable + + + From 959d3876a536d2df0388d297ada85f34c952d774 Mon Sep 17 00:00:00 2001 From: Vlad - Alexandru Ionescu Date: Thu, 9 Mar 2023 16:28:22 +0100 Subject: [PATCH 2/4] Revert "Initial work for investigating how to enable direct calls" This reverts commit 7a86e8d6ef1d963328026f82c8c51673a27bffc4. --- src/mono/mono/mini/MyLib.dll.json | 146 ------------------- src/mono/mono/mini/aot-compiler.c | 7 +- src/mono/sample/HelloWorld/HelloWorld.csproj | 4 - src/mono/sample/HelloWorld/Program.cs | 8 +- src/mono/sample/MyLib/Class1.cs | 25 ---- src/mono/sample/MyLib/MyLib.csproj | 9 -- 6 files changed, 7 insertions(+), 192 deletions(-) delete mode 100644 src/mono/mono/mini/MyLib.dll.json delete mode 100644 src/mono/sample/MyLib/Class1.cs delete mode 100644 src/mono/sample/MyLib/MyLib.csproj diff --git a/src/mono/mono/mini/MyLib.dll.json b/src/mono/mono/mini/MyLib.dll.json deleted file mode 100644 index a308e30bac6753..00000000000000 --- a/src/mono/mono/mini/MyLib.dll.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "methods" : [ - { - "name" : ".ctor", - "signature" : "void Microsoft.CodeAnalysis.EmbeddedAttribute:.ctor ()", - "code_size" : "56", - "class" : "EmbeddedAttribute", - "namespace" : "Microsoft.CodeAnalysis", - "wrapper_type" : "none", - }, - { - "name" : ".ctor", - "signature" : "void System.Runtime.CompilerServices.NullableAttribute:.ctor (byte)", - "code_size" : "184", - "class" : "NullableAttribute", - "namespace" : "System.Runtime.CompilerServices", - "wrapper_type" : "none", - }, - { - "name" : ".ctor", - "signature" : "void System.Runtime.CompilerServices.NullableAttribute:.ctor (byte[])", - "code_size" : "120", - "class" : "NullableAttribute", - "namespace" : "System.Runtime.CompilerServices", - "wrapper_type" : "none", - }, - { - "name" : ".ctor", - "signature" : "void System.Runtime.CompilerServices.NullableContextAttribute:.ctor (byte)", - "code_size" : "72", - "class" : "NullableContextAttribute", - "namespace" : "System.Runtime.CompilerServices", - "wrapper_type" : "none", - }, - { - "name" : ".ctor", - "signature" : "void System.Runtime.CompilerServices.NullablePublicOnlyAttribute:.ctor (bool)", - "code_size" : "72", - "class" : "NullablePublicOnlyAttribute", - "namespace" : "System.Runtime.CompilerServices", - "wrapper_type" : "none", - }, - { - "name" : "getCat", - "signature" : "void MyLib.Class1:getCat ()", - "code_size" : "164", - "class" : "Class1", - "namespace" : "MyLib", - "wrapper_type" : "none", - }, - { - "name" : ".ctor", - "signature" : "void MyLib.Class1:.ctor ()", - "code_size" : "24", - "class" : "Class1", - "namespace" : "MyLib", - "wrapper_type" : "none", - }, - { - "name" : "get_animal", - "signature" : "string MyLib.Animal:get_animal ()", - "code_size" : "32", - "class" : "Animal", - "namespace" : "MyLib", - "wrapper_type" : "none", - }, - { - "name" : "set_animal", - "signature" : "void MyLib.Animal:set_animal (string)", - "code_size" : "88", - "class" : "Animal", - "namespace" : "MyLib", - "wrapper_type" : "none", - }, - { - "name" : ".ctor", - "signature" : "void MyLib.Animal:.ctor (string)", - "code_size" : "64", - "class" : "Animal", - "namespace" : "MyLib", - "wrapper_type" : "none", - }, - { - "name" : "isCat", - "signature" : "bool MyLib.Animal:isCat ()", - "code_size" : "120", - "class" : "Animal", - "namespace" : "MyLib", - "wrapper_type" : "none", - }, - ], - "plt" : [ - { "symbol" : "_p_1" }, - { "symbol" : "_p_2" }, - { "symbol" : "_p_3" }, - { "symbol" : "_p_4" }, - { "symbol" : "_p_5" }, - { "symbol" : "_p_6" }, - { "symbol" : "_p_7" }, - { "symbol" : "_p_8" }, - { "symbol" : "_p_9" }, - { "symbol" : "_p_10" }, - { "symbol" : "_p_11" }, - ], - "got" : [ - { "patch_name" : "image" }, - { "patch_name" : "mscorlib_got_addr" }, - { "patch_name" : "gc_card_table_addr" }, - { "patch_name" : "gc_nursery_start" }, - { "patch_name" : "aot_module" }, - { "patch_name" : "gc_nursery_bits" }, - { "patch_name" : "interruption_request_flag" }, - { "patch_name" : "gc_safe_point_flag" }, - { "patch_name" : "jit_icall_addr_nocall" }, - { "patch_name" : "jit_icall_addr_nocall" }, - { "patch_name" : "jit_icall_addr_nocall" }, - { "patch_name" : "jit_icall_addr_nocall" }, - { "patch_name" : "jit_icall_addr_nocall" }, - { "patch_name" : "jit_icall_addr_nocall" }, - { "patch_name" : "jit_icall_id" }, - { "patch_name" : "jit_icall_id" }, - { "patch_name" : "jit_icall_id" }, - { "patch_name" : "jit_icall_id" }, - { "patch_name" : "jit_icall_id" }, - { "patch_name" : "jit_icall_id" }, - { "patch_name" : "jit_icall_id" }, - { "patch_name" : "jit_icall_id" }, - { "patch_name" : "vtable" }, - { "patch_name" : "ldstr" }, - { "patch_name" : "vtable" }, - { "patch_name" : "ldstr" }, - { "patch_name" : "ldstr" }, - { "patch_name" : "ldstr" }, - { "patch_name" : "jit_icall_id" }, - { "patch_name" : "method" }, - { "patch_name" : "method" }, - { "patch_name" : "jit_icall_id" }, - { "patch_name" : "method" }, - { "patch_name" : "method" }, - { "patch_name" : "method" }, - { "patch_name" : "method" }, - { "patch_name" : "method" }, - { "patch_name" : "method" }, - { "patch_name" : "method" }, - ], -} \ No newline at end of file diff --git a/src/mono/mono/mini/aot-compiler.c b/src/mono/mono/mini/aot-compiler.c index 444f8aa51f63d3..611a75b07b805d 100644 --- a/src/mono/mono/mini/aot-compiler.c +++ b/src/mono/mono/mini/aot-compiler.c @@ -8570,9 +8570,6 @@ mono_aot_parse_options (const char *aot_options, MonoAotOptions *opts) for (guint i = 0; i < args->len; ++i) { const char *arg = (const char *)g_ptr_array_index (args, i); - opts->dump_json = TRUE; - - if (str_begins_with (arg, "outfile=")) { opts->outfile = g_strdup (arg + strlen ("outfile=")); } else if (str_begins_with (arg, "llvm-outfile=")) { @@ -14072,8 +14069,8 @@ get_wrapper_type_name (int type) return wrapper_type_names [type]; } -#define DUMP_PLT -#define DUMP_GOT +//#define DUMP_PLT +//#define DUMP_GOT static void aot_dump (MonoAotCompile *acfg) { diff --git a/src/mono/sample/HelloWorld/HelloWorld.csproj b/src/mono/sample/HelloWorld/HelloWorld.csproj index 0a94ab45f57990..b4e843e802673c 100644 --- a/src/mono/sample/HelloWorld/HelloWorld.csproj +++ b/src/mono/sample/HelloWorld/HelloWorld.csproj @@ -4,10 +4,6 @@ $(NetCoreAppCurrent) - - - - diff --git a/src/mono/sample/HelloWorld/Program.cs b/src/mono/sample/HelloWorld/Program.cs index 59b74eca24281f..0a65da4203a6d5 100644 --- a/src/mono/sample/HelloWorld/Program.cs +++ b/src/mono/sample/HelloWorld/Program.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using MyLib; namespace HelloWorld { @@ -10,8 +9,11 @@ internal class Program { private static void Main(string[] args) { - Class1 c = new Class1(); - c.getCat(); + bool isMono = typeof(object).Assembly.GetType("Mono.RuntimeStructs") != null; + Console.WriteLine($"Hello World {(isMono ? "from Mono!" : "from CoreCLR!")}"); + Console.WriteLine(typeof(object).Assembly.FullName); + Console.WriteLine(System.Reflection.Assembly.GetEntryAssembly ()); + Console.WriteLine(System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription); } } } diff --git a/src/mono/sample/MyLib/Class1.cs b/src/mono/sample/MyLib/Class1.cs deleted file mode 100644 index 3643722dcd6cf8..00000000000000 --- a/src/mono/sample/MyLib/Class1.cs +++ /dev/null @@ -1,25 +0,0 @@ -namespace MyLib; - - -public class Class1 -{ - public void getCat() { - Animal a = new Animal("DOG"); - Console.WriteLine(a.isCat() ? "YES" : "NO"); - } -} - - -public class Animal -{ - private string animal{get; set;} - - public Animal(string animal) - { - this.animal = animal; - } - - public bool isCat() { - return string.Compare("CAT", animal) == 0 ? true : false; - } -} diff --git a/src/mono/sample/MyLib/MyLib.csproj b/src/mono/sample/MyLib/MyLib.csproj deleted file mode 100644 index fa71b7ae6a3499..00000000000000 --- a/src/mono/sample/MyLib/MyLib.csproj +++ /dev/null @@ -1,9 +0,0 @@ - - - - net8.0 - enable - enable - - - From 059cf0b14a6dbb80a48ca25e1adb41c9e80a6225 Mon Sep 17 00:00:00 2001 From: Vlad - Alexandru Ionescu Date: Mon, 27 Mar 2023 14:16:47 +0200 Subject: [PATCH 3/4] Enabled abs and sqrt intrinsics Signed-off-by: Vlad - Alexandru Ionescu --- src/mono/mono/mini/simd-arm64.h | 7 +++++-- src/mono/mono/mini/simd-intrinsics.c | 10 ++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/mono/mono/mini/simd-arm64.h b/src/mono/mono/mini/simd-arm64.h index 746bf5f3b6e1b6..9a43f608cc8497 100644 --- a/src/mono/mono/mini/simd-arm64.h +++ b/src/mono/mono/mini/simd-arm64.h @@ -65,5 +65,8 @@ SIMD_OP (128, OP_XBINOP_FORCEINT, XBINOP_FORCEINT_XOR, WDSS, arm_neo SIMD_OP (128, OP_ARM64_XADDV, INTRINS_AARCH64_ADV_SIMD_UADDV, WTDS, arm_neon_addv, arm_neon_addv, arm_neon_addv, _SKIP, _UNDEF, _UNDEF) SIMD_OP (128, OP_ARM64_XADDV, INTRINS_AARCH64_ADV_SIMD_SADDV, WTDS, arm_neon_addv, arm_neon_addv, arm_neon_addv, _SKIP, _UNDEF, _UNDEF) SIMD_OP (128, OP_ARM64_XADDV, INTRINS_AARCH64_ADV_SIMD_FADDV, WTDS, _UNDEF, _UNDEF, _UNDEF, _UNDEF, _SKIP, _SKIP) -SIMD_OP (128, OP_XOP_OVR_X_X, INTRINS_AARCH64_ADV_SIMD_FRINTP, WTDS, _UNDEF, _UNDEF, _UNDEF, _UNDEF, arm_neon_frintp, arm_neon_frintp) -SIMD_OP (128, OP_XOP_OVR_X_X, INTRINS_AARCH64_ADV_SIMD_FRINTM, WTDS, _UNDEF, _UNDEF, _UNDEF, _UNDEF, arm_neon_frintm, arm_neon_frintm) +SIMD_OP (128, OP_XOP_OVR_X_X, INTRINS_AARCH64_ADV_SIMD_FRINTP, WTDS, _UNDEF, _UNDEF, _UNDEF, _UNDEF, arm_neon_frintp, arm_neon_frintp) +SIMD_OP (128, OP_XOP_OVR_X_X, INTRINS_AARCH64_ADV_SIMD_FRINTM, WTDS, _UNDEF, _UNDEF, _UNDEF, _UNDEF, arm_neon_frintm, arm_neon_frintm) +SIMD_OP (128, OP_XOP_OVR_X_X, INTRINS_AARCH64_ADV_SIMD_FSQRT, WTDS, _UNDEF, _UNDEF, _UNDEF, _UNDEF, arm_neon_fsqrt, arm_neon_fsqrt) +SIMD_OP (128, OP_XOP_OVR_X_X, INTRINS_AARCH64_ADV_SIMD_ABS, WTDS, arm_neon_abs, arm_neon_abs, arm_neon_abs, arm_neon_abs, _UNDEF, _UNDEF) +SIMD_OP (128, OP_XOP_OVR_X_X, INTRINS_AARCH64_ADV_SIMD_FABS, WTDS, _UNDEF, _UNDEF, _UNDEF, _UNDEF, arm_neon_fabs, arm_neon_fabs) diff --git a/src/mono/mono/mini/simd-intrinsics.c b/src/mono/mono/mini/simd-intrinsics.c index e7a100d22d6039..508c36259c3730 100644 --- a/src/mono/mono/mini/simd-intrinsics.c +++ b/src/mono/mono/mini/simd-intrinsics.c @@ -1205,10 +1205,10 @@ emit_sri_vector (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSignature *fsi return NULL; #endif // FIXME: This limitation could be removed once everything here are supported by mini JIT on arm64 -#ifdef TARGET_ARM64 - if (!(cfg->compile_aot && cfg->full_aot && !cfg->interp)) - return NULL; -#endif +// #ifdef TARGET_ARM64 +// if (!(cfg->compile_aot && cfg->full_aot && !cfg->interp)) +// return NULL; +// #endif int id = lookup_intrins (sri_vector_methods, sizeof (sri_vector_methods), cmethod); if (id == -1) { @@ -1262,6 +1262,8 @@ emit_sri_vector (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSignature *fsi case SN_ToScalar: case SN_Floor: case SN_Ceiling: + case SN_Sqrt: + case SN_Abs: break; default: return NULL; From 842c849b072705d4af30662beea84d1731e55fc0 Mon Sep 17 00:00:00 2001 From: Vlad - Alexandru Ionescu Date: Wed, 5 Apr 2023 10:23:07 +0200 Subject: [PATCH 4/4] Re-enable check Signed-off-by: Vlad - Alexandru Ionescu --- src/mono/mono/mini/simd-intrinsics.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mono/mono/mini/simd-intrinsics.c b/src/mono/mono/mini/simd-intrinsics.c index d4b1146404be03..e65e5dea12ad17 100644 --- a/src/mono/mono/mini/simd-intrinsics.c +++ b/src/mono/mono/mini/simd-intrinsics.c @@ -1217,10 +1217,10 @@ emit_sri_vector (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSignature *fsi return NULL; #endif // FIXME: This limitation could be removed once everything here are supported by mini JIT on arm64 -// #ifdef TARGET_ARM64 -// if (!(cfg->compile_aot && cfg->full_aot && !cfg->interp)) -// return NULL; -// #endif +#ifdef TARGET_ARM64 + if (!(cfg->compile_aot && cfg->full_aot && !cfg->interp)) + return NULL; +#endif int id = lookup_intrins (sri_vector_methods, sizeof (sri_vector_methods), cmethod); if (id == -1) {