From: Joerg Sonnenberger Date: Fri, 8 Aug 2014 19:13:23 +0000 (+0000) Subject: Provide an implementation of getNoopForMachoTarget for PPC, otherwise X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f0b70e2fbca936954250cf841f3dfeba838ab148;p=oota-llvm.git Provide an implementation of getNoopForMachoTarget for PPC, otherwise empty functions will assert in the MC object writer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215238 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/PowerPC/PPCInstrInfo.cpp b/lib/Target/PowerPC/PPCInstrInfo.cpp index 1f4b3dd7e16..61adc4b30e0 100644 --- a/lib/Target/PowerPC/PPCInstrInfo.cpp +++ b/lib/Target/PowerPC/PPCInstrInfo.cpp @@ -331,6 +331,11 @@ void PPCInstrInfo::insertNoop(MachineBasicBlock &MBB, BuildMI(MBB, MI, DL, get(Opcode)); } +/// getNoopForMachoTarget - Return the noop instruction to use for a noop. +void PPCInstrInfo::getNoopForMachoTarget(MCInst &NopInst) const { + NopInst.setOpcode(PPC::NOP); +} + // Branch analysis. // Note: If the condition register is set to CTR or CTR8 then this is a // BDNZ (imm == 1) or BDZ (imm == 0) branch. diff --git a/lib/Target/PowerPC/PPCInstrInfo.h b/lib/Target/PowerPC/PPCInstrInfo.h index 83f14c6cf21..db1cfcdf2c3 100644 --- a/lib/Target/PowerPC/PPCInstrInfo.h +++ b/lib/Target/PowerPC/PPCInstrInfo.h @@ -228,6 +228,8 @@ public: /// instruction may be. This returns the maximum number of bytes. /// unsigned GetInstSizeInBytes(const MachineInstr *MI) const; + + void getNoopForMachoTarget(MCInst &NopInst) const override; }; } diff --git a/test/CodeGen/PowerPC/empty-functions.ll b/test/CodeGen/PowerPC/empty-functions.ll index 3a2907d5d7b..bed16cfe82a 100644 --- a/test/CodeGen/PowerPC/empty-functions.ll +++ b/test/CodeGen/PowerPC/empty-functions.ll @@ -1,5 +1,6 @@ ; RUN: llc < %s -mtriple=powerpc-apple-darwin | FileCheck -check-prefix=CHECK-NO-FP %s ; RUN: llc < %s -mtriple=powerpc-apple-darwin -disable-fp-elim | FileCheck -check-prefix=CHECK-FP %s +; RUN: llc < %s -mtriple=powerpc-netbsd -disable-fp-elim | FileCheck -check-prefix=CHECK-FP %s define void @func() { entry: @@ -8,5 +9,5 @@ entry: ; CHECK-NO-FP: _func: ; CHECK-NO-FP: nop -; CHECK-FP: _func: -; CHECK-FP: nop +; CHECK-FP: {{_?}}func: +; CHECK-FP: nop {{[;#]}} avoids zero-length function