223 lines · plain
1# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips32r2 | \2# RUN: FileCheck %s --check-prefix=CHECK-NOTRAP3# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips32r2 \4# RUN: -mattr=+use-tcc-in-div | FileCheck %s --check-prefix=CHECK-TRAP5 6 div $25,$117# CHECK-NOTRAP: bnez $11, $tmp0 # encoding: [0x15,0x60,A,A]8# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp0-4, kind: fixup_Mips_PC169# CHECK-NOTRAP: div $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1a]10# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]11# CHECK-NOTRAP: $tmp0:12# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff]13# CHECK-NOTRAP: bne $11, $1, $tmp1 # encoding: [0x15,0x61,A,A]14# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp1-4, kind: fixup_Mips_PC1615# CHECK-NOTRAP: lui $1, 32768 # encoding: [0x3c,0x01,0x80,0x00]16# CHECK-NOTRAP: bne $25, $1, $tmp1 # encoding: [0x17,0x21,A,A]17# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp1-4, kind: fixup_Mips_PC1618# CHECK-NOTRAP: nop # encoding: [0x00,0x00,0x00,0x00]19# CHECK-NOTRAP: break 6 # encoding: [0x00,0x06,0x00,0x0d]20# CHECK-NOTRAP: $tmp1:21# CHECK-NOTRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12]22# CHECK-TRAP: teq $11, $zero, 7 # encoding: [0x01,0x60,0x01,0xf4]23# CHECK-TRAP: div $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1a]24# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff]25# CHECK-TRAP: bne $11, $1, $tmp0 # encoding: [0x15,0x61,A,A]26# CHECK-TRAP: # fixup A - offset: 0, value: $tmp0-4, kind: fixup_Mips_PC1627# CHECK-TRAP: lui $1, 32768 # encoding: [0x3c,0x01,0x80,0x00]28# CHECK-TRAP: teq $25, $1, 6 # encoding: [0x03,0x21,0x01,0xb4]29# CHECK-TRAP: $tmp0:30# CHECK-TRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12]31 32 div $24,$1233# CHECK-NOTRAP: bnez $12, $tmp2 # encoding: [0x15,0x80,A,A]34# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp2-4, kind: fixup_Mips_PC1635# CHECK-NOTRAP: div $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1a]36# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]37# CHECK-NOTRAP: $tmp2:38# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff]39# CHECK-NOTRAP: bne $12, $1, $tmp3 # encoding: [0x15,0x81,A,A]40# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp3-4, kind: fixup_Mips_PC1641# CHECK-NOTRAP: lui $1, 32768 # encoding: [0x3c,0x01,0x80,0x00]42# CHECK-NOTRAP: bne $24, $1, $tmp3 # encoding: [0x17,0x01,A,A]43# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp3-4, kind: fixup_Mips_PC1644# CHECK-NOTRAP: nop # encoding: [0x00,0x00,0x00,0x00]45# CHECK-NOTRAP: break 6 # encoding: [0x00,0x06,0x00,0x0d]46# CHECK-NOTRAP: $tmp3:47# CHECK-NOTRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12]48# CHECK-TRAP: teq $12, $zero, 7 # encoding: [0x01,0x80,0x01,0xf4]49# CHECK-TRAP: div $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1a]50# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff]51# CHECK-TRAP: bne $12, $1, $tmp1 # encoding: [0x15,0x81,A,A]52# CHECK-TRAP: # fixup A - offset: 0, value: $tmp1-4, kind: fixup_Mips_PC1653# CHECK-TRAP: lui $1, 32768 # encoding: [0x3c,0x01,0x80,0x00]54# CHECK-TRAP: teq $24, $1, 6 # encoding: [0x03,0x01,0x01,0xb4]55# CHECK-TRAP: $tmp1:56# CHECK-TRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12]57 58 div $25,$059# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]60# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4]61 62 div $0,$963# CHECK-NOTRAP: div $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1a]64# CHECK-TRAP: div $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1a]65 66 div $0,$067# CHECK-NOTRAP: div $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1a]68# CHECK-TRAP: div $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1a]69 70 div $4,071# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]72# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4]73 74 div $0,075# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]76# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4]77 78 div $4,179# CHECK-NOTRAP: move $4, $4 # encoding: [0x00,0x80,0x20,0x25]80# CHECK-TRAP: move $4, $4 # encoding: [0x00,0x80,0x20,0x25]81 82 div $4,-183# CHECK-NOTRAP: neg $4, $4 # encoding: [0x00,0x04,0x20,0x22]84# CHECK-TRAP: neg $4, $4 # encoding: [0x00,0x04,0x20,0x22]85 86 div $4,287# CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02]88# CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a]89# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]90# CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02]91# CHECK-TRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a]92# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]93 94 div $4,0x800095# CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00]96# CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a]97# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]98# CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00]99# CHECK-TRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a]100# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]101 102 div $4,-0x8000103# CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00]104# CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a]105# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]106# CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00]107# CHECK-TRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a]108# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]109 110 div $4,0x10000111# CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01]112# CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a]113# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]114# CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01]115# CHECK-TRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a]116# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]117 118 div $4,0x1a5a5119# CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01]120# CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5]121# CHECK-NOTRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a]122# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]123# CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01]124# CHECK-TRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5]125# CHECK-TRAP: div $zero, $4, $1 # encoding: [0x00,0x81,0x00,0x1a]126# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]127 128 div $4,$5,$6129# CHECK-NOTRAP: bnez $6, $tmp4 # encoding: [0x14,0xc0,A,A]130# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp4-4, kind: fixup_Mips_PC16131# CHECK-NOTRAP: div $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1a]132# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]133# CHECK-NOTRAP: $tmp4:134# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff]135# CHECK-NOTRAP: bne $6, $1, $tmp5 # encoding: [0x14,0xc1,A,A]136# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp5-4, kind: fixup_Mips_PC16137# CHECK-NOTRAP: lui $1, 32768 # encoding: [0x3c,0x01,0x80,0x00]138# CHECK-NOTRAP: bne $5, $1, $tmp5 # encoding: [0x14,0xa1,A,A]139# CHECK-NOTRAP: # fixup A - offset: 0, value: $tmp5-4, kind: fixup_Mips_PC16140# CHECK-NOTRAP: nop # encoding: [0x00,0x00,0x00,0x00]141# CHECK-NOTRAP: break 6 # encoding: [0x00,0x06,0x00,0x0d]142# CHECK-NOTRAP: $tmp5:143# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]144# CHECK-TRAP: teq $6, $zero, 7 # encoding: [0x00,0xc0,0x01,0xf4]145# CHECK-TRAP: div $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1a]146# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff]147# CHECK-TRAP: bne $6, $1, $tmp2 # encoding: [0x14,0xc1,A,A]148# CHECK-TRAP: # fixup A - offset: 0, value: $tmp2-4, kind: fixup_Mips_PC16149# CHECK-TRAP: lui $1, 32768 # encoding: [0x3c,0x01,0x80,0x00]150# CHECK-TRAP: teq $5, $1, 6 # encoding: [0x00,0xa1,0x01,0xb4]151# CHECK-TRAP: $tmp2:152# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]153 154 div $4,$5,$0155# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]156# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4]157 158 div $4,$0,$0159# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]160# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4]161 162 div $0,$4,$5163# CHECK-NOTRAP: div $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1a]164# CHECK-TRAP: div $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1a]165 166 div $4,$5,0167# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]168# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4]169 170 div $4,$0,0171# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]172# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4]173 174 div $4,$5,1175# CHECK-NOTRAP: move $4, $5 # encoding: [0x00,0xa0,0x20,0x25]176# CHECK-TRAP: move $4, $5 # encoding: [0x00,0xa0,0x20,0x25]177 178 div $4,$5,-1179# CHECK-NOTRAP: neg $4, $5 # encoding: [0x00,0x05,0x20,0x22]180# CHECK-TRAP: neg $4, $5 # encoding: [0x00,0x05,0x20,0x22]181 182 div $4,$5,2183# CHECK-NOTRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02]184# CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a]185# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]186# CHECK-TRAP: addiu $1, $zero, 2 # encoding: [0x24,0x01,0x00,0x02]187# CHECK-TRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a]188# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]189 190 div $4,$5,0x8000191# CHECK-NOTRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00]192# CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a]193# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]194# CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00]195# CHECK-TRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a]196# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]197 198 div $4,$5,-0x8000199# CHECK-NOTRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00]200# CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a]201# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]202# CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00]203# CHECK-TRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a]204# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]205 206 div $4,$5,0x10000207# CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01]208# CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a]209# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]210# CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01]211# CHECK-TRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a]212# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]213 214 div $4,$5,0x1a5a5215# CHECK-NOTRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01]216# CHECK-NOTRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5]217# CHECK-NOTRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a]218# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]219# CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01]220# CHECK-TRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5]221# CHECK-TRAP: div $zero, $5, $1 # encoding: [0x00,0xa1,0x00,0x1a]222# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]223