LLVM backend for 6502
Go to file
Chris Lattner d6139425f5 teach the x86 address matching stuff to handle
(shl (or x,c), 3) the same as (shl (add x, c), 3)
when x doesn't have any bits from c set.

This finishes off PR1135.  Before we compiled the block to:
to:

LBB0_3:                                 ## %bb
	cmpb	$4, %dl
	sete	%dl
	addb	%dl, %cl
	movb	%cl, %dl
	shlb	$2, %dl
	addb	%r8b, %dl
	shlb	$2, %dl
	movzbl	%dl, %edx
	movl	%esi, (%rdi,%rdx,4)
	leaq	2(%rdx), %r9
	movl	%esi, (%rdi,%r9,4)
	leaq	1(%rdx), %r9
	movl	%esi, (%rdi,%r9,4)
	addq	$3, %rdx
	movl	%esi, (%rdi,%rdx,4)
	incb	%r8b
	decb	%al
	movb	%r8b, %dl
	jne	LBB0_1

Now we produce:

LBB0_3:                                 ## %bb
	cmpb	$4, %dl
	sete	%dl
	addb	%dl, %cl
	movb	%cl, %dl
	shlb	$2, %dl
	addb	%r8b, %dl
	shlb	$2, %dl
	movzbl	%dl, %edx
	movl	%esi, (%rdi,%rdx,4)
	movl	%esi, 8(%rdi,%rdx,4)
	movl	%esi, 4(%rdi,%rdx,4)
	movl	%esi, 12(%rdi,%rdx,4)
	incb	%r8b
	decb	%al
	movb	%r8b, %dl
	jne	LBB0_1



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101958 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-20 23:18:40 +00:00
autoconf Add an autoconf check for -retain-symbols-file and conditionalize 2010-04-16 22:58:15 +00:00
bindings
cmake
docs I plan to release a version of dragonegg based on llvm-2.7 shortly 2010-04-20 19:40:58 +00:00
examples Fix -Wcast-qual warning. 2010-04-20 11:50:37 +00:00
include Because of the EMMS problem, right now we have to support 2010-04-20 22:34:09 +00:00
lib teach the x86 address matching stuff to handle 2010-04-20 23:18:40 +00:00
projects
runtime Delete a blank line. 2010-04-16 13:32:55 +00:00
test teach the x86 address matching stuff to handle 2010-04-20 23:18:40 +00:00
tools Support .a files directly (without -l). 2010-04-19 17:25:38 +00:00
unittests silence some unused-value warnings. 2010-04-18 03:28:20 +00:00
utils When doing Thumb disassembly, there's no need to consider t2ADDrSPi12/t2SUBrSPi12, 2010-04-20 18:45:24 +00:00
website
build-for-llvm-top.sh
CMakeLists.txt
configure Regenerate configure script. 2010-04-16 22:59:06 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
Makefile
Makefile.common
Makefile.config.in Add an autoconf check for -retain-symbols-file and conditionalize 2010-04-16 22:58:15 +00:00
Makefile.rules Enable -Wcast-qual for C++ files, where intentional qualifier-stripping can 2010-04-19 18:33:28 +00:00
ModuleInfo.txt
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.

If you're writing a package for LLVM, see docs/Packaging.html for our
suggestions.