LLVM backend for 6502
Go to file
Bill Wendling 66c6324fcf DWARF requires frame moves be specified at specific times. If you have a
prologue like this:

__Z3fooi:
Leh_func_begin1:
LBB1_0: ## entry
        pushl   %ebp
Llabel1:
        movl    %esp, %ebp
Llabel2:
        pushl   %esi
Llabel3:
        subl    $20, %esp
        call    "L1$pb"
"L1$pb":
        popl    %esi

The "pushl %ebp" needs a table entry specifying the offset. The "movl %esp,
%ebp" makes %ebp the new stack frame register, so that needs to be specified in
DWARF. And "pushl %esi" saves the callee-saved %esi register, which also needs
to be specified in DWARF.

Before, all of this logic was in one method. This didn't work too well, because
as you can see there are multiple FDE line entries that need to be created.

This fix creates the "MachineMove" objects directly when they're needed; instead
of waiting until the end, and losing information.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74952 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07 21:53:07 +00:00
autoconf LLVMC can be now compiled w/o dynamic plugin support. 2009-07-04 03:55:25 +00:00
bindings Fix the Ocaml bindings for the ExecutionEngine: with the change to build 2009-06-24 21:09:18 +00:00
cmake Add a portable strerror*() wrapper, llvm::sys::StrError(). This includes the 2009-07-01 18:11:20 +00:00
docs Add a paragraph about the Add->FAdd API change. 2009-07-07 20:05:15 +00:00
examples Make the use of const with respect to LLVMContext sane. Hopefully this is the last time, for the 2009-07-01 23:13:44 +00:00
include Fix a typo and a grammaro in a comment. 2009-07-07 20:47:48 +00:00
lib DWARF requires frame moves be specified at specific times. If you have a 2009-07-07 21:53:07 +00:00
projects remove dead makefile flags. 2009-06-24 05:29:56 +00:00
runtime Drop toy GC runtime. 2009-03-02 03:46:48 +00:00
test Add Thumb2 movcc instructions. 2009-07-07 20:39:03 +00:00
tools Implement parsing support for the .comm directive. Patch by 2009-07-07 20:30:46 +00:00
unittests Hold the LLVMContext by reference rather than by pointer. 2009-07-01 21:22:36 +00:00
utils Add an 'init' option property. 2009-07-07 16:08:41 +00:00
website Prepare for "core" website. 2007-08-03 05:43:35 +00:00
win32 Add a new codegen pass that normalizes dwarf exception handling 2009-05-22 20:36:31 +00:00
Xcode Remove Stacker.html from Xcode project. 2008-10-14 23:23:59 +00:00
build-for-llvm-top.sh Patch to build llvm with srcdir != objdir from 2009-01-23 08:42:38 +00:00
CMakeLists.txt CMake: Fixes previous change: CMAKE_BUILD_TYPE is unknown when 2009-07-05 23:58:20 +00:00
configure Regenerate. 2009-07-04 14:23:08 +00:00
CREDITS.TXT Add myself to the list. 2009-06-23 17:03:23 +00:00
LICENSE.TXT Now that we have atomics support properly detected by configure, 2009-05-19 00:08:29 +00:00
llvm.spec.in * llvm.spec.in: update blurb 2007-07-13 09:48:29 +00:00
Makefile Introduce new headers whose inclusion forces linking and 2009-06-16 20:12:29 +00:00
Makefile.common Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
Makefile.config.in LLVMC can be now compiled w/o dynamic plugin support. 2009-07-04 03:55:25 +00:00
Makefile.rules Add --enable-llvmc-dynamic configure option. 2009-07-03 03:52:47 +00:00
ModuleInfo.txt Patch to build llvm with srcdir != objdir from 2009-01-23 08:42:38 +00:00
README.txt README.txt: test commit w/blank line appended 2009-03-23 21:00:45 +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.