LLVM backend for 6502
Go to file
Chris Lattner 610f1e2785 Codegen signed divides by 2 and -2 more efficiently. In particular
instead of:

s:   ;; X / 2
        movl 4(%esp), %eax
        movl %eax, %ecx
        shrl $31, %ecx
        movl %eax, %edx
        addl %ecx, %edx
        sarl $1, %eax
        ret

t:   ;; X / -2
        movl 4(%esp), %eax
        movl %eax, %ecx
        shrl $31, %ecx
        movl %eax, %edx
        addl %ecx, %edx
        sarl $1, %eax
        negl %eax
        ret

Emit:

s:
        movl 4(%esp), %eax
        cmpl $-2147483648, %eax
        sbbl $-1, %eax
        sarl $1, %eax
        ret

t:
        movl 4(%esp), %eax
        cmpl $-2147483648, %eax
        sbbl $-1, %eax
        sarl $1, %eax
        negl %eax
        ret


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16760 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-06 04:02:39 +00:00
autoconf Add checks for the ZLIB and BZIP2 header files, not just the libraries. 2004-10-04 22:05:53 +00:00
docs Fix the path to the fixinc'd headers. Patch contributed by Jeff Cohen! 2004-10-06 03:13:47 +00:00
examples Build BFtoLLVM example front-end by default 2004-10-05 18:05:53 +00:00
include/llvm Fix #include flavor 2004-10-04 18:10:18 +00:00
lib Codegen signed divides by 2 and -2 more efficiently. In particular 2004-10-06 04:02:39 +00:00
projects
runtime Disable libprofile as it breaks the build on Sparc (autoconf issues). 2004-09-08 20:30:26 +00:00
test When tail duplicating these functions, the add instruction should not be 2004-10-06 03:26:38 +00:00
tools
utils
.cvsignore
configure Add checks for the ZLIB and BZIP2 header files, not just the libraries. 2004-10-04 22:05:53 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec
llvm.spec.in
Makefile
Makefile.common
Makefile.config.in
Makefile.rules
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.