summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
diff options
context:
space:
mode:
authorIain Sandoe <iain@codesourcery.com>2014-01-28 11:03:17 +0000
committerIain Sandoe <iain@codesourcery.com>2014-01-28 11:03:17 +0000
commit625b65a90c62e17881b3e64653d8fcbaff066a43 (patch)
tree4af7eee8351858e13de9247821c370f41e217458 /llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
parentdc96a0fadacd4255d4dc1c56c765a767bac77f06 (diff)
downloadbcm5719-llvm-625b65a90c62e17881b3e64653d8fcbaff066a43.tar.gz
bcm5719-llvm-625b65a90c62e17881b3e64653d8fcbaff066a43.zip
Provide a stub Target Streamer implementation for PPC MachO
At present, this handles .tc (error) and needs to be expanded to deal properly with .machine llvm-svn: 200309
Diffstat (limited to 'llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp')
-rw-r--r--llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
index 421a797886b..309c8fcca57 100644
--- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
+++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
@@ -139,6 +139,18 @@ public:
// limit the parser?
}
};
+
+class PPCTargetMachOStreamer : public PPCTargetStreamer {
+public:
+ PPCTargetMachOStreamer(MCStreamer &S) : PPCTargetStreamer(S) {}
+ virtual void emitTCEntry(const MCSymbol &S) {
+ llvm_unreachable("Unknown pseudo-op: .tc");
+ }
+ virtual void emitMachine(StringRef CPU) {
+ // FIXME: We should update the CPUType, CPUSubType in the Object file if
+ // the new values are different from the defaults.
+ }
+};
}
// This is duplicated code. Refactor this.
@@ -149,8 +161,11 @@ static MCStreamer *createMCStreamer(const Target &T, StringRef TT,
const MCSubtargetInfo &STI,
bool RelaxAll,
bool NoExecStack) {
- if (Triple(TT).isOSDarwin())
- return createMachOStreamer(Ctx, MAB, OS, Emitter, RelaxAll);
+ if (Triple(TT).isOSDarwin()) {
+ MCStreamer *S = createMachOStreamer(Ctx, MAB, OS, Emitter, RelaxAll);
+ new PPCTargetMachOStreamer(*S);
+ return S;
+ }
MCStreamer *S =
createELFStreamer(Ctx, MAB, OS, Emitter, RelaxAll, NoExecStack);
OpenPOWER on IntegriCloud