[MIPS] Add cpu octeon and some instructions
authorKai Nacke <kai.nacke@redstar.de>
Thu, 20 Mar 2014 11:51:58 +0000 (11:51 +0000)
committerKai Nacke <kai.nacke@redstar.de>
Thu, 20 Mar 2014 11:51:58 +0000 (11:51 +0000)
commitebf9f0c6cb5eb5a17bae7a24cfe380fe5801a60c
tree1e20cb79c94fed0a30a5ea1a55ccf07a0828f2d1
parent90844c477898b64a582886da4a4aeebeed269fb9
[MIPS] Add cpu octeon and some instructions

The Octeon cpu from Cavium Networks is mips64r2 based and has an extended
instruction set. In order to utilize this with LLVM, a new cpu feature "octeon"
and a subtarget feature "cnmips" is added. A small set of new instructions
(baddu, dmul, pop, dpop, seq, sne) is also added. LLVM generates dmul, pop and
dpop instructions with option -mcpu=octeon or -mattr=+cnmips.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204337 91177308-0d34-0410-b5e6-96231b3b80d8
13 files changed:
lib/Target/Mips/Mips.td
lib/Target/Mips/Mips64InstrInfo.td
lib/Target/Mips/MipsISelLowering.cpp
lib/Target/Mips/MipsInstrFormats.td
lib/Target/Mips/MipsInstrInfo.td
lib/Target/Mips/MipsRegisterInfo.td
lib/Target/Mips/MipsSEISelLowering.cpp
lib/Target/Mips/MipsSchedule.td
lib/Target/Mips/MipsSubtarget.cpp
lib/Target/Mips/MipsSubtarget.h
test/CodeGen/Mips/octeon.ll [new file with mode: 0644]
test/CodeGen/Mips/octeon_popcnt.ll [new file with mode: 0644]
test/MC/Mips/octeon-instructions.s [new file with mode: 0644]