summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt4
-rw-r--r--src/ToolBox/SOS/Strike/CMakeLists.txt9
-rw-r--r--src/binder/CMakeLists.txt4
-rw-r--r--src/classlibnative/CMakeLists.txt12
-rw-r--r--src/debug/daccess/CMakeLists.txt7
-rw-r--r--src/debug/di/CMakeLists.txt17
-rw-r--r--src/debug/ee/CMakeLists.txt7
-rw-r--r--src/debug/ee/wks/CMakeLists.txt8
-rw-r--r--src/dlls/mscoree/coreclr/CMakeLists.txt2
-rw-r--r--src/gcinfo/CMakeLists.txt7
-rw-r--r--src/inc/winwrap.h2
-rw-r--r--src/jit/CMakeLists.txt13
-rw-r--r--src/pal/tools/gen-buildsys-win.bat5
-rw-r--r--src/unwinder/CMakeLists.txt4
-rw-r--r--src/unwinder/dac/CMakeLists.txt8
-rw-r--r--src/vm/CMakeLists.txt76
-rw-r--r--src/vm/crossgen/CMakeLists.txt7
-rw-r--r--src/vm/i386/asmhelpers.asm6
-rw-r--r--src/vm/wks/CMakeLists.txt6
19 files changed, 149 insertions, 55 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index b811aed911..4520b9307c 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -5,12 +5,14 @@ include_directories("inc/winrt")
include_directories("debug/inc")
if(CLR_CMAKE_PLATFORM_ARCH_AMD64)
include_directories("debug/inc/amd64")
+elseif(CLR_CMAKE_PLATFORM_ARCH_I386)
+ include_directories("debug/inc/i386")
elseif(CLR_CMAKE_PLATFORM_ARCH_ARM)
include_directories("debug/inc/arm")
elseif(CLR_CMAKE_PLATFORM_ARCH_ARM64)
include_directories("debug/inc/arm64")
else()
- message(FATAL_ERROR "Only ARM, ARM64 and AMD64 is supported")
+ clr_unknown_arch()
endif()
include_directories("debug/inc/dump")
diff --git a/src/ToolBox/SOS/Strike/CMakeLists.txt b/src/ToolBox/SOS/Strike/CMakeLists.txt
index ce909d7989..eba017105d 100644
--- a/src/ToolBox/SOS/Strike/CMakeLists.txt
+++ b/src/ToolBox/SOS/Strike/CMakeLists.txt
@@ -3,6 +3,11 @@ if(CLR_CMAKE_PLATFORM_ARCH_AMD64)
add_definitions(-D_TARGET_WIN64_=1)
add_definitions(-DDBG_TARGET_64BIT)
add_definitions(-DDBG_TARGET_WIN64=1)
+elseif(CLR_CMAKE_PLATFORM_ARCH_I386)
+ add_definitions(-DSOS_TARGET_X86=1)
+ add_definitions(-D_TARGET_X86_=1)
+ add_definitions(-DDBG_TARGET_32BIT)
+ add_definitions(-DDBG_TARGET_WIN32=1)
elseif(CLR_CMAKE_PLATFORM_ARCH_ARM)
add_definitions(-DSOS_TARGET_ARM=1)
add_definitions(-D_TARGET_WIN32_=1)
@@ -50,6 +55,10 @@ if(WIN32)
set(SOS_SOURCES_ARCH
disasmX86.cpp
)
+ elseif(CLR_CMAKE_PLATFORM_ARCH_I386)
+ set(SOS_SOURCES_ARCH
+ disasmX86.cpp
+ )
elseif(CLR_CMAKE_PLATFORM_ARCH_ARM)
set(SOS_SOURCES_ARCH
disasmARM.cpp
diff --git a/src/binder/CMakeLists.txt b/src/binder/CMakeLists.txt
index b624d9fafa..5dbd09dac4 100644
--- a/src/binder/CMakeLists.txt
+++ b/src/binder/CMakeLists.txt
@@ -2,12 +2,14 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
if(CLR_CMAKE_PLATFORM_ARCH_AMD64)
include_directories(BEFORE "../vm/amd64")
+elseif(CLR_CMAKE_PLATFORM_ARCH_I386)
+ include_directories(BEFORE "../vm/i386")
elseif(CLR_CMAKE_PLATFORM_ARCH_ARM)
include_directories(BEFORE "../vm/arm")
elseif(CLR_CMAKE_PLATFORM_ARCH_ARM64)
include_directories(BEFORE "../vm/arm64")
else()
- message(FATAL_ERROR "Only ARM, ARM64 and AMD64 is supported")
+ clr_unknown_arch()
endif()
include_directories(BEFORE "../vm")
include_directories(BEFORE "inc")
diff --git a/src/classlibnative/CMakeLists.txt b/src/classlibnative/CMakeLists.txt
index 683506bba7..5dce8609fb 100644
--- a/src/classlibnative/CMakeLists.txt
+++ b/src/classlibnative/CMakeLists.txt
@@ -2,22 +2,26 @@ include_directories(BEFORE "../vm")
include_directories("../inc")
if(CLR_CMAKE_PLATFORM_ARCH_AMD64)
include_directories(BEFORE "../vm/amd64")
+elseif(CLR_CMAKE_PLATFORM_ARCH_I386)
+ include_directories(BEFORE "../vm/i386")
elseif(CLR_CMAKE_PLATFORM_ARCH_ARM)
include_directories(BEFORE "../vm/arm")
elseif(CLR_CMAKE_PLATFORM_ARCH_ARM64)
include_directories(BEFORE "../vm/arm64")
else()
- message(FATAL_ERROR "Only ARM, ARM64 and AMD64 is supported")
+ clr_unknown_arch()
endif()
include_directories("../debug/inc")
include_directories("../debug/inc/dump")
-#TODO for x86
-
if(CLR_CMAKE_PLATFORM_ARCH_AMD64)
add_definitions(-DDBG_TARGET_64BIT=1)
add_definitions(-DDBG_TARGET_AMD64=1)
add_definitions(-DDBG_TARGET_WIN64=1)
+elseif(CLR_CMAKE_PLATFORM_ARCH_I386)
+ add_definitions(-DDBG_TARGET_32BIT=1)
+ add_definitions(-DDBG_TARGET_X86=1)
+ add_definitions(-DDBG_TARGET_WIN32=1)
elseif(CLR_CMAKE_PLATFORM_ARCH_ARM)
add_definitions(-DDBG_TARGET_32BIT=1)
add_definitions(-DDBG_TARGET_ARM=1)
@@ -27,7 +31,7 @@ elseif(CLR_CMAKE_PLATFORM_ARCH_ARM64)
add_definitions(-DDBG_TARGET_ARM64=1)
add_definitions(-DDBG_TARGET_WIN64=1)
else()
- message(FATAL_ERROR "Only ARM, ARM64 and AMD64 is supported")
+ clr_unknown_arch()
endif()
add_subdirectory(bcltype)
diff --git a/src/debug/daccess/CMakeLists.txt b/src/debug/daccess/CMakeLists.txt
index 9a61991859..f5dbbefff8 100644
--- a/src/debug/daccess/CMakeLists.txt
+++ b/src/debug/daccess/CMakeLists.txt
@@ -9,6 +9,11 @@ if(CLR_CMAKE_PLATFORM_ARCH_AMD64)
add_definitions(-DDBG_TARGET_AMD64=1)
add_definitions(-DDBG_TARGET_WIN64=1)
add_definitions(-D_WIN64=1)
+elseif(CLR_CMAKE_PLATFORM_ARCH_I386)
+ add_definitions(-D_TARGET_X86_=1)
+ add_definitions(-DDBG_TARGET_X86=1)
+ add_definitions(-DDBG_TARGET_WIN32=1)
+ add_definitions(-D_WIN32=1)
elseif(CLR_CMAKE_PLATFORM_ARCH_ARM)
add_definitions(-D_TARGET_ARM_=1)
add_definitions(-DDBG_TARGET_32BIT=1)
@@ -22,7 +27,7 @@ elseif(CLR_CMAKE_PLATFORM_ARCH_ARM64)
add_definitions(-DDBG_TARGET_WIN64=1)
add_definitions(-D_WIN64=1)
else()
- message(FATAL_ERROR "Only ARM, ARM64 and AMD64 is supported")
+ clr_unknown_arch()
endif()
include_directories(BEFORE ${VM_DIR})
diff --git a/src/debug/di/CMakeLists.txt b/src/debug/di/CMakeLists.txt
index 1c9125adce..17b737107d 100644
--- a/src/debug/di/CMakeLists.txt
+++ b/src/debug/di/CMakeLists.txt
@@ -3,6 +3,11 @@ if(CLR_CMAKE_PLATFORM_ARCH_AMD64)
add_definitions(-DDBG_TARGET_64BIT)
add_definitions(-DDBG_TARGET_WIN64=1)
add_definitions(-DDBG_TARGET_AMD64=1)
+elseif(CLR_CMAKE_PLATFORM_ARCH_I386)
+ add_definitions(-D_TARGET_X86_=1)
+ add_definitions(-DDBG_TARGET_32BIT)
+ add_definitions(-DDBG_TARGET_WIN32=1)
+ add_definitions(-DDBG_TARGET_X86=1)
elseif(CLR_CMAKE_PLATFORM_ARCH_ARM)
add_definitions(-D_TARGET_WIN32_=1)
add_definitions(-DDBG_TARGET_32BIT)
@@ -14,7 +19,7 @@ elseif(CLR_CMAKE_PLATFORM_ARCH_ARM64)
add_definitions(-DDBG_TARGET_WIN64=1)
add_definitions(-DDBG_TARGET_ARM64=1)
else()
- message(FATAL_ERROR "Only ARM, ARM64 and AMD64 is supported")
+ clr_unknown_arch()
endif()
add_definitions(-DFEATURE_METADATA_CUSTOM_DATA_SOURCE -DFEATURE_METADATA_DEBUGGEE_DATA_SOURCE -DFEATURE_NO_HOST -DFEATURE_METADATA_LOAD_TRUSTED_IMAGES)
@@ -53,10 +58,12 @@ if(WIN32)
#use static crt
add_definitions(-MT)
- set(CORDBDI_SOURCES
- ${CORDBDI_SOURCES}
- amd64/floatconversion.asm
- )
+ if (CLR_CMAKE_PLATFORM_ARCH_AMD64)
+ set(CORDBDI_SOURCES
+ ${CORDBDI_SOURCES}
+ amd64/floatconversion.asm
+ )
+ endif()
elseif(CLR_CMAKE_PLATFORM_UNIX)
add_compile_options(-fPIC)
diff --git a/src/debug/ee/CMakeLists.txt b/src/debug/ee/CMakeLists.txt
index 66eb054b1d..1f27403c06 100644
--- a/src/debug/ee/CMakeLists.txt
+++ b/src/debug/ee/CMakeLists.txt
@@ -7,6 +7,11 @@ if(CLR_CMAKE_PLATFORM_ARCH_AMD64)
add_definitions(-DDBG_TARGET_64BIT=1)
add_definitions(-DDBG_TARGET_AMD64=1)
add_definitions(-DDBG_TARGET_WIN64=1)
+elseif(CLR_CMAKE_PLATFORM_ARCH_I386)
+ add_definitions(-D_TARGET_X86_=1)
+ add_definitions(-DDBG_TARGET_32BIT=1)
+ add_definitions(-DDBG_TARGET_X86=1)
+ add_definitions(-DDBG_TARGET_WIN32=1)
elseif(CLR_CMAKE_PLATFORM_ARCH_ARM)
add_definitions(-D_TARGET_ARM_=1)
add_definitions(-DDBG_TARGET_32BIT=1)
@@ -18,7 +23,7 @@ elseif(CLR_CMAKE_PLATFORM_ARCH_ARM64)
add_definitions(-DDBG_TARGET_ARM64=1)
add_definitions(-DDBG_TARGET_WIN64=1)
else()
- message(FATAL_ERROR "Only ARM, ARM64 and AMD64 is supported")
+ clr_unknown_arch()
endif()
diff --git a/src/debug/ee/wks/CMakeLists.txt b/src/debug/ee/wks/CMakeLists.txt
index e8ad205fce..835895ce47 100644
--- a/src/debug/ee/wks/CMakeLists.txt
+++ b/src/debug/ee/wks/CMakeLists.txt
@@ -3,18 +3,12 @@ if (WIN32)
add_precompiled_header(stdafx.h ../stdafx.cpp CORDBEE_SOURCES_WKS)
-if (IS_64BIT_BUILD EQUAL 1)
- FIND_PROGRAM(ASM_COMPILER ml64.exe)
-else ()
- FIND_PROGRAM(ASM_COMPILER ml.exe)
-endif (IS_64BIT_BUILD EQUAL 1)
-
get_include_directories(ASM_INCLUDE_DIRECTORIES)
get_compile_definitions(ASM_DEFINITIONS)
# Need to compile asm file using custom command as include directories are not provided to asm compiler
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/dbghelpers.obj
- COMMAND ${ASM_COMPILER} ${ASM_INCLUDE_DIRECTORIES} ${ASM_DEFINITIONS} /c /Zi /Fo${CMAKE_CURRENT_BINARY_DIR}/dbghelpers.obj /W3 /errorReport:prompt /Ta${CORDBEE_DIR}/${ARCH_SOURCES_DIR}/dbghelpers.asm
+ COMMAND ${CMAKE_ASM_MASM_COMPILER} ${ASM_INCLUDE_DIRECTORIES} ${ASM_DEFINITIONS} /c /Zi /Fo${CMAKE_CURRENT_BINARY_DIR}/dbghelpers.obj /W3 /errorReport:prompt /Ta${CORDBEE_DIR}/${ARCH_SOURCES_DIR}/dbghelpers.asm
DEPENDS ${CORDBEE_DIR}/${ARCH_SOURCES_DIR}/dbghelpers.asm
COMMENT "Compiling dbghelpers.asm")
diff --git a/src/dlls/mscoree/coreclr/CMakeLists.txt b/src/dlls/mscoree/coreclr/CMakeLists.txt
index d6653a03e3..3364e7350e 100644
--- a/src/dlls/mscoree/coreclr/CMakeLists.txt
+++ b/src/dlls/mscoree/coreclr/CMakeLists.txt
@@ -122,7 +122,7 @@ if(WIN32)
# Add dac table & debug resource to coreclr
get_include_directories(INC_DIR)
get_compile_definitions(PREPROCESS_DEFINITIONS)
- list(APPEND INC_DIR -I${CLR_DIR}/src/vm -I${CLR_DIR}/src/vm/amd64 -I${CLR_DIR}/src/debug/ee -I${CLR_DIR}/src/gc)
+ list(APPEND INC_DIR -I${CLR_DIR}/src/vm -I${CLR_DIR}/src/vm/${ARCH_SOURCES_DIR} -I${CLR_DIR}/src/debug/ee -I${CLR_DIR}/src/gc)
list(APPEND PREPROCESS_DEFINITIONS -DDACCESS_COMPILE -DDBG_TARGET_64BIT=1 -DDBG_TARGET_WIN64=1 -DDBG_TARGET_AMD64=1)
add_custom_command(TARGET coreclr
POST_BUILD
diff --git a/src/gcinfo/CMakeLists.txt b/src/gcinfo/CMakeLists.txt
index 0093815b8a..5a872c811d 100644
--- a/src/gcinfo/CMakeLists.txt
+++ b/src/gcinfo/CMakeLists.txt
@@ -6,6 +6,13 @@ set( GCINFO_SOURCES
dbggcinfoencoder.cpp
)
+if(CLR_CMAKE_PLATFORM_ARCH_I386)
+ list(APPEND GCINFO_SOURCES
+ ../gcdump/gcdump.cpp
+ ../gcdump/i386/gcdumpx86.cpp
+ )
+endif(CLR_CMAKE_PLATFORM_ARCH_I386)
+
convert_to_absolute_path(GCINFO_SOURCES ${GCINFO_SOURCES})
if(CLR_CMAKE_PLATFORM_UNIX)
diff --git a/src/inc/winwrap.h b/src/inc/winwrap.h
index 0f61f47bd2..a670a51de0 100644
--- a/src/inc/winwrap.h
+++ b/src/inc/winwrap.h
@@ -849,7 +849,7 @@ InterlockedCompareExchangePointer (
#define InterlockedCompareExchangeRelease _InterlockedCompareExchange_rel
#endif
-#if defined(_X86_)
+#if defined(_X86_) & !defined(InterlockedIncrement64)
// Interlockedxxx64 that do not have intrinsics are only supported on Windows Server 2003
// or higher for X86 so define our own portable implementation
diff --git a/src/jit/CMakeLists.txt b/src/jit/CMakeLists.txt
index 96f11b760a..e9f84e0728 100644
--- a/src/jit/CMakeLists.txt
+++ b/src/jit/CMakeLists.txt
@@ -7,9 +7,9 @@ include_directories("../inc")
# add_definitions(-DALT_JIT)
if (WIN32)
-if (IS_64BIT_BUILD EQUAL 1)
+if (CLR_CMAKE_PLATFORM_ARCH_AMD64)
add_definitions(-DFEATURE_SIMD -DFEATURE_AVX_SUPPORT)
-endif (IS_64BIT_BUILD EQUAL 1)
+endif (CLR_CMAKE_PLATFORM_ARCH_AMD64)
endif (WIN32)
set( JIT_SOURCES
@@ -79,6 +79,13 @@ elseif(CLR_CMAKE_PLATFORM_ARCH_ARM)
codegenarm.cpp
unwindarm.cpp
)
+elseif(CLR_CMAKE_PLATFORM_ARCH_I386)
+ set( ARCH_SOURCES
+ emitxarch.cpp
+ targetx86.cpp
+ lowerxarch.cpp
+ codegenxarch.cpp
+ )
elseif(CLR_CMAKE_PLATFORM_ARCH_ARM64)
set( ARCH_SOURCES
codegenarm64.cpp
@@ -89,7 +96,7 @@ elseif(CLR_CMAKE_PLATFORM_ARCH_ARM64)
unwindarm64.cpp
)
else()
- message(FATAL_ERROR "Only ARM, ARM64 and AMD64 is supported")
+ clr_unknown_arch()
endif()
set( SOURCES
diff --git a/src/pal/tools/gen-buildsys-win.bat b/src/pal/tools/gen-buildsys-win.bat
index 56b22f221f..2d0057e78d 100644
--- a/src/pal/tools/gen-buildsys-win.bat
+++ b/src/pal/tools/gen-buildsys-win.bat
@@ -5,7 +5,7 @@ rem This file invokes cmake and generates the build system for windows.
set argC=0
for %%x in (%*) do Set /A argC+=1
-if NOT %argC%==2 GOTO :USAGE
+if NOT %argC%==3 GOTO :USAGE
if %1=="/?" GOTO :USAGE
setlocal
@@ -17,6 +17,7 @@ if %basePath:~-1%==\ set "basePath=%basePath:~0,-1%"
set __VSString=12 2013
if /i "%2" == "vs2015" (set __VSString=14 2015)
+if /i "%3" == "x64" (set __VSString=%__VSString% Win64)
if defined CMakePath goto DoGen
@@ -24,7 +25,7 @@ if defined CMakePath goto DoGen
for /f "delims=" %%a in ('powershell -NoProfile -ExecutionPolicy RemoteSigned "& .\probe-win.ps1"') do %%a
:DoGen
-"%CMakePath%" "-DCMAKE_USER_MAKE_RULES_OVERRIDE=%basePath%\windows-compiler-override.txt" -G "Visual Studio %__VSString% Win64" %1
+"%CMakePath%" "-DCMAKE_USER_MAKE_RULES_OVERRIDE=%basePath%\windows-compiler-override.txt" "-DCLR_CMAKE_TARGET_ARCH=%3" -G "Visual Studio %__VSString%" %1
endlocal
GOTO :DONE
diff --git a/src/unwinder/CMakeLists.txt b/src/unwinder/CMakeLists.txt
index 86c935a578..3f81ebcccc 100644
--- a/src/unwinder/CMakeLists.txt
+++ b/src/unwinder/CMakeLists.txt
@@ -17,6 +17,8 @@ if(CLR_CMAKE_PLATFORM_ARCH_AMD64)
list(APPEND UNWINDER_SOURCES
amd64/unwinder_amd64.cpp
)
+elseif(CLR_CMAKE_PLATFORM_ARCH_I386)
+# nothing needed for x86
elseif(CLR_CMAKE_PLATFORM_ARCH_ARM)
include_directories(arm)
@@ -30,7 +32,7 @@ elseif(CLR_CMAKE_PLATFORM_ARCH_ARM64)
arm64/unwinder_arm64.cpp
)
else()
- message(FATAL_ERROR "Only ARM, ARM64 and AMD64 is supported")
+ clr_unknown_arch()
endif()
convert_to_absolute_path(UNWINDER_SOURCES ${UNWINDER_SOURCES})
diff --git a/src/unwinder/dac/CMakeLists.txt b/src/unwinder/dac/CMakeLists.txt
index 75d7050c6f..55c9199c7e 100644
--- a/src/unwinder/dac/CMakeLists.txt
+++ b/src/unwinder/dac/CMakeLists.txt
@@ -8,6 +8,12 @@ if(CLR_CMAKE_PLATFORM_ARCH_AMD64)
add_definitions(-DDBG_TARGET_AMD64=1)
add_definitions(-DDBG_TARGET_WIN64=1)
add_definitions(-D_WIN64=1)
+elseif(CLR_CMAKE_PLATFORM_ARCH_I386)
+ add_definitions(-D_TARGET_X86_=1)
+ add_definitions(-DDBG_TARGET_32BIT=1)
+ add_definitions(-DDBG_TARGET_X86=1)
+ add_definitions(-DDBG_TARGET_WIN32=1)
+ add_definitions(-D_WIN32=1)
elseif(CLR_CMAKE_PLATFORM_ARCH_ARM)
add_definitions(-D_TARGET_ARM_=1)
add_definitions(-DDBG_TARGET_32BIT=1)
@@ -21,7 +27,7 @@ elseif(CLR_CMAKE_PLATFORM_ARCH_ARM64)
add_definitions(-DDBG_TARGET_WIN64=1)
add_definitions(-D_WIN64=1)
else()
- message(FATAL_ERROR "Only ARM, ARM64 and AMD64 is supported")
+ clr_unknown_arch()
endif()
add_library(unwinder_dac ${UNWINDER_SOURCES})
diff --git a/src/vm/CMakeLists.txt b/src/vm/CMakeLists.txt
index 9e5569f1f8..a214976cdd 100644
--- a/src/vm/CMakeLists.txt
+++ b/src/vm/CMakeLists.txt
@@ -10,6 +10,11 @@ if(CLR_CMAKE_PLATFORM_ARCH_AMD64)
add_definitions(-DDBG_TARGET_64BIT=1)
add_definitions(-DDBG_TARGET_AMD64=1)
add_definitions(-DDBG_TARGET_WIN64=1)
+elseif(CLR_CMAKE_PLATFORM_ARCH_I386)
+ add_definitions(-D_TARGET_X86_=1)
+ add_definitions(-DDBG_TARGET_32BIT=1)
+ add_definitions(-DDBG_TARGET_X86=1)
+ add_definitions(-DDBG_TARGET_WIN32=1)
elseif(CLR_CMAKE_PLATFORM_ARCH_ARM)
add_definitions(-D_TARGET_ARM_=1)
add_definitions(-DDBG_TARGET_32BIT=1)
@@ -21,7 +26,7 @@ elseif(CLR_CMAKE_PLATFORM_ARCH_ARM64)
add_definitions(-DDBG_TARGET_ARM64=1)
add_definitions(-DDBG_TARGET_WIN64=1)
else()
- message(FATAL_ERROR "Only ARM, ARM64 and AMD64 is supported")
+ clr_unknown_arch()
endif()
include_directories(${ARCH_SOURCES_DIR})
@@ -312,29 +317,38 @@ list(APPEND VM_SOURCES_DAC
clrprivtypecachewinrt.cpp
)
-# AMD64 specific asm sources
-set(VM_SOURCES_WKS_ARCH_ASM
- ${ARCH_SOURCES_DIR}/AsmHelpers.asm
- ${ARCH_SOURCES_DIR}/CallDescrWorkerAMD64.asm
- ${ARCH_SOURCES_DIR}/ComCallPreStub.asm
- ${ARCH_SOURCES_DIR}/CrtHelpers.asm
- ${ARCH_SOURCES_DIR}/GenericComCallStubs.asm
- ${ARCH_SOURCES_DIR}/GenericComPlusCallStubs.asm
- ${ARCH_SOURCES_DIR}/getstate.asm
- ${ARCH_SOURCES_DIR}/InstantiatingStub.asm
- ${ARCH_SOURCES_DIR}/JitHelpers_Fast.asm
- ${ARCH_SOURCES_DIR}/JitHelpers_FastWriteBarriers.asm
- ${ARCH_SOURCES_DIR}/JitHelpers_InlineGetAppDomain.asm
- ${ARCH_SOURCES_DIR}/JitHelpers_InlineGetThread.asm
- ${ARCH_SOURCES_DIR}/JitHelpers_Slow.asm
- ${ARCH_SOURCES_DIR}/PInvokeStubs.asm
- ${ARCH_SOURCES_DIR}/RedirectedHandledJITCase.asm
- ${ARCH_SOURCES_DIR}/ThePreStubAMD64.asm
- ${ARCH_SOURCES_DIR}/ExternalMethodFixupThunk.asm
- ${ARCH_SOURCES_DIR}/TlsGetters.asm # Condition="'$(FeatureImplicitTls)' != 'true'
- ${ARCH_SOURCES_DIR}/UMThunkStub.asm
- ${ARCH_SOURCES_DIR}/VirtualCallStubAMD64.asm
-)
+if(CLR_CMAKE_PLATFORM_ARCH_AMD64)
+ set(VM_SOURCES_WKS_ARCH_ASM
+ ${ARCH_SOURCES_DIR}/AsmHelpers.asm
+ ${ARCH_SOURCES_DIR}/CallDescrWorkerAMD64.asm
+ ${ARCH_SOURCES_DIR}/ComCallPreStub.asm
+ ${ARCH_SOURCES_DIR}/CrtHelpers.asm
+ ${ARCH_SOURCES_DIR}/GenericComCallStubs.asm
+ ${ARCH_SOURCES_DIR}/GenericComPlusCallStubs.asm
+ ${ARCH_SOURCES_DIR}/getstate.asm
+ ${ARCH_SOURCES_DIR}/InstantiatingStub.asm
+ ${ARCH_SOURCES_DIR}/JitHelpers_Fast.asm
+ ${ARCH_SOURCES_DIR}/JitHelpers_FastWriteBarriers.asm
+ ${ARCH_SOURCES_DIR}/JitHelpers_InlineGetAppDomain.asm
+ ${ARCH_SOURCES_DIR}/JitHelpers_InlineGetThread.asm
+ ${ARCH_SOURCES_DIR}/JitHelpers_Slow.asm
+ ${ARCH_SOURCES_DIR}/PInvokeStubs.asm
+ ${ARCH_SOURCES_DIR}/RedirectedHandledJITCase.asm
+ ${ARCH_SOURCES_DIR}/ThePreStubAMD64.asm
+ ${ARCH_SOURCES_DIR}/ExternalMethodFixupThunk.asm
+ ${ARCH_SOURCES_DIR}/TlsGetters.asm # Condition="'$(FeatureImplicitTls)' != 'true'
+ ${ARCH_SOURCES_DIR}/UMThunkStub.asm
+ ${ARCH_SOURCES_DIR}/VirtualCallStubAMD64.asm
+ )
+elseif(CLR_CMAKE_PLATFORM_ARCH_I386)
+ set(VM_SOURCES_WKS_ARCH_ASM
+ ${ARCH_SOURCES_DIR}/RedirectedHandledJITCase.asm
+ ${ARCH_SOURCES_DIR}/asmhelpers.asm
+ ${ARCH_SOURCES_DIR}/fptext.asm
+ ${ARCH_SOURCES_DIR}/gmsasm.asm
+ ${ARCH_SOURCES_DIR}/jithelp.asm
+ )
+endif()
else()
@@ -386,6 +400,20 @@ if(CLR_CMAKE_PLATFORM_ARCH_AMD64)
${ARCH_SOURCES_DIR}/profiler.cpp
jitinterfacegen.cpp
)
+elseif(CLR_CMAKE_PLATFORM_ARCH_I386)
+ set(VM_SOURCES_DAC_AND_WKS_ARCH
+ exinfo.cpp
+ ${ARCH_SOURCES_DIR}/cgenx86.cpp
+ ${ARCH_SOURCES_DIR}/excepx86.cpp
+ ${ARCH_SOURCES_DIR}/gmsx86.cpp
+ ${ARCH_SOURCES_DIR}/stublinkerx86.cpp
+ )
+
+ set(VM_SOURCES_WKS_ARCH
+ ${ARCH_SOURCES_DIR}/jithelp.asm
+ ${ARCH_SOURCES_DIR}/jitinterfacex86.cpp
+ ${ARCH_SOURCES_DIR}/profiler.cpp
+ )
elseif(CLR_CMAKE_PLATFORM_ARCH_ARM)
set(VM_SOURCES_DAC_AND_WKS_ARCH
${ARCH_SOURCES_DIR}/exceparm.cpp
diff --git a/src/vm/crossgen/CMakeLists.txt b/src/vm/crossgen/CMakeLists.txt
index c27cb82831..e1fb8c7ef6 100644
--- a/src/vm/crossgen/CMakeLists.txt
+++ b/src/vm/crossgen/CMakeLists.txt
@@ -109,6 +109,11 @@ if(CLR_CMAKE_PLATFORM_ARCH_AMD64)
list(APPEND VM_CROSSGEN_SOURCES
../amd64/stublinkeramd64.cpp
)
+elseif(CLR_CMAKE_PLATFORM_ARCH_I386)
+ include_directories(../i386)
+ list(APPEND VM_CROSSGEN_SOURCES
+ ../i386/stublinkerx86.cpp
+ )
elseif(CLR_CMAKE_PLATFORM_ARCH_ARM)
include_directories(../arm)
list(APPEND VM_CROSSGEN_SOURCES
@@ -120,7 +125,7 @@ elseif(CLR_CMAKE_PLATFORM_ARCH_ARM64)
../arm64/stubs.cpp
)
else()
- message(FATAL_ERROR "Only ARM, ARM64 and AMD64 is supported")
+ clr_unknown_arch()
endif()
if (WIN32)
diff --git a/src/vm/i386/asmhelpers.asm b/src/vm/i386/asmhelpers.asm
index 782fcd8f82..4c7d6aab3b 100644
--- a/src/vm/i386/asmhelpers.asm
+++ b/src/vm/i386/asmhelpers.asm
@@ -118,6 +118,11 @@ EXTERN @ProfileEnter@8:PROC
EXTERN @ProfileLeave@8:PROC
EXTERN @ProfileTailcall@8:PROC
+UNREFERENCED macro arg
+ local unref
+ unref equ size arg
+endm
+
FASTCALL_FUNC macro FuncName,cbArgs
FuncNameReal EQU @&FuncName&@&cbArgs
FuncNameReal proc public
@@ -1236,6 +1241,7 @@ UM2MThunk_WrapperHelper proc stdcall public,
pAddr : DWORD,
pEntryThunk : DWORD,
pThread : DWORD
+ UNREFERENCED argLen
push ebx
diff --git a/src/vm/wks/CMakeLists.txt b/src/vm/wks/CMakeLists.txt
index b4c091cd5f..06cf425dc6 100644
--- a/src/vm/wks/CMakeLists.txt
+++ b/src/vm/wks/CMakeLists.txt
@@ -35,6 +35,10 @@ foreach(CONFIG IN LISTS CMAKE_CONFIGURATION_TYPES)
set_property(SOURCE ${VM_SOURCES_WKS_ARCH_ASM} PROPERTY COMPILE_DEFINITIONS_${CONFIG} ${ASM_DEFINITIONS_${CONFIG}})
endforeach()
+if (CLR_CMAKE_PLATFORM_ARCH_I386)
+ set_source_files_properties(${VM_SOURCES_WKS_ARCH_ASM} PROPERTIES COMPILE_FLAGS "/Zm")
+endif (CLR_CMAKE_PLATFORM_ARCH_I386)
+
# Convert AsmConstants.h into AsmConstants.inc
find_program(POWERSHELL powershell)
if (POWERSHELL STREQUAL "POWERSHELL-NOTFOUND")
@@ -44,7 +48,7 @@ endif()
add_custom_command(
# The AsmConstants.inc will be built in the pre-build phase of the cee_wks build
TARGET cee_wks PRE_BUILD
- COMMAND ${POWERSHELL} -NoProfile -ExecutionPolicy Bypass \"& \"\"${VM_DIR}/h2inc.ps1\"\"\" \"\"\"${VM_DIR}/amd64/asmconstants.h\"\"\" >"${CMAKE_CURRENT_BINARY_DIR}/AsmConstants.tmp"
+ COMMAND ${POWERSHELL} -NoProfile -ExecutionPolicy Bypass \"& \"\"${VM_DIR}/h2inc.ps1\"\"\" \"\"\"${VM_DIR}/${ARCH_SOURCES_DIR}/asmconstants.h\"\"\" >"${CMAKE_CURRENT_BINARY_DIR}/AsmConstants.tmp"
COMMAND ${CMAKE_CXX_COMPILER} ${DEFINITIONS} /EP "${CMAKE_CURRENT_BINARY_DIR}/AsmConstants.tmp" >"${CMAKE_CURRENT_BINARY_DIR}/AsmConstants.inc"
)