summaryrefslogtreecommitdiff
path: root/src/vm/methodtable.cpp
diff options
context:
space:
mode:
authorLubomir Litchev <lubol@microsoft.com>2015-10-22 22:55:09 -0700
committerLubomir Litchev <lubol@microsoft.com>2015-11-03 16:00:53 -0800
commit484e17578f3052f5e69e71b7b915696549b7016f (patch)
tree2b8d2a62faff4fa6074fab669d2fdee4f4c7fef9 /src/vm/methodtable.cpp
parent1bdad57bd28d24072c0f7771f8ce1e39b4de43c8 (diff)
downloadcoreclr-484e17578f3052f5e69e71b7b915696549b7016f.tar.gz
coreclr-484e17578f3052f5e69e71b7b915696549b7016f.tar.bz2
coreclr-484e17578f3052f5e69e71b7b915696549b7016f.zip
Some code cleanup for the SystemVStructs work.
Diffstat (limited to 'src/vm/methodtable.cpp')
-rw-r--r--src/vm/methodtable.cpp58
1 files changed, 7 insertions, 51 deletions
diff --git a/src/vm/methodtable.cpp b/src/vm/methodtable.cpp
index ad12cb6910..e138f26115 100644
--- a/src/vm/methodtable.cpp
+++ b/src/vm/methodtable.cpp
@@ -2733,13 +2733,7 @@ bool MethodTable::ClassifyEightBytesForNativeStruct(SystemVStructRegisterPassing
switch (fieldType)
{
case ELEMENT_TYPE_CHAR:
- fieldClassificationType = SystemVClassificationTypeInteger;
- break;
-
case ELEMENT_TYPE_I2:
- fieldClassificationType = SystemVClassificationTypeInteger;
- break;
-
case ELEMENT_TYPE_U2:
fieldClassificationType = SystemVClassificationTypeInteger;
break;
@@ -2757,11 +2751,9 @@ bool MethodTable::ClassifyEightBytesForNativeStruct(SystemVStructRegisterPassing
// At this point, ELEMENT_TYPE_I must be 4 bytes long. Same for ELEMENT_TYPE_U.
case ELEMENT_TYPE_I:
case ELEMENT_TYPE_I4:
- fieldClassificationType = SystemVClassificationTypeInteger;
- break;
-
case ELEMENT_TYPE_U:
case ELEMENT_TYPE_U4:
+ case ELEMENT_TYPE_PTR:
fieldClassificationType = SystemVClassificationTypeInteger;
break;
@@ -2769,10 +2761,6 @@ bool MethodTable::ClassifyEightBytesForNativeStruct(SystemVStructRegisterPassing
fieldClassificationType = SystemVClassificationTypeSSE;
break;
- case ELEMENT_TYPE_PTR:
- fieldClassificationType = SystemVClassificationTypeInteger;
- break;
-
default:
// Invalid entry.
return false; // Pass on stack.
@@ -2786,11 +2774,9 @@ bool MethodTable::ClassifyEightBytesForNativeStruct(SystemVStructRegisterPassing
// At this point, ELEMENT_TYPE_I must be 8 bytes long. Same for ELEMENT_TYPE_U.
case ELEMENT_TYPE_I:
case ELEMENT_TYPE_I8:
- fieldClassificationType = SystemVClassificationTypeInteger;
- break;
-
case ELEMENT_TYPE_U:
case ELEMENT_TYPE_U8:
+ case ELEMENT_TYPE_PTR:
fieldClassificationType = SystemVClassificationTypeInteger;
break;
@@ -2798,10 +2784,6 @@ bool MethodTable::ClassifyEightBytesForNativeStruct(SystemVStructRegisterPassing
fieldClassificationType = SystemVClassificationTypeSSE;
break;
- case ELEMENT_TYPE_PTR:
- fieldClassificationType = SystemVClassificationTypeInteger;
- break;
-
default:
// Invalid entry.
return false; // Pass on stack.
@@ -2822,54 +2804,28 @@ bool MethodTable::ClassifyEightBytesForNativeStruct(SystemVStructRegisterPassing
{
#ifdef FEATURE_COMINTEROP
case NFT_BSTR:
- // COMInterop not supported for CORECLR.
- _ASSERTE(false && "COMInterop not supported for CORECLR.");
- return false;
case NFT_HSTRING:
+ case NFT_VARIANT:
+ case NFT_VARIANTBOOL:
+ case NFT_CURRENCY:
// COMInterop not supported for CORECLR.
_ASSERTE(false && "COMInterop not supported for CORECLR.");
return false;
#endif // FEATURE_COMINTEROP
case NFT_STRINGUNI:
- fieldClassificationType = SystemVClassificationTypeInteger;
- break;
case NFT_STRINGANSI:
- fieldClassificationType = SystemVClassificationTypeInteger;
- break;
- case NFT_DELEGATE:
- return false;
-#ifdef FEATURE_COMINTEROP
- case NFT_VARIANT:
- _ASSERTE(false && "COMInterop not supported for CORECLR.");
- return false;
-#endif // FEATURE_COMINTEROP
case NFT_ANSICHAR:
- fieldClassificationType = SystemVClassificationTypeInteger;
- break;
case NFT_WINBOOL:
- fieldClassificationType = SystemVClassificationTypeInteger;
- break;
case NFT_CBOOL:
fieldClassificationType = SystemVClassificationTypeInteger;
break;
+
+ case NFT_DELEGATE:
case NFT_DECIMAL:
- return false;
case NFT_DATE:
- return false;
-#ifdef FEATURE_COMINTEROP
- case NFT_VARIANTBOOL:
- _ASSERTE(false && "COMInterop not supported for CORECLR.");
- return false;
- case NFT_CURRENCY:
- _ASSERTE(false && "COMInterop not supported for CORECLR.");
- return false;
-#endif // FEATURE_COMINTEROP
case NFT_ILLEGAL:
- return false;
case NFT_SAFEHANDLE:
- return false;
case NFT_CRITICALHANDLE:
- return false;
default:
return false;
}