LLVM backend for 6502
Go to file
Chris Lattner 85e42b45ac Reserve G1 for frame offset stuff and use it to handle large stack frames.
For example, instead of emitting this:

test:
        save -40112, %o6, %o6   ;; imm too large
        add %i6, -40016, %o0    ;; imm too large
        call caller
        nop
        restore %g0, %g0, %g0
        retl
        nop

emit this:

test:
        sethi 4194264, %g1
        or %g1, 848, %g1
        save %o6, %g1, %o6
        sethi 4194264, %g1
        add %g1, %i6, %g1
        add %i1, 944, %o0
        call caller
        nop
        restore %g0, %g0, %g0
        retl
        nop

which doesn't cause the assembler to barf.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24880 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-20 07:56:31 +00:00
autoconf Added the llvm-kernel project to the list of automatically configured 2005-12-19 20:27:24 +00:00
docs rename options 2005-12-16 05:19:35 +00:00
examples
include/llvm Added a hook to print out names of target specific DAG nodes. 2005-12-20 06:22:03 +00:00
lib Reserve G1 for frame offset stuff and use it to handle large stack frames. 2005-12-20 07:56:31 +00:00
projects
runtime Add the remove() function from the C library. 2005-11-28 15:49:15 +00:00
test A truly trivial testcase to ensure sparcv8 doesn't get completely broken 2005-12-16 06:24:55 +00:00
tools rename option for consistency with -mcpu -mattr etc 2005-12-16 05:19:55 +00:00
utils Now support instructions with implicit write to non-flag registers. 2005-12-20 07:37:41 +00:00
win32 Turn on string pooling for smaller binaries. 2005-12-17 00:14:47 +00:00
Xcode
.cvsignore Ignore the configure.out file generated by "make reconfigure" 2005-06-18 23:01:25 +00:00
configure Added the llvm-kernel project to the list of automatically configured 2005-12-19 20:27:24 +00:00
CREDITS.TXT add Evan and Jim. Please edit your entries as desired. 2005-11-29 00:57:06 +00:00
LICENSE.TXT
llvm.spec
llvm.spec.in
Makefile
Makefile.common
Makefile.config.in
Makefile.rules
README.txt

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.