[LLVMdev] Mod for using GAS with MS VC++
Chris Lattner
sabre at nondot.org
Mon Jul 11 16:04:36 PDT 2005
On Mon, 11 Jul 2005, Aaron Gray wrote:
> Here is a mod to X86 that allows GAS to be used with MS Visual C++.
>
> I introduces a 'forWindows' variable like 'forCygwin' in th
> X86SharedAsmPrinter class.
>
A couple of comments:
1. Please send patches instead of full files. The best way to do this is
to use CVS like this: 'cvs diff -u' in the directory that you care
about. You can also specify specific files to diff as well.
2. Please update to the latest CVS bits.
3. You need to invent a target triple for your new configuration. You'll
notice that the forCygwin/forDarwin variables are set based on the
target triple of the module... as you coded it, forWindows is only
ever set if the t-t is empty.
4. The name forWindows isn't very specific, as there are multiple dev
systems available on windows (including cygwin, mingw, masm, nasm,
etc). Please use something more specific.
5. I notice that the stuff you are controlling enables/disables the exact
same stuff as needed for cygwin. Will this change in the future?
> This may prompt thurther normalization, on the otherhand it may not :)
Yes, I think it will. :) In particular, instead of a bunch of checks
based on the target, what we really want is something like this:
... in the AsmPrinter ctor...
if (isDarwin) {
TargetUsesFooFeature = true;
TargetUsesBarFeature = true;
TargetUsesBazFeature = false;
} else if (isCygwin) {
...
}
etc.
Then instead of code that looks like this:
if (!forCygwin && !forDarwin && !forWindows && I->hasInternalLinkage())
O << "\t.local " << name << "\n";
We would have:
if (TargetUsesSymbolsMarkedLocal && I->hasInternalLinkage())
O << "\t.local " << name << "\n";
... or something.
-Chris
--
http://nondot.org/sabre/
http://llvm.org/
More information about the llvm-dev
mailing list