LLVM backend for 6502
Go to file
Chris Lattner 4e4b576e2e Implement simple register assignment for inline asms. This allows us to compile:
int %test(int %A, int %B) {
  %C = call int asm "xyz $0, $1, $2", "=r,r,r"(int %A, int %B)
  ret int %C
}

into:

 (0x8906130, LLVM BB @0x8902220):
        %r2 = OR4 %r3, %r3
        %r3 = OR4 %r4, %r4
        INLINEASM <es:xyz $0, $1, $2>, %r2<def>, %r2, %r3
        %r3 = OR4 %r2, %r2
        BLR

which asmprints as:

_test:
        or r2, r3, r3
        or r3, r4, r4
        xyz $0, $1, $2      ;; need to print the operands now :)
        or r3, r2, r2
        blr


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25878 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-01 18:59:47 +00:00
autoconf don't need this any more; the "#define hashes to trees" hack is coming 2006-01-23 06:47:56 +00:00
docs Remove FAKE_SOURCES 2006-01-27 22:06:01 +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 Beef up the interface to inline asm constraint parsing, making it more 2006-02-01 01:27:37 +00:00
lib Implement simple register assignment for inline asms. This allows us to compile: 2006-02-01 18:59:47 +00:00
projects Fixed Makefile so it does, indeed, build a dynamic library. 2006-01-06 22:51:19 +00:00
runtime fix make install/uninstall of libcrtend. 2006-01-30 02:03:56 +00:00
test new testcase for the 'ret double folding with load' opzn 2006-02-01 01:45:02 +00:00
tools Pass plugins on to children when optimizing. 2006-01-26 18:37:21 +00:00
utils If a pattern's root node is a constant, its size should be 3 rather than 2. 2006-02-01 06:06:31 +00:00
win32 Add _CRT_SECURE_NO_DEPRECATE preprocessor symbol to make VS2005 happy. 2006-01-30 04:07:08 +00:00
Xcode Catch up on some of the file addition/deletions. 2006-01-27 13:24:20 +00:00
.cvsignore Ignore the configure.out file generated by "make reconfigure" 2005-06-18 23:01:25 +00:00
configure Update for including additional function tests. 2006-01-23 08:15:53 +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 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 Implement fix for PR471: 2005-12-21 03:31:53 +00:00
Makefile.rules * Eliminate FAKE_SOURCES 2006-01-27 22:13:12 +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.