summaryrefslogtreecommitdiff
path: root/src/vm/method.hpp
diff options
context:
space:
mode:
authorJeremy Koritzinsky <jekoritz@microsoft.com>2018-10-30 16:30:16 -0700
committerJeremy Koritzinsky <jkoritzinsky@gmail.com>2018-10-31 17:24:05 -0700
commit014a56de050a8c36f1c4ae38a84891a09d17469f (patch)
treeaa5c2a1e3d9b03470015067984dc9d07bab394a2 /src/vm/method.hpp
parentaa0d4daf1491562a6c7e6ef18f719938a0e6e4bd (diff)
downloadcoreclr-014a56de050a8c36f1c4ae38a84891a09d17469f.tar.gz
coreclr-014a56de050a8c36f1c4ae38a84891a09d17469f.tar.bz2
coreclr-014a56de050a8c36f1c4ae38a84891a09d17469f.zip
Make the check for a struct fitting in a register check for either managed or native depending on the situation (i.e. managed call, reflection, P/Invoke) instead of only for managed. Fixes #20702.
Clean up duplicate #ifdefs. Move #ifdef into method impl instead of outside the implementations. Move IsRegPassedStruct out of UNIX_AMD64_ABI #ifdef. Move check for enregistered struct out of UNIX_AMD64_ABI #ifdef Add dummy implementation of IsRegPassedStruct and IsNativeStructPassedInRegisters when UNIX_AMD64_ABI isn't defined.
Diffstat (limited to 'src/vm/method.hpp')
-rw-r--r--src/vm/method.hpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/vm/method.hpp b/src/vm/method.hpp
index 414d2a33f0..0baf2a4934 100644
--- a/src/vm/method.hpp
+++ b/src/vm/method.hpp
@@ -753,6 +753,10 @@ public:
// arguments passed in registers.
UINT SizeOfArgStack();
+ // Returns the # of bytes of stack used by arguments in a call from native to this function.
+ // Does not include arguments passed in registers.
+ UINT SizeOfNativeArgStack();
+
// Returns the # of bytes to pop after a call. Not necessary the
// same as SizeOfArgStack()!
UINT CbStackPop();