summaryrefslogtreecommitdiff
path: root/src/inc/crosscomp.h
diff options
context:
space:
mode:
authorEgor Chesakov <Egor.Chesakov@microsoft.com>2018-08-29 19:51:51 -0700
committerGitHub <noreply@github.com>2018-08-29 19:51:51 -0700
commit398caa5c90173f90bcfc8275670a1fcaa7ad6e41 (patch)
tree56a046febce6c01c2ef7991aaaae7766be57b844 /src/inc/crosscomp.h
parent8ba838fb54d6c07271d026b2d77bedcb9e2a786a (diff)
downloadcoreclr-398caa5c90173f90bcfc8275670a1fcaa7ad6e41.tar.gz
coreclr-398caa5c90173f90bcfc8275670a1fcaa7ad6e41.tar.bz2
coreclr-398caa5c90173f90bcfc8275670a1fcaa7ad6e41.zip
Define T_RUNTIME_FUNCTION in cross-bitness crossgen ARM32 (#19718)
* Allow 'Non-ARM Host managing ARM related code' scenario in src/inc/crosscomp.h * Restrict RtlUnwindEx RtlVirtualUnwind to X86 || FEATURE_PAL in src/inc/clrnt.h * Define PTR_RUNTIME_FUNCTION via T_RUNTIME_FUNCTION in src/inc/daccess.h
Diffstat (limited to 'src/inc/crosscomp.h')
-rw-r--r--src/inc/crosscomp.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/inc/crosscomp.h b/src/inc/crosscomp.h
index 14768952d8..62d1175d32 100644
--- a/src/inc/crosscomp.h
+++ b/src/inc/crosscomp.h
@@ -12,7 +12,7 @@
#define CROSSBITNESS_COMPILE
#endif
-#if defined(_X86_) && defined(_TARGET_ARM_) // Host X86 managing ARM related code
+#if !defined(_ARM_) && defined(_TARGET_ARM_) // Non-ARM Host managing ARM related code
#ifndef CROSS_COMPILE
#define CROSS_COMPILE
@@ -93,6 +93,7 @@ typedef struct DECLSPEC_ALIGN(8) _T_CONTEXT {
//
#ifndef FEATURE_PAL
+#ifdef _X86_
typedef struct _RUNTIME_FUNCTION {
DWORD BeginAddress;
DWORD UnwindData;
@@ -119,6 +120,7 @@ typedef struct _UNWIND_HISTORY_TABLE {
DWORD HighAddress;
UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE];
} UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE;
+#endif // _X86_
#endif // !FEATURE_PAL
@@ -175,8 +177,15 @@ typedef struct _T_DISPATCHER_CONTEXT {
PUCHAR NonVolatileRegisters;
} T_DISPATCHER_CONTEXT, *PT_DISPATCHER_CONTEXT;
+#if defined(FEATURE_PAL) || defined(_X86_)
#define T_RUNTIME_FUNCTION RUNTIME_FUNCTION
#define PT_RUNTIME_FUNCTION PRUNTIME_FUNCTION
+#else
+typedef struct _T_RUNTIME_FUNCTION {
+ DWORD BeginAddress;
+ DWORD UnwindData;
+} T_RUNTIME_FUNCTION, *PT_RUNTIME_FUNCTION;
+#endif
#elif defined(_AMD64_) && defined(_TARGET_ARM64_) // Host amd64 managing ARM64 related code
@@ -347,7 +356,7 @@ typedef struct _T_KNONVOLATILE_CONTEXT_POINTERS {
} T_KNONVOLATILE_CONTEXT_POINTERS, *PT_KNONVOLATILE_CONTEXT_POINTERS;
-#else // !(defined(_X86_) && defined(_TARGET_ARM_)) && !(defined(_AMD64_) && defined(_TARGET_ARM64_))
+#else
#define T_CONTEXT CONTEXT
#define PT_CONTEXT PCONTEXT