LLVM backend for 6502
Go to file
Reid Spencer 9c0696f153 First version that can process arith.cpp test case up to 1024 bits:
1. Ensure pVal is set to 0 in each constructor.
2. Fix roundToDouble to make correct calculations and not read beyond the
   end of allocated memory.
3. Implement Knuth's "classical algorithm" for division from scratch and
   eliminate buffer overflows and uninitialized mememory reads. Document
   it properly too.
4. Implement a wrapper function for KnuthDiv which handles the 64-bit to
   32-bit conversion and back. It also implement short division for the
   n == 1 case that Knuth's algorithm can't handle.
5. Simplify the logic of udiv and urem a little, make them exit early, and
   have them use the "divide" wrapper function to perform the division
   or remainder operation.
6. Move the toString function to the end of the file, closer to where
   the division functions are located.

Note: division is still broken for some > 64 bit values, but at least it
      doesn't crash any more.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34449 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-20 08:51:03 +00:00
autoconf Add possibility to set memory limit for binaries run via libSystem. This 2007-02-16 19:11:07 +00:00
docs Add a section on the target datalayout syntax and describe the defaults 2007-02-19 23:54:10 +00:00
examples eliminate vector-related ctors 2007-02-13 06:06:26 +00:00
include Add an internal convenience method for division that urem and udiv use. 2007-02-20 08:43:42 +00:00
lib First version that can process arith.cpp test case up to 1024 bits: 2007-02-20 08:51:03 +00:00
projects avoid collision with /usr/bin/sample if this ever gets installed. 2007-02-18 03:03:41 +00:00
runtime the old trace values pass has been removed, remove its runtime library. 2007-01-07 18:13:48 +00:00
test Added test case for PR1207. 2007-02-19 21:53:59 +00:00
tools remove use of deprecated apis 2007-02-19 07:41:31 +00:00
utils the lengths of the strings are known, just use memcmp 2007-02-15 19:26:16 +00:00
win32 Unbreak VC++ build. 2007-01-15 20:27:18 +00:00
Xcode Update project 2007-01-29 18:45:08 +00:00
.cvsignore Add llvm.spec, a generated file. 2006-10-18 19:23:56 +00:00
configure Regenerate for getrlimit/setrlimit. 2007-02-16 19:17:20 +00:00
CREDITS.TXT Update 2007-02-15 22:26:28 +00:00
LICENSE.TXT Welcome 2007. 2007-01-18 21:22:36 +00:00
llvm.spec.in Minor technical correction in documentation. 2006-08-21 01:58:57 +00:00
Makefile Add a show-footprint target to run du a few times to show how much disk 2007-02-05 23:18:58 +00:00
Makefile.common Update comments to reflect new variable names. Patch contributed by 2005-02-14 16:02:19 +00:00
Makefile.config.in For PR739: 2007-01-17 20:24:45 +00:00
Makefile.rules Fix some bugs in module building that broke llvm-stacker project. 2007-02-09 17:09:14 +00:00
README.txt Make the text of this file a little more useful. 2004-09-02 22:49:27 +00:00

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.