diff options
| author | Simon Dardis <simon.dardis@mips.com> | 2018-06-04 12:50:32 +0000 |
|---|---|---|
| committer | Simon Dardis <simon.dardis@mips.com> | 2018-06-04 12:50:32 +0000 |
| commit | fb4dde114228d8b889763fed422576125889cd29 (patch) | |
| tree | 68cf208369f22ab70a431ff296e999a40c1d4874 /llvm | |
| parent | 96f51f09d4ecc034ad5c3b4afa6887b0e18c1b65 (diff) | |
| download | bcm5719-llvm-fb4dde114228d8b889763fed422576125889cd29.tar.gz bcm5719-llvm-fb4dde114228d8b889763fed422576125889cd29.zip | |
[mips] Restore the availablity of trap for microMIPS
Reviewers: smaksimovic, atanasyan, abeserminji
Differential Revision: https://reviews.llvm.org/D47584
llvm-svn: 333895
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/Mips/MicroMipsInstrInfo.td | 1 | ||||
| -rw-r--r-- | llvm/test/CodeGen/Mips/llvm-ir/trap.ll | 34 |
2 files changed, 35 insertions, 0 deletions
diff --git a/llvm/lib/Target/Mips/MicroMipsInstrInfo.td b/llvm/lib/Target/Mips/MicroMipsInstrInfo.td index c645c1d3131..3c70db6a092 100644 --- a/llvm/lib/Target/Mips/MicroMipsInstrInfo.td +++ b/llvm/lib/Target/Mips/MicroMipsInstrInfo.td @@ -1024,6 +1024,7 @@ let DecoderNamespace = "MicroMips" in { ISA_MICROMIPS; def DI_MM : MMRel, DEI_FT<"di", GPR32Opnd, II_DI>, EI_FM_MM<0x11d>, ISA_MICROMIPS; + def TRAP_MM : TrapBase<BREAK_MM>, ISA_MICROMIPS; /// Trap Instructions def TEQ_MM : MMRel, TEQ_FT<"teq", GPR32Opnd, uimm4, II_TEQ>, TEQ_FM_MM<0x0>, diff --git a/llvm/test/CodeGen/Mips/llvm-ir/trap.ll b/llvm/test/CodeGen/Mips/llvm-ir/trap.ll new file mode 100644 index 00000000000..f9096b9a4bb --- /dev/null +++ b/llvm/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 |

