]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC r271597:
authordim <dim@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Thu, 18 Sep 2014 06:34:27 +0000 (06:34 +0000)
committerdim <dim@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Thu, 18 Sep 2014 06:34:27 +0000 (06:34 +0000)
commit5fca986b16679f94b691ae2371a7d81e7a6fe67f
treed4305aec018e396cadce337daee1e3fc8c8d3a9d
parent3cb4816b0cbeea8b8d99874a51a59d94b1f52c5b
MFC r271597:

Pull in r217410 from upstream llvm trunk (by Bob Wilson):

  Set trunc store action to Expand for all X86 targets.

  When compiling without SSE2, isTruncStoreLegal(F64, F32) would return
  Legal, whereas with SSE2 it would return Expand. And since the Target
  doesn't seem to actually handle a truncstore for double -> float, it
  would just output a store of a full double in the space for a float
  hence overwriting other bits on the stack.

  Patch by Luqman Aden!

This should fix clang -O0 on i386 assigning garbage to floats, in
certain scenarios.

PR: 187437
Submitted by: cebd@gmail.com
Approved by: re (marius)
Obtained from: http://llvm.org/viewvc/llvm-project?rev=217410&view=rev

git-svn-id: svn://svn.freebsd.org/base/stable/10@271739 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
contrib/llvm/lib/Target/X86/X86ISelLowering.cpp