Index: llvm/trunk/lib/Target/Mips/MicroMipsInstrInfo.td =================================================================== --- llvm/trunk/lib/Target/Mips/MicroMipsInstrInfo.td +++ llvm/trunk/lib/Target/Mips/MicroMipsInstrInfo.td @@ -1024,6 +1024,7 @@ ISA_MICROMIPS; def DI_MM : MMRel, DEI_FT<"di", GPR32Opnd, II_DI>, EI_FM_MM<0x11d>, ISA_MICROMIPS; + def TRAP_MM : TrapBase, ISA_MICROMIPS; /// Trap Instructions def TEQ_MM : MMRel, TEQ_FT<"teq", GPR32Opnd, uimm4, II_TEQ>, TEQ_FM_MM<0x0>, Index: llvm/trunk/test/CodeGen/Mips/llvm-ir/trap.ll =================================================================== --- llvm/trunk/test/CodeGen/Mips/llvm-ir/trap.ll +++ llvm/trunk/test/CodeGen/Mips/llvm-ir/trap.ll @@ -0,0 +1,34 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc -mtriple=mips-mti-linux-gnu < %s --show-mc-encoding | FileCheck %s --check-prefix=MTI +; RUN: llc -mtriple=mips-mti-linux-gnu -mattr=+micromips < %s --show-mc-encoding | FileCheck %s --check-prefix=MM +; RUN: llc -mtriple=mips-img-linux-gnu < %s --show-mc-encoding | FileCheck %s --check-prefix=IMG +; RUN: llc -mtriple=mips-img-linux-gnu -mattr=+micromips < %s --show-mc-encoding | FileCheck %s --check-prefix=MMR6 + +define void @test() noreturn nounwind { +; MTI-LABEL: test: +; MTI: # %bb.0: # %entry +; MTI-NEXT: break # encoding: [0x00,0x00,0x00,0x0d] +; MTI-NEXT: jr $ra # encoding: [0x03,0xe0,0x00,0x08] +; MTI-NEXT: nop # encoding: [0x00,0x00,0x00,0x00] +; +; MM-LABEL: test: +; MM: # %bb.0: # %entry +; MM-NEXT: break # encoding: [0x00,0x00,0x00,0x07] +; MM-NEXT: jrc $ra # encoding: [0x45,0xbf] +; +; IMG-LABEL: test: +; IMG: # %bb.0: # %entry +; IMG-NEXT: break # encoding: [0x00,0x00,0x00,0x0d] +; IMG-NEXT: jr $ra # encoding: [0x03,0xe0,0x00,0x08] +; IMG-NEXT: nop # encoding: [0x00,0x00,0x00,0x00] +; +; MMR6-LABEL: test: +; MMR6: # %bb.0: # %entry +; MMR6-NEXT: break # encoding: [0x00,0x00,0x00,0x07] +; MMR6-NEXT: jrc $ra # encoding: [0x45,0xbf] +entry: + tail call void @llvm.trap( ) + ret void +} + +declare void @llvm.trap() nounwind