LLVM backend for 6502
Go to file
Chris Lattner b48da39536 Remove the 3 HACK HACK HACKs I put in before, fixing them properly with
the new TLI that is available.

Implement support for handling out of range shifts.  This allows us to
compile this code (a 64-bit rotate):

unsigned long long f3(unsigned long long x) {
  return (x << 32) | (x >> (64-32));
}

into this:

f3:
        mov %EDX, DWORD PTR [%ESP + 4]
        mov %EAX, DWORD PTR [%ESP + 8]
        ret

GCC produces this:

$ gcc t.c -masm=intel -O3 -S -o - -fomit-frame-pointer
..
f3:
        push    %ebx
        mov     %ebx, DWORD PTR [%esp+12]
        mov     %ecx, DWORD PTR [%esp+8]
        mov     %eax, %ebx
        mov     %edx, %ecx
        pop     %ebx
        ret

The Simple ISEL produces (eww gross):

f3:
        sub %ESP, 4
        mov DWORD PTR [%ESP], %ESI
        mov %EDX, DWORD PTR [%ESP + 8]
        mov %ECX, DWORD PTR [%ESP + 12]
        mov %EAX, 0
        mov %ESI, 0
        or %EAX, %ECX
        or %EDX, %ESI
        mov %ESI, DWORD PTR [%ESP]
        add %ESP, 4
        ret


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19780 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-23 04:39:44 +00:00
autoconf We're working towards LLVM 1.5 now so bump the version number. This change 2005-01-22 21:29:42 +00:00
docs QOI feature implemented. 2005-01-22 18:45:35 +00:00
examples
include/llvm Give SelectionDAG a TargetLowering instance instead of TM instance. 2005-01-23 04:36:06 +00:00
lib Remove the 3 HACK HACK HACKs I put in before, fixing them properly with 2005-01-23 04:39:44 +00:00
projects Update per new Makefile requirements for projects 2005-01-16 02:21:42 +00:00
runtime Turn on LOADABLE_MODULE so that profile.so can be loaded dynamically by 2005-01-13 16:53:05 +00:00
test Remove this test. This test is already in PR269, so it should be 2005-01-20 20:58:42 +00:00
tools Add support for fp tolerances 2005-01-23 03:45:26 +00:00
utils This method takes sys::Path objects now. 2005-01-23 03:32:16 +00:00
win32 Add (non-working) project bugpoint to Visual Studio 2005-01-22 17:35:30 +00:00
.cvsignore Ignore the autom4te.cache directoy. 2004-12-24 15:11:23 +00:00
configure Fix llvm-java project autconfiguration. 2005-01-16 09:44:58 +00:00
CREDITS.TXT
LICENSE.TXT Another year, another copyright update. 2005-01-08 19:10:44 +00:00
llvm.spec
llvm.spec.in
Makefile
Makefile.common Make this file capable of being used by both LLVM and its projects 2005-01-16 02:20:30 +00:00
Makefile.config.in Don't confuse the LLVM_OBJ_DIR and the PROJ_OBJ_DIR because there might be 2005-01-16 06:53:48 +00:00
Makefile.rules Several changes: 2005-01-16 02:20:54 +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.