LLVM backend for 6502
Go to file
Akira Hatanaka 0285e7d1c1 When constant double 0.0 is lowered, make sure 0 is copied directly from an
integer register to a floating point register. It is not valid to interpret
the value of a floating pointer register as part of a double precision
floating point value after a single precision floating point computational
or move instruction stores its result to the register.

- In the test case, the following code is generated before this patch is
  applied:
mtc1  $zero, $f2    ; unformatted copy to $f2
mov.s $f0, $f2      ; $f0 is in single format
sdc1  $f12, 0($sp)
mov.s $f1, $f2      ; $f1 is in single format
c.eq.d  $f12, $f0   ; $f0 cannot be interpreted as double

- The following code is generated after this patch is applied:
mtc1  $zero, $f0    ; unformatted copy to $f0
mtc1  $zero, $f1    ; unformatted copy to $f1
c.eq.d  $f12, $f0   ; $f0 can be interpreted as double

Bhanu Chetlapalli and Chris Dearman at MIPS technologies reported this bug and
provided the test case.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137484 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 18:09:59 +00:00
autoconf Update the default bug report url in autoconf. 2011-08-02 20:53:43 +00:00
bindings Remove the build_unwind function from the OCaml bindings. 2011-08-10 01:10:17 +00:00
cmake CMake: Eliminate unused checks and #undef(s) as below; 2011-08-12 03:27:48 +00:00
docs add new accessors to reflect new terminology in struct types. 2011-08-12 17:31:02 +00:00
examples
include add ifdef's to let people easily remove these dead api for testing. 2011-08-12 18:08:19 +00:00
lib When constant double 0.0 is lowered, make sure 0 is copied directly from an 2011-08-12 18:09:59 +00:00
projects
runtime
test Tidy up formatting. 2011-08-12 17:43:31 +00:00
tools Fix bugpoint fallout from the new type system. 2011-08-12 17:25:45 +00:00
unittests Avoid undefined behaviour if somehow NUM_GRAPHS equals 2^32 (or 2011-07-29 07:50:02 +00:00
utils Make Record Name an Init 2011-08-10 18:27:46 +00:00
website
.gitignore .gitignore: Ignore /autom4te.cache. We can execute "PATH=/path/to/autotools/bin autoconf/AutoRegen.sh". 2011-08-12 07:47:50 +00:00
build-for-llvm-top.sh
CMakeLists.txt
configure configure: Update since r136721. 2011-08-12 01:50:43 +00:00
CREDITS.TXT I am the code owner for Clang's IR generation; this has been true 2011-08-02 01:38:19 +00:00
LICENSE.TXT
llvm.spec.in
Makefile
Makefile.common
Makefile.config.in
Makefile.rules
ModuleInfo.txt
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 HTML documentation provided in docs/index.html for further
assistance with LLVM.

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