[mips] Interrupt attribute support for mips32r2+.
authorVasileios Kalintiris <Vasileios.Kalintiris@imgtec.com>
Mon, 26 Oct 2015 12:38:43 +0000 (12:38 +0000)
committerVasileios Kalintiris <Vasileios.Kalintiris@imgtec.com>
Mon, 26 Oct 2015 12:38:43 +0000 (12:38 +0000)
commit9f2026ed3f9b66a84fd537c66fc3d09ce74aedb0
tree2a6b2e13ef0a04dfc1189df526f5f4d3bc989fd3
parent40b928c9fe1f9fc7f7ffff720b029293aaac7fc1
[mips] Interrupt attribute support for mips32r2+.

Summary:
This patch adds support for using the "interrupt" attribute on Mips
for interrupt handling functions. At this time only mips32r2+ with the
o32 ABI with the static relocation model is supported. Unsupported
configurations will be rejected

Patch by Simon Dardis (+ clang-format & some trivial changes to follow the
LLVM coding standards by me).

Reviewers: mpf, dsanders

Subscribers: dsanders, vkalintiris, llvm-commits

Differential Revision: http://reviews.llvm.org/D10768

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@251286 91177308-0d34-0410-b5e6-96231b3b80d8
17 files changed:
lib/Target/Mips/MipsCallingConv.td
lib/Target/Mips/MipsISelLowering.cpp
lib/Target/Mips/MipsISelLowering.h
lib/Target/Mips/MipsInstrInfo.td
lib/Target/Mips/MipsMachineFunction.cpp
lib/Target/Mips/MipsMachineFunction.h
lib/Target/Mips/MipsRegisterInfo.cpp
lib/Target/Mips/MipsSEFrameLowering.cpp
lib/Target/Mips/MipsSEFrameLowering.h
lib/Target/Mips/MipsSEISelLowering.cpp
lib/Target/Mips/MipsSEInstrInfo.cpp
lib/Target/Mips/MipsSEInstrInfo.h
lib/Target/Mips/MipsSERegisterInfo.cpp
test/CodeGen/Mips/interrupt-attr-64-fail.ll [new file with mode: 0644]
test/CodeGen/Mips/interrupt-attr-args-fail.ll [new file with mode: 0644]
test/CodeGen/Mips/interrupt-attr-fail.ll [new file with mode: 0644]
test/CodeGen/Mips/interrupt-attr.ll [new file with mode: 0644]