LLVM backend for 6502
Go to file
Bruno Cardoso Lopes 08ecb711ac Fix PR10884.
This PR basically reports a problem where a crash in generated code
happened due to %rbp being clobbered:

  pushq %rbp
  movq  %rsp, %rbp
  ....
  vmovmskps %ymm12, %ebp
  ....
  movq  %rbp, %rsp
  popq  %rbp
  ret

Since Eric's r123367 commit, the default stack alignment for x86 32-bit
has changed to be 16-bytes. Since then, the MaxStackAlignmentHeuristicPass
hasn't been really used, but with AVX it becomes useful again, since per
ABI compliance we don't always align the stack to 256-bit, but only when
there are 256-bit incoming arguments.

ReserveFP was only used by this pass, but there's no RA target hook that
uses getReserveFP() to check for the presence of FP (since nothing was
triggering the pass to run, the uses of getReserveFP() were removed
through time without being noticed). Change this pass to use
setForceFramePointer, which is properly called by MachineFunction
hasFP method.

The testcase is very big and dependent on RA, not sure if it's worth
adding to test/CodeGen/X86.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139939 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 20:58:28 +00:00
autoconf Move the AC_PROG_CC checks earlier in the configure file. The lateness 2011-09-16 20:36:25 +00:00
bindings Remove the build_unwind function from the OCaml bindings. 2011-08-10 01:10:17 +00:00
cmake Complete the removal of FindBison from CMake. Noticed this when browsing 2011-09-04 23:29:12 +00:00
docs s/SequeuentiallyConsistent/SequentiallyConsistent/g 2011-09-11 15:50:05 +00:00
examples Move TargetRegistry and TargetSelect from Target to Support where they belong. 2011-08-24 18:08:43 +00:00
include Don't attach annotations to MCInst's. Instead, have the disassembler return, and the printer accept, an annotation string which can be passed through if the client cares about annotations. 2011-09-15 23:38:46 +00:00
lib Fix PR10884. 2011-09-16 20:58:28 +00:00
projects Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
runtime Use version 402 for the GCDA files when compiling for Apple. 2011-07-28 18:12:20 +00:00
test Thumb2 assembly parsing and encoding for STMIA. 2011-09-16 20:50:13 +00:00
tools Don't attach annotations to MCInst's. Instead, have the disassembler return, and the printer accept, an annotation string which can be passed through if the client cares about annotations. 2011-09-15 23:38:46 +00:00
unittests Add APInt support for converting to/from hexatridecimal strings 2011-09-14 15:54:46 +00:00
utils Migrate this to use clang by default as well. 2011-09-16 20:36:22 +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 Patch to build llvm with srcdir != objdir from 2009-01-23 08:42:38 +00:00
CMakeLists.txt Added the infrastructute necessary for MIPS JIT support. Patch by Vladimir 2011-07-21 16:28:51 +00:00
configure Move the AC_PROG_CC checks earlier in the configure file. The lateness 2011-09-16 20:36:25 +00:00
CREDITS.TXT Adding myself to test my new commit powers. 2011-09-08 05:32:49 +00:00
LICENSE.TXT Happy new year. 2011-06-12 15:26:54 +00:00
llvm.spec.in
Makefile Install libprofile_rt.dylib where it's more available for gcov support. 2011-06-10 21:47:14 +00:00
Makefile.common
Makefile.config.in build/configure: Add support for --with-extra-ld-options flag (to provide extra 2011-06-16 22:30:38 +00:00
Makefile.rules TableGen'erated MC lowering for simple pseudo-instructions. 2011-07-08 17:36:35 +00:00
ModuleInfo.txt Remove trailing space. This is just an excuse to poke the 2010-10-05 20:32:15 +00:00
README.txt reverting test commit 2011-05-12 17:38:08 +00:00

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.