diff options
| author | Akira Hatanaka <ahatanak@gmail.com> | 2011-08-11 22:42:31 +0000 |
|---|---|---|
| committer | Akira Hatanaka <ahatanak@gmail.com> | 2011-08-11 22:42:31 +0000 |
| commit | 79d60d0e9463dda8a2afb3388868bfce46145143 (patch) | |
| tree | 6de4892665fef3598bb44125b809dbb9c885d856 /llvm/lib/Target | |
| parent | aee9e76722d03a8a196d1c9b51243d1e618dd12c (diff) | |
| download | bcm5719-llvm-79d60d0e9463dda8a2afb3388868bfce46145143.tar.gz bcm5719-llvm-79d60d0e9463dda8a2afb3388868bfce46145143.zip | |
Enclose directive .cprestore with .set macro and nomacro to silence assembler
warning.
llvm-svn: 137378
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/Mips/MipsFrameLowering.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/llvm/lib/Target/Mips/MipsFrameLowering.cpp b/llvm/lib/Target/Mips/MipsFrameLowering.cpp index 8b4e23876e8..22d1e47b1a2 100644 --- a/llvm/lib/Target/Mips/MipsFrameLowering.cpp +++ b/llvm/lib/Target/Mips/MipsFrameLowering.cpp @@ -254,9 +254,15 @@ void MipsFrameLowering::emitPrologue(MachineFunction &MF) const { } // Restore GP from the saved stack location - if (MipsFI->needGPSaveRestore()) - BuildMI(MBB, MBBI, dl, TII.get(Mips::CPRESTORE)) - .addImm(MFI->getObjectOffset(MipsFI->getGPFI())); + if (MipsFI->needGPSaveRestore()) { + unsigned Offset = MFI->getObjectOffset(MipsFI->getGPFI()); + BuildMI(MBB, MBBI, dl, TII.get(Mips::CPRESTORE)).addImm(Offset); + + if (Offset >= 0x8000) { + BuildMI(MBB, llvm::prior(MBBI), dl, TII.get(Mips::MACRO)); + BuildMI(MBB, MBBI, dl, TII.get(Mips::NOMACRO)); + } + } } void MipsFrameLowering::emitEpilogue(MachineFunction &MF, |

