LLVM backend for 6502
Go to file
Chris Lattner 97f37a439c Fix a problem that Nate noticed that boils down to an over conservative check
in the code that does "select C, (X+Y), (X-Y) --> (X+(select C, Y, (-Y)))".
We now compile this loop:

LBB1_1: ; no_exit
        add r6, r2, r3
        subf r3, r2, r3
        cmpwi cr0, r2, 0
        addi r7, r5, 4
        lwz r2, 0(r5)
        addi r4, r4, 1
        blt cr0, LBB1_4 ; no_exit
LBB1_3: ; no_exit
        mr r3, r6
LBB1_4: ; no_exit
        cmpwi cr0, r4, 16
        mr r5, r7
        bne cr0, LBB1_1 ; no_exit

into this instead:

LBB1_1: ; no_exit
        srawi r6, r2, 31
        add r2, r2, r6
        xor r6, r2, r6
        addi r7, r5, 4
        lwz r2, 0(r5)
        addi r4, r4, 1
        add r3, r3, r6
        cmpwi cr0, r4, 16
        mr r5, r7
        bne cr0, LBB1_1 ; no_exit


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26356 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-24 18:05:58 +00:00
autoconf don't build the skeleton target 2006-02-16 21:11:49 +00:00
docs Match the case of other mailing lists in the list 2006-02-23 16:18:29 +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 pointer and reference types. Added short-term code to ignore NULL types 2006-02-24 16:46:40 +00:00
lib Fix a problem that Nate noticed that boils down to an over conservative check 2006-02-24 18:05:58 +00:00
projects Convert over to the new way of handling lex/bison checked into cvs 2006-02-15 07:26:07 +00:00
runtime fix make install/uninstall of libcrtend. 2006-01-30 02:03:56 +00:00
test Add a test case for 'lea'. 2006-02-23 00:12:12 +00:00
tools Turn on loop unswitching tonight 2006-02-22 07:33:49 +00:00
utils Select inline asm memory operands. 2006-02-24 02:13:31 +00:00
win32 Inform Visual Studio of deleted file. 2006-02-17 02:11:34 +00:00
Xcode Catch up on some of the file addition/deletions. 2006-01-27 13:24:20 +00:00
.cvsignore
configure remove skeleton target 2006-02-16 21:12:54 +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
llvm.spec.in
Makefile
Makefile.common
Makefile.config.in Implement fix for PR471: 2005-12-21 03:31:53 +00:00
Makefile.rules Fix a minor makefile bug with lex/yacc handling that nate noticed. We don't 2006-02-16 05:10:48 +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.