LLVM backend for 6502
Go to file
Chris Lattner dea9528f7f When lowering SELECT_CC, see if the input is a lowered SETCC. If so, fold
the two operations together.  This allows us to compile this:

void %two(int %a, int* %b) {
        %tmp.2 = seteq int %a, 0
        %tmp.0.0 = select bool %tmp.2, int 10, int 20
        store int %tmp.0.0, int* %b
        ret void
}

into:

two:
        save -96, %o6, %o6
        or %g0, 20, %l0
        or %g0, 10, %l1
        subcc %i0, 0, %l2
        be .LBBtwo_2    ! entry
        nop
.LBBtwo_1:      ! entry
        or %g0, %l0, %l1
.LBBtwo_2:      ! entry
        st %l1, [%i1]
        restore %g0, %g0, %g0
        retl
        nop

instead of:

two:
        save -96, %o6, %o6
        sethi 0, %l0
        or %g0, 1, %l1
        or %g0, 20, %l2
        or %g0, 10, %l3
        subcc %i0, 0, %l4
        be .LBBtwo_2    ! entry
        nop
.LBBtwo_1:      ! entry
        or %g0, %l0, %l1
.LBBtwo_2:      ! entry
        subcc %l1, 0, %l0
        bne .LBBtwo_4   ! entry
        nop
.LBBtwo_3:      ! entry
        or %g0, %l2, %l3
.LBBtwo_4:      ! entry
        st %l3, [%i1]
        restore %g0, %g0, %g0
        retl
        nop


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25806 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-30 04:34:44 +00:00
autoconf don't need this any more; the "#define hashes to trees" hack is coming 2006-01-23 06:47:56 +00:00
docs Remove FAKE_SOURCES 2006-01-27 22:06:01 +00:00
examples When a function takes a variable number of pointer arguments, with a zero 2005-10-23 04:37:20 +00:00
include/llvm Add AddSymbol() method to DynamicLibrary to work around Windows limitation 2006-01-30 04:33:51 +00:00
lib When lowering SELECT_CC, see if the input is a lowered SETCC. If so, fold 2006-01-30 04:34:44 +00:00
projects Fixed Makefile so it does, indeed, build a dynamic library. 2006-01-06 22:51:19 +00:00
runtime fix make install/uninstall of libcrtend. 2006-01-30 02:03:56 +00:00
test Use Intel assembly syntax to look for ST 2006-01-27 22:51:51 +00:00
tools Pass plugins on to children when optimizing. 2006-01-26 18:37:21 +00:00
utils simplify some code 2006-01-29 20:01:35 +00:00
win32 Add _CRT_SECURE_NO_DEPRECATE preprocessor symbol to make VS2005 happy. 2006-01-30 04:07:08 +00:00
Xcode Catch up on some of the file addition/deletions. 2006-01-27 13:24:20 +00:00
.cvsignore Ignore the configure.out file generated by "make reconfigure" 2005-06-18 23:01:25 +00:00
configure Update for including additional function tests. 2006-01-23 08:15:53 +00:00
CREDITS.TXT Add an entry 2006-01-08 08:25:38 +00:00
LICENSE.TXT Happy New Year, LLVM. 2006-01-03 14:42:06 +00:00
llvm.spec Onward to LLVM-1.6 and beyond! 2005-05-18 20:23:20 +00:00
llvm.spec.in Onward to LLVM-1.6 and beyond! 2005-05-18 20:23:20 +00:00
Makefile For PR614: 2005-08-25 04:59:49 +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 Implement fix for PR471: 2005-12-21 03:31:53 +00:00
Makefile.rules * Eliminate FAKE_SOURCES 2006-01-27 22:13:12 +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.