llvm-6502/test
Arnold Schwaighofer 4b5324ad2c This patch corrects the handling of byval arguments for tailcall
optimized x86-64 (and x86) calls so that they work (... at least for
my test cases).

Should fix the following problems:

Problem 1: When i introduced the optimized handling of arguments for
tail called functions (using a sequence of copyto/copyfrom virtual
registers instead of always lowering to top of the stack) i did not
handle byval arguments correctly e.g they did not work at all :).

Problem 2: On x86-64 after the arguments of the tail called function
are moved to their registers (which include ESI/RSI etc), tail call
optimization performs byval lowering which causes xSI,xDI, xCX
registers to be overwritten. This is handled in this patch by moving
the arguments to virtual registers first and after the byval lowering
the arguments are moved from those virtual registers back to
RSI/RDI/RCX.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49584 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-12 18:11:06 +00:00
..
Analysis Testcase for pr2169. 2008-04-07 17:03:16 +00:00
Archive
Assembler
Bindings/Ocaml Expose ExecutionEngine::getTargetData() to c and ocaml bindings. 2008-03-27 00:27:14 +00:00
Bitcode
BugPoint
C++Frontend
CFrontend Check that bodies and calls but not declarations 2008-04-08 19:31:52 +00:00
CodeGen This patch corrects the handling of byval arguments for tailcall 2008-04-12 18:11:06 +00:00
DebugInfo
ExecutionEngine
Feature Support chained aliases for LLVM IR printing. This fixes PR2145 2008-03-22 08:17:17 +00:00
FrontendAda
FrontendObjC
Integer
lib Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
Linker This passes now 2008-03-10 22:34:11 +00:00
Other Keep track of analysis information inherited from Module pass manager. 2008-03-20 01:09:53 +00:00
Scripts
TableGen
Transforms Add testcase for PR2213. 2008-04-11 05:13:32 +00:00
Verifier Add testcase for prev. commit. Minor fixes 2008-03-22 08:37:05 +00:00
Makefile Do not pass -g flag when compiling tests, so remove the C.Flags. This only happens if you have a debug build of llvm. 2008-03-18 19:59:04 +00:00
Makefile.tests
TestRunner.sh