LLVM backend for 6502
Go to file
Jakob Stoklund Olesen 1f25fe5023 Complete formal arguments for the SPARC v9 64-bit ABI.
All arguments are formally assigned to stack positions and then promoted
to floating point and integer registers. Since there are more floating
point registers than integer registers, this can cause situations where
floating point arguments are assigned to registers after integer
arguments that where assigned to the stack.

Use the inreg flag to indicate 32-bit fragments of structs containing
both float and int members.

The three-way shadowing between stack, integer, and floating point
registers requires custom argument lowering. The good news is that
return values are passed in the exact same way, and we can share the
code.

Still missing:

 - Update LowerReturn to handle structs returned in registers.
 - LowerCall.
 - Variadic functions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178958 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-06 18:32:12 +00:00
autoconf Refine fenv.h handling: check if the desired macros exist, before using 2013-03-25 13:13:33 +00:00
bindings
cmake Add CMake option LLVM_USE_SANITIZER={Address,Memory,MemoryWithOrigins} to simplify bootstrap of LLVM/Clang under ASan/MSan 2013-03-26 07:49:46 +00:00
docs Missing word 2013-04-04 18:29:19 +00:00
examples
include Remove last use of InMemoryStruct from MachOObjectFile.cpp. 2013-04-06 03:50:05 +00:00
lib Complete formal arguments for the SPARC v9 64-bit ABI. 2013-04-06 18:32:12 +00:00
projects Print a warning message if compiler-rt can't be built because of old CMake version to make this requirement more visible to users 2013-03-05 14:43:07 +00:00
runtime Remove GCDAProfiling.c. This copy is old, the copy in compiler-rt is newer and 2013-03-07 02:03:08 +00:00
test Complete formal arguments for the SPARC v9 64-bit ABI. 2013-04-06 18:32:12 +00:00
tools Move yaml2obj to tools too. 2013-04-05 20:00:35 +00:00
unittests [Support][FileSystem] Fix identify_magic for big endian ELF. 2013-04-05 20:10:04 +00:00
utils Move yaml2obj to tools too. 2013-04-05 20:00:35 +00:00
.arcconfig
.gitignore
CMakeLists.txt Move yaml2obj to tools too. 2013-04-05 20:00:35 +00:00
CODE_OWNERS.TXT Update 2013-03-18 17:47:33 +00:00
configure Refine fenv.h handling: check if the desired macros exist, before using 2013-03-25 13:13:33 +00:00
CREDITS.TXT Update 2013-03-18 17:47:33 +00:00
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in Turn anonymous type in anonymous union warning back on after cleaning up 2013-03-15 00:43:00 +00:00
Makefile.rules Turn anonymous type in anonymous union warning back on after cleaning up 2013-03-15 00:43:00 +00:00
README.txt Revert "Test commit" 2013-02-22 19:19:41 +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 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.