LLVM backend for 6502
Go to file
Chris Lattner 239738a162 Use target-specific nodes for calls. This allows the fastcc code to not have
to do ugly hackery to avoid emitting code like this:

   call foo
   mov vreg, EAX
   adjcallstackup ...

If foo is a fastcc call and if vreg gets spilled, we might end up with this:

   call foo
   mov [ESP+offset], EAX     ;; Offset doesn't consider the 12!
   sub ESP, 12

Which is bad.  The previous hacky code to deal with this was A) gross B) not
good enough.  In particular, it could miss cases and emit the bad code above.
Now we always emit this:

   call foo
   adjcallstackup ...
   mov vreg, EAX

directly.

This makes fastcc with callees poping the stack work much better.  Next
stop (finally!) really is tail calls.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22021 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-14 08:48:15 +00:00
autoconf Fix the "stacker doesn't build without llvm-gcc" problem. The configure 2005-05-13 18:30:13 +00:00
docs add a bit about the known problems on IA64 2005-05-14 05:48:13 +00:00
examples Don't forget these are calls 2005-05-06 06:21:59 +00:00
include/llvm add a new map 2005-05-14 07:36:02 +00:00
lib Use target-specific nodes for calls. This allows the fastcc code to not have 2005-05-14 08:48:15 +00:00
projects The previous hack didn't work because tools-only isn't defined and isn't 2005-05-13 17:42:54 +00:00
runtime Remove trailing whitespace 2005-04-21 23:48:37 +00:00
test Ensure these casts are done with the hardware fildll instruction 2005-05-14 07:09:25 +00:00
tools If loopextract breaks the program provide output so that we can repro the 2005-05-08 21:54:56 +00:00
utils add support for fastcc and friends 2005-05-13 20:40:52 +00:00
win32 Add SimplyLibCalls.cpp to VC++ build 2005-04-26 02:57:49 +00:00
.cvsignore Ignore the autom4te.cache directoy. 2004-12-24 15:11:23 +00:00
configure Fix the "stacker doesn't build without llvm-gcc" problem. The configure 2005-05-13 18:30:13 +00:00
CREDITS.TXT Update my info 2005-05-08 01:07:48 +00:00
LICENSE.TXT Remove extraneous colons after program names for consistency 2005-05-12 21:39:01 +00:00
llvm.spec Some minor adjustments for the 1.5 release. 2005-05-14 05:52:07 +00:00
llvm.spec.in Some minor adjustments for the 1.5 release. 2005-05-14 05:52:07 +00:00
Makefile Remove the check target. Its now in Makefile.rules 2004-12-06 05:35:00 +00:00
Makefile.common Update comments to reflect new variable names. Patch contributed by 2005-02-14 16:02:19 +00:00
Makefile.config.in Two changes: 2005-04-22 17:14:14 +00:00
Makefile.rules * Make some warning messages stand out a bit by putting **** at the end 2005-05-13 18:32:54 +00:00
README.txt Make the text of this file a little more useful. 2004-09-02 22:49:27 +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.