diff options
author | Reed Kotler <rkotler@mips.com> | 2013-11-26 20:38:40 +0000 |
---|---|---|
committer | Reed Kotler <rkotler@mips.com> | 2013-11-26 20:38:40 +0000 |
commit | 3aeb1d08579c11a5fbf09dfbb2ff19a91e32a5ef (patch) | |
tree | 911a212683923a8112d48969a613a9cd506d4c65 | |
parent | c0dd1037c8db32e726a7764cf8ac064b50114387 (diff) | |
download | bcm5719-llvm-3aeb1d08579c11a5fbf09dfbb2ff19a91e32a5ef.tar.gz bcm5719-llvm-3aeb1d08579c11a5fbf09dfbb2ff19a91e32a5ef.zip |
Fix a bug related to constant islands for Mips16 and mips16/32 dual mode.
The determination of when we are doing constant pools was being made too
early in the asm printer.
llvm-svn: 195781
-rw-r--r-- | llvm/lib/Target/Mips/MipsAsmPrinter.h | 5 | ||||
-rw-r--r-- | llvm/test/CodeGen/Mips/fpnotneeded.ll | 6 |
2 files changed, 7 insertions, 4 deletions
diff --git a/llvm/lib/Target/Mips/MipsAsmPrinter.h b/llvm/lib/Target/Mips/MipsAsmPrinter.h index 11c6acd208d..b3060ad9306 100644 --- a/llvm/lib/Target/Mips/MipsAsmPrinter.h +++ b/llvm/lib/Target/Mips/MipsAsmPrinter.h @@ -50,7 +50,6 @@ private: /// pool entries so we can properly mark them as data regions. bool InConstantPool; - bool UsingConstantPools; public: @@ -62,8 +61,6 @@ public: : AsmPrinter(TM, Streamer), MCP(0), InConstantPool(false), MCInstLowering(*this) { Subtarget = &TM.getSubtarget<MipsSubtarget>(); - UsingConstantPools = - (Subtarget->inMips16Mode() && Subtarget->useConstantIslands()); } virtual const char *getPassName() const { @@ -73,6 +70,8 @@ public: virtual bool runOnMachineFunction(MachineFunction &MF); virtual void EmitConstantPool() LLVM_OVERRIDE { + bool UsingConstantPools = + (Subtarget->inMips16Mode() && Subtarget->useConstantIslands()); if (!UsingConstantPools) AsmPrinter::EmitConstantPool(); // we emit constant pools customly! diff --git a/llvm/test/CodeGen/Mips/fpnotneeded.ll b/llvm/test/CodeGen/Mips/fpnotneeded.ll index b4fab641422..6a4363c5813 100644 --- a/llvm/test/CodeGen/Mips/fpnotneeded.ll +++ b/llvm/test/CodeGen/Mips/fpnotneeded.ll @@ -1,4 +1,6 @@ -; RUN: llc -march=mipsel -mcpu=mips32 -relocation-model=static -O3 < %s -mips-os16 | FileCheck %s -check-prefix=32 +; RUN: llc -mtriple=mipsel-linux-gnu -march=mipsel -mcpu=mips32 -relocation-model=static -O3 < %s -mips-os16 | FileCheck %s -check-prefix=32 + +; RUN: llc -mtriple=mipsel-linux-gnu -march=mipsel -mcpu=mips32 -relocation-model=static -O3 -mips16-constant-islands < %s -mips-os16 | FileCheck %s -check-prefix=cisle @i = global i32 1, align 4 @f = global float 1.000000e+00, align 4 @@ -57,6 +59,8 @@ entry: ; 32: restore {{.+}} ; 32: .end foo +; cisle: .end foo + attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } |