LLVM backend for 6502
Go to file
Chris Lattner 1d6373c1af teach selection dag mask tracking about the fact that select_cc operates like
select.  Also teach it that the bit count instructions can only set the low bits
of the result, depending on the size of the input.

This allows us to compile this:

int %eq0(int %a) {
        %tmp.1 = seteq int %a, 0                ; <bool> [#uses=1]
        %tmp.2 = cast bool %tmp.1 to int                ; <int> [#uses=1]
        ret int %tmp.2
}

To this:

_eq0:
        cntlzw r2, r3
        srwi r3, r2, 5
        blr

instead of this:

_eq0:
        cntlzw r2, r3
        rlwinm r3, r2, 27, 31, 31
        blr

when setcc is marked illegal on ppc (which restores parity to non-illegal
setcc).  Thanks to Nate for pointing this out.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23013 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24 16:46:55 +00:00
autoconf For PR619: 2005-08-24 10:43:10 +00:00
docs Revert my patch which changed the code to not work. 2005-08-22 16:24:25 +00:00
examples For PR616: 2005-08-24 10:07:20 +00:00
include/llvm rename hasNativeSupportFor* -> is(Operation|Type)Legal. 2005-08-24 16:34:59 +00:00
lib teach selection dag mask tracking about the fact that select_cc operates like 2005-08-24 16:46:55 +00:00
projects oops 2005-07-05 16:36:18 +00:00
runtime Remove trailing whitespace 2005-04-21 23:48:37 +00:00
test New testcase for PR618 2005-08-23 20:22:07 +00:00
tools If the user interrupts bugpoint, don't extract loops 2005-08-02 23:25:56 +00:00
utils Emit this: 2005-08-19 20:29:14 +00:00
win32 Update Visual Studio projects for removed file. 2005-08-19 13:51:22 +00:00
Xcode Add ScheduleDAG.cpp to the project 2005-08-18 19:52:06 +00:00
.cvsignore Ignore the configure.out file generated by "make reconfigure" 2005-06-18 23:01:25 +00:00
configure For PR616: 2005-08-24 10:07:20 +00:00
CREDITS.TXT Add a note, people are responsible for requesting that they be added to the 2005-08-02 22:10:21 +00:00
LICENSE.TXT Remove extraneous colons after program names for consistency 2005-05-12 21:39:01 +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 Make sure the tools get built if no build target is specified. 2005-05-29 00:49:24 +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 Whoops, don't use PROJ variables, these are all LLVM headers. This allows 2005-08-24 10:55:07 +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.