<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emscripten-fastcomp/lib/Target/X86, branch master</title>
<subtitle>LLVM with the emscripten fastcomp javascript backend</subtitle>
<id>https://git.amat.us/emscripten-fastcomp/atom/lib/Target/X86?h=master</id>
<link rel='self' href='https://git.amat.us/emscripten-fastcomp/atom/lib/Target/X86?h=master'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/'/>
<updated>2013-10-11T22:27:57Z</updated>
<entry>
<title>Cherry-pick LLVM 187787 to prevent tail calls on x86-32 when not appropriate.</title>
<updated>2013-10-11T22:27:57Z</updated>
<author>
<name>Jan Voung</name>
<email>jvoung@chromium.org</email>
</author>
<published>2013-10-11T22:27:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=c036ceaa8225a23a795b50144b1da4b883e984a3'/>
<id>urn:sha1:c036ceaa8225a23a795b50144b1da4b883e984a3</id>
<content type='text'>
See:
http://llvm.org/viewvc/llvm-project?view=revision&amp;revision=187787

The newer version of newlib tickles this x86-32 bug
when building the exception handling tests, which don't
strip the "tail" attribute.

BUG=https://code.google.com/p/nativeclient/issues/detail?id=3702

Waiting on trybots, but it seems to have fixed the minimal
reproducer I have:
http://chromegw.corp.google.com/i/tryserver.nacl/builders/nacl-toolchain-linux-pnacl-x86_64/builds/922
http://chromegw.corp.google.com/i/tryserver.nacl/builders/nacl-toolchain-linux-pnacl-x86_32/builds/870
http://chromegw.corp.google.com/i/tryserver.nacl/builders/nacl-toolchain-mac-pnacl-x86_32/builds/875

R=jfb@chromium.org

Review URL: https://codereview.chromium.org/26538008
</content>
</entry>
<entry>
<title>Hide the x86-64 sandbox base address.</title>
<updated>2013-07-24T16:40:15Z</updated>
<author>
<name>Jim Stichnoth</name>
<email>stichnot@chromium.org</email>
</author>
<published>2013-07-24T16:40:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=4499aac2b3679e7e0f69649b99f9b96c2c03dc4f'/>
<id>urn:sha1:4499aac2b3679e7e0f69649b99f9b96c2c03dc4f</id>
<content type='text'>
Prevent sandbox addresses from being written to the stack.  This
covers the following cases:

1. Function calls manually push a masked return address and jump to
the target, rather than using the call instruction.

2. When the function prolog chooses to use a frame pointer (rbp), it
saves a masked version of the old rbp.

3. Indirect branches (jumps, calls, and returns) uniformly use r11 to
construct the 64-bit target address.

4. Register r11 is marked as reserved (similar to r15) so that the
register allocator won't inadvertently spill a code address to the
stack.

These transformations can be disabled for performance testing with the
flag "-sfi-hide-sandbox-base=false".

BUG= https://code.google.com/p/nativeclient/issues/detail?id=1235
R=eliben@chromium.org, mseaborn@chromium.org

Review URL: https://codereview.chromium.org/19505003
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'origin/master'</title>
<updated>2013-07-19T01:00:27Z</updated>
<author>
<name>Eli Bendersky</name>
<email>eliben@chromium.org</email>
</author>
<published>2013-07-19T01:00:27Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=4412ea4b8e019d00dc7574fe1723eea0473a8ec1'/>
<id>urn:sha1:4412ea4b8e019d00dc7574fe1723eea0473a8ec1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Correctly adjust LOCALMOD for x64 frame register computation.</title>
<updated>2013-07-18T21:05:59Z</updated>
<author>
<name>Eli Bendersky</name>
<email>eliben@chromium.org</email>
</author>
<published>2013-07-18T21:05:59Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=2f53fcde24359c48fe8b0138b91adee84f6b0853'/>
<id>urn:sha1:2f53fcde24359c48fe8b0138b91adee84f6b0853</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Disallow a global address in the x86-64 displacement field.</title>
<updated>2013-07-17T19:13:48Z</updated>
<author>
<name>Jim Stichnoth</name>
<email>stichnot@chromium.org</email>
</author>
<published>2013-07-17T19:13:48Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=cc8deaf49f79eb22c4edc8c0f44ef64668b3be4a'/>
<id>urn:sha1:cc8deaf49f79eb22c4edc8c0f44ef64668b3be4a</id>
<content type='text'>
This applies only to %r15 sandboxed memory references.  The problem
is that if the index register is negative, the sandboxing operation
will cause the index to become a large positive 32-bit value, which
combined with the displacement, will overflow and try to reference
memory outside the sandbox.  This situation may legitimately occur
if the compiler happens to construct a (constant) interior pointer
to the middle of the global struct/array, and then dereferences it
with a variable offset.

After this fix, pnacl/scripts/testsuite_known_failures_pnacl.txt can
be updated to remove the "aha x86-64" known failure.

BUG= https://code.google.com/p/nativeclient/issues/detail?id=3517
R=eliben@chromium.org

Review URL: https://codereview.chromium.org/17987002
</content>
</entry>
<entry>
<title>More tests pass</title>
<updated>2013-07-16T22:17:03Z</updated>
<author>
<name>Eli Bendersky</name>
<email>eliben@chromium.org</email>
</author>
<published>2013-07-16T22:17:03Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=63fd1346bd726d2561c5272dfd8c4baa7ab52afb'/>
<id>urn:sha1:63fd1346bd726d2561c5272dfd8c4baa7ab52afb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make it compile</title>
<updated>2013-07-16T17:52:19Z</updated>
<author>
<name>Eli Bendersky</name>
<email>eliben@chromium.org</email>
</author>
<published>2013-07-16T17:52:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=89671101b88b575278760d3dda29571e4fc5ced0'/>
<id>urn:sha1:89671101b88b575278760d3dda29571e4fc5ced0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge commit '7dfcb84fc16b3bf6b2379713b53090757f0a45f9'</title>
<updated>2013-07-15T23:09:15Z</updated>
<author>
<name>Eli Bendersky</name>
<email>eliben@chromium.org</email>
</author>
<published>2013-07-15T23:09:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=c6cf05cb5108f356dde97c01ee4188b0671d4542'/>
<id>urn:sha1:c6cf05cb5108f356dde97c01ee4188b0671d4542</id>
<content type='text'>
Conflicts:
	docs/LangRef.rst
	include/llvm/CodeGen/CallingConvLower.h
	include/llvm/IRReader/IRReader.h
	include/llvm/Target/TargetMachine.h
	lib/CodeGen/CallingConvLower.cpp
	lib/IRReader/IRReader.cpp
	lib/IRReader/LLVMBuild.txt
	lib/IRReader/Makefile
	lib/LLVMBuild.txt
	lib/Makefile
	lib/Support/MemoryBuffer.cpp
	lib/Support/Unix/PathV2.inc
	lib/Target/ARM/ARMBaseInstrInfo.cpp
	lib/Target/ARM/ARMISelLowering.cpp
	lib/Target/ARM/ARMInstrInfo.td
	lib/Target/ARM/ARMSubtarget.cpp
	lib/Target/ARM/ARMTargetMachine.cpp
	lib/Target/Mips/CMakeLists.txt
	lib/Target/Mips/MipsDelaySlotFiller.cpp
	lib/Target/Mips/MipsISelLowering.cpp
	lib/Target/Mips/MipsInstrInfo.td
	lib/Target/Mips/MipsSubtarget.cpp
	lib/Target/Mips/MipsSubtarget.h
	lib/Target/X86/X86FastISel.cpp
	lib/Target/X86/X86ISelDAGToDAG.cpp
	lib/Target/X86/X86ISelLowering.cpp
	lib/Target/X86/X86InstrControl.td
	lib/Target/X86/X86InstrFormats.td
	lib/Transforms/IPO/ExtractGV.cpp
	lib/Transforms/InstCombine/InstCombineCompares.cpp
	lib/Transforms/Utils/SimplifyLibCalls.cpp
	test/CodeGen/X86/fast-isel-divrem.ll
	test/MC/ARM/data-in-code.ll
	tools/Makefile
	tools/llvm-extract/llvm-extract.cpp
	tools/llvm-link/CMakeLists.txt
	tools/opt/CMakeLists.txt
	tools/opt/LLVMBuild.txt
	tools/opt/Makefile
	tools/opt/opt.cpp
</content>
</entry>
<entry>
<title>PNaCl: Fix negative relocation addends on x86-32</title>
<updated>2013-07-09T18:02:56Z</updated>
<author>
<name>Mark Seaborn</name>
<email>mseaborn@chromium.org</email>
</author>
<published>2013-07-09T18:02:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=af49991972c1ca2364cd7377f4781893ffb3ffc5'/>
<id>urn:sha1:af49991972c1ca2364cd7377f4781893ffb3ffc5</id>
<content type='text'>
Disable an assertion.  This assertion made the behaviour on x86-32
inconsistent with x86-64 and ARM.

BUG=https://code.google.com/p/nativeclient/issues/detail?id=3548
TEST=*.ll tests + PNaCl toolchain trybots

Review URL: https://codereview.chromium.org/18261008
</content>
</entry>
<entry>
<title>Merge r179774: Allow misaligned stores in x86 fast-isel.</title>
<updated>2013-06-24T16:18:55Z</updated>
<author>
<name>Mark Seaborn</name>
<email>mseaborn@chromium.org</email>
</author>
<published>2013-06-24T16:18:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=41dd5ede22556305aed7ea2184a2905f187db78c'/>
<id>urn:sha1:41dd5ede22556305aed7ea2184a2905f187db78c</id>
<content type='text'>
This change will fix the regression in -O0 translation time caused by
putting "align 1" on integer loads and stores, which was causing
FastISel to fall back to SelectionDAG more often.

&gt; In X86FastISel::X86SelectStore(), improperly aligned stores are
&gt; rejected and handled by the DAG-based ISel. However,
&gt; X86FastISel::X86SelectLoad() makes no such requirement. There
&gt; doesn't appear to be an x86 architectural correctness issue with
&gt; allowing potentially unaligned store instructions.  This patch
&gt; removes this restriction.
&gt;
&gt; Patch by Jim Stichnot.

BUG=https://code.google.com/p/nativeclient/issues/detail?id=3445
TEST=PNaCl toolchain trybots

Review URL: https://codereview.chromium.org/17575003
</content>
</entry>
</feed>
