From 43f93d82b47f424de26d37f7aa584ed8446073ac Mon Sep 17 00:00:00 2001 From: YunQiang Su Date: Tue, 23 Dec 2025 08:23:35 +0800 Subject: [PATCH] Mips: Improve MipsAsmParser::expandDivRem (#172967) Fixes: #172965 In fact MipsAsmParser::expandDivRem is in a so bad status: 1. Div may not execute at all in most case ``` .set reorder bnez $3, $tmp0 div $zero, $2, $3 break 7 $tmp0: ``` `.set reorder` may insert a nop after bnez, which will skip `div` if $3 is not zero. 2. `break 6` is wrong here. (cherry picked from commit c907d7d031f5f072d5cd674b7a2b13dffc555224) --- .../Target/Mips/AsmParser/MipsAsmParser.cpp | 66 +-- .../Target/Mips/MCTargetDesc/MipsABIInfo.cpp | 4 + llvm/lib/Target/Mips/MipsISelLowering.cpp | 6 +- llvm/test/CodeGen/Mips/divrem-inline-asm.ll | 370 +++++++++++++ llvm/test/MC/Mips/macro-ddiv.s | 497 ++++++++---------- llvm/test/MC/Mips/macro-ddivu.s | 445 ++++++++-------- llvm/test/MC/Mips/macro-div.s | 283 +++++----- llvm/test/MC/Mips/macro-divu.s | 119 +++-- llvm/test/MC/Mips/macro-drem.s | 356 ++++++++----- llvm/test/MC/Mips/macro-dremu.s | 180 +++---- llvm/test/MC/Mips/macro-rem.s | 239 ++++----- llvm/test/MC/Mips/macro-remu.s | 227 ++++---- 12 files changed, 1559 insertions(+), 1233 deletions(-) create mode 100644 llvm/test/CodeGen/Mips/divrem-inline-asm.ll diff --git a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp index 602b89a117595..d541e95045053 100644 --- a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp +++ b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp @@ -68,6 +68,7 @@ class MCInstrInfo; } // end namespace llvm extern cl::opt EmitJalrReloc; +extern cl::opt NoZeroDivCheck; namespace { @@ -4230,7 +4231,7 @@ bool MipsAsmParser::expandDivRem(MCInst &Inst, SMLoc IDLoc, MCStreamer &Out, if (!ATReg) return true; - if (ImmValue == 0) { + if (!NoZeroDivCheck && ImmValue == 0) { if (UseTraps) TOut.emitRRI(Mips::TEQ, ZeroReg, ZeroReg, 0x7, IDLoc, STI); else @@ -4262,7 +4263,7 @@ bool MipsAsmParser::expandDivRem(MCInst &Inst, SMLoc IDLoc, MCStreamer &Out, // break, insert the trap/break and exit. This gives a different result to // GAS. GAS has an inconsistency/missed optimization in that not all cases // are handled equivalently. As the observed behaviour is the same, we're ok. - if (RtReg == Mips::ZERO || RtReg == Mips::ZERO_64) { + if (!NoZeroDivCheck && (RtReg == Mips::ZERO || RtReg == Mips::ZERO_64)) { if (UseTraps) { TOut.emitRRI(Mips::TEQ, ZeroReg, ZeroReg, 0x7, IDLoc, STI); return false; @@ -4283,62 +4284,25 @@ bool MipsAsmParser::expandDivRem(MCInst &Inst, SMLoc IDLoc, MCStreamer &Out, MCSymbol *BrTarget; MCOperand LabelOp; - if (UseTraps) { - TOut.emitRRI(Mips::TEQ, RtReg, ZeroReg, 0x7, IDLoc, STI); - } else { - // Branch to the li instruction. - BrTarget = Context.createTempSymbol(); - LabelOp = MCOperand::createExpr(MCSymbolRefExpr::create(BrTarget, Context)); - TOut.emitRRX(Mips::BNE, RtReg, ZeroReg, LabelOp, IDLoc, STI); - } - TOut.emitRR(DivOp, RsReg, RtReg, IDLoc, STI); + if (!NoZeroDivCheck) { + if (UseTraps) { + TOut.emitRRI(Mips::TEQ, RtReg, ZeroReg, 0x7, IDLoc, STI); + } else { + // Branch to the li instruction. + BrTarget = Context.createTempSymbol(); + LabelOp = + MCOperand::createExpr(MCSymbolRefExpr::create(BrTarget, Context)); + TOut.emitRRX(Mips::BNE, RtReg, ZeroReg, LabelOp, IDLoc, STI); + } - if (!UseTraps) - TOut.emitII(Mips::BREAK, 0x7, 0, IDLoc, STI); + if (!UseTraps) + TOut.emitII(Mips::BREAK, 0x7, 0, IDLoc, STI); - if (!Signed) { if (!UseTraps) TOut.getStreamer().emitLabel(BrTarget); - - TOut.emitR(isDiv ? Mips::MFLO : Mips::MFHI, RdReg, IDLoc, STI); - return false; - } - - MCRegister ATReg = getATReg(IDLoc); - if (!ATReg) - return true; - - if (!UseTraps) - TOut.getStreamer().emitLabel(BrTarget); - - TOut.emitRRI(Mips::ADDiu, ATReg, ZeroReg, -1, IDLoc, STI); - - // Temporary label for the second branch target. - MCSymbol *BrTargetEnd = Context.createTempSymbol(); - MCOperand LabelOpEnd = - MCOperand::createExpr(MCSymbolRefExpr::create(BrTargetEnd, Context)); - - // Branch to the mflo instruction. - TOut.emitRRX(Mips::BNE, RtReg, ATReg, LabelOpEnd, IDLoc, STI); - - if (IsMips64) { - TOut.emitRRI(Mips::ADDiu, ATReg, ZeroReg, 1, IDLoc, STI); - TOut.emitDSLL(ATReg, ATReg, 63, IDLoc, STI); - } else { - TOut.emitRI(Mips::LUi, ATReg, (uint16_t)0x8000, IDLoc, STI); - } - - if (UseTraps) - TOut.emitRRI(Mips::TEQ, RsReg, ATReg, 0x6, IDLoc, STI); - else { - // Branch to the mflo instruction. - TOut.emitRRX(Mips::BNE, RsReg, ATReg, LabelOpEnd, IDLoc, STI); - TOut.emitNop(IDLoc, STI); - TOut.emitII(Mips::BREAK, 0x6, 0, IDLoc, STI); } - TOut.getStreamer().emitLabel(BrTargetEnd); TOut.emitR(isDiv ? Mips::MFLO : Mips::MFHI, RdReg, IDLoc, STI); return false; } diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp index 1be29cf3c94b9..a44384d04d431 100644 --- a/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp +++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp @@ -20,6 +20,10 @@ cl::opt EmitJalrReloc("mips-jalr-reloc", cl::Hidden, cl::desc("MIPS: Emit R_{MICRO}MIPS_JALR relocation with jalr"), cl::init(true)); +cl::opt + NoZeroDivCheck("mno-check-zero-division", cl::Hidden, + cl::desc("MIPS: Don't trap on integer division by zero."), + cl::init(false)); namespace { static const MCPhysReg O32IntRegs[4] = {Mips::A0, Mips::A1, Mips::A2, Mips::A3}; diff --git a/llvm/lib/Target/Mips/MipsISelLowering.cpp b/llvm/lib/Target/Mips/MipsISelLowering.cpp index ec6b382151660..70a76f5730e3b 100644 --- a/llvm/lib/Target/Mips/MipsISelLowering.cpp +++ b/llvm/lib/Target/Mips/MipsISelLowering.cpp @@ -81,12 +81,8 @@ using namespace llvm; STATISTIC(NumTailCalls, "Number of tail calls"); -static cl::opt -NoZeroDivCheck("mno-check-zero-division", cl::Hidden, - cl::desc("MIPS: Don't trap on integer division by zero."), - cl::init(false)); - extern cl::opt EmitJalrReloc; +extern cl::opt NoZeroDivCheck; static const MCPhysReg Mips64DPRegs[8] = { Mips::D12_64, Mips::D13_64, Mips::D14_64, Mips::D15_64, diff --git a/llvm/test/CodeGen/Mips/divrem-inline-asm.ll b/llvm/test/CodeGen/Mips/divrem-inline-asm.ll new file mode 100644 index 0000000000000..9dea24582138a --- /dev/null +++ b/llvm/test/CodeGen/Mips/divrem-inline-asm.ll @@ -0,0 +1,370 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6 +; RUN: llc -mtriple=mips64 -mcpu=mips64 -verify-machineinstrs -relocation-model=pic < %s | FileCheck %s -check-prefixes=ALL,ACC64,ACC64-TRAP +; RUN: llc -mtriple=mips64 -mcpu=mips64r2 -verify-machineinstrs -relocation-model=pic < %s | FileCheck %s -check-prefixes=ALL,ACC64,ACC64-TRAP + +; RUN: llc -mtriple=mips64 -mcpu=mips64 -mno-check-zero-division -relocation-model=pic < %s | FileCheck %s -check-prefixes=ALL,ACC64,NOCHECK +; RUN: llc -mtriple=mips64 -mcpu=mips64r2 -mno-check-zero-division -relocation-model=pic < %s | FileCheck %s -check-prefixes=ALL,ACC64,NOCHECK + +; FileCheck Prefixes: +; ALL - All targets +; ACC64 - Same as ACC32 but only for 64-bit targets +; GPR64 - Same as GPR32 but only for 64-bit targets +; ACC64-TRAP - Same as TRAP and ACC64 combined +; GPR64-TRAP - Same as TRAP and GPR64 combined +; NOCHECK - Division by zero will not be detected + + +define i32 @inline_asm_div() { +; ACC64-TRAP-LABEL: inline_asm_div: +; ACC64-TRAP: # %bb.0: # %entry +; ACC64-TRAP-NEXT: addiu $2, $zero, 2 +; ACC64-TRAP-NEXT: addiu $3, $zero, 1 +; ACC64-TRAP-NEXT: #APP +; ACC64-TRAP-NEXT: .set push +; ACC64-TRAP-NEXT: .set at +; ACC64-TRAP-NEXT: .set macro +; ACC64-TRAP-NEXT: .set reorder +; ACC64-TRAP-EMPTY: +; ACC64-TRAP-NEXT: div $zero, $2, $3 +; ACC64-TRAP-NEXT: bnez $3, .Ltmp0 +; ACC64-TRAP-NEXT: break 7 +; ACC64-TRAP-NEXT: .Ltmp0: +; ACC64-TRAP-NEXT: mflo $2 +; ACC64-TRAP-EMPTY: +; ACC64-TRAP-NEXT: .set pop +; ACC64-TRAP-NEXT: #NO_APP +; ACC64-TRAP-NEXT: jr $ra +; ACC64-TRAP-NEXT: nop +; +; NOCHECK-LABEL: inline_asm_div: +; NOCHECK: # %bb.0: # %entry +; NOCHECK-NEXT: addiu $2, $zero, 2 +; NOCHECK-NEXT: addiu $3, $zero, 1 +; NOCHECK-NEXT: #APP +; NOCHECK-NEXT: .set push +; NOCHECK-NEXT: .set at +; NOCHECK-NEXT: .set macro +; NOCHECK-NEXT: .set reorder +; NOCHECK-EMPTY: +; NOCHECK-NEXT: div $zero, $2, $3 +; NOCHECK-NEXT: mflo $2 +; NOCHECK-EMPTY: +; NOCHECK-NEXT: .set pop +; NOCHECK-NEXT: #NO_APP +; NOCHECK-NEXT: jr $ra +; NOCHECK-NEXT: nop +entry: + %0 = tail call i32 asm sideeffect "div $0, $1, $2", "=r,r,r,~{hi},~{lo},~{$1}"(i32 2, i32 1) + ret i32 %0 +} + +define i32 @inline_asm_rem() { +; ACC64-TRAP-LABEL: inline_asm_rem: +; ACC64-TRAP: # %bb.0: # %entry +; ACC64-TRAP-NEXT: addiu $2, $zero, 2 +; ACC64-TRAP-NEXT: addiu $3, $zero, 1 +; ACC64-TRAP-NEXT: #APP +; ACC64-TRAP-NEXT: .set push +; ACC64-TRAP-NEXT: .set at +; ACC64-TRAP-NEXT: .set macro +; ACC64-TRAP-NEXT: .set reorder +; ACC64-TRAP-EMPTY: +; ACC64-TRAP-NEXT: div $zero, $2, $3 +; ACC64-TRAP-NEXT: bnez $3, .Ltmp1 +; ACC64-TRAP-NEXT: break 7 +; ACC64-TRAP-NEXT: .Ltmp1: +; ACC64-TRAP-NEXT: mfhi $2 +; ACC64-TRAP-EMPTY: +; ACC64-TRAP-NEXT: .set pop +; ACC64-TRAP-NEXT: #NO_APP +; ACC64-TRAP-NEXT: jr $ra +; ACC64-TRAP-NEXT: nop +; +; NOCHECK-LABEL: inline_asm_rem: +; NOCHECK: # %bb.0: # %entry +; NOCHECK-NEXT: addiu $2, $zero, 2 +; NOCHECK-NEXT: addiu $3, $zero, 1 +; NOCHECK-NEXT: #APP +; NOCHECK-NEXT: .set push +; NOCHECK-NEXT: .set at +; NOCHECK-NEXT: .set macro +; NOCHECK-NEXT: .set reorder +; NOCHECK-EMPTY: +; NOCHECK-NEXT: div $zero, $2, $3 +; NOCHECK-NEXT: mfhi $2 +; NOCHECK-EMPTY: +; NOCHECK-NEXT: .set pop +; NOCHECK-NEXT: #NO_APP +; NOCHECK-NEXT: jr $ra +; NOCHECK-NEXT: nop +entry: + %0 = tail call i32 asm sideeffect "rem $0, $1, $2", "=r,r,r,~{hi},~{lo},~{$1}"(i32 2, i32 1) + ret i32 %0 +} + +define i64 @inline_asm_ddiv() { +; ACC64-TRAP-LABEL: inline_asm_ddiv: +; ACC64-TRAP: # %bb.0: # %entry +; ACC64-TRAP-NEXT: daddiu $2, $zero, 2 +; ACC64-TRAP-NEXT: daddiu $3, $zero, 1 +; ACC64-TRAP-NEXT: #APP +; ACC64-TRAP-NEXT: .set push +; ACC64-TRAP-NEXT: .set at +; ACC64-TRAP-NEXT: .set macro +; ACC64-TRAP-NEXT: .set reorder +; ACC64-TRAP-EMPTY: +; ACC64-TRAP-NEXT: ddiv $zero, $2, $3 +; ACC64-TRAP-NEXT: bne $3, $zero, .Ltmp2 +; ACC64-TRAP-NEXT: break 7 +; ACC64-TRAP-NEXT: .Ltmp2: +; ACC64-TRAP-NEXT: mflo $2 +; ACC64-TRAP-EMPTY: +; ACC64-TRAP-NEXT: .set pop +; ACC64-TRAP-NEXT: #NO_APP +; ACC64-TRAP-NEXT: jr $ra +; ACC64-TRAP-NEXT: nop +; +; NOCHECK-LABEL: inline_asm_ddiv: +; NOCHECK: # %bb.0: # %entry +; NOCHECK-NEXT: daddiu $2, $zero, 2 +; NOCHECK-NEXT: daddiu $3, $zero, 1 +; NOCHECK-NEXT: #APP +; NOCHECK-NEXT: .set push +; NOCHECK-NEXT: .set at +; NOCHECK-NEXT: .set macro +; NOCHECK-NEXT: .set reorder +; NOCHECK-EMPTY: +; NOCHECK-NEXT: ddiv $zero, $2, $3 +; NOCHECK-NEXT: mflo $2 +; NOCHECK-EMPTY: +; NOCHECK-NEXT: .set pop +; NOCHECK-NEXT: #NO_APP +; NOCHECK-NEXT: jr $ra +; NOCHECK-NEXT: nop +entry: + %0 = tail call i64 asm sideeffect "ddiv $1, $2", "=r,r,r,~{hi},~{lo},~{$1}"(i64 2, i64 1) + ret i64 %0 +} + +define i64 @inline_asm_drem() { +; ACC64-TRAP-LABEL: inline_asm_drem: +; ACC64-TRAP: # %bb.0: # %entry +; ACC64-TRAP-NEXT: daddiu $2, $zero, 2 +; ACC64-TRAP-NEXT: daddiu $3, $zero, 1 +; ACC64-TRAP-NEXT: #APP +; ACC64-TRAP-NEXT: .set push +; ACC64-TRAP-NEXT: .set at +; ACC64-TRAP-NEXT: .set macro +; ACC64-TRAP-NEXT: .set reorder +; ACC64-TRAP-EMPTY: +; ACC64-TRAP-NEXT: ddiv $zero, $2, $3 +; ACC64-TRAP-NEXT: bne $3, $zero, .Ltmp3 +; ACC64-TRAP-NEXT: break 7 +; ACC64-TRAP-NEXT: .Ltmp3: +; ACC64-TRAP-NEXT: mfhi $2 +; ACC64-TRAP-EMPTY: +; ACC64-TRAP-NEXT: .set pop +; ACC64-TRAP-NEXT: #NO_APP +; ACC64-TRAP-NEXT: jr $ra +; ACC64-TRAP-NEXT: nop +; +; NOCHECK-LABEL: inline_asm_drem: +; NOCHECK: # %bb.0: # %entry +; NOCHECK-NEXT: daddiu $2, $zero, 2 +; NOCHECK-NEXT: daddiu $3, $zero, 1 +; NOCHECK-NEXT: #APP +; NOCHECK-NEXT: .set push +; NOCHECK-NEXT: .set at +; NOCHECK-NEXT: .set macro +; NOCHECK-NEXT: .set reorder +; NOCHECK-EMPTY: +; NOCHECK-NEXT: ddiv $zero, $2, $3 +; NOCHECK-NEXT: mfhi $2 +; NOCHECK-EMPTY: +; NOCHECK-NEXT: .set pop +; NOCHECK-NEXT: #NO_APP +; NOCHECK-NEXT: jr $ra +; NOCHECK-NEXT: nop +entry: + %0 = tail call i64 asm sideeffect "drem $1, $2", "=r,r,r,~{hi},~{lo},~{$1}"(i64 2, i64 1) + ret i64 %0 +} + +define i32 @inline_asm_divu() { +; ACC64-TRAP-LABEL: inline_asm_divu: +; ACC64-TRAP: # %bb.0: # %entry +; ACC64-TRAP-NEXT: addiu $2, $zero, 2 +; ACC64-TRAP-NEXT: addiu $3, $zero, 1 +; ACC64-TRAP-NEXT: #APP +; ACC64-TRAP-NEXT: .set push +; ACC64-TRAP-NEXT: .set at +; ACC64-TRAP-NEXT: .set macro +; ACC64-TRAP-NEXT: .set reorder +; ACC64-TRAP-EMPTY: +; ACC64-TRAP-NEXT: divu $zero, $2, $3 +; ACC64-TRAP-NEXT: bnez $3, .Ltmp4 +; ACC64-TRAP-NEXT: break 7 +; ACC64-TRAP-NEXT: .Ltmp4: +; ACC64-TRAP-NEXT: mflo $2 +; ACC64-TRAP-EMPTY: +; ACC64-TRAP-NEXT: .set pop +; ACC64-TRAP-NEXT: #NO_APP +; ACC64-TRAP-NEXT: jr $ra +; ACC64-TRAP-NEXT: nop +; +; NOCHECK-LABEL: inline_asm_divu: +; NOCHECK: # %bb.0: # %entry +; NOCHECK-NEXT: addiu $2, $zero, 2 +; NOCHECK-NEXT: addiu $3, $zero, 1 +; NOCHECK-NEXT: #APP +; NOCHECK-NEXT: .set push +; NOCHECK-NEXT: .set at +; NOCHECK-NEXT: .set macro +; NOCHECK-NEXT: .set reorder +; NOCHECK-EMPTY: +; NOCHECK-NEXT: divu $zero, $2, $3 +; NOCHECK-NEXT: mflo $2 +; NOCHECK-EMPTY: +; NOCHECK-NEXT: .set pop +; NOCHECK-NEXT: #NO_APP +; NOCHECK-NEXT: jr $ra +; NOCHECK-NEXT: nop +entry: + %0 = tail call i32 asm sideeffect "divu $0, $1, $2", "=r,r,r,~{hi},~{lo},~{$1}"(i32 2, i32 1) + ret i32 %0 +} + +define i32 @inline_asm_remu() { +; ACC64-TRAP-LABEL: inline_asm_remu: +; ACC64-TRAP: # %bb.0: # %entry +; ACC64-TRAP-NEXT: addiu $2, $zero, 2 +; ACC64-TRAP-NEXT: addiu $3, $zero, 1 +; ACC64-TRAP-NEXT: #APP +; ACC64-TRAP-NEXT: .set push +; ACC64-TRAP-NEXT: .set at +; ACC64-TRAP-NEXT: .set macro +; ACC64-TRAP-NEXT: .set reorder +; ACC64-TRAP-EMPTY: +; ACC64-TRAP-NEXT: divu $zero, $2, $3 +; ACC64-TRAP-NEXT: bnez $3, .Ltmp5 +; ACC64-TRAP-NEXT: break 7 +; ACC64-TRAP-NEXT: .Ltmp5: +; ACC64-TRAP-NEXT: mfhi $2 +; ACC64-TRAP-EMPTY: +; ACC64-TRAP-NEXT: .set pop +; ACC64-TRAP-NEXT: #NO_APP +; ACC64-TRAP-NEXT: jr $ra +; ACC64-TRAP-NEXT: nop +; +; NOCHECK-LABEL: inline_asm_remu: +; NOCHECK: # %bb.0: # %entry +; NOCHECK-NEXT: addiu $2, $zero, 2 +; NOCHECK-NEXT: addiu $3, $zero, 1 +; NOCHECK-NEXT: #APP +; NOCHECK-NEXT: .set push +; NOCHECK-NEXT: .set at +; NOCHECK-NEXT: .set macro +; NOCHECK-NEXT: .set reorder +; NOCHECK-EMPTY: +; NOCHECK-NEXT: divu $zero, $2, $3 +; NOCHECK-NEXT: mfhi $2 +; NOCHECK-EMPTY: +; NOCHECK-NEXT: .set pop +; NOCHECK-NEXT: #NO_APP +; NOCHECK-NEXT: jr $ra +; NOCHECK-NEXT: nop +entry: + %0 = tail call i32 asm sideeffect "remu $0, $1, $2", "=r,r,r,~{hi},~{lo},~{$1}"(i32 2, i32 1) + ret i32 %0 +} + +define i64 @inline_asm_ddivu() { +; ACC64-TRAP-LABEL: inline_asm_ddivu: +; ACC64-TRAP: # %bb.0: # %entry +; ACC64-TRAP-NEXT: daddiu $2, $zero, 2 +; ACC64-TRAP-NEXT: daddiu $3, $zero, 1 +; ACC64-TRAP-NEXT: #APP +; ACC64-TRAP-NEXT: .set push +; ACC64-TRAP-NEXT: .set at +; ACC64-TRAP-NEXT: .set macro +; ACC64-TRAP-NEXT: .set reorder +; ACC64-TRAP-EMPTY: +; ACC64-TRAP-NEXT: ddivu $zero, $2, $3 +; ACC64-TRAP-NEXT: bne $3, $zero, .Ltmp6 +; ACC64-TRAP-NEXT: break 7 +; ACC64-TRAP-NEXT: .Ltmp6: +; ACC64-TRAP-NEXT: mflo $2 +; ACC64-TRAP-EMPTY: +; ACC64-TRAP-NEXT: .set pop +; ACC64-TRAP-NEXT: #NO_APP +; ACC64-TRAP-NEXT: jr $ra +; ACC64-TRAP-NEXT: nop +; +; NOCHECK-LABEL: inline_asm_ddivu: +; NOCHECK: # %bb.0: # %entry +; NOCHECK-NEXT: daddiu $2, $zero, 2 +; NOCHECK-NEXT: daddiu $3, $zero, 1 +; NOCHECK-NEXT: #APP +; NOCHECK-NEXT: .set push +; NOCHECK-NEXT: .set at +; NOCHECK-NEXT: .set macro +; NOCHECK-NEXT: .set reorder +; NOCHECK-EMPTY: +; NOCHECK-NEXT: ddivu $zero, $2, $3 +; NOCHECK-NEXT: mflo $2 +; NOCHECK-EMPTY: +; NOCHECK-NEXT: .set pop +; NOCHECK-NEXT: #NO_APP +; NOCHECK-NEXT: jr $ra +; NOCHECK-NEXT: nop +entry: + %0 = tail call i64 asm sideeffect "ddivu $1, $2", "=r,r,r,~{hi},~{lo},~{$1}"(i64 2, i64 1) + ret i64 %0 +} + +define i64 @inline_asm_dremu() { +; ACC64-TRAP-LABEL: inline_asm_dremu: +; ACC64-TRAP: # %bb.0: # %entry +; ACC64-TRAP-NEXT: daddiu $2, $zero, 2 +; ACC64-TRAP-NEXT: daddiu $3, $zero, 1 +; ACC64-TRAP-NEXT: #APP +; ACC64-TRAP-NEXT: .set push +; ACC64-TRAP-NEXT: .set at +; ACC64-TRAP-NEXT: .set macro +; ACC64-TRAP-NEXT: .set reorder +; ACC64-TRAP-EMPTY: +; ACC64-TRAP-NEXT: ddivu $zero, $2, $3 +; ACC64-TRAP-NEXT: bne $3, $zero, .Ltmp7 +; ACC64-TRAP-NEXT: break 7 +; ACC64-TRAP-NEXT: .Ltmp7: +; ACC64-TRAP-NEXT: mfhi $2 +; ACC64-TRAP-EMPTY: +; ACC64-TRAP-NEXT: .set pop +; ACC64-TRAP-NEXT: #NO_APP +; ACC64-TRAP-NEXT: jr $ra +; ACC64-TRAP-NEXT: nop +; +; NOCHECK-LABEL: inline_asm_dremu: +; NOCHECK: # %bb.0: # %entry +; NOCHECK-NEXT: daddiu $2, $zero, 2 +; NOCHECK-NEXT: daddiu $3, $zero, 1 +; NOCHECK-NEXT: #APP +; NOCHECK-NEXT: .set push +; NOCHECK-NEXT: .set at +; NOCHECK-NEXT: .set macro +; NOCHECK-NEXT: .set reorder +; NOCHECK-EMPTY: +; NOCHECK-NEXT: ddivu $zero, $2, $3 +; NOCHECK-NEXT: mfhi $2 +; NOCHECK-EMPTY: +; NOCHECK-NEXT: .set pop +; NOCHECK-NEXT: #NO_APP +; NOCHECK-NEXT: jr $ra +; NOCHECK-NEXT: nop +entry: + %0 = tail call i64 asm sideeffect "dremu $1, $2", "=r,r,r,~{hi},~{lo},~{$1}"(i64 2, i64 1) + ret i64 %0 +} +;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: +; ACC64: {{.*}} +; ALL: {{.*}} diff --git a/llvm/test/MC/Mips/macro-ddiv.s b/llvm/test/MC/Mips/macro-ddiv.s index 82342a29686f0..c1c2468c9ac86 100644 --- a/llvm/test/MC/Mips/macro-ddiv.s +++ b/llvm/test/MC/Mips/macro-ddiv.s @@ -4,351 +4,298 @@ # RUN: -mattr=+use-tcc-in-div | FileCheck %s --check-prefix=CHECK-TRAP ddiv $25,$11 -# CHECK-NOTRAP: bne $11, $zero, .Ltmp0 # encoding: [0x15,0x60,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp0-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: ddiv $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1e] -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-NOTRAP: .Ltmp0 -# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] -# CHECK-NOTRAP: bne $11, $1, .Ltmp1 # encoding: [0x15,0x61,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp1-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: addiu $1, $zero, 1 # encoding: [0x24,0x01,0x00,0x01] -# CHECK-NOTRAP: dsll32 $1, $1, 31 # encoding: [0x00,0x01,0x0f,0xfc] -# CHECK-NOTRAP: bne $25, $1, .Ltmp1 # encoding: [0x17,0x21,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp1-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: nop # encoding: [0x00,0x00,0x00,0x00] -# CHECK-NOTRAP: break 6 # encoding: [0x00,0x06,0x00,0x0d] -# CHECK-NOTRAP: .Ltmp1 -# CHECK-NOTRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] - -# CHECK-TRAP: teq $11, $zero, 7 # encoding: [0x01,0x60,0x01,0xf4] -# CHECK-TRAP: ddiv $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1e] -# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] -# CHECK-TRAP: bne $11, $1, .Ltmp0 # encoding: [0x15,0x61,A,A] -# CHECK-TRAP: # fixup A - offset: 0, value: .Ltmp0-4, kind: fixup_Mips_PC16 -# CHECK-TRAP: addiu $1, $zero, 1 # encoding: [0x24,0x01,0x00,0x01] -# CHECK-TRAP: dsll32 $1, $1, 31 # encoding: [0x00,0x01,0x0f,0xfc] -# CHECK-TRAP: teq $25, $1, 6 # encoding: [0x03,0x21,0x01,0xb4] -# CHECK-TRAP: .Ltmp0: -# CHECK-TRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] +// CHECK-NOTRAP: ddiv $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1e] +// CHECK-NOTRAP: bne $11, $zero, .Ltmp0 # encoding: [0x15,0x60,A,A] +// CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp0-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-NOTRAP: .Ltmp0: +// CHECK-NOTRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] +// CHECK-TRAP: ddiv $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1e] +// CHECK-TRAP: teq $11, $zero, 7 # encoding: [0x01,0x60,0x01,0xf4] +// CHECK-TRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] + ddiv $24,$12 -# CHECK-NOTRAP: bne $12, $zero, .Ltmp2 # encoding: [0x15,0x80,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp2-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: ddiv $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1e] -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-NOTRAP: .Ltmp2: -# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] -# CHECK-NOTRAP: bne $12, $1, .Ltmp3 # encoding: [0x15,0x81,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp3-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: addiu $1, $zero, 1 # encoding: [0x24,0x01,0x00,0x01] -# CHECK-NOTRAP: dsll32 $1, $1, 31 # encoding: [0x00,0x01,0x0f,0xfc] -# CHECK-NOTRAP: bne $24, $1, .Ltmp3 # encoding: [0x17,0x01,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp3-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: nop # encoding: [0x00,0x00,0x00,0x00] -# CHECK-NOTRAP: break 6 # encoding: [0x00,0x06,0x00,0x0d] -# CHECK-NOTRAP: .Ltmp3 -# CHECK-NOTRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] - -# CHECK-TRAP: teq $12, $zero, 7 # encoding: [0x01,0x80,0x01,0xf4] -# CHECK-TRAP: ddiv $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1e] -# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] -# CHECK-TRAP: bne $12, $1, .Ltmp1 # encoding: [0x15,0x81,A,A] -# CHECK-TRAP: # fixup A - offset: 0, value: .Ltmp1-4, kind: fixup_Mips_PC16 -# CHECK-TRAP: addiu $1, $zero, 1 # encoding: [0x24,0x01,0x00,0x01] -# CHECK-TRAP: dsll32 $1, $1, 31 # encoding: [0x00,0x01,0x0f,0xfc] -# CHECK-TRAP: teq $24, $1, 6 # encoding: [0x03,0x01,0x01,0xb4] -# CHECK-TRAP: .Ltmp1: -# CHECK-TRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] +// CHECK-NOTRAP: ddiv $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1e] +// CHECK-NOTRAP: bne $12, $zero, .Ltmp1 # encoding: [0x15,0x80,A,A] +// CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp1-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-NOTRAP: .Ltmp1: +// CHECK-NOTRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] +// CHECK-TRAP: ddiv $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1e] +// CHECK-TRAP: teq $12, $zero, 7 # encoding: [0x01,0x80,0x01,0xf4] +// CHECK-TRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] + ddiv $25,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] ddiv $0,$9 -# CHECK-NOTRAP: ddiv $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1e] - -# CHECK-TRAP: teq $9, $zero, 7 # encoding: [0x01,0x20,0x01,0xf4] -# CHECK-TRAP: ddiv $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1e] -# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] -# CHECK-TRAP: bne $9, $1, .Ltmp2 # encoding: [0x15,0x21,A,A] -# CHECK-TRAP: # fixup A - offset: 0, value: .Ltmp2-4, kind: fixup_Mips_PC16 -# CHECK-TRAP: addiu $1, $zero, 1 # encoding: [0x24,0x01,0x00,0x01] -# CHECK-TRAP: dsll32 $1, $1, 31 # encoding: [0x00,0x01,0x0f,0xfc] -# CHECK-TRAP: teq $zero, $1, 6 # encoding: [0x00,0x01,0x01,0xb4] -# CHECK-TRAP: .Ltmp2: -# CHECK-TRAP: mflo $zero # encoding: [0x00,0x00,0x00,0x12] +// CHECK-NOTRAP: ddiv $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1e] +// CHECK-NOTRAP: bne $9, $zero, .Ltmp2 # encoding: [0x15,0x20,A,A] +// CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp2-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-NOTRAP: .Ltmp2: +// CHECK-NOTRAP: mflo $zero # encoding: [0x00,0x00,0x00,0x12] +// CHECK-TRAP: ddiv $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1e] +// CHECK-TRAP: teq $9, $zero, 7 # encoding: [0x01,0x20,0x01,0xf4] +// CHECK-TRAP: mflo $zero # encoding: [0x00,0x00,0x00,0x12] + ddiv $0,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] ddiv $4,0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] ddiv $0,0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] ddiv $4,1 -# CHECK-NOTRAP: move $4, $4 # encoding: [0x00,0x80,0x20,0x25] -# CHECK-TRAP: move $4, $4 # encoding: [0x00,0x80,0x20,0x25] +// CHECK-NOTRAP: move $4, $4 # encoding: [0x00,0x80,0x20,0x25] +// CHECK-TRAP: move $4, $4 # encoding: [0x00,0x80,0x20,0x25] ddiv $4,-1 -# CHECK-NOTRAP: dneg $4, $4 # encoding: [0x00,0x04,0x20,0x2e] -# CHECK-TRAP: dneg $4, $4 # encoding: [0x00,0x04,0x20,0x2e] +// CHECK-NOTRAP: dneg $4, $4 # encoding: [0x00,0x04,0x20,0x2e] +// CHECK-TRAP: dneg $4, $4 # encoding: [0x00,0x04,0x20,0x2e] ddiv $4,2 -# CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02] -# CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02] -# CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02] +// CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02] +// CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddiv $4,0x8000 -# CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] -# CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] -# CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] +// CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] +// CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddiv $4,-0x8000 -# CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] -# CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] -# CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] +// CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] +// CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddiv $4,0x10000 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddiv $4,0x1a5a5 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] -# CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-TRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] -# CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] +// CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-TRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] +// CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddiv $4,0xfffffff -# CHECK-NOTRAP: lui $1, 4095 # encoding: [0x3c,0x01,0x0f,0xff] -# CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 4095 # encoding: [0x3c,0x01,0x0f,0xff] -# CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 4095 # encoding: [0x3c,0x01,0x0f,0xff] +// CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 4095 # encoding: [0x3c,0x01,0x0f,0xff] +// CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddiv $4,0x10000000 -# CHECK-NOTRAP: lui $1, 4096 # encoding: [0x3c,0x01,0x10,0x00] -# CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 4096 # encoding: [0x3c,0x01,0x10,0x00] -# CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 4096 # encoding: [0x3c,0x01,0x10,0x00] +// CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 4096 # encoding: [0x3c,0x01,0x10,0x00] +// CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddiv $4,0xfffffffe -# CHECK-NOTRAP: ori $1, $zero, 65535 # encoding: [0x34,0x01,0xff,0xff] -# CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-NOTRAP: ori $1, $1, 65534 # encoding: [0x34,0x21,0xff,0xfe] -# CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: ori $1, $zero, 65535 # encoding: [0x34,0x01,0xff,0xff] -# CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-TRAP: ori $1, $1, 65534 # encoding: [0x34,0x21,0xff,0xfe] -# CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: ori $1, $zero, 65535 # encoding: [0x34,0x01,0xff,0xff] +// CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-NOTRAP: ori $1, $1, 65534 # encoding: [0x34,0x21,0xff,0xfe] +// CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: ori $1, $zero, 65535 # encoding: [0x34,0x01,0xff,0xff] +// CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-TRAP: ori $1, $1, 65534 # encoding: [0x34,0x21,0xff,0xfe] +// CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddiv $4,0xffffffff -# CHECK-NOTRAP: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] -# CHECK-NOTRAP: dsrl32 $1, $1, 0 # encoding: [0x00,0x01,0x08,0x3e] -# CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] -# CHECK-TRAP: dsrl32 $1, $1, 0 # encoding: [0x00,0x01,0x08,0x3e] -# CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] +// CHECK-NOTRAP: dsrl32 $1, $1, 0 # encoding: [0x00,0x01,0x08,0x3e] +// CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] +// CHECK-TRAP: dsrl32 $1, $1, 0 # encoding: [0x00,0x01,0x08,0x3e] +// CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddiv $4,0xfffffffff -# CHECK-NOTRAP: addiu $1, $zero, 15 # encoding: [0x24,0x01,0x00,0x0f] -# CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: addiu $1, $zero, 15 # encoding: [0x24,0x01,0x00,0x0f] -# CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: addiu $1, $zero, 15 # encoding: [0x24,0x01,0x00,0x0f] +// CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: addiu $1, $zero, 15 # encoding: [0x24,0x01,0x00,0x0f] +// CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1e] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddiv $4,$5,$6 -# CHECK-NOTRAP: bne $6, $zero, .Ltmp6 # encoding: [0x14,0xc0,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp6-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: ddiv $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1e] -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-NOTRAP: .Ltmp6: -# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] -# CHECK-NOTRAP: bne $6, $1, .Ltmp7 # encoding: [0x14,0xc1,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp7-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: addiu $1, $zero, 1 # encoding: [0x24,0x01,0x00,0x01] -# CHECK-NOTRAP: dsll32 $1, $1, 31 # encoding: [0x00,0x01,0x0f,0xfc] -# CHECK-NOTRAP: bne $5, $1, .Ltmp7 # encoding: [0x14,0xa1,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp7-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: nop # encoding: [0x00,0x00,0x00,0x00] -# CHECK-NOTRAP: break 6 # encoding: [0x00,0x06,0x00,0x0d] -# CHECK-NOTRAP: .Ltmp7: -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] - -# CHECK-TRAP: teq $6, $zero, 7 # encoding: [0x00,0xc0,0x01,0xf4] -# CHECK-TRAP: ddiv $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1e] -# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] -# CHECK-TRAP: bne $6, $1, .Ltmp3 # encoding: [0x14,0xc1,A,A] -# CHECK-TRAP: # fixup A - offset: 0, value: .Ltmp3-4, kind: fixup_Mips_PC16 -# CHECK-TRAP: addiu $1, $zero, 1 # encoding: [0x24,0x01,0x00,0x01] -# CHECK-TRAP: dsll32 $1, $1, 31 # encoding: [0x00,0x01,0x0f,0xfc] -# CHECK-TRAP: teq $5, $1, 6 # encoding: [0x00,0xa1,0x01,0xb4] -# CHECK-TRAP: .Ltmp3: -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: ddiv $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1e] +// CHECK-NOTRAP: bne $6, $zero, .Ltmp3 # encoding: [0x14,0xc0,A,A] +// CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp3-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-NOTRAP: .Ltmp3: +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: ddiv $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1e] +// CHECK-TRAP: teq $6, $zero, 7 # encoding: [0x00,0xc0,0x01,0xf4] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] + ddiv $4,$5,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] ddiv $4,$0,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] ddiv $0,$4,$5 -# CHECK-NOTRAP: ddiv $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1e] -# CHECK-TRAP: ddiv $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1e] +// CHECK-NOTRAP: ddiv $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1e] +// CHECK-TRAP: ddiv $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1e] ddiv $4,$0,0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] ddiv $4,$5,0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] ddiv $4,$5,1 -# CHECK-NOTRAP: move $4, $5 # encoding: [0x00,0xa0,0x20,0x25] -# CHECK-TRAP: move $4, $5 # encoding: [0x00,0xa0,0x20,0x25] +// CHECK-NOTRAP: move $4, $5 # encoding: [0x00,0xa0,0x20,0x25] +// CHECK-TRAP: move $4, $5 # encoding: [0x00,0xa0,0x20,0x25] ddiv $4,$5,-1 -# CHECK-NOTRAP: dneg $4, $5 # encoding: [0x00,0x05,0x20,0x2e] -# CHECK-TRAP: dneg $4, $5 # encoding: [0x00,0x05,0x20,0x2e] +// CHECK-NOTRAP: dneg $4, $5 # encoding: [0x00,0x05,0x20,0x2e] +// CHECK-TRAP: dneg $4, $5 # encoding: [0x00,0x05,0x20,0x2e] ddiv $4,$5,2 -# CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02] -# CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02] -# CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02] +// CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02] +// CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddiv $4,$5,0x8000 -# CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] -# CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] -# CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] +// CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] +// CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddiv $4,$5,-0x8000 -# CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] -# CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] -# CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] +// CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] +// CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddiv $4,$5,0x10000 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddiv $4,$5,0x1a5a5 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] -# CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-TRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] -# CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] +// CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-TRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] +// CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddiv $4,$5,0xfffffff -# CHECK-NOTRAP: lui $1, 4095 # encoding: [0x3c,0x01,0x0f,0xff] -# CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 4095 # encoding: [0x3c,0x01,0x0f,0xff] -# CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 4095 # encoding: [0x3c,0x01,0x0f,0xff] +// CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 4095 # encoding: [0x3c,0x01,0x0f,0xff] +// CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddiv $4,$5,0x10000000 -# CHECK-NOTRAP: lui $1, 4096 # encoding: [0x3c,0x01,0x10,0x00] -# CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 4096 # encoding: [0x3c,0x01,0x10,0x00] -# CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 4096 # encoding: [0x3c,0x01,0x10,0x00] +// CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 4096 # encoding: [0x3c,0x01,0x10,0x00] +// CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddiv $4,$5,0xfffffffe -# CHECK-NOTRAP: ori $1, $zero, 65535 # encoding: [0x34,0x01,0xff,0xff] -# CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-NOTRAP: ori $1, $1, 65534 # encoding: [0x34,0x21,0xff,0xfe] -# CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: ori $1, $zero, 65535 # encoding: [0x34,0x01,0xff,0xff] -# CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-TRAP: ori $1, $1, 65534 # encoding: [0x34,0x21,0xff,0xfe] -# CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: ori $1, $zero, 65535 # encoding: [0x34,0x01,0xff,0xff] +// CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-NOTRAP: ori $1, $1, 65534 # encoding: [0x34,0x21,0xff,0xfe] +// CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: ori $1, $zero, 65535 # encoding: [0x34,0x01,0xff,0xff] +// CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-TRAP: ori $1, $1, 65534 # encoding: [0x34,0x21,0xff,0xfe] +// CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddiv $4,$5,0xffffffff -# CHECK-NOTRAP: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] -# CHECK-NOTRAP: dsrl32 $1, $1, 0 # encoding: [0x00,0x01,0x08,0x3e] -# CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] -# CHECK-TRAP: dsrl32 $1, $1, 0 # encoding: [0x00,0x01,0x08,0x3e] -# CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] +// CHECK-NOTRAP: dsrl32 $1, $1, 0 # encoding: [0x00,0x01,0x08,0x3e] +// CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] +// CHECK-TRAP: dsrl32 $1, $1, 0 # encoding: [0x00,0x01,0x08,0x3e] +// CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddiv $4,$5,0xfffffffff -# CHECK-NOTRAP: addiu $1, $zero, 15 # encoding: [0x24,0x01,0x00,0x0f] -# CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: addiu $1, $zero, 15 # encoding: [0x24,0x01,0x00,0x0f] -# CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: addiu $1, $zero, 15 # encoding: [0x24,0x01,0x00,0x0f] +// CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: addiu $1, $zero, 15 # encoding: [0x24,0x01,0x00,0x0f] +// CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1e] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] diff --git a/llvm/test/MC/Mips/macro-ddivu.s b/llvm/test/MC/Mips/macro-ddivu.s index 88998ac76be75..da2f3bff48767 100644 --- a/llvm/test/MC/Mips/macro-ddivu.s +++ b/llvm/test/MC/Mips/macro-ddivu.s @@ -1,301 +1,302 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 6 # RUN: llvm-mc %s -triple=mips64-unknown-linux -show-encoding -mcpu=mips64r2 | \ # RUN: FileCheck %s --check-prefix=CHECK-NOTRAP # RUN: llvm-mc %s -triple=mips64-unknown-linux -show-encoding -mcpu=mips64r2 \ # RUN: -mattr=+use-tcc-in-div | FileCheck %s --check-prefix=CHECK-TRAP ddivu $25,$11 -# CHECK-NOTRAP: bne $11, $zero, .Ltmp0 # encoding: [0x15,0x60,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp0-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: ddivu $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1f] -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-NOTRAP: .Ltmp0 -# CHECK-NOTRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] -# CHECK-TRAP: teq $11, $zero, 7 # encoding: [0x01,0x60,0x01,0xf4] -# CHECK-TRAP: ddivu $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1f] -# CHECK-TRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] +// CHECK-NOTRAP: ddivu $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1f] +// CHECK-NOTRAP: bne $11, $zero, .Ltmp0 # encoding: [0x15,0x60,A,A] +// CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp0-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-NOTRAP: .Ltmp0: +// CHECK-NOTRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] +// CHECK-TRAP: ddivu $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1f] +// CHECK-TRAP: teq $11, $zero, 7 # encoding: [0x01,0x60,0x01,0xf4] +// CHECK-TRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] ddivu $24,$12 -# CHECK-NOTRAP: bne $12, $zero, .Ltmp1 # encoding: [0x15,0x80,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp1-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: ddivu $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1f] -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-NOTRAP: .Ltmp1 -# CHECK-NOTRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] -# CHECK-TRAP: teq $12, $zero, 7 # encoding: [0x01,0x80,0x01,0xf4] -# CHECK-TRAP: ddivu $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1f] -# CHECK-TRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] +// CHECK-NOTRAP: ddivu $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1f] +// CHECK-NOTRAP: bne $12, $zero, .Ltmp1 # encoding: [0x15,0x80,A,A] +// CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp1-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-NOTRAP: .Ltmp1: +// CHECK-NOTRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] +// CHECK-TRAP: ddivu $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1f] +// CHECK-TRAP: teq $12, $zero, 7 # encoding: [0x01,0x80,0x01,0xf4] +// CHECK-TRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] ddivu $25,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] ddivu $0,$9 -# CHECK-NOTRAP: bne $9, $zero, .Ltmp2 # encoding: [0x15,0x20,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp2-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: ddivu $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1f] -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-NOTRAP: .Ltmp2 -# CHECK-NOTRAP: mflo $zero # encoding: [0x00,0x00,0x00,0x12] -# CHECK-TRAP: teq $9, $zero, 7 # encoding: [0x01,0x20,0x01,0xf4] -# CHECK-TRAP: ddivu $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1f] -# CHECK-TRAP: mflo $zero # encoding: [0x00,0x00,0x00,0x12] +// CHECK-NOTRAP: ddivu $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1f] +// CHECK-NOTRAP: bne $9, $zero, .Ltmp2 # encoding: [0x15,0x20,A,A] +// CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp2-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-NOTRAP: .Ltmp2: +// CHECK-NOTRAP: mflo $zero # encoding: [0x00,0x00,0x00,0x12] +// CHECK-TRAP: ddivu $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1f] +// CHECK-TRAP: teq $9, $zero, 7 # encoding: [0x01,0x20,0x01,0xf4] +// CHECK-TRAP: mflo $zero # encoding: [0x00,0x00,0x00,0x12] ddivu $0,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] ddivu $4,0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] ddivu $0,0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] ddivu $4,1 -# CHECK-NOTRAP: move $4, $4 # encoding: [0x00,0x80,0x20,0x25] -# CHECK-TRAP: move $4, $4 # encoding: [0x00,0x80,0x20,0x25] +// CHECK-NOTRAP: move $4, $4 # encoding: [0x00,0x80,0x20,0x25] +// CHECK-TRAP: move $4, $4 # encoding: [0x00,0x80,0x20,0x25] ddivu $4,-1 -# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] -# CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] -# CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] +// CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] +// CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddivu $4,0x8000 -# CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] -# CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] -# CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] +// CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] +// CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddivu $4,-0x8000 -# CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] -# CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] -# CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] +// CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] +// CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddivu $4,0x10000 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddivu $4,0x1a5a5 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] -# CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-TRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] -# CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] +// CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-TRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] +// CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddivu $4,0xfffffff -# CHECK-NOTRAP: lui $1, 4095 # encoding: [0x3c,0x01,0x0f,0xff] -# CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 4095 # encoding: [0x3c,0x01,0x0f,0xff] -# CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 4095 # encoding: [0x3c,0x01,0x0f,0xff] +// CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 4095 # encoding: [0x3c,0x01,0x0f,0xff] +// CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddivu $4,0x10000000 -# CHECK-NOTRAP: lui $1, 4096 # encoding: [0x3c,0x01,0x10,0x00] -# CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 4096 # encoding: [0x3c,0x01,0x10,0x00] -# CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 4096 # encoding: [0x3c,0x01,0x10,0x00] +// CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 4096 # encoding: [0x3c,0x01,0x10,0x00] +// CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddivu $4,0xfffffffe -# CHECK-NOTRAP: ori $1, $zero, 65535 # encoding: [0x34,0x01,0xff,0xff] -# CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-NOTRAP: ori $1, $1, 65534 # encoding: [0x34,0x21,0xff,0xfe] -# CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: ori $1, $zero, 65535 # encoding: [0x34,0x01,0xff,0xff] -# CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-TRAP: ori $1, $1, 65534 # encoding: [0x34,0x21,0xff,0xfe] -# CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: ori $1, $zero, 65535 # encoding: [0x34,0x01,0xff,0xff] +// CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-NOTRAP: ori $1, $1, 65534 # encoding: [0x34,0x21,0xff,0xfe] +// CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: ori $1, $zero, 65535 # encoding: [0x34,0x01,0xff,0xff] +// CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-TRAP: ori $1, $1, 65534 # encoding: [0x34,0x21,0xff,0xfe] +// CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddivu $4,0xffffffff -# CHECK-NOTRAP: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] -# CHECK-NOTRAP: dsrl32 $1, $1, 0 # encoding: [0x00,0x01,0x08,0x3e] -# CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] -# CHECK-TRAP: dsrl32 $1, $1, 0 # encoding: [0x00,0x01,0x08,0x3e] -# CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] +// CHECK-NOTRAP: dsrl32 $1, $1, 0 # encoding: [0x00,0x01,0x08,0x3e] +// CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] +// CHECK-TRAP: dsrl32 $1, $1, 0 # encoding: [0x00,0x01,0x08,0x3e] +// CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddivu $4,0xfffffffff -# CHECK-NOTRAP: addiu $1, $zero, 15 # encoding: [0x24,0x01,0x00,0x0f] -# CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: addiu $1, $zero, 15 # encoding: [0x24,0x01,0x00,0x0f] -# CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: addiu $1, $zero, 15 # encoding: [0x24,0x01,0x00,0x0f] +// CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: addiu $1, $zero, 15 # encoding: [0x24,0x01,0x00,0x0f] +// CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1f] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddivu $4,$5,$6 -# CHECK-NOTRAP: bne $6, $zero, .Ltmp3 # encoding: [0x14,0xc0,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp3-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: ddivu $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1f] -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-NOTRAP: .Ltmp3: -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: teq $6, $zero, 7 # encoding: [0x00,0xc0,0x01,0xf4] -# CHECK-TRAP: ddivu $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: ddivu $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1f] +// CHECK-NOTRAP: bne $6, $zero, .Ltmp3 # encoding: [0x14,0xc0,A,A] +// CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp3-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-NOTRAP: .Ltmp3: +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: ddivu $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1f] +// CHECK-TRAP: teq $6, $zero, 7 # encoding: [0x00,0xc0,0x01,0xf4] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddivu $4,$5,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] ddivu $4,$0,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] ddivu $0, $4, $5 -# CHECK-NOTRAP: ddivu $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1f] -# CHECK-TRAP: ddivu $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1f] +// CHECK-NOTRAP: ddivu $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1f] +// CHECK-TRAP: ddivu $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1f] ddivu $4,$5,0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] ddivu $4,$0,0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] ddivu $0,$0,0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] ddivu $4,$5,1 -# CHECK-NOTRAP: move $4, $5 # encoding: [0x00,0xa0,0x20,0x25] -# CHECK-TRAP: move $4, $5 # encoding: [0x00,0xa0,0x20,0x25] +// CHECK-NOTRAP: move $4, $5 # encoding: [0x00,0xa0,0x20,0x25] +// CHECK-TRAP: move $4, $5 # encoding: [0x00,0xa0,0x20,0x25] ddivu $4,$5,-1 -# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] -# CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] -# CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] +// CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] +// CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddivu $4,$5,2 -# CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02] -# CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02] -# CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02] +// CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02] +// CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddivu $4,$5,0x8000 -# CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] -# CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] -# CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] +// CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] +// CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddivu $4,$5,-0x8000 -# CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] -# CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] -# CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] +// CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] +// CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddivu $4,$5,0x10000 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddivu $4,$5,0x1a5a5 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] -# CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-TRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] -# CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] +// CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-TRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] +// CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddivu $4,$5,0xfffffff -# CHECK-NOTRAP: lui $1, 4095 # encoding: [0x3c,0x01,0x0f,0xff] -# CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 4095 # encoding: [0x3c,0x01,0x0f,0xff] -# CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 4095 # encoding: [0x3c,0x01,0x0f,0xff] +// CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 4095 # encoding: [0x3c,0x01,0x0f,0xff] +// CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddivu $4,$5,0x10000000 -# CHECK-NOTRAP: lui $1, 4096 # encoding: [0x3c,0x01,0x10,0x00] -# CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 4096 # encoding: [0x3c,0x01,0x10,0x00] -# CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 4096 # encoding: [0x3c,0x01,0x10,0x00] +// CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 4096 # encoding: [0x3c,0x01,0x10,0x00] +// CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddivu $4,$5,0xfffffffe +// CHECK-NOTRAP: ori $1, $zero, 65535 # encoding: [0x34,0x01,0xff,0xff] +// CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-NOTRAP: ori $1, $1, 65534 # encoding: [0x34,0x21,0xff,0xfe] +// CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: ori $1, $zero, 65535 # encoding: [0x34,0x01,0xff,0xff] +// CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-TRAP: ori $1, $1, 65534 # encoding: [0x34,0x21,0xff,0xfe] +// CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-NOTRAP: ori $1, $zero, 65535 # encoding: [0x34,0x01,0xff,0xff] -# CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-NOTRAP: ori $1, $1, 65534 # encoding: [0x34,0x21,0xff,0xfe] -# CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: ori $1, $zero, 65535 # encoding: [0x34,0x01,0xff,0xff] -# CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-TRAP: ori $1, $1, 65534 # encoding: [0x34,0x21,0xff,0xfe] -# CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddivu $4,$5,0xffffffff -# CHECK-NOTRAP: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] -# CHECK-NOTRAP: dsrl32 $1, $1, 0 # encoding: [0x00,0x01,0x08,0x3e] -# CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] -# CHECK-TRAP: dsrl32 $1, $1, 0 # encoding: [0x00,0x01,0x08,0x3e] -# CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] +// CHECK-NOTRAP: dsrl32 $1, $1, 0 # encoding: [0x00,0x01,0x08,0x3e] +// CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] +// CHECK-TRAP: dsrl32 $1, $1, 0 # encoding: [0x00,0x01,0x08,0x3e] +// CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] ddivu $4,$5,0xfffffffff -# CHECK-NOTRAP: addiu $1, $zero, 15 # encoding: [0x24,0x01,0x00,0x0f] -# CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: addiu $1, $zero, 15 # encoding: [0x24,0x01,0x00,0x0f] -# CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] -# CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] -# CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: addiu $1, $zero, 15 # encoding: [0x24,0x01,0x00,0x0f] +// CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-NOTRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-NOTRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: addiu $1, $zero, 15 # encoding: [0x24,0x01,0x00,0x0f] +// CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-TRAP: dsll $1, $1, 16 # encoding: [0x00,0x01,0x0c,0x38] +// CHECK-TRAP: ori $1, $1, 65535 # encoding: [0x34,0x21,0xff,0xff] +// CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1f] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] diff --git a/llvm/test/MC/Mips/macro-div.s b/llvm/test/MC/Mips/macro-div.s index 884618b667894..09c54c6286007 100644 --- a/llvm/test/MC/Mips/macro-div.s +++ b/llvm/test/MC/Mips/macro-div.s @@ -4,219 +4,174 @@ # RUN: -mattr=+use-tcc-in-div | FileCheck %s --check-prefix=CHECK-TRAP div $25,$11 -# CHECK-NOTRAP: bnez $11, $tmp0 # encoding: [0x15,0x60,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp0-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: div $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1a] -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-NOTRAP: $tmp0: -# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] -# CHECK-NOTRAP: bne $11, $1, $tmp1 # encoding: [0x15,0x61,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp1-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: lui $1, 32768 # encoding: [0x3c,0x01,0x80,0x00] -# CHECK-NOTRAP: bne $25, $1, $tmp1 # encoding: [0x17,0x21,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp1-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: nop # encoding: [0x00,0x00,0x00,0x00] -# CHECK-NOTRAP: break 6 # encoding: [0x00,0x06,0x00,0x0d] -# CHECK-NOTRAP: $tmp1: -# CHECK-NOTRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] -# CHECK-TRAP: teq $11, $zero, 7 # encoding: [0x01,0x60,0x01,0xf4] -# CHECK-TRAP: div $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1a] -# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] -# CHECK-TRAP: bne $11, $1, $tmp0 # encoding: [0x15,0x61,A,A] -# CHECK-TRAP: # fixup A - offset: 0, value: $tmp0-4, kind: fixup_Mips_PC16 -# CHECK-TRAP: lui $1, 32768 # encoding: [0x3c,0x01,0x80,0x00] -# CHECK-TRAP: teq $25, $1, 6 # encoding: [0x03,0x21,0x01,0xb4] -# CHECK-TRAP: $tmp0: -# CHECK-TRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] +// CHECK-NOTRAP: div $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1a] +// CHECK-NOTRAP: bnez $11, $tmp0 # encoding: [0x15,0x60,A,A] +// CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp0-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-NOTRAP: $tmp0: +// CHECK-NOTRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] +// CHECK-TRAP: div $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1a] +// CHECK-TRAP: teq $11, $zero, 7 # encoding: [0x01,0x60,0x01,0xf4] +// CHECK-TRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] div $24,$12 -# CHECK-NOTRAP: bnez $12, $tmp2 # encoding: [0x15,0x80,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp2-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: div $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1a] -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-NOTRAP: $tmp2: -# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] -# CHECK-NOTRAP: bne $12, $1, $tmp3 # encoding: [0x15,0x81,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp3-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: lui $1, 32768 # encoding: [0x3c,0x01,0x80,0x00] -# CHECK-NOTRAP: bne $24, $1, $tmp3 # encoding: [0x17,0x01,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp3-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: nop # encoding: [0x00,0x00,0x00,0x00] -# CHECK-NOTRAP: break 6 # encoding: [0x00,0x06,0x00,0x0d] -# CHECK-NOTRAP: $tmp3: -# CHECK-NOTRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] -# CHECK-TRAP: teq $12, $zero, 7 # encoding: [0x01,0x80,0x01,0xf4] -# CHECK-TRAP: div $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1a] -# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] -# CHECK-TRAP: bne $12, $1, $tmp1 # encoding: [0x15,0x81,A,A] -# CHECK-TRAP: # fixup A - offset: 0, value: $tmp1-4, kind: fixup_Mips_PC16 -# CHECK-TRAP: lui $1, 32768 # encoding: [0x3c,0x01,0x80,0x00] -# CHECK-TRAP: teq $24, $1, 6 # encoding: [0x03,0x01,0x01,0xb4] -# CHECK-TRAP: $tmp1: -# CHECK-TRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] +// CHECK-NOTRAP: div $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1a] +// CHECK-NOTRAP: bnez $12, $tmp1 # encoding: [0x15,0x80,A,A] +// CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp1-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-NOTRAP: $tmp1: +// CHECK-NOTRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] +// CHECK-TRAP: div $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1a] +// CHECK-TRAP: teq $12, $zero, 7 # encoding: [0x01,0x80,0x01,0xf4] +// CHECK-TRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] div $25,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] div $0,$9 -# CHECK-NOTRAP: div $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1a] -# CHECK-TRAP: div $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1a] +// CHECK-NOTRAP: div $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1a] +// CHECK-TRAP: div $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1a] div $0,$0 -# CHECK-NOTRAP: div $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1a] -# CHECK-TRAP: div $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1a] +// CHECK-NOTRAP: div $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1a] +// CHECK-TRAP: div $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1a] div $4,0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] div $0,0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] div $4,1 -# CHECK-NOTRAP: move $4, $4 # encoding: [0x00,0x80,0x20,0x25] -# CHECK-TRAP: move $4, $4 # encoding: [0x00,0x80,0x20,0x25] +// CHECK-NOTRAP: move $4, $4 # encoding: [0x00,0x80,0x20,0x25] +// CHECK-TRAP: move $4, $4 # encoding: [0x00,0x80,0x20,0x25] div $4,-1 -# CHECK-NOTRAP: neg $4, $4 # encoding: [0x00,0x04,0x20,0x22] -# CHECK-TRAP: neg $4, $4 # encoding: [0x00,0x04,0x20,0x22] +// CHECK-NOTRAP: neg $4, $4 # encoding: [0x00,0x04,0x20,0x22] +// CHECK-TRAP: neg $4, $4 # encoding: [0x00,0x04,0x20,0x22] div $4,2 -# CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02] -# CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02] -# CHECK-TRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02] +// CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02] +// CHECK-TRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] div $4,0x8000 -# CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] -# CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] -# CHECK-TRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] +// CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] +// CHECK-TRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] div $4,-0x8000 -# CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] -# CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] -# CHECK-TRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] +// CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] +// CHECK-TRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] div $4,0x10000 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-TRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-TRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] div $4,0x1a5a5 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] -# CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-TRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] -# CHECK-TRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] +// CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-TRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] +// CHECK-TRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] div $4,$5,$6 -# CHECK-NOTRAP: bnez $6, $tmp4 # encoding: [0x14,0xc0,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp4-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: div $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1a] -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-NOTRAP: $tmp4: -# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] -# CHECK-NOTRAP: bne $6, $1, $tmp5 # encoding: [0x14,0xc1,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp5-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: lui $1, 32768 # encoding: [0x3c,0x01,0x80,0x00] -# CHECK-NOTRAP: bne $5, $1, $tmp5 # encoding: [0x14,0xa1,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp5-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: nop # encoding: [0x00,0x00,0x00,0x00] -# CHECK-NOTRAP: break 6 # encoding: [0x00,0x06,0x00,0x0d] -# CHECK-NOTRAP: $tmp5: -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: teq $6, $zero, 7 # encoding: [0x00,0xc0,0x01,0xf4] -# CHECK-TRAP: div $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1a] -# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] -# CHECK-TRAP: bne $6, $1, $tmp2 # encoding: [0x14,0xc1,A,A] -# CHECK-TRAP: # fixup A - offset: 0, value: $tmp2-4, kind: fixup_Mips_PC16 -# CHECK-TRAP: lui $1, 32768 # encoding: [0x3c,0x01,0x80,0x00] -# CHECK-TRAP: teq $5, $1, 6 # encoding: [0x00,0xa1,0x01,0xb4] -# CHECK-TRAP: $tmp2: -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: div $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1a] +// CHECK-NOTRAP: bnez $6, $tmp2 # encoding: [0x14,0xc0,A,A] +// CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp2-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-NOTRAP: $tmp2: +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: div $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1a] +// CHECK-TRAP: teq $6, $zero, 7 # encoding: [0x00,0xc0,0x01,0xf4] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] div $4,$5,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] div $4,$0,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] div $0,$4,$5 -# CHECK-NOTRAP: div $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1a] -# CHECK-TRAP: div $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1a] +// CHECK-NOTRAP: div $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1a] +// CHECK-TRAP: div $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1a] div $4,$5,0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] div $4,$0,0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] div $4,$5,1 -# CHECK-NOTRAP: move $4, $5 # encoding: [0x00,0xa0,0x20,0x25] -# CHECK-TRAP: move $4, $5 # encoding: [0x00,0xa0,0x20,0x25] +// CHECK-NOTRAP: move $4, $5 # encoding: [0x00,0xa0,0x20,0x25] +// CHECK-TRAP: move $4, $5 # encoding: [0x00,0xa0,0x20,0x25] div $4,$5,-1 -# CHECK-NOTRAP: neg $4, $5 # encoding: [0x00,0x05,0x20,0x22] -# CHECK-TRAP: neg $4, $5 # encoding: [0x00,0x05,0x20,0x22] +// CHECK-NOTRAP: neg $4, $5 # encoding: [0x00,0x05,0x20,0x22] +// CHECK-TRAP: neg $4, $5 # encoding: [0x00,0x05,0x20,0x22] div $4,$5,2 -# CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02] -# CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02] -# CHECK-TRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02] +// CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02] +// CHECK-TRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] div $4,$5,0x8000 -# CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] -# CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] -# CHECK-TRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] +// CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] +// CHECK-TRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] div $4,$5,-0x8000 -# CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] -# CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] -# CHECK-TRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] +// CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00] +// CHECK-TRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] div $4,$5,0x10000 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-TRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-TRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] div $4,$5,0x1a5a5 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] -# CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a] -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] -# CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] -# CHECK-TRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] -# CHECK-TRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] +// CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a] +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] +// CHECK-TRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5] +// CHECK-TRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] diff --git a/llvm/test/MC/Mips/macro-divu.s b/llvm/test/MC/Mips/macro-divu.s index 8b4b3ea4dbec2..3a3ced8b42495 100644 --- a/llvm/test/MC/Mips/macro-divu.s +++ b/llvm/test/MC/Mips/macro-divu.s @@ -4,78 +4,115 @@ # RUN: -mattr=+use-tcc-in-div | FileCheck %s --check-prefix=CHECK-TRAP divu $25,$11 -# CHECK-NOTRAP: bnez $11, $tmp0 # encoding: [0x15,0x60,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp0-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: divu $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1b] -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-NOTRAP: $tmp0: -# CHECK-NOTRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] +// CHECK-NOTRAP: divu $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1b] +// CHECK-NOTRAP: bnez $11, $tmp0 # encoding: [0x15,0x60,A,A] +// CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp0-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-NOTRAP: $tmp0: +// CHECK-NOTRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] +// CHECK-TRAP: divu $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1b] +// CHECK-TRAP: teq $11, $zero, 7 # encoding: [0x01,0x60,0x01,0xf4] +// CHECK-TRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] divu $24,$12 -# CHECK-NOTRAP: bnez $12, $tmp1 # encoding: [0x15,0x80,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp1-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: divu $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1b] -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-NOTRAP: $tmp1: -# CHECK-NOTRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] +// CHECK-NOTRAP: divu $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1b] +// CHECK-NOTRAP: bnez $12, $tmp1 # encoding: [0x15,0x80,A,A] +// CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp1-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-NOTRAP: $tmp1: +// CHECK-NOTRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] +// CHECK-TRAP: divu $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1b] +// CHECK-TRAP: teq $12, $zero, 7 # encoding: [0x01,0x80,0x01,0xf4] +// CHECK-TRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] divu $25,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] divu $0,$9 -# CHECK-NOTRAP: divu $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1b] +// CHECK-NOTRAP: divu $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1b] +// CHECK-TRAP: divu $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1b] divu $0,$0 -# CHECK-NOTRAP: divu $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1b] +// CHECK-NOTRAP: divu $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1b] +// CHECK-TRAP: divu $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1b] divu $4,$5,$6 -# CHECK-NOTRAP: bnez $6, $tmp2 # encoding: [0x14,0xc0,A,A] -# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp2-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: divu $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1b] -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] -# CHECK-NOTRAP: $tmp2: -# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: divu $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1b] +// CHECK-NOTRAP: bnez $6, $tmp2 # encoding: [0x14,0xc0,A,A] +// CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp2-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-NOTRAP: $tmp2: +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: divu $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1b] +// CHECK-TRAP: teq $6, $zero, 7 # encoding: [0x00,0xc0,0x01,0xf4] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] divu $4,$5,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] divu $4,$0,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] divu $0, $4, $5 -# CHECK-NOTRAP: divu $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1b] +// CHECK-NOTRAP: divu $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1b] +// CHECK-TRAP: divu $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1b] divu $25, $11 -# CHECK-TRAP: teq $11, $zero, 7 # encoding: [0x01,0x60,0x01,0xf4] -# CHECK-TRAP: divu $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1b] -# CHECK-TRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] +// CHECK-NOTRAP: divu $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1b] +// CHECK-NOTRAP: bnez $11, $tmp3 # encoding: [0x15,0x60,A,A] +// CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp3-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-NOTRAP: $tmp3: +// CHECK-NOTRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] +// CHECK-TRAP: divu $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1b] +// CHECK-TRAP: teq $11, $zero, 7 # encoding: [0x01,0x60,0x01,0xf4] +// CHECK-TRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] divu $24,$12 -# CHECK-TRAP: teq $12, $zero, 7 # encoding: [0x01,0x80,0x01,0xf4] -# CHECK-TRAP: divu $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1b] -# CHECK-TRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] +// CHECK-NOTRAP: divu $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1b] +// CHECK-NOTRAP: bnez $12, $tmp4 # encoding: [0x15,0x80,A,A] +// CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp4-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-NOTRAP: $tmp4: +// CHECK-NOTRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] +// CHECK-TRAP: divu $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1b] +// CHECK-TRAP: teq $12, $zero, 7 # encoding: [0x01,0x80,0x01,0xf4] +// CHECK-TRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] divu $25,$0 -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] divu $0,$9 -# CHECK-TRAP: divu $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1b] +// CHECK-NOTRAP: divu $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1b] +// CHECK-TRAP: divu $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1b] divu $0,$0 -# CHECK-TRAP: divu $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1b] +// CHECK-NOTRAP: divu $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1b] +// CHECK-TRAP: divu $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1b] divu $4,$5,$6 -# CHECK-TRAP: teq $6, $zero, 7 # encoding: [0x00,0xc0,0x01,0xf4] -# CHECK-TRAP: divu $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1b] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: divu $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1b] +// CHECK-NOTRAP: bnez $6, $tmp5 # encoding: [0x14,0xc0,A,A] +// CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp5-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-NOTRAP: $tmp5: +// CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-TRAP: divu $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1b] +// CHECK-TRAP: teq $6, $zero, 7 # encoding: [0x00,0xc0,0x01,0xf4] +// CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] divu $4,$5,$0 -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] divu $4,$0,$0 -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] -# CHECK-TRAP: divu $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1b] -# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12] +// CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] divu $0, $4, $5 -# CHECK-TRAP: divu $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1b] +// CHECK-NOTRAP: divu $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1b] +// CHECK-TRAP: divu $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1b] diff --git a/llvm/test/MC/Mips/macro-drem.s b/llvm/test/MC/Mips/macro-drem.s index 2b2e6d5399024..446c6b03f4d43 100644 --- a/llvm/test/MC/Mips/macro-drem.s +++ b/llvm/test/MC/Mips/macro-drem.s @@ -4,241 +4,317 @@ # RUN: -mattr=+use-tcc-in-div | FileCheck %s --check-prefix=CHECK-TRAP drem $4,$5 -# CHECK-NOTRAP: bne $5, $zero, .Ltmp0 # encoding: [A,A,0xa0,0x14] -# CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp0-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: ddiv $zero, $4, $5 # encoding: [0x1e,0x00,0x85,0x00] -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-NOTRAP: .Ltmp0 -# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] -# CHECK-NOTRAP: bne $5, $1, .Ltmp1 # encoding: [A,A,0xa1,0x14] -# CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp1-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: addiu $1, $zero, 1 # encoding: [0x01,0x00,0x01,0x24] -# CHECK-NOTRAP: dsll32 $1, $1, 31 # encoding: [0xfc,0x0f,0x01,0x00] -# CHECK-NOTRAP: bne $4, $1, .Ltmp1 # encoding: [A,A,0x81,0x14] -# CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp1-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: nop # encoding: [0x00,0x00,0x00,0x00] -# CHECK-NOTRAP: break 6 # encoding: [0x0d,0x00,0x06,0x00] -# CHECK-NOTRAP: .Ltmp1 -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: ddiv $zero, $4, $5 # encoding: [0x1e,0x00,0x85,0x00] +// CHECK-NOTRAP: bne $5, $zero, .Ltmp0 # encoding: [A,A,0xa0,0x14] +// CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp0-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-NOTRAP: .Ltmp0: +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: ddiv $zero, $4, $5 # encoding: [0x1e,0x00,0x85,0x00] +// CHECK-TRAP: teq $5, $zero, 7 # encoding: [0xf4,0x01,0xa0,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] drem $4,0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] drem $0,0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] drem $4,1 -# CHECK-NOTRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-NOTRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-TRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] drem $4,-1 -# CHECK-NOTRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-NOTRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-TRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] drem $4,2 -# CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] -# CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] +// CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] +// CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,0x10000 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,0x1a5a5 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] -# CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] +// CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-TRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] +// CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,0x8000 -# CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] -# CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] +// CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] +// CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,-0x8000 -# CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] -# CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] +// CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] +// CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,$5,$6 -# CHECK-NOTRAP: bne $6, $zero, .Ltmp2 # encoding: [A,A,0xc0,0x14] -# CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp2-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: ddiv $zero, $5, $6 # encoding: [0x1e,0x00,0xa6,0x00] -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-NOTRAP: .Ltmp2: -# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] -# CHECK-NOTRAP: bne $6, $1, .Ltmp3 # encoding: [A,A,0xc1,0x14] -# CHECK-NOTRAP: addiu $1, $zero, 1 # encoding: [0x01,0x00,0x01,0x24] -# CHECK-NOTRAP: dsll32 $1, $1, 31 # encoding: [0xfc,0x0f,0x01,0x00] -# CHECK-NOTRAP: bne $5, $1, .Ltmp3 # encoding: [A,A,0xa1,0x14] -# CHECK-NOTRAP: nop # encoding: [0x00,0x00,0x00,0x00] -# CHECK-NOTRAP: break 6 # encoding: [0x0d,0x00,0x06,0x00] -# CHECK-NOTRAP: .Ltmp3: -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: ddiv $zero, $5, $6 # encoding: [0x1e,0x00,0xa6,0x00] +// CHECK-NOTRAP: bne $6, $zero, .Ltmp1 # encoding: [A,A,0xc0,0x14] +// CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp1-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-NOTRAP: .Ltmp1: +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: ddiv $zero, $5, $6 # encoding: [0x1e,0x00,0xa6,0x00] +// CHECK-TRAP: teq $6, $zero, 7 # encoding: [0xf4,0x01,0xc0,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,$5,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] drem $4,$0,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] drem $0,$5,$4 -# CHECK-NOTRAP: ddiv $zero, $5, $4 # encoding: [0x1e,0x00,0xa4,0x00] +// CHECK-NOTRAP: ddiv $zero, $5, $4 # encoding: [0x1e,0x00,0xa4,0x00] +// CHECK-TRAP: ddiv $zero, $5, $4 # encoding: [0x1e,0x00,0xa4,0x00] drem $4,$5,0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] drem $4,$0,0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] drem $0,$4,$5 -# CHECK-NOTRAP: ddiv $zero, $4, $5 # encoding: [0x1e,0x00,0x85,0x00] +// CHECK-NOTRAP: ddiv $zero, $4, $5 # encoding: [0x1e,0x00,0x85,0x00] +// CHECK-TRAP: ddiv $zero, $4, $5 # encoding: [0x1e,0x00,0x85,0x00] drem $4,$5,1 -# CHECK-NOTRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-NOTRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-TRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] drem $4,$5,-1 -# CHECK-NOTRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-NOTRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-TRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] drem $4,$5,2 -# CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] -# CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] +// CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] +// CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,$5,0x10000 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,$5,0x1a5a5 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] -# CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] +// CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-TRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] +// CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,$5,0x8000 -# CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] -# CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] +// CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] +// CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,$5,-0x8000 -# CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] -# CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] +// CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] +// CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,$5 -# CHECK-TRAP: teq $5, $zero, 7 # encoding: [0xf4,0x01,0xa0,0x00] -# CHECK-TRAP: ddiv $zero, $4, $5 # encoding: [0x1e,0x00,0x85,0x00] -# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] -# CHECK-TRAP: bne $5, $1, .Ltmp2 # encoding: [A,A,0xa1,0x14] -# CHECK-TRAP: # fixup A - offset: 0, value: .Ltmp2-4, kind: fixup_Mips_PC16 -# CHECK-TRAP: addiu $1, $zero, 1 # encoding: [0x01,0x00,0x01,0x24] -# CHECK-TRAP: dsll32 $1, $1, 31 # encoding: [0xfc,0x0f,0x01,0x00] -# CHECK-TRAP: teq $4, $1, 6 # encoding: [0xb4,0x01,0x81,0x00] -# CHECK-TRAP: .Ltmp2 -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: ddiv $zero, $4, $5 # encoding: [0x1e,0x00,0x85,0x00] +// CHECK-NOTRAP: bne $5, $zero, .Ltmp2 # encoding: [A,A,0xa0,0x14] +// CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp2-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-NOTRAP: .Ltmp2: +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: ddiv $zero, $4, $5 # encoding: [0x1e,0x00,0x85,0x00] +// CHECK-TRAP: teq $5, $zero, 7 # encoding: [0xf4,0x01,0xa0,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,$0 -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] drem $4,0 -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] drem $0,0 -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] drem $4,1 -# CHECK-TRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-NOTRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-TRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] drem $4,-1 -# CHECK-TRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-NOTRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-TRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] drem $4,2 -# CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] -# CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] +// CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] +// CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,0x10000 -# CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,0x1a5a5 -# CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-TRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] -# CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] +// CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-TRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] +// CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,0x8000 -# CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] -# CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] +// CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] +// CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,-0x8000 -# CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] -# CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] +// CHECK-NOTRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] +// CHECK-TRAP: ddiv $zero, $4, $1 # encoding: [0x1e,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,$5,$6 -# CHECK-TRAP: teq $6, $zero, 7 # encoding: [0xf4,0x01,0xc0,0x00] -# CHECK-TRAP: ddiv $zero, $5, $6 # encoding: [0x1e,0x00,0xa6,0x00] -# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] -# CHECK-TRAP: bne $6, $1, .Ltmp3 # encoding: [A,A,0xc1,0x14] -# CHECK-TRAP: # fixup A - offset: 0, value: .Ltmp3-4, kind: fixup_Mips_PC16 -# CHECK-TRAP: addiu $1, $zero, 1 # encoding: [0x01,0x00,0x01,0x24] -# CHECK-TRAP: dsll32 $1, $1, 31 # encoding: [0xfc,0x0f,0x01,0x00] -# CHECK-TRAP: teq $5, $1, 6 # encoding: [0xb4,0x01,0xa1,0x00] -# CHECK-TRAP: .Ltmp3 -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: ddiv $zero, $5, $6 # encoding: [0x1e,0x00,0xa6,0x00] +// CHECK-NOTRAP: bne $6, $zero, .Ltmp3 # encoding: [A,A,0xc0,0x14] +// CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp3-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-NOTRAP: .Ltmp3: +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: ddiv $zero, $5, $6 # encoding: [0x1e,0x00,0xa6,0x00] +// CHECK-TRAP: teq $6, $zero, 7 # encoding: [0xf4,0x01,0xc0,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,$5,$0 -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] drem $4,$0,$0 -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] drem $0,$5,$4 -# CHECK-TRAP: ddiv $zero, $5, $4 # encoding: [0x1e,0x00,0xa4,0x00] +// CHECK-NOTRAP: ddiv $zero, $5, $4 # encoding: [0x1e,0x00,0xa4,0x00] +// CHECK-TRAP: ddiv $zero, $5, $4 # encoding: [0x1e,0x00,0xa4,0x00] drem $4,$5,0 -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] drem $4,$0,0 -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] drem $0,$4,$5 -# CHECK-TRAP: ddiv $zero, $4, $5 # encoding: [0x1e,0x00,0x85,0x00] +// CHECK-NOTRAP: ddiv $zero, $4, $5 # encoding: [0x1e,0x00,0x85,0x00] +// CHECK-TRAP: ddiv $zero, $4, $5 # encoding: [0x1e,0x00,0x85,0x00] drem $4,$5,1 -# CHECK-TRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-NOTRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-TRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] drem $4,$5,-1 -# CHECK-TRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-NOTRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-TRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] drem $4,$5,2 -# CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] -# CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] +// CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] +// CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,$5,0x10000 -# CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,$5,0x1a5a5 -# CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-TRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] -# CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] +// CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-TRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] +// CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,$5,0x8000 -# CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] -# CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] +// CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] +// CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] drem $4,$5,-0x8000 -# CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] -# CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] +// CHECK-NOTRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] +// CHECK-TRAP: ddiv $zero, $5, $1 # encoding: [0x1e,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] diff --git a/llvm/test/MC/Mips/macro-dremu.s b/llvm/test/MC/Mips/macro-dremu.s index f3abdc5ed5507..5eaa54deda709 100644 --- a/llvm/test/MC/Mips/macro-dremu.s +++ b/llvm/test/MC/Mips/macro-dremu.s @@ -4,133 +4,133 @@ # RUN: -mattr=+use-tcc-in-div | FileCheck %s --check-prefix=CHECK-TRAP dremu $4,$5 -# CHECK-NOTRAP: bne $5, $zero, .Ltmp0 # encoding: [A,A,0xa0,0x14] -# CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp0-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: ddivu $zero, $4, $5 # encoding: [0x1f,0x00,0x85,0x00] -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-NOTRAP: .Ltmp0 -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: teq $5, $zero, 7 # encoding: [0xf4,0x01,0xa0,0x00] -# CHECK-TRAP: ddivu $zero, $4, $5 # encoding: [0x1f,0x00,0x85,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: ddivu $zero, $4, $5 # encoding: [0x1f,0x00,0x85,0x00] +// CHECK-NOTRAP: bne $5, $zero, .Ltmp0 # encoding: [A,A,0xa0,0x14] +// CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp0-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-NOTRAP: .Ltmp0: +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: ddivu $zero, $4, $5 # encoding: [0x1f,0x00,0x85,0x00] +// CHECK-TRAP: teq $5, $zero, 7 # encoding: [0xf4,0x01,0xa0,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] dremu $4,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] dremu $4,0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] dremu $0,0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] dremu $4,1 -# CHECK-NOTRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] -# CHECK-TRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-NOTRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-TRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] dremu $4,2 -# CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] -# CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] -# CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] +// CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] +// CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] dremu $4,-1 -# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] -# CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] -# CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] +// CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] +// CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] dremu $4,0x1a5a5 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] -# CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-TRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] -# CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] +// CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-TRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] +// CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] dremu $4,0x10000 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] dremu $4,-0x8000 -# CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] -# CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] -# CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] +// CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] +// CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] dremu $4,0x8000 -# CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] -# CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] -# CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] +// CHECK-NOTRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] +// CHECK-TRAP: ddivu $zero, $4, $1 # encoding: [0x1f,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] dremu $4,$5,$6 -# CHECK-NOTRAP: bne $6, $zero, .Ltmp1 # encoding: [A,A,0xc0,0x14] -# CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp1-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: ddivu $zero, $5, $6 # encoding: [0x1f,0x00,0xa6,0x00] -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-NOTRAP: .Ltmp1 -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: teq $6, $zero, 7 # encoding: [0xf4,0x01,0xc0,0x00] -# CHECK-TRAP: ddivu $zero, $5, $6 # encoding: [0x1f,0x00,0xa6,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: ddivu $zero, $5, $6 # encoding: [0x1f,0x00,0xa6,0x00] +// CHECK-NOTRAP: bne $6, $zero, .Ltmp1 # encoding: [A,A,0xc0,0x14] +// CHECK-NOTRAP: # fixup A - offset: 0, value: .Ltmp1-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-NOTRAP: .Ltmp1: +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: ddivu $zero, $5, $6 # encoding: [0x1f,0x00,0xa6,0x00] +// CHECK-TRAP: teq $6, $zero, 7 # encoding: [0xf4,0x01,0xc0,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] dremu $4,$5,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] dremu $4,$0,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] dremu $0,$4,$5 -# CHECK-NOTRAP: ddivu $zero, $4, $5 # encoding: [0x1f,0x00,0x85,0x00] -# CHECK-TRAP: ddivu $zero, $4, $5 # encoding: [0x1f,0x00,0x85,0x00] +// CHECK-NOTRAP: ddivu $zero, $4, $5 # encoding: [0x1f,0x00,0x85,0x00] +// CHECK-TRAP: ddivu $zero, $4, $5 # encoding: [0x1f,0x00,0x85,0x00] dremu $0,$5,$4 -# CHECK-NOTRAP: ddivu $zero, $5, $4 # encoding: [0x1f,0x00,0xa4,0x00] -# CHECK-TRAP: ddivu $zero, $5, $4 # encoding: [0x1f,0x00,0xa4,0x00] +// CHECK-NOTRAP: ddivu $zero, $5, $4 # encoding: [0x1f,0x00,0xa4,0x00] +// CHECK-TRAP: ddivu $zero, $5, $4 # encoding: [0x1f,0x00,0xa4,0x00] dremu $4,$5,0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] dremu $4,$0,0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] dremu $4,$5,1 -# CHECK-NOTRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] -# CHECK-TRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-NOTRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-TRAP: or $4, $zero, $zero # encoding: [0x25,0x20,0x00,0x00] dremu $4,$5,-1 -# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] -# CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x1f,0x00,0xa1,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] -# CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x1f,0x00,0xa1,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] +// CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x1f,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] +// CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x1f,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] dremu $4,$5,2 -# CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] -# CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x1f,0x00,0xa1,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] -# CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x1f,0x00,0xa1,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] +// CHECK-NOTRAP: ddivu $zero, $5, $1 # encoding: [0x1f,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] +// CHECK-TRAP: ddivu $zero, $5, $1 # encoding: [0x1f,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] diff --git a/llvm/test/MC/Mips/macro-rem.s b/llvm/test/MC/Mips/macro-rem.s index 30239a652ca9f..7b7aef6393d17 100644 --- a/llvm/test/MC/Mips/macro-rem.s +++ b/llvm/test/MC/Mips/macro-rem.s @@ -4,184 +4,159 @@ # RUN: -mattr=+use-tcc-in-div | FileCheck %s --check-prefix=CHECK-TRAP rem $4,$5 -# CHECK-NOTRAP: bnez $5, $tmp0 # encoding: [A,A,0xa0,0x14] -# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp0-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: div $zero, $4, $5 # encoding: [0x1a,0x00,0x85,0x00] -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-NOTRAP: $tmp0 -# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] -# CHECK-NOTRAP: bne $5, $1, $tmp1 # encoding: [A,A,0xa1,0x14] -# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp1-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: lui $1, 32768 # encoding: [0x00,0x80,0x01,0x3c] -# CHECK-NOTRAP: bne $4, $1, $tmp1 # encoding: [A,A,0x81,0x14] -# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp1-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: nop # encoding: [0x00,0x00,0x00,0x00] -# CHECK-NOTRAP: break 6 # encoding: [0x0d,0x00,0x06,0x00] -# CHECK-NOTRAP: $tmp1 -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] - -# CHECK-TRAP: teq $5, $zero, 7 # encoding: [0xf4,0x01,0xa0,0x00] -# CHECK-TRAP: div $zero, $4, $5 # encoding: [0x1a,0x00,0x85,0x00] -# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] -# CHECK-TRAP: bne $5, $1, $tmp0 # encoding: [A,A,0xa1,0x14] -# CHECK-TRAP: lui $1, 32768 # encoding: [0x00,0x80,0x01,0x3c] -# CHECK-TRAP: teq $4, $1, 6 # encoding: [0xb4,0x01,0x81,0x00] -# CHECK-TRAP: $tmp0 -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: div $zero, $4, $5 # encoding: [0x1a,0x00,0x85,0x00] +// CHECK-NOTRAP: bnez $5, $tmp0 # encoding: [A,A,0xa0,0x14] +// CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp0-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-NOTRAP: $tmp0: +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: div $zero, $4, $5 # encoding: [0x1a,0x00,0x85,0x00] +// CHECK-TRAP: teq $5, $zero, 7 # encoding: [0xf4,0x01,0xa0,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] + rem $4,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] rem $4,0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] rem $0,0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] rem $4,1 -# CHECK-NOTRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] -# CHECK-TRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-NOTRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-TRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] rem $4,-1 -# CHECK-NOTRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] -# CHECK-TRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-NOTRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-TRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] rem $4,2 -# CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] -# CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x1a,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] -# CHECK-TRAP: div $zero, $4, $1 # encoding: [0x1a,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] +// CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x1a,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] +// CHECK-TRAP: div $zero, $4, $1 # encoding: [0x1a,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] rem $4,0x8000 -# CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] -# CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x1a,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] -# CHECK-TRAP: div $zero, $4, $1 # encoding: [0x1a,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] +// CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x1a,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] +// CHECK-TRAP: div $zero, $4, $1 # encoding: [0x1a,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] rem $4,-0x8000 -# CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] -# CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x1a,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] -# CHECK-TRAP: div $zero, $4, $1 # encoding: [0x1a,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] +// CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x1a,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] +// CHECK-TRAP: div $zero, $4, $1 # encoding: [0x1a,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] rem $4,0x10000 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x1a,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-TRAP: div $zero, $4, $1 # encoding: [0x1a,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x1a,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-TRAP: div $zero, $4, $1 # encoding: [0x1a,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] rem $4,0x1a5a5 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] -# CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x1a,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-TRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] -# CHECK-TRAP: div $zero, $4, $1 # encoding: [0x1a,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] +// CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x1a,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-TRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] +// CHECK-TRAP: div $zero, $4, $1 # encoding: [0x1a,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] rem $4,$5,$6 -# CHECK-NOTRAP: bnez $6, $tmp2 # encoding: [A,A,0xc0,0x14] -# CHECK-NOTRAP: div $zero, $5, $6 # encoding: [0x1a,0x00,0xa6,0x00] -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-NOTRAP-NEXT: $tmp2: -# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] -# CHECK-NOTRAP: bne $6, $1, $tmp3 # encoding: [A,A,0xc1,0x14] -# CHECK-NOTRAP: lui $1, 32768 # encoding: [0x00,0x80,0x01,0x3c] -# CHECK-NOTRAP: bne $5, $1, $tmp3 # encoding: [A,A,0xa1,0x14] -# CHECK-NOTRAP: nop # encoding: [0x00,0x00,0x00,0x00] -# CHECK-NOTRAP: break 6 # encoding: [0x0d,0x00,0x06,0x00] -# CHECK-NOTRAP: $tmp3 -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: teq $6, $zero, 7 # encoding: [0xf4,0x01,0xc0,0x00] -# CHECK-TRAP: div $zero, $5, $6 # encoding: [0x1a,0x00,0xa6,0x00] -# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] -# CHECK-TRAP: bne $6, $1, $tmp1 # encoding: [A,A,0xc1,0x14] -# CHECK-TRAP: lui $1, 32768 # encoding: [0x00,0x80,0x01,0x3c] -# CHECK-TRAP: teq $5, $1, 6 # encoding: [0xb4,0x01,0xa1,0x00] -# CHECK-TRAP: $tmp1 -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: div $zero, $5, $6 # encoding: [0x1a,0x00,0xa6,0x00] +// CHECK-NOTRAP: bnez $6, $tmp1 # encoding: [A,A,0xc0,0x14] +// CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp1-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-NOTRAP: $tmp1: +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: div $zero, $5, $6 # encoding: [0x1a,0x00,0xa6,0x00] +// CHECK-TRAP: teq $6, $zero, 7 # encoding: [0xf4,0x01,0xc0,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] rem $4,$5,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] rem $4,$0,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] rem $0,$5,$4 -# CHECK-NOTRAP: div $zero, $5, $4 # encoding: [0x1a,0x00,0xa4,0x00] -# CHECK-TRAP: div $zero, $5, $4 # encoding: [0x1a,0x00,0xa4,0x00] +// CHECK-NOTRAP: div $zero, $5, $4 # encoding: [0x1a,0x00,0xa4,0x00] +// CHECK-TRAP: div $zero, $5, $4 # encoding: [0x1a,0x00,0xa4,0x00] rem $4,$5,0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] rem $4,$0,0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] rem $4,$5,1 -# CHECK-NOTRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] -# CHECK-TRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-NOTRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-TRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] rem $4,$5,-1 -# CHECK-NOTRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] -# CHECK-TRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-NOTRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-TRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] rem $4,$5,2 -# CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] -# CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x1a,0x00,0xa1,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] -# CHECK-TRAP: div $zero, $5, $1 # encoding: [0x1a,0x00,0xa1,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] +// CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x1a,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] +// CHECK-TRAP: div $zero, $5, $1 # encoding: [0x1a,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] rem $4,$5,0x8000 -# CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] -# CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x1a,0x00,0xa1,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] -# CHECK-TRAP: div $zero, $5, $1 # encoding: [0x1a,0x00,0xa1,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] +// CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x1a,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] +// CHECK-TRAP: div $zero, $5, $1 # encoding: [0x1a,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] rem $4,$5,-0x8000 -# CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] -# CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x1a,0x00,0xa1,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] -# CHECK-TRAP: div $zero, $5, $1 # encoding: [0x1a,0x00,0xa1,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] +// CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x1a,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] +// CHECK-TRAP: div $zero, $5, $1 # encoding: [0x1a,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] rem $4,$5,0x10000 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x1a,0x00,0xa1,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-TRAP: div $zero, $5, $1 # encoding: [0x1a,0x00,0xa1,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x1a,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-TRAP: div $zero, $5, $1 # encoding: [0x1a,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] rem $4,$5,0x1a5a5 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] -# CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x1a,0x00,0xa1,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-TRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] -# CHECK-TRAP: div $zero, $5, $1 # encoding: [0x1a,0x00,0xa1,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] +// CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x1a,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-TRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] +// CHECK-TRAP: div $zero, $5, $1 # encoding: [0x1a,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] diff --git a/llvm/test/MC/Mips/macro-remu.s b/llvm/test/MC/Mips/macro-remu.s index 6520d17426419..67837e97e4e04 100644 --- a/llvm/test/MC/Mips/macro-remu.s +++ b/llvm/test/MC/Mips/macro-remu.s @@ -4,164 +4,165 @@ # RUN: -mattr=+use-tcc-in-div | FileCheck %s --check-prefix=CHECK-TRAP remu $4,$5 -# CHECK-NOTRAP: bnez $5, $tmp0 # encoding: [A,A,0xa0,0x14] -# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp0-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: divu $zero, $4, $5 # encoding: [0x1b,0x00,0x85,0x00] -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: teq $5, $zero, 7 # encoding: [0xf4,0x01,0xa0,0x00] -# CHECK-TRAP: divu $zero, $4, $5 # encoding: [0x1b,0x00,0x85,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: divu $zero, $4, $5 # encoding: [0x1b,0x00,0x85,0x00] +// CHECK-NOTRAP: bnez $5, $tmp0 # encoding: [A,A,0xa0,0x14] +// CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp0-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-NOTRAP: $tmp0: +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: divu $zero, $4, $5 # encoding: [0x1b,0x00,0x85,0x00] +// CHECK-TRAP: teq $5, $zero, 7 # encoding: [0xf4,0x01,0xa0,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] remu $4,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] remu $4,0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] remu $0,0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] remu $4,1 -# CHECK-NOTRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] -# CHECK-TRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-NOTRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-TRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] remu $4,-1 -# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] -# CHECK-NOTRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] -# CHECK-TRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] +// CHECK-NOTRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] +// CHECK-TRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] remu $4,2 -# CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] -# CHECK-NOTRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] -# CHECK-TRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] +// CHECK-NOTRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] +// CHECK-TRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] remu $4,0x8000 -# CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] -# CHECK-NOTRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] -# CHECK-TRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] +// CHECK-NOTRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] +// CHECK-TRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] remu $4,-0x8000 -# CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] -# CHECK-NOTRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] -# CHECK-TRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] +// CHECK-NOTRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] +// CHECK-TRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] remu $4,0x10000 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-NOTRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-TRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-NOTRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-TRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] remu $4,0x1a5a5 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] -# CHECK-NOTRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-TRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] -# CHECK-TRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] +// CHECK-NOTRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-TRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] +// CHECK-TRAP: divu $zero, $4, $1 # encoding: [0x1b,0x00,0x81,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] remu $4,$5,$6 -# CHECK-NOTRAP: bnez $6, $tmp1 # encoding: [A,A,0xc0,0x14] -# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp1-4, kind: fixup_Mips_PC16 -# CHECK-NOTRAP: divu $zero, $5, $6 # encoding: [0x1b,0x00,0xa6,0x00] -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-NOTRAP: $tmp1 -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: teq $6, $zero, 7 # encoding: [0xf4,0x01,0xc0,0x00] -# CHECK-TRAP: divu $zero, $5, $6 # encoding: [0x1b,0x00,0xa6,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: divu $zero, $5, $6 # encoding: [0x1b,0x00,0xa6,0x00] +// CHECK-NOTRAP: bnez $6, $tmp1 # encoding: [A,A,0xc0,0x14] +// CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp1-4, kind: fixup_Mips_PC16 +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-NOTRAP: $tmp1: +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: divu $zero, $5, $6 # encoding: [0x1b,0x00,0xa6,0x00] +// CHECK-TRAP: teq $6, $zero, 7 # encoding: [0xf4,0x01,0xc0,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] remu $4,$5,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] remu $4,$0,$0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] remu $0,$5,$4 -# CHECK-NOTRAP: divu $zero, $5, $4 # encoding: [0x1b,0x00,0xa4,0x00] -# CHECK-TRAP: divu $zero, $5, $4 # encoding: [0x1b,0x00,0xa4,0x00] +// CHECK-NOTRAP: divu $zero, $5, $4 # encoding: [0x1b,0x00,0xa4,0x00] +// CHECK-TRAP: divu $zero, $5, $4 # encoding: [0x1b,0x00,0xa4,0x00] remu $4,$5,0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] remu $4,$0,0 -# CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] -# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] +// CHECK-NOTRAP: break 7 # encoding: [0x0d,0x00,0x07,0x00] +// CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0xf4,0x01,0x00,0x00] remu $4,$5,1 -# CHECK-NOTRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] -# CHECK-TRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-NOTRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] +// CHECK-TRAP: move $4, $zero # encoding: [0x25,0x20,0x00,0x00] remu $4,$5,-1 -# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] -# CHECK-NOTRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] -# CHECK-TRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] +// CHECK-NOTRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24] +// CHECK-TRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] remu $4,$5,2 -# CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] -# CHECK-NOTRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] -# CHECK-TRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] +// CHECK-NOTRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x02,0x00,0x01,0x24] +// CHECK-TRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] remu $4,$5,0x8000 -# CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] -# CHECK-NOTRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] -# CHECK-TRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] +// CHECK-NOTRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] +// CHECK-TRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] remu $4,$5,-0x8000 -# CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] -# CHECK-NOTRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] -# CHECK-TRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] +// CHECK-NOTRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x00,0x80,0x01,0x24] +// CHECK-TRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] remu $4,$5,0x10000 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-NOTRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-TRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-NOTRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-TRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] remu $4,$5,0x1a5a5 -# CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] -# CHECK-NOTRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] -# CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] -# CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] -# CHECK-TRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] -# CHECK-TRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] -# CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-NOTRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] +// CHECK-NOTRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] +// CHECK-NOTRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00] +// CHECK-TRAP: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] +// CHECK-TRAP: ori $1, $1, 42405 # encoding: [0xa5,0xa5,0x21,0x34] +// CHECK-TRAP: divu $zero, $5, $1 # encoding: [0x1b,0x00,0xa1,0x00] +// CHECK-TRAP: mfhi $4 # encoding: [0x10,0x20,0x00,0x00]