mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-03-06 12:23:13 +01:00
- 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:
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user