llvm-project/llvm
Akira Hatanaka 16048332f1 [mips] Fix definition of mfhi and mflo instructions to read from the whole
accumulator instead of its sub-registers, $hi and $lo. 

We need this change to prevent a mflo following a mtlo from reading an
unpredictable/undefined value, as shown in the following example:

mult $6, $7 // result of $6 * $7 is written to $lo and $hi.
mflo $2     // read lower 32-bit result from $lo.
mtlo $4     // write to $lo. the content of $hi becomes unpredictable.
mfhi $3     // read higher 32-bit from $hi, which has an unpredictable value.

I don't have a test case for this change that reliably reproduces the problem.

llvm-svn: 192119
2013-10-07 18:49:46 +00:00
..
autoconf Revert "Revert "Windows: Add support for unicode command lines"" 2013-10-07 01:00:07 +00:00
bindings [python-bindings] Added support for getting/setting operands of values and getting the number of operands of a value. 2013-09-11 01:38:12 +00:00
cmake Revert "Revert "Windows: Add support for unicode command lines"" 2013-10-07 01:00:07 +00:00
docs Fix typo. 2013-10-07 13:57:59 +00:00
examples ExceptionDemo.cpp: Tweak a @param. [-Wdocumentation] 2013-07-29 11:03:50 +00:00
include Formally added an explicit enum for DWARF TLS support. No functionality change. 2013-10-07 18:39:18 +00:00
lib [mips] Fix definition of mfhi and mflo instructions to read from the whole 2013-10-07 18:49:46 +00:00
projects Revert "Revert "Windows: Add support for unicode command lines"" 2013-10-07 01:00:07 +00:00
test Change objectsize intrinsic to accept different address spaces. 2013-10-07 18:06:48 +00:00
tools Revert r191088, corresponding to r191823 to re-enable llvm-lto on cygming. 2013-10-07 15:42:22 +00:00
unittests Silencing an MSVC warning. 2013-10-05 19:41:41 +00:00
utils Remove some instructions that seem to only exist to trick the filtering checks in the disassembler table creation. Just fix up the filter to let the real instruction through instead. 2013-10-07 07:19:47 +00:00
.arcconfig
.clang-format Add a clang-format file so that the tool can automatically detect the 2013-09-02 07:19:04 +00:00
.gitignore
CMakeLists.txt Restore LLVM_BUILD_RUNTIME option that was deleted in r191835, but is still used to control building of compiler-rt and libcxx 2013-10-04 10:41:38 +00:00
CODE_OWNERS.TXT Add more owners to CODE_OWNERS.TXT (Kostya Serebryany: AddressSanitizer and ThreadSanitizer; Evgeniy Stepanov: MemorySanitizer) 2013-06-27 08:47:12 +00:00
CREDITS.TXT Update. 2013-09-27 20:40:40 +00:00
LICENSE.TXT
LLVMBuild.txt Remove the very substantial, largely unmaintained legacy PGO 2013-10-02 15:42:23 +00:00
Makefile Remove the very substantial, largely unmaintained legacy PGO 2013-10-02 15:42:23 +00:00
Makefile.common
Makefile.config.in Add an autoconf option for turning on -gsplit-dwarf by default 2013-06-25 01:12:25 +00:00
Makefile.rules Makefile.rules: Avoid -fomit-frame-pointer also on cygwin due to PR14646. 2013-08-18 03:38:40 +00:00
README.txt Revert "Test commit to check e-mail address. Please discard this." 2013-10-04 10:59:13 +00:00
configure Revert "Revert "Windows: Add support for unicode command lines"" 2013-10-07 01:00:07 +00:00
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.