diff --git a/Directory.Build.props b/Directory.Build.props index 5eeb3ed7f86822..71d6f9b9df9962 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -333,7 +333,7 @@ true - ClrFullNativeBuild;ClrRuntimeSubset;ClrJitSubset;ClrPalTestsSubset;ClrAllJitsSubset;ClrILToolsSubset;ClrNativeAotSubset;ClrSpmiSubset;ClrCrossComponentsSubset;ClrDebugSubset;HostArchitecture;PgoInstrument;NativeOptimizationDataSupported;CMakeArgs;CxxStandardLibrary;CxxStandardLibraryStatic;CxxAbiLibrary + ClrFullNativeBuild;ClrRuntimeSubset;ClrJitSubset;ClrPalTestsSubset;ClrAllJitsSubset;ClrAllJitsCommunitySubset;ClrILToolsSubset;ClrNativeAotSubset;ClrSpmiSubset;ClrCrossComponentsSubset;ClrDebugSubset;HostArchitecture;PgoInstrument;NativeOptimizationDataSupported;CMakeArgs;CxxStandardLibrary;CxxStandardLibraryStatic;CxxAbiLibrary true diff --git a/eng/Subsets.props b/eng/Subsets.props index 266add7128805c..7d5fba38d4d579 100644 --- a/eng/Subsets.props +++ b/eng/Subsets.props @@ -189,6 +189,7 @@ + @@ -289,6 +290,10 @@ $(ClrRuntimeBuildSubsets);ClrAllJitsSubset=true + + $(ClrRuntimeBuildSubsets);ClrAllJitsCommunitySubset=true + + $(ClrRuntimeBuildSubsets);ClrILToolsSubset=true diff --git a/eng/native/functions.cmake b/eng/native/functions.cmake index 2b8db967373341..2dee8bf0c50986 100644 --- a/eng/native/functions.cmake +++ b/eng/native/functions.cmake @@ -1,8 +1,8 @@ function(clr_unknown_arch) if (WIN32) - message(FATAL_ERROR "Only AMD64, ARM64, ARM and I386 hosts are supported. Found: ${CMAKE_SYSTEM_PROCESSOR}") + message(FATAL_ERROR "Only AMD64, ARM64, ARM, I386, LOONGARCH64 and RISCV64 hosts are supported. Found: ${CMAKE_SYSTEM_PROCESSOR}") elseif(CLR_CROSS_COMPONENTS_BUILD) - message(FATAL_ERROR "Only AMD64, ARM64 and I386 hosts are supported for linux cross-architecture component. Found: ${CMAKE_SYSTEM_PROCESSOR}") + message(FATAL_ERROR "Only AMD64, ARM64, I386, LOONGARCH64 and RISCV64 hosts are supported for linux cross-architecture component. Found: ${CMAKE_SYSTEM_PROCESSOR}") else() message(FATAL_ERROR "'${CMAKE_SYSTEM_PROCESSOR}' is an unsupported architecture.") endif() @@ -319,7 +319,7 @@ function(add_component componentName) else() set(componentTargetName "${componentName}") endif() - if (${ARGC} EQUAL 3 AND "${ARG2}" STREQUAL "EXCLUDE_FROM_ALL") + if (${ARGC} EQUAL 3 AND "${ARGV2}" STREQUAL "EXCLUDE_FROM_ALL") set(exclude_from_all_flag "EXCLUDE_FROM_ALL") endif() get_property(definedComponents GLOBAL PROPERTY CLR_CMAKE_COMPONENTS) diff --git a/src/coreclr/build-runtime.cmd b/src/coreclr/build-runtime.cmd index 907565de64f22c..aa8c92500e04cd 100644 --- a/src/coreclr/build-runtime.cmd +++ b/src/coreclr/build-runtime.cmd @@ -44,6 +44,8 @@ set __TargetArchX64=0 set __TargetArchX86=0 set __TargetArchArm=0 set __TargetArchArm64=0 +set __TargetArchLoongArch64=0 +set __TargetArchRiscV64=0 set __BuildTypeDebug=0 set __BuildTypeChecked=0 @@ -89,6 +91,8 @@ if /i "%1" == "-x64" (set __TargetArchX64=1&shift&goto Arg_Loop) if /i "%1" == "-x86" (set __TargetArchX86=1&shift&goto Arg_Loop) if /i "%1" == "-arm" (set __TargetArchArm=1&shift&goto Arg_Loop) if /i "%1" == "-arm64" (set __TargetArchArm64=1&shift&goto Arg_Loop) +if /i "%1" == "-loongarch64" (set __TargetArchLoongArch64=1&shift&goto Arg_Loop) +if /i "%1" == "-riscv64" (set __TargetArchRiscV64=1&shift&goto Arg_Loop) if /i "%1" == "-debug" (set __BuildTypeDebug=1&shift&goto Arg_Loop) if /i "%1" == "-checked" (set __BuildTypeChecked=1&shift&goto Arg_Loop) @@ -103,6 +107,8 @@ if /i "%1" == "x64" (set __TargetArchX64=1&shift&goto Arg_Loop) if /i "%1" == "x86" (set __TargetArchX86=1&shift&goto Arg_Loop) if /i "%1" == "arm" (set __TargetArchArm=1&shift&goto Arg_Loop) if /i "%1" == "arm64" (set __TargetArchArm64=1&shift&goto Arg_Loop) +if /i "%1" == "loongarch64" (set __TargetArchLoongArch64=1&shift&goto Arg_Loop) +if /i "%1" == "riscv64" (set __TargetArchRiscV64=1&shift&goto Arg_Loop) if /i "%1" == "debug" (set __BuildTypeDebug=1&shift&goto Arg_Loop) if /i "%1" == "checked" (set __BuildTypeChecked=1&shift&goto Arg_Loop) @@ -167,16 +173,18 @@ if defined VCINSTALLDIR ( if defined __BuildAll goto BuildAll -set /A __TotalSpecifiedTargetArch=__TargetArchX64 + __TargetArchX86 + __TargetArchArm + __TargetArchArm64 +set /A __TotalSpecifiedTargetArch=__TargetArchX64 + __TargetArchX86 + __TargetArchArm + __TargetArchArm64 + __TargetArchLoongArch64 + __TargetArchRiscV64 if %__TotalSpecifiedTargetArch% GTR 1 ( echo Error: more than one build architecture specified, but "all" not specified. goto Usage ) -if %__TargetArchX64%==1 set __TargetArch=x64 -if %__TargetArchX86%==1 set __TargetArch=x86 -if %__TargetArchArm%==1 set __TargetArch=arm -if %__TargetArchArm64%==1 set __TargetArch=arm64 +if %__TargetArchX64%==1 set __TargetArch=x64 +if %__TargetArchX86%==1 set __TargetArch=x86 +if %__TargetArchArm%==1 set __TargetArch=arm +if %__TargetArchArm64%==1 set __TargetArch=arm64 +if %__TargetArchLoongArch64%==1 set __TargetArch=loongarch64 +if %__TargetArchRiscV64%==1 set __TargetArch=riscv64 if "%__HostArch%" == "" set __HostArch=%__TargetArch% set /A __TotalSpecifiedBuildType=__BuildTypeDebug + __BuildTypeChecked + __BuildTypeRelease @@ -294,6 +302,7 @@ if NOT DEFINED PYTHON ( ) set __CMakeTarget= +set __BuildAllJitsCommunity=0 for /f "delims=" %%a in ("-%__RequestedBuildComponents%-") do ( set "string=%%a" if not "!string:-hosts-=!"=="!string!" ( @@ -305,6 +314,10 @@ for /f "delims=" %%a in ("-%__RequestedBuildComponents%-") do ( if not "!string:-alljits-=!"=="!string!" ( set __CMakeTarget=!__CMakeTarget! alljits ) + if not "!string:-alljitscommunity-=!"=="!string!" ( + set __CMakeTarget=!__CMakeTarget! alljitscommunity + set __BuildAllJitsCommunity=1 + ) if not "!string:-runtime-=!"=="!string!" ( set __CMakeTarget=!__CMakeTarget! runtime ) @@ -459,18 +472,24 @@ REM ============================================================================ set __TargetArchList= -set /A __TotalSpecifiedTargetArch=__TargetArchX64 + __TargetArchX86 + __TargetArchArm + __TargetArchArm64 +set /A __TotalSpecifiedTargetArch=__TargetArchX64 + __TargetArchX86 + __TargetArchArm + __TargetArchArm64 + __TargetArchLoongArch64 + __TargetArchRiscV64 if %__TotalSpecifiedTargetArch% EQU 0 ( REM Nothing specified means we want to build all architectures. set __TargetArchList=x64 x86 arm arm64 + + if %__BuildAllJitsCommunity%==1 ( + set __TargetArchList=%__TargetArchList% loongarch64 riscv64 + ) ) REM Otherwise, add all the specified architectures to the list. -if %__TargetArchX64%==1 set __TargetArchList=%__TargetArchList% x64 -if %__TargetArchX86%==1 set __TargetArchList=%__TargetArchList% x86 -if %__TargetArchArm%==1 set __TargetArchList=%__TargetArchList% arm -if %__TargetArchArm64%==1 set __TargetArchList=%__TargetArchList% arm64 +if %__TargetArchX64%==1 set __TargetArchList=%__TargetArchList% x64 +if %__TargetArchX86%==1 set __TargetArchList=%__TargetArchList% x86 +if %__TargetArchArm%==1 set __TargetArchList=%__TargetArchList% arm +if %__TargetArchArm64%==1 set __TargetArchList=%__TargetArchList% arm64 +if %__TargetArchLoongArch64%==1 set __TargetArchList=%__TargetArchList% loongarch64 +if %__TargetArchRiscV64%==1 set __TargetArchList=%__TargetArchList% riscv64 set __BuildTypeList= @@ -553,7 +572,7 @@ echo All arguments are optional. The options are: echo. echo.-? -h -help --help: view this message. echo -all: Builds all configurations and platforms. -echo Build architecture: one of -x64, -x86, -arm, -arm64 ^(default: -x64^). +echo Build architecture: one of -x64, -x86, -arm, -arm64, -loongarch64, -riscv64 ^(default: -x64^). echo Build type: one of -Debug, -Checked, -Release ^(default: -Debug^). echo -component ^ : specify this option one or more times to limit components built to those specified. echo Allowed ^: hosts jit alljits runtime paltests iltools nativeaot spmi diff --git a/src/coreclr/build-runtime.sh b/src/coreclr/build-runtime.sh index 2e00e9ba399ace..52fcb9ef3714cf 100755 --- a/src/coreclr/build-runtime.sh +++ b/src/coreclr/build-runtime.sh @@ -21,7 +21,7 @@ export PYTHON usage_list+=("-pgodatapath: path to profile guided optimization data.") usage_list+=("-pgoinstrument: generate instrumented code for profile guided optimization enabled binaries.") usage_list+=("-staticanalyzer: use scan_build static analyzer.") -usage_list+=("-component: Build individual components instead of the full project. Available options are 'hosts', 'jit', 'runtime', 'paltests', 'alljits', 'iltools', 'nativeaot', and 'spmi'. Can be specified multiple times.") +usage_list+=("-component: Build individual components instead of the full project. Available options are 'hosts', 'jit', 'runtime', 'paltests', 'alljits', 'alljitscommunity', 'iltools', 'nativeaot', and 'spmi'. Can be specified multiple times.") usage_list+=("-subdir: Append a directory with the provided name to the obj and bin paths.") setup_dirs_local() diff --git a/src/coreclr/gcinfo/CMakeLists.txt b/src/coreclr/gcinfo/CMakeLists.txt index cdc4ae794c8e85..9ec2ae84eb0784 100644 --- a/src/coreclr/gcinfo/CMakeLists.txt +++ b/src/coreclr/gcinfo/CMakeLists.txt @@ -66,6 +66,10 @@ endif() if (CLR_CMAKE_TARGET_ARCH_ARM64 OR CLR_CMAKE_TARGET_ARCH_AMD64) create_gcinfo_lib(TARGET gcinfo_universal_arm64 OS universal ARCH arm64) create_gcinfo_lib(TARGET gcinfo_unix_x64 OS unix ARCH x64) + if (CLR_CMAKE_BUILD_COMMUNITY_ALTJITS EQUAL 1) + create_gcinfo_lib(TARGET gcinfo_unix_loongarch64 OS unix ARCH loongarch64) + create_gcinfo_lib(TARGET gcinfo_unix_riscv64 OS unix ARCH riscv64) + endif(CLR_CMAKE_BUILD_COMMUNITY_ALTJITS EQUAL 1) create_gcinfo_lib(TARGET gcinfo_win_x64 OS win ARCH x64) endif (CLR_CMAKE_TARGET_ARCH_ARM64 OR CLR_CMAKE_TARGET_ARCH_AMD64) diff --git a/src/coreclr/inc/corinfo.h b/src/coreclr/inc/corinfo.h index 9d01304c6639d8..f3484283745de8 100644 --- a/src/coreclr/inc/corinfo.h +++ b/src/coreclr/inc/corinfo.h @@ -3351,6 +3351,17 @@ class ICorDynamicInfo : public ICorStaticInfo // #define IMAGE_REL_BASED_REL_THUMB_MOV32_PCREL 0x14 +// +// LOONGARCH64 relocation types +// +#define IMAGE_REL_LOONGARCH64_PC 0x0003 +#define IMAGE_REL_LOONGARCH64_JIR 0x0004 + +// +// RISCV64 relocation types +// +#define IMAGE_REL_RISCV64_PC 0x0003 + /**********************************************************************************/ #ifdef TARGET_64BIT #define USE_PER_FRAME_PINVOKE_INIT diff --git a/src/coreclr/inc/gcinfotypes.h b/src/coreclr/inc/gcinfotypes.h index ef33fc275fe282..b1e86ca718fd8c 100644 --- a/src/coreclr/inc/gcinfotypes.h +++ b/src/coreclr/inc/gcinfotypes.h @@ -780,8 +780,8 @@ void FASTCALL decodeCallPattern(int pattern, #define DENORMALIZE_STACK_SLOT(x) ((x)<<3) #define NORMALIZE_CODE_LENGTH(x) ((x)>>2) // All Instructions are 4 bytes long #define DENORMALIZE_CODE_LENGTH(x) ((x)<<2) -#define NORMALIZE_STACK_BASE_REGISTER(x) ((x) == 22 ? 0 : 1) // Encode Frame pointer fp=$22 as zero -#define DENORMALIZE_STACK_BASE_REGISTER(x) ((x) == 0 ? 22 : 3) +#define NORMALIZE_STACK_BASE_REGISTER(x) ((x) == 22 ? 0u : 1u) // Encode Frame pointer fp=$22 as zero +#define DENORMALIZE_STACK_BASE_REGISTER(x) ((x) == 0 ? 22u : 3u) #define NORMALIZE_SIZE_OF_STACK_AREA(x) ((x)>>3) #define DENORMALIZE_SIZE_OF_STACK_AREA(x) ((x)<<3) #define CODE_OFFSETS_NEED_NORMALIZATION 1 @@ -833,8 +833,8 @@ void FASTCALL decodeCallPattern(int pattern, #define DENORMALIZE_STACK_SLOT(x) ((x)<<3) #define NORMALIZE_CODE_LENGTH(x) ((x)>>2) // All Instructions are 4 bytes long #define DENORMALIZE_CODE_LENGTH(x) ((x)<<2) -#define NORMALIZE_STACK_BASE_REGISTER(x) ((x) == 8 ? 0 : 1) // Encode Frame pointer X8 as zero, sp/x2 as 1 -#define DENORMALIZE_STACK_BASE_REGISTER(x) ((x) == 0 ? 8 : 2) +#define NORMALIZE_STACK_BASE_REGISTER(x) ((x) == 8 ? 0u : 1u) // Encode Frame pointer X8 as zero, sp/x2 as 1 +#define DENORMALIZE_STACK_BASE_REGISTER(x) ((x) == 0 ? 8u : 2u) #define NORMALIZE_SIZE_OF_STACK_AREA(x) ((x)>>3) #define DENORMALIZE_SIZE_OF_STACK_AREA(x) ((x)<<3) #define CODE_OFFSETS_NEED_NORMALIZATION 1 diff --git a/src/coreclr/inc/palclr.h b/src/coreclr/inc/palclr.h index 98321ba87f8383..c5628a1b9eee6e 100644 --- a/src/coreclr/inc/palclr.h +++ b/src/coreclr/inc/palclr.h @@ -612,4 +612,8 @@ #define IMAGE_FILE_MACHINE_LOONGARCH64 0x6264 // LOONGARCH64. #endif +#ifndef IMAGE_FILE_MACHINE_RISCV64 +#define IMAGE_FILE_MACHINE_RISCV64 0x5064 // RISCV64. +#endif + #endif // defined(HOST_WINDOWS) diff --git a/src/coreclr/jit/CMakeLists.txt b/src/coreclr/jit/CMakeLists.txt index 58c16f5d1ccaa0..d8e56b18839c18 100644 --- a/src/coreclr/jit/CMakeLists.txt +++ b/src/coreclr/jit/CMakeLists.txt @@ -642,6 +642,10 @@ if (CLR_CMAKE_TARGET_ARCH_ARM64 OR CLR_CMAKE_TARGET_ARCH_AMD64) create_standalone_jit(TARGET clrjit_universal_arm64_${ARCH_HOST_NAME} OS universal ARCH arm64) create_standalone_jit(TARGET clrjit_unix_x64_${ARCH_HOST_NAME} OS unix_anyos ARCH x64) create_standalone_jit(TARGET clrjit_win_x64_${ARCH_HOST_NAME} OS win ARCH x64) + if (CLR_CMAKE_BUILD_COMMUNITY_ALTJITS EQUAL 1) + create_standalone_jit(TARGET clrjit_unix_loongarch64_${ARCH_HOST_NAME} OS unix ARCH loongarch64) + create_standalone_jit(TARGET clrjit_unix_riscv64_${ARCH_HOST_NAME} OS unix ARCH riscv64) + endif(CLR_CMAKE_BUILD_COMMUNITY_ALTJITS EQUAL 1) endif (CLR_CMAKE_TARGET_ARCH_ARM64 OR CLR_CMAKE_TARGET_ARCH_AMD64) if (CLR_CMAKE_TARGET_ARCH_LOONGARCH64) diff --git a/src/coreclr/jit/codegenloongarch64.cpp b/src/coreclr/jit/codegenloongarch64.cpp index f8e26e956209aa..94390a88580012 100644 --- a/src/coreclr/jit/codegenloongarch64.cpp +++ b/src/coreclr/jit/codegenloongarch64.cpp @@ -174,7 +174,7 @@ void CodeGen::genStackPointerAdjustment(ssize_t spDelta, regNumber tmpReg, bool* { // spDelta is negative in the prolog, positive in the epilog, // but we always tell the unwind codes the positive value. - ssize_t spDeltaAbs = abs(spDelta); + ssize_t spDeltaAbs = std::abs(spDelta); unsigned unwindSpDelta = (unsigned)spDeltaAbs; assert((ssize_t)unwindSpDelta == spDeltaAbs); // make sure that it fits in a unsigned @@ -2460,10 +2460,9 @@ static inline bool isImmed(GenTree* treeNode) instruction CodeGen::genGetInsForOper(GenTree* treeNode) { - var_types type = treeNode->TypeGet(); - genTreeOps oper = treeNode->OperGet(); - GenTree* op1 = treeNode->gtGetOp1(); - GenTree* op2; + var_types type = treeNode->TypeGet(); + genTreeOps oper = treeNode->OperGet(); + GenTree* op1 = treeNode->gtGetOp1(); emitAttr attr = emitActualTypeSize(treeNode); bool isImm = false; diff --git a/src/coreclr/jit/codegenriscv64.cpp b/src/coreclr/jit/codegenriscv64.cpp index 8efe6e0827125c..dd008c8286fb62 100644 --- a/src/coreclr/jit/codegenriscv64.cpp +++ b/src/coreclr/jit/codegenriscv64.cpp @@ -163,7 +163,7 @@ void CodeGen::genStackPointerAdjustment(ssize_t spDelta, regNumber tmpReg, bool* { // spDelta is negative in the prolog, positive in the epilog, // but we always tell the unwind codes the positive value. - ssize_t spDeltaAbs = abs(spDelta); + ssize_t spDeltaAbs = std::abs(spDelta); unsigned unwindSpDelta = (unsigned)spDeltaAbs; assert((ssize_t)unwindSpDelta == spDeltaAbs); // make sure that it fits in a unsigned @@ -6330,8 +6330,6 @@ void CodeGen::genIntToIntCast(GenTreeCast* cast) if ((desc.ExtendKind() != GenIntCastDesc::COPY) || (srcReg != dstReg)) { - instruction ins; - switch (desc.ExtendKind()) { case GenIntCastDesc::ZERO_EXTEND_SMALL_INT: diff --git a/src/coreclr/jit/emitloongarch64.cpp b/src/coreclr/jit/emitloongarch64.cpp index f732b353bea039..cb3292e5878249 100644 --- a/src/coreclr/jit/emitloongarch64.cpp +++ b/src/coreclr/jit/emitloongarch64.cpp @@ -2404,7 +2404,7 @@ void emitter::emitIns_Call(EmitCallType callType, // Our stack level should be always greater than the bytes of arguments we push. Just // a sanity test. - assert((unsigned)abs(argSize) <= codeGen->genStackLevel); + assert((unsigned)std::abs(argSize) <= codeGen->genStackLevel); // Trim out any callee-trashed registers from the live set. regMaskTP savedSet = emitGetGCRegsSavedOrModified(methHnd); @@ -4002,7 +4002,7 @@ void emitter::emitDisInsName(code_t code, const BYTE* addr, instrDesc* id) int tmp; instruction ins = INS_invalid; - for (int i = 1; i < INS_count; i++) + for (uint32_t i = 1; i < INS_count; i++) { if ((code & emitGetInsMask(i)) == emitInsCode((instruction)i)) { diff --git a/src/coreclr/jit/emitriscv64.cpp b/src/coreclr/jit/emitriscv64.cpp index 991c6e01d9fe5f..00a1c925620ed5 100644 --- a/src/coreclr/jit/emitriscv64.cpp +++ b/src/coreclr/jit/emitriscv64.cpp @@ -1385,7 +1385,7 @@ void emitter::emitIns_Call(EmitCallType callType, // Our stack level should be always greater than the bytes of arguments we push. Just // a sanity test. - assert((unsigned)abs(argSize) <= codeGen->genStackLevel); + assert((unsigned)std::abs(argSize) <= codeGen->genStackLevel); // Trim out any callee-trashed registers from the live set. regMaskTP savedSet = emitGetGCRegsSavedOrModified(methHnd); @@ -4573,7 +4573,7 @@ void emitter::emitDispIns( emitDispInsInstrNum(id); const BYTE* instr = pCode + writeableOffset; - size_t instrSize; + unsigned instrSize; for (size_t i = 0; i < sz; instr += instrSize, i += instrSize, offset += instrSize) { // TODO-RISCV64: support different size instructions diff --git a/src/coreclr/jit/lclvars.cpp b/src/coreclr/jit/lclvars.cpp index ad9b203b454e3b..574d70b3f7b585 100644 --- a/src/coreclr/jit/lclvars.cpp +++ b/src/coreclr/jit/lclvars.cpp @@ -863,7 +863,7 @@ void Compiler::lvaInitUserArgs(InitVarDscInfo* varDscInfo, unsigned skipArgs, un if (lowering->numLoweredElements == 1) assert(varDsc->lvExactSize() <= argSize); - cSlotsToEnregister = lowering->numLoweredElements; + cSlotsToEnregister = static_cast(lowering->numLoweredElements); argRegTypeInStruct1 = JITtype2varType(lowering->loweredElements[0]); if (lowering->numLoweredElements == 2) argRegTypeInStruct2 = JITtype2varType(lowering->loweredElements[1]); @@ -872,7 +872,7 @@ void Compiler::lvaInitUserArgs(InitVarDscInfo* varDscInfo, unsigned skipArgs, un assert(floatNum > 0); canPassArgInRegisters = varDscInfo->canEnreg(TYP_DOUBLE, floatNum); - if (canPassArgInRegisters && (floatNum < lowering->numLoweredElements)) + if (canPassArgInRegisters && ((unsigned)floatNum < lowering->numLoweredElements)) { assert(floatNum == 1); assert(lowering->numLoweredElements == 2); diff --git a/src/coreclr/jit/targetloongarch64.cpp b/src/coreclr/jit/targetloongarch64.cpp index fe98ab56d5d462..1e876d7eb5f65e 100644 --- a/src/coreclr/jit/targetloongarch64.cpp +++ b/src/coreclr/jit/targetloongarch64.cpp @@ -85,7 +85,7 @@ ABIPassingInformation LoongArch64Classifier::Classify(Compiler* comp, if (!lowering->byIntegerCallConv) { - slots = lowering->numLoweredElements; + slots = static_cast(lowering->numLoweredElements); if (lowering->numLoweredElements == 1) { canPassArgInRegisters = m_floatRegs.Count() > 0; diff --git a/src/coreclr/jit/targetriscv64.cpp b/src/coreclr/jit/targetriscv64.cpp index 3f39c9516812f2..b91420136fb754 100644 --- a/src/coreclr/jit/targetriscv64.cpp +++ b/src/coreclr/jit/targetriscv64.cpp @@ -83,7 +83,7 @@ ABIPassingInformation RiscV64Classifier::Classify(Compiler* comp, floatFields += (unsigned)varTypeIsFloating(type); INDEBUG(debugIntFields += (unsigned)varTypeIsIntegralOrI(type);) } - intFields = lowering->numLoweredElements - floatFields; + intFields = static_cast(lowering->numLoweredElements) - floatFields; assert(debugIntFields == intFields); } } diff --git a/src/coreclr/pal/inc/rt/ntimage.h b/src/coreclr/pal/inc/rt/ntimage.h index 3c7de052340495..8f88791ef51cf6 100644 --- a/src/coreclr/pal/inc/rt/ntimage.h +++ b/src/coreclr/pal/inc/rt/ntimage.h @@ -1015,17 +1015,6 @@ typedef IMAGE_RELOCATION UNALIGNED *PIMAGE_RELOCATION; #define IMAGE_REL_IA64_GPREL32 0x001C #define IMAGE_REL_IA64_ADDEND 0x001F -// -// LOONGARCH64 relocation types -// -#define IMAGE_REL_LOONGARCH64_PC 0x0003 -#define IMAGE_REL_LOONGARCH64_JIR 0x0004 - -// -// RISCV64 relocation types -// -#define IMAGE_REL_RISCV64_PC 0x0003 - // // CEF relocation types. // diff --git a/src/coreclr/runtime.proj b/src/coreclr/runtime.proj index e3b3001caa43c4..3af9a3f5a653b4 100644 --- a/src/coreclr/runtime.proj +++ b/src/coreclr/runtime.proj @@ -68,6 +68,7 @@ <_CoreClrBuildArg Condition="'$(ClrJitSubset)' == 'true'" Include="-component jit" /> <_CoreClrBuildArg Condition="'$(ClrPalTestsSubset)' == 'true'" Include="-component paltests" /> <_CoreClrBuildArg Condition="'$(ClrAllJitsSubset)' == 'true'" Include="-component alljits" /> + <_CoreClrBuildArg Condition="'$(ClrAllJitsCommunitySubset)' == 'true'" Include="-component alljits;-cmakeargs "-DCLR_CMAKE_BUILD_COMMUNITY_ALTJITS=1"" /> <_CoreClrBuildArg Condition="'$(ClrILToolsSubset)' == 'true'" Include="-component iltools" /> <_CoreClrBuildArg Condition="'$(ClrNativeAotSubset)' == 'true'" Include="-component nativeaot" /> <_CoreClrBuildArg Condition="'$(ClrSpmiSubset)' == 'true'" Include="-component spmi" />