LLVM backend for 6502
Go to file
Arnold Schwaighofer 4b5324ad2c This patch corrects the handling of byval arguments for tailcall
optimized x86-64 (and x86) calls so that they work (... at least for
my test cases).

Should fix the following problems:

Problem 1: When i introduced the optimized handling of arguments for
tail called functions (using a sequence of copyto/copyfrom virtual
registers instead of always lowering to top of the stack) i did not
handle byval arguments correctly e.g they did not work at all :).

Problem 2: On x86-64 after the arguments of the tail called function
are moved to their registers (which include ESI/RSI etc), tail call
optimization performs byval lowering which causes xSI,xDI, xCX
registers to be overwritten. This is handled in this patch by moving
the arguments to virtual registers first and after the byval lowering
the arguments are moved from those virtual registers back to
RSI/RDI/RCX.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49584 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-12 18:11:06 +00:00
autoconf Adding ocamldoc generation. 2008-03-10 15:49:16 +00:00
bindings Expose Function::viewCFG and Function::viewCFGOnly to bindings. 2008-03-31 16:22:09 +00:00
docs The Ada front-end from the LLVM 2.2 release 2008-04-11 13:24:43 +00:00
examples silence warning when assertions are disabled. 2008-04-08 05:49:09 +00:00
include Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal 2008-04-12 04:36:06 +00:00
lib This patch corrects the handling of byval arguments for tailcall 2008-04-12 18:11:06 +00:00
projects remove attributions from the rest of the llvm makefiles. 2007-12-29 20:11:13 +00:00
runtime Fixing the stack walker. 2008-01-24 05:16:36 +00:00
test This patch corrects the handling of byval arguments for tailcall 2008-04-12 18:11:06 +00:00
tools Move memcpy / memset optimization pass after GVN. 2008-04-10 01:33:05 +00:00
utils Change llvm tools install location. 2008-04-11 17:45:39 +00:00
website Prepare for "core" website. 2007-08-03 05:43:35 +00:00
win32 Removed a deleted file from the VStudio System project. Also added custom build commands to engage 64 bit assembler for compilation callback on 64 bit configurations only. 2008-04-03 20:28:40 +00:00
Xcode Update project to reflect deleted files. 2008-03-23 16:49:47 +00:00
build-for-llvm-top.sh Allow the configure options to be set according to the llvm-top options. 2007-08-31 19:53:42 +00:00
configure Regenerate. 2008-03-10 15:49:38 +00:00
CREDITS.TXT Add Mikhail to credits file 2008-03-23 08:58:32 +00:00
LICENSE.TXT scoped_ptr.h was removed. 2008-02-09 22:50:06 +00:00
llvm.spec.in
Makefile a happier version of happiness 2008-03-21 22:17:07 +00:00
Makefile.common remove attributions from the rest of the llvm makefiles. 2007-12-29 20:11:13 +00:00
Makefile.config.in Reverting r48974. See PR2183 for details. 2008-03-31 16:46:23 +00:00
Makefile.rules Refresh Makefile.ocaml in objdir if it is modified in srcdir. 2008-03-10 15:58:40 +00:00
ModuleInfo.txt Update to include clean and install commands. 2007-07-20 20:54:41 +00:00
README.txt test 2007-04-20 20:49:25 +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.