LLVM backend for 6502
Go to file
Chris Lattner 0b7c0bf249 Generalize this transform, using MaskedValueIsZero, allowing us to compile:
struct S { unsigned int i : 6, j : 11, k : 15; } b;
void plus3 (unsigned int x) { b.k += x; }

To:

plus3:
        mov %EAX, DWORD PTR [%ESP + 4]
        shl %EAX, 17
        add DWORD PTR [b], %EAX
        ret

instead of:

plus3:
        mov %EAX, DWORD PTR [%ESP + 4]
        shl %EAX, 17
        mov %ECX, DWORD PTR [b]
        add %EAX, %ECX
        and %EAX, -131072
        and %ECX, 131071
        or %ECX, %EAX
        mov DWORD PTR [b], %ECX
        ret


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23384 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-18 06:02:59 +00:00
autoconf For PR619: 2005-08-24 10:43:10 +00:00
docs new expression type 2005-09-08 18:47:21 +00:00
examples For PR616: 2005-08-24 10:07:20 +00:00
include/llvm add a new callback 2005-09-17 01:02:45 +00:00
lib Generalize this transform, using MaskedValueIsZero, allowing us to compile: 2005-09-18 06:02:59 +00:00
projects Implement PR614: 2005-08-27 18:50:39 +00:00
runtime
test new testcase 2005-09-18 05:10:39 +00:00
tools Add help support for -mcpu and -mattr. 2005-09-02 19:27:43 +00:00
utils Fix a minor bug, add comments 2005-09-16 00:29:46 +00:00
win32 Fix more Visual Studio build problems. 2005-09-10 02:33:17 +00:00
Xcode Added targets to speed up build of llc. 2005-09-09 17:50:20 +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 allow for a target to ask for a dag isel 2005-09-03 01:15:25 +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.