Fix for dotnet/coreclr#5275 Delegate Invocation On ARM Soft FP (dotnet/coreclr#5362)
authorpapaslavik <v.nikolaev@samsung.com>
Sat, 4 Jun 2016 07:46:15 +0000 (10:46 +0300)
committerJan Kotas <jkotas@microsoft.com>
Sat, 4 Jun 2016 07:46:15 +0000 (00:46 -0700)
Commit migrated from https://github.com/dotnet/coreclr/commit/ac82e4e439e94074b36df9aeeede2957824f9b0b

src/coreclr/src/vm/CMakeLists.txt
src/coreclr/src/vm/callingconvention.h

index 29c18be..6b55536 100644 (file)
@@ -12,6 +12,10 @@ add_definitions(-DFEATURE_LEAVE_RUNTIME_HOLDER=1)
 add_definitions(-DUNICODE)
 add_definitions(-D_UNICODE)
 
+if (ARM_SOFTFP)
+  add_definitions(-DARM_SOFTFP)
+endif (ARM_SOFTFP)
+
 if(CMAKE_CONFIGURATION_TYPES) # multi-configuration generator?
   foreach (Config DEBUG CHECKED)  
      set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS $<$<CONFIG:${Config}>:WRITE_BARRIER_CHECK=1>)
index e637ff4..7337796 100644 (file)
@@ -1119,6 +1119,7 @@ int ArgIteratorTemplate<ARGITERATOR_BASE>::GetNextOffset()
 
     // Ignore floating point argument placement in registers if we're dealing with a vararg function (the ABI
     // specifies this so that vararg processing on the callee side is simplified).
+#ifndef ARM_SOFTFP
     if (fFloatingPoint && !this->IsVarArg())
     {
         // Handle floating point (primitive) arguments.
@@ -1171,6 +1172,7 @@ int ArgIteratorTemplate<ARGITERATOR_BASE>::GetNextOffset()
 
         return argOfs;
     }
+#endif // ARM_SOFTFP
 
     //
     // Handle the non-floating point case.