LLVM backend for 6502
Go to file
Eli Bendersky a5597f0eaf In this patch, we teach X86_64TargetMachine that it has a ILP32
(defined by the x32 ABI) mode, in which case its pointers are 32-bits
in size. This knowledge is also added to X86RegisterInfo that now
returns the appropriate registers in getPointerRegClass.

There are many outcomes to this change. In order to keep the patches
separate and manageable, we start by focusing on some simple testable
cases. The patch adds a test with passing a pointer to a function -
focusing on the difference between the two data models for x86-64.
Another test is added for handling of 'sret' arguments (and
functionality is added in X86ISelLowering to make it work).

A note on naming: the "x32 ABI" document refers to the AMD64
architecture (in LLVM it's distinguished by being is64Bits() in the
x86 subtarget) with two variations: the LP64 (default) data model, and
the ILP32 data model. This patch adds predicates to the subtarget
which are consistent with this naming scheme.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173503 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25 22:07:43 +00:00
autoconf Disable Uninitialized Use Warnings for Broken gcc Versions 2013-01-15 18:21:15 +00:00
bindings
cmake Disable MSVC's warning about noreturn destructors 2013-01-25 15:36:13 +00:00
docs Fixed typo. 2013-01-25 20:20:00 +00:00
examples Update links to "Itanium C++ ABI: Exception Handling" document 2013-01-13 15:53:09 +00:00
include Add an accessor method to get the slot's index. This will limit the use of AttributeWithIndex. 2013-01-25 21:30:53 +00:00
lib In this patch, we teach X86_64TargetMachine that it has a ILP32 2013-01-25 22:07:43 +00:00
projects
runtime
test In this patch, we teach X86_64TargetMachine that it has a ILP32 2013-01-25 22:07:43 +00:00
tools When encountering an unknown file format, ObjectFile::createObjectFile should 2013-01-25 20:53:41 +00:00
unittests APFloat: Make sure that we get a well-formed x87 NaN when converting from a smaller type. 2013-01-25 17:01:00 +00:00
utils Use xcrun to find the right compiler when building llvmCore. <rdar://12801151> 2013-01-25 18:40:25 +00:00
.arcconfig
.gitignore
CMakeLists.txt Fix spelling 2012-12-13 15:25:07 +00:00
CODE_OWNERS.TXT Update CODE_OWNERS.TXT. 2013-01-15 09:37:45 +00:00
configure Disable Uninitialized Use Warnings for Broken gcc Versions 2013-01-15 18:21:15 +00:00
CREDITS.TXT
LICENSE.TXT Add LICENSE.TXT covering contributions made by ARM. 2013-01-07 10:04:49 +00:00
llvm.spec.in
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile Update the root Makefile for VMCore -> IR. Missed by my original search 2013-01-02 09:27:25 +00:00
Makefile.common
Makefile.config.in Introduce llvm::sys::getProcessTriple() function. 2013-01-16 17:27:22 +00:00
Makefile.rules Pass NO_MISSING_FIELD_INITIALIZERS to Compiler Flags 2013-01-18 23:22:52 +00:00
README.txt Update README.txt to more accurately reflect reality. 2013-01-08 02:35:15 +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.