LLVM backend for 6502
Go to file
Nate Begeman 56eb86806d Add support for AssertSext and AssertZext, folding other extensions with
them.  This allows for elminination of redundant extends in the entry
blocks of functions on PowerPC.

Add support for i32 x i32 -> i64 multiplies, by recognizing when the inputs
to ISD::MUL in ExpandOp are actually just extended i32 values and not real
i64 values.  this allows us to codegen

int mulhs(int a, int b) { return ((long long)a * b) >> 32; }
as:
_mulhs:
        mulhw r3, r4, r3
        blr

instead of:
_mulhs:
        mulhwu r2, r4, r3
        srawi r5, r3, 31
        mullw r5, r4, r5
        add r2, r2, r5
        srawi r4, r4, 31
        mullw r3, r4, r3
        add r3, r2, r3
        blr

with a similar improvement on x86.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23147 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-30 02:44:00 +00:00
autoconf For PR619: 2005-08-24 10:43:10 +00:00
docs Changed unsigned long to unsigned. 2005-08-26 09:25:54 +00:00
examples For PR616: 2005-08-24 10:07:20 +00:00
include/llvm Add AssertSext, AssertZext nodes for targets that pass arguments in 2005-08-30 02:39:32 +00:00
lib Add support for AssertSext and AssertZext, folding other extensions with 2005-08-30 02:44:00 +00:00
projects Implement PR614: 2005-08-27 18:50:39 +00:00
runtime
test new testcase that crashes -reassociate 2005-08-24 17:54:56 +00:00
tools Allow bugpoint+PPC codegen to use fsqrt 2005-08-29 13:14:24 +00:00
utils Implement PR614: 2005-08-27 18:50:39 +00:00
win32 Update Visual Studio projects for removed file. 2005-08-19 13:51:22 +00:00
Xcode Remove Support/Search.h entry 2005-08-25 16:44:13 +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 For PR614: 2005-08-25 04:59:49 +00:00
Makefile.common
Makefile.config.in Two changes: 2005-04-22 17:14:14 +00:00
Makefile.rules Implement PR614: 2005-08-27 18:50:39 +00:00
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.