summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCMachOStreamer.cpp
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2012-10-01 22:20:54 +0000
committerJim Grosbach <grosbach@apple.com>2012-10-01 22:20:54 +0000
commit745c52dd4ef7d363ba186518138d85d3476e46e7 (patch)
tree7aaee7bd098b83a1174bb329021b3a8fbd8405f8 /llvm/lib/MC/MCMachOStreamer.cpp
parent83c85e41931bea75d7ea94ec15f78f859f463888 (diff)
downloadbcm5719-llvm-745c52dd4ef7d363ba186518138d85d3476e46e7.tar.gz
bcm5719-llvm-745c52dd4ef7d363ba186518138d85d3476e46e7.zip
MachO: direct-to-object attribute for data-in-code markers.
The target backend can support data-in-code load commands even when the assembler doesn't, or vice-versa. Allow targets to opt-in for direct-to-object. PR13973. llvm-svn: 164974
Diffstat (limited to 'llvm/lib/MC/MCMachOStreamer.cpp')
-rw-r--r--llvm/lib/MC/MCMachOStreamer.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/MC/MCMachOStreamer.cpp b/llvm/lib/MC/MCMachOStreamer.cpp
index 74f6dc62e1c..b152a8c85e2 100644
--- a/llvm/lib/MC/MCMachOStreamer.cpp
+++ b/llvm/lib/MC/MCMachOStreamer.cpp
@@ -139,6 +139,8 @@ void MCMachOStreamer::EmitLabel(MCSymbol *Symbol) {
}
void MCMachOStreamer::EmitDataRegion(DataRegionData::KindTy Kind) {
+ if (!getAssembler().getBackend().hasDataInCodeSupport())
+ return;
// Create a temporary label to mark the start of the data region.
MCSymbol *Start = getContext().CreateTempSymbol();
EmitLabel(Start);
@@ -149,6 +151,8 @@ void MCMachOStreamer::EmitDataRegion(DataRegionData::KindTy Kind) {
}
void MCMachOStreamer::EmitDataRegionEnd() {
+ if (!getAssembler().getBackend().hasDataInCodeSupport())
+ return;
std::vector<DataRegionData> &Regions = getAssembler().getDataRegions();
assert(Regions.size() && "Mismatched .end_data_region!");
DataRegionData &Data = Regions.back();
OpenPOWER on IntegriCloud