LLVM backend for 6502
Go to file
Kevin Enderby 8c9aa922a9 This adds a Darwin x86_64 relocation encoding for a subtraction expression
where both symbols are "local", that is non-external symbols, and there is
no "base" for the symbols used in the expression, that is the section has
no non-temporary symbols.  This case looks like this:

% cat local_reloc_A-B.s
	.long 0
LB:	.long 1
	.long LA - LB - 4
	.long 2
LA:	.long 3

which llvm-mc will not encode without this patch, generates a "unsupported
local relocations in difference" error, but the Darwin assembler will
encode with relocation entries like this:

% otool -rv a.out l.out 
a.out:
Relocation information (__TEXT,__text) 2 entries
address  pcrel length extern type    scattered symbolnum/value
00000008 False long   False  SUB     False     1 (__TEXT,__text)
00000008 False long   False  UNSIGND False     1 (__TEXT,__text)

which is very similar to what is encoded when the symbols don't have the
leading 'L' and they are not temporary symbols.  Which llvm-mc and the
Darwin assembler will encoded like this:

Relocation information (__TEXT,__text) 2 entries
address  pcrel length extern type    scattered symbolnum/value
00000008 False long   True   SUB     False     B
00000008 False long   True   UNSIGND False     A

This is the missing relocation encoding needed to allow the Mach-O x86
Dwarf file and line table to be emitted.  So this patch also removes the
TODO from the if() statement in MCMachOStreamer::Finish() that didn't 
call MCDwarfFileTable::Emit() for 64-bit targets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115389 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-02 00:13:41 +00:00
autoconf Add support for viewing graphviz graphs with xdot.py. 2010-09-27 16:28:34 +00:00
bindings Remove the Ada bindings which are unmaintained and unused. The project which 2010-09-15 08:17:10 +00:00
cmake Export LLVM_ALL_TARGETS in LLVM.cmake. It is used by LLVMConfig. 2010-09-29 15:28:55 +00:00
docs Fix block descriptor documentation. 2010-10-01 22:45:00 +00:00
examples Convert a bunch of uses of 'bytecode' into 'bitcode'. This 2010-09-29 20:09:55 +00:00
include When RemoveCopyByCommutingDef is creating additional identity copies, just use 2010-10-01 23:52:25 +00:00
lib This adds a Darwin x86_64 relocation encoding for a subtraction expression 2010-10-02 00:13:41 +00:00
projects projects: Don't try to build libcxx if one happens to have it checked out into 2010-09-09 15:49:32 +00:00
runtime Rename 'libprofile/exported_symbols.lst' to 'libprofile/libprofile.exports'. 2010-09-03 15:42:45 +00:00
test Need to specify SSE4 for machines which don't have SSE4. The code checked for is generated by SSE4. Otherwise, we get something else. 2010-10-01 21:39:35 +00:00
tools Convert a bunch of uses of 'bytecode' into 'bitcode'. This 2010-09-29 20:09:55 +00:00
unittests Make ConstantRange::makeICmpRegion handle all the edge cases properly. This 2010-09-28 18:18:36 +00:00
utils Fix typo 2010-10-01 21:20:39 +00:00
website
build-for-llvm-top.sh
CMakeLists.txt Added library LLVMPIC16passes to CMake build. 2010-09-28 14:02:45 +00:00
configure Rename the AsmPrinter directory to InstPrinter for those targets that have 2010-10-01 22:39:28 +00:00
CREDITS.TXT Convert a bunch of uses of 'bytecode' into 'bitcode'. This 2010-09-29 20:09:55 +00:00
LICENSE.TXT 2010 is upon us. 2010-01-09 18:40:31 +00:00
llvm.spec.in
Makefile llvmc: remove dynamic plugins. 2010-08-15 07:07:12 +00:00
Makefile.common
Makefile.config.in Make the makefiles go much faster by using the realpath 2010-08-03 22:53:22 +00:00
Makefile.rules Remove self-described temporary hack. A bit over a year seems a reasonable 2010-10-01 22:32:12 +00:00
ModuleInfo.txt
README.txt Undoing test commit blank space. 2010-09-29 17:39:29 +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.

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