- Fixed LLVM style CL args for D2.

- Moved main() into its own file gen/main.cpp
- Fixed basic cross compilation
- removed the option for setting OS
- added support for llc's mattr, mcpu and mtriple switches
- added basic ABI abstraction for return value rewrites, it's not perfect and will probably be completely rewritten once I get to handling parameter rewrites as well.
- x86-64 extern(C) abi for cfloat returns now match (llvm-)gcc.
This commit is contained in:
Tomas Lindquist Olsen
2009-02-26 14:11:49 +01:00
parent f61733cb57
commit 57a69e8177
20 changed files with 334 additions and 2264 deletions

View File

@@ -230,22 +230,18 @@ static cl::alias m("m",
cl::Prefix,
cl::aliasopt(mArch));
cl::opt<std::string> mCPU("mcpu",
cl::desc("Target a specific cpu type (-mcpu=help for details)"),
cl::value_desc("cpu-name"),
cl::init(""));
static cl::opt<OS, true> os("t",
cl::desc("Emit code for the specified OS:"),
cl::values(
#define ENUMVAL_N(Name, Desc) clEnumValN(OS##Name, #Name, Desc)
#define ENUMVAL(Name) ENUMVAL_N(Name, #Name)
ENUMVAL(Linux),
ENUMVAL(Windows),
ENUMVAL_N(MacOSX, "Mac OS X"),
ENUMVAL(FreeBSD),
ENUMVAL(Solaris),
#undef ENUMVAL
#undef ENUMVAL_N
clEnumValEnd),
cl::Prefix,
cl::location(global.params.os));
cl::list<std::string> mAttrs("mattr",
cl::CommaSeparated,
cl::desc("Target specific attributes (-mattr=help for details)"),
cl::value_desc("a1,+a2,-a3,..."));
cl::opt<std::string> mTargetTriple("mtriple",
cl::desc("Override target triple"));
// "Hidden debug switches"