diff --git a/gas/testsuite/gas/mips/.Sanitize b/gas/testsuite/gas/mips/.Sanitize index ec9e2544fa..ab552556f2 100644 --- a/gas/testsuite/gas/mips/.Sanitize +++ b/gas/testsuite/gas/mips/.Sanitize @@ -77,6 +77,8 @@ lif-xgot.d lifloat.d lifloat.s mips.exp +mips16.d +mips16.s mips4.d mips4.s mul-ilocks.d diff --git a/gas/testsuite/gas/mips/mips16.s b/gas/testsuite/gas/mips/mips16.s new file mode 100644 index 0000000000..6268fb1650 --- /dev/null +++ b/gas/testsuite/gas/mips/mips16.s @@ -0,0 +1,258 @@ +# Test the mips16 instruction set. + + .set mips16 + + .macro ldst op, reg, base + \op \reg,0(\base) + \op \reg,1(\base) + \op \reg,2(\base) + \op \reg,3(\base) + \op \reg,4(\base) + \op \reg,8(\base) + \op \reg,16(\base) + \op \reg,32(\base) + \op \reg,64(\base) + \op \reg,128(\base) + \op \reg,256(\base) + \op \reg,512(\base) + \op \reg,1024(\base) + \op \reg,2048(\base) + \op \reg,-1(\base) + \op \reg,-2(\base) + \op \reg,-3(\base) + \op \reg,-4(\base) + \op \reg,-8(\base) + \op \reg,-16(\base) + \op \reg,-32(\base) + \op \reg,-64(\base) + \op \reg,-128(\base) + \op \reg,-256(\base) + \op \reg,-512(\base) + \op \reg,-1024(\base) + \op \reg,-2048(\base) + .endm + + .p2align 3 +data1: + .word 0 +insns1: + ldst ld, $2, $3 + ld $2,data1 + ld $2,data2 + ld $2,bar + ld $2,quux + ldst ld, $2, $sp + ldst lwu, $2, $3 + ldst lw, $2, $3 + lw $2,data1 + lw $2,data2 + lw $2,bar + lw $2,quux + ldst lw, $2, $sp + ldst lh, $2, $3 + ldst lhu, $2, $3 + ldst lb, $2, $3 + ldst lbu, $2, $3 + ldst sd, $2, $3 + ldst sd, $2, $sp + ldst sd, $31, $sp + ldst sw, $2, $3 + ldst sw, $2, $sp + ldst sw, $31, $sp + ldst sh, $2, $3 + ldst sb, $2, $3 + + li $2,0 + li $2,1 + li $2,256 + + move $2,$30 + move $20,$2 + + daddu $2,$3,0 + daddu $2,$3,1 + daddu $2,$3,-1 + daddu $2,$3,16 + daddu $2,$3,-16 + daddu $2,$3,$4 + daddu $2,0 + daddu $2,1 + daddu $2,-1 + daddu $2,32 + daddu $2,-32 + daddu $2,128 + daddu $2,-128 + dla $2,data1 + dla $2,data2 + dla $2,bar + dla $2,quux + daddu $sp,0 + daddu $sp,1 + daddu $sp,-1 + daddu $sp,256 + daddu $sp,-256 + daddu $2,$sp,0 + daddu $2,$sp,1 + daddu $2,$sp,-1 + daddu $2,$sp,32 + daddu $2,$sp,-32 + daddu $2,$sp,128 + daddu $2,$sp,-128 + + addu $2,$3,0 + addu $2,$3,1 + addu $2,$3,-1 + addu $2,$3,16 + addu $2,$3,-16 + addu $2,$3,$4 + addu $2,0 + addu $2,1 + addu $2,-1 + addu $2,32 + addu $2,-32 + addu $2,128 + addu $2,-128 + la $2,data1 + la $2,data2 + la $2,bar + la $2,quux + addu $sp,0 + addu $sp,1 + addu $sp,-1 + addu $sp,256 + addu $sp,-256 + addu $2,$sp,0 + addu $2,$sp,1 + addu $2,$sp,-1 + addu $2,$sp,32 + addu $2,$sp,-32 + addu $2,$sp,128 + addu $2,$sp,-128 + +data2: + .word 0 +insns2: + dsubu $2,$3,$4 + subu $2,$3,$4 + neg $2,$3 + + and $2,$3 + or $2,$3 + xor $2,$3 + not $2,$3 + + slt $2,0 + slt $2,1 + slt $2,-1 + slt $2,255 + slt $2,256 + slt $2,$3 + sltu $2,0 + sltu $2,1 + sltu $2,-1 + sltu $2,255 + sltu $2,256 + sltu $2,$3 + cmp $2,0 + cmp $2,1 + cmp $2,255 + cmp $2,256 + cmp $2,$3 + + dsll $2,$3,0 + dsll $2,$3,1 + dsll $2,$3,8 + dsll $2,$3,9 + dsll $2,$3,63 + dsll $2,$3 + dsrl $2,0 + dsrl $2,1 + dsrl $2,8 + dsrl $2,9 + dsrl $2,63 + dsrl $2,$3 + dsra $2,0 + dsra $2,1 + dsra $2,8 + dsra $2,9 + dsra $2,63 + dsra $2,$3 + + mflo $2 + mfhi $3 + + sll $2,$3,0 + sll $2,$3,1 + sll $2,$3,8 + sll $2,$3,9 + sll $2,$3,31 + sll $2,$3 + srl $2,$3,0 + srl $2,$3,1 + srl $2,$3,8 + srl $2,$3,9 + srl $2,$3,31 + srl $2,$3 + sra $2,$3,0 + sra $2,$3,1 + sra $2,$3,8 + sra $2,$3,9 + sra $2,$3,31 + sra $2,$3 + + dmult $2,$3 + dmultu $2,$3 + ddiv $2,$3 + ddivu $2,$3 + + mult $2,$3 + multu $2,$3 + div $2,$3 + divu $2,$3 + + jr $2 + jr $31 + jalr $31,$2 + + beqz $2,insns1 + beqz $2,insns2 + beqz $2,bar + beqz $2,quux + bnez $2,insns1 + bnez $2,insns2 + bnez $2,bar + bnez $2,quux + bteqz insns1 + bteqz insns2 + bteqz bar + bteqz quux + btnez insns1 + btnez insns2 + btnez bar + btnez quux + b insns1 + b insns2 + b bar + b quux + + break 0 + break 1 + break 63 + + jal extern + + entry + entry $4 + entry $4-$6,$16 + entry $16-$17,$31 + entry $31 + exit + exit $16 + exit $16-$17,$31 + exit $31 + + .p2align 3 +bar: + + .skip 200 +quux: