summaryrefslogtreecommitdiff
path: root/src/vm/jithelpers.cpp
diff options
context:
space:
mode:
authorAndy Ayers <andya@microsoft.com>2018-01-05 17:47:09 -0800
committerGitHub <noreply@github.com>2018-01-05 17:47:09 -0800
commit16246c9117aa456eb0786d4e23e827dce585b6c0 (patch)
tree7aeb5a771bb881fcffd0fd3df9c45db9fe72ecdd /src/vm/jithelpers.cpp
parent5f4510d4db515b49015a961d335facd3e59b8614 (diff)
downloadcoreclr-16246c9117aa456eb0786d4e23e827dce585b6c0.tar.gz
coreclr-16246c9117aa456eb0786d4e23e827dce585b6c0.tar.bz2
coreclr-16246c9117aa456eb0786d4e23e827dce585b6c0.zip
JIT: fix decompose long left shift for overshift cases (#15704)
Need to reduce the shift amount modulo 64 to match the helper and `gtFoldExpr` behavior. Since reduced amount must be less than 64 we can remove handling for that case. Also updating the arm LLSH helper. Re-enable the test case disabled by #15567 and also enable for arm/arm64. Closes #15566.
Diffstat (limited to 'src/vm/jithelpers.cpp')
-rw-r--r--src/vm/jithelpers.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/vm/jithelpers.cpp b/src/vm/jithelpers.cpp
index dda73f2018..12f110c8e9 100644
--- a/src/vm/jithelpers.cpp
+++ b/src/vm/jithelpers.cpp
@@ -456,7 +456,7 @@ HCIMPLEND
HCIMPL2_VV(UINT64, JIT_LLsh, UINT64 num, int shift)
{
FCALL_CONTRACT;
- return num << shift;
+ return num << (shift & 0x3F);
}
HCIMPLEND