diff options
author | Dan Gohman <gohman@apple.com> | 2008-05-05 00:28:39 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2008-05-05 00:28:39 +0000 |
commit | a65530a04a5ad39718ea0ac848a7d329117a1b2f (patch) | |
tree | f42654f8d9d6b2d0310b31500cedd1a0f93e05bb /include | |
parent | 4fbf00ba28ee2163b6aaece9bca4dffed3167f07 (diff) | |
download | external_llvm-a65530a04a5ad39718ea0ac848a7d329117a1b2f.zip external_llvm-a65530a04a5ad39718ea0ac848a7d329117a1b2f.tar.gz external_llvm-a65530a04a5ad39718ea0ac848a7d329117a1b2f.tar.bz2 |
Add AsmPrinter support for emitting a directive to declare that
the code being generated does not require an executable stack.
Also, add target-specific code to make use of this on Linux
on x86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50634 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/Target/TargetAsmInfo.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/include/llvm/Target/TargetAsmInfo.h b/include/llvm/Target/TargetAsmInfo.h index 7fd88b2..b635cb2 100644 --- a/include/llvm/Target/TargetAsmInfo.h +++ b/include/llvm/Target/TargetAsmInfo.h @@ -61,10 +61,16 @@ namespace llvm { /// Null if this target doesn't support a BSS section. /// const char *TLSBSSSection;// Default to ".section .tbss,"awT",@nobits". + /// ZeroFillDirective - Directive for emitting a global to the ZeroFill /// section on this target. Null if this target doesn't support zerofill. const char *ZeroFillDirective; // Default is null. + /// NonexecutableStackDirective - Directive for declaring to the + /// linker and beyond that the emitted code does not require stack + /// memory to be executable. + const char *NonexecutableStackDirective; // Default is null. + /// NeedsSet - True if target asm treats expressions in data directives /// as linktime-relocatable. For assembly-time computation, we need to /// use a .set. Thus: @@ -440,6 +446,9 @@ namespace llvm { const char *getZeroFillDirective() const { return ZeroFillDirective; } + const char *getNonexecutableStackDirective() const { + return NonexecutableStackDirective; + } bool needsSet() const { return NeedsSet; } |