diff options
author | Bruce Forstall <Bruce_Forstall@msn.com> | 2019-01-15 14:21:48 -0800 |
---|---|---|
committer | Bruce Forstall <Bruce_Forstall@msn.com> | 2019-01-15 14:21:48 -0800 |
commit | 91cfbf46e66b6c6339c530c08053cacbb498314a (patch) | |
tree | 4f75a3ff5c6c783a3f8955d3b326b8e5e3ab1712 /tests/src/JIT/Regression/JitBlue/GitHub_21990/GitHub_21990.csproj | |
parent | c4e4036761771bdc3fad060e6ce70daa5b85fe2a (diff) | |
download | coreclr-91cfbf46e66b6c6339c530c08053cacbb498314a.tar.gz coreclr-91cfbf46e66b6c6339c530c08053cacbb498314a.tar.bz2 coreclr-91cfbf46e66b6c6339c530c08053cacbb498314a.zip |
Fix two cases of FP-relative immediate offsets not being checked for encodability
For ARM32/ARM64, the immediate offsets in addressing modes have
limited range that varies by instruction. A couple cases were not
checking for that range, leading to generating potentially
un-encodable instruction.
In particular, the test case shows a case where a very large frame in a function
with a stored generic context would fail on ARM64.
There are no code diffs from this change for ARM64, except we sometimes get
better assembly comments where the local variable referenced is annotated on
the store instruction. For ARM32, the "secret stub param" is now stored using
SP-relative addressing, not FP-relative, if possible (which we generally prefer
in main function bodies).
Diffstat (limited to 'tests/src/JIT/Regression/JitBlue/GitHub_21990/GitHub_21990.csproj')
-rw-r--r-- | tests/src/JIT/Regression/JitBlue/GitHub_21990/GitHub_21990.csproj | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/src/JIT/Regression/JitBlue/GitHub_21990/GitHub_21990.csproj b/tests/src/JIT/Regression/JitBlue/GitHub_21990/GitHub_21990.csproj new file mode 100644 index 0000000000..c46f1c3549 --- /dev/null +++ b/tests/src/JIT/Regression/JitBlue/GitHub_21990/GitHub_21990.csproj @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{2649FAFE-07BF-4F93-8120-BA9A69285ABB}</ProjectGuid> + <OutputType>Exe</OutputType> + <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> + <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> + </PropertyGroup> + <!-- Default configurations to help VS understand the configurations --> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "></PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "></PropertyGroup> + <PropertyGroup> + <LangVersion>latest</LangVersion> + <DebugType>None</DebugType> + <Optimize>True</Optimize> + </PropertyGroup> + <ItemGroup> + <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies"> + <Visible>False</Visible> + </CodeAnalysisDependentAssemblyPaths> + </ItemGroup> + <ItemGroup> + <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" /> + </ItemGroup> + <ItemGroup> + <Compile Include="$(MSBuildProjectName).cs" /> + </ItemGroup> + <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" /> + <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' "></PropertyGroup> +</Project>
\ No newline at end of file |