From c71f75b4ecb76b5475e8122a4e68fe06148512a7 Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Mon, 11 Nov 2013 11:16:41 +0000 Subject: [PATCH] * don't include any architecture-specific node classes when creating an llvm-targeting compiler, but use llvmnode instead o after this commit it possible to build an llvm/x86-64 compiler with very limited functionality (you can only compile dummy system units containing procedures --not functions!-- with simple arithmetic and array expressions; parameters are partially supported, making calls is not). Use a make command line similar to the following: make OPT="-Fullvm -Fillvm -dllvm" PPC_TARGET=x86_64 clean all The resuling compiler can generate (some) valid code for at least Mac OS X/x86-64 and should also be able to target Linux/x86-64. Win64 support may work by simply adding it to the list of supported targets in as_llvm_info in llvm/agllvm.pas. git-svn-id: branches/hlcgllvm@26058 - --- compiler/x86_64/cpunode.pas | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/compiler/x86_64/cpunode.pas b/compiler/x86_64/cpunode.pas index f9befac47b..6dade470c3 100644 --- a/compiler/x86_64/cpunode.pas +++ b/compiler/x86_64/cpunode.pas @@ -43,6 +43,7 @@ unit cpunode; ncgset, ncgopt, ncgobjc, +{$ifndef llvm} { the cpu specific node units must be used after the generic ones to get the correct class pointer } nx86set, @@ -57,6 +58,9 @@ unit cpunode; {$endif DISABLE_WIN64_SEH} nx64inl, nx64set +{$else} + llvmnode +{$endif ndef llvm} ; end.