blob: b991b56349d9f6afface1e6fb2393591b345bbc9 [file] [log] [blame]
# source file to test illegal mips64r2 instructions
.set noreorder
.set noat
.text
text_label:
# dext macro position/size checks
# constraint: 0 <= pos < 64
dext $4, $5, -1, 1 # error (position)
dext $4, $5, 0, 1
dext $4, $5, 63, 1
dext $4, $5, 64, 1 # error (position)
# constraint: 0 < size <= 64
dext $4, $5, 0, 0 # error (size)
dext $4, $5, 0, 1
dext $4, $5, 0, 64
dext $4, $5, 0, 65 # error (size)
# constraint: 0 < (pos+size) <= 64
dext $4, $5, 0, 1
dext $4, $5, 0, 2
dext $4, $5, 0, 63
dext $4, $5, 0, 64
dext $4, $5, 1, 1
dext $4, $5, 1, 2
dext $4, $5, 1, 63
dext $4, $5, 1, 64 # error (size)
dext $4, $5, 63, 1
dext $4, $5, 63, 2 # error (size)
dext $4, $5, 63, 63 # error (size)
dext $4, $5, 63, 64 # error (size)
# dextm instruction position/size checks
# constraint: 0 <= pos < 32
dextm $4, $5, -1, 33 # error (position)
dextm $4, $5, 0, 33
dextm $4, $5, 31, 33
dextm $4, $5, 32, 33 # error (position)
# constraint: 32 < size <= 64
dextm $4, $5, 0, 32 # error (size)
dextm $4, $5, 0, 33
dextm $4, $5, 0, 64
dextm $4, $5, 0, 65 # error (size)
# constraint: 32 < (pos+size) <= 64
dextm $4, $5, 0, 33
dextm $4, $5, 0, 34
dextm $4, $5, 0, 63
dextm $4, $5, 0, 64
dextm $4, $5, 1, 33
dextm $4, $5, 1, 34
dextm $4, $5, 1, 63
dextm $4, $5, 1, 64 # error (size)
dextm $4, $5, 31, 33
dextm $4, $5, 31, 34 # error (size)
dextm $4, $5, 31, 63 # error (size)
dextm $4, $5, 31, 64 # error (size)
# dextu instruction position/size checks
# constraint: 32 <= pos < 64
dextu $4, $5, 31, 1 # error (position)
dextu $4, $5, 32, 1
dextu $4, $5, 63, 1
dextu $4, $5, 64, 1 # error (position)
# constraint: 0 < size <= 32
dextu $4, $5, 32, 0 # error (size)
dextu $4, $5, 32, 1
dextu $4, $5, 32, 32
dextu $4, $5, 32, 33 # error (size)
# constraint: 32 < (pos+size) <= 64
dextu $4, $5, 32, 1
dextu $4, $5, 32, 2
dextu $4, $5, 32, 31
dextu $4, $5, 32, 32
dextu $4, $5, 33, 1
dextu $4, $5, 33, 2
dextu $4, $5, 33, 31
dextu $4, $5, 33, 32 # error (size)
dextu $4, $5, 63, 1
dextu $4, $5, 63, 2 # error (size)
dextu $4, $5, 63, 31 # error (size)
dextu $4, $5, 63, 32 # error (size)
# dins macro position/size checks
# constraint: 0 <= pos < 64
dins $4, $5, -1, 1 # error (position)
dins $4, $5, 0, 1
dins $4, $5, 63, 1
dins $4, $5, 64, 1 # error (position)
# constraint: 0 < size <= 64
dins $4, $5, 0, 0 # error (size)
dins $4, $5, 0, 1
dins $4, $5, 0, 64
dins $4, $5, 0, 65 # error (size)
# constraint: 0 < (pos+size) <= 64
dins $4, $5, 0, 1
dins $4, $5, 0, 2
dins $4, $5, 0, 63
dins $4, $5, 0, 64
dins $4, $5, 1, 1
dins $4, $5, 1, 2
dins $4, $5, 1, 63
dins $4, $5, 1, 64 # error (size)
dins $4, $5, 63, 1
dins $4, $5, 63, 2 # error (size)
dins $4, $5, 63, 63 # error (size)
dins $4, $5, 63, 64 # error (size)
# dinsm instruction position/size checks
# constraint: 0 <= pos < 32
dinsm $4, $5, -1, 33 # error (position)
dinsm $4, $5, 0, 33
dinsm $4, $5, 31, 33
dinsm $4, $5, 32, 33 # error (position)
# constraint: 2 <= size <= 64
dinsm $4, $5, 31, 1 # error (size)
dinsm $4, $5, 31, 2
dinsm $4, $5, 0, 64
dinsm $4, $5, 0, 65 # error (size)
# constraint: 32 < (pos+size) <= 64
dinsm $4, $5, 0, 2 # error (size)
dinsm $4, $5, 0, 3 # error (size)
dinsm $4, $5, 0, 63
dinsm $4, $5, 0, 64
dinsm $4, $5, 1, 2 # error (size)
dinsm $4, $5, 1, 3 # error (size)
dinsm $4, $5, 1, 63
dinsm $4, $5, 1, 64 # error (size)
dinsm $4, $5, 30, 2 # error (size)
dinsm $4, $5, 30, 3
dinsm $4, $5, 30, 63 # error (size)
dinsm $4, $5, 30, 64 # error (size)
dinsm $4, $5, 31, 2
dinsm $4, $5, 31, 3
dinsm $4, $5, 31, 63 # error (size)
dinsm $4, $5, 31, 64 # error (size)
# dinsu instruction position/size checks
# constraint: 32 <= pos < 64
dinsu $4, $5, 31, 1 # error (position)
dinsu $4, $5, 32, 1
dinsu $4, $5, 63, 1
dinsu $4, $5, 64, 1 # error (position)
# constraint: 1 <= size <= 32
dinsu $4, $5, 32, 0 # error (size)
dinsu $4, $5, 32, 1
dinsu $4, $5, 32, 32
dinsu $4, $5, 32, 33 # error (size)
# constraint: 32 < (pos+size) <= 64
dinsu $4, $5, 32, 1
dinsu $4, $5, 32, 2
dinsu $4, $5, 32, 31
dinsu $4, $5, 32, 32
dinsu $4, $5, 33, 1
dinsu $4, $5, 33, 2
dinsu $4, $5, 33, 31
dinsu $4, $5, 33, 32 # error (size)
dinsu $4, $5, 62, 1
dinsu $4, $5, 62, 2
dinsu $4, $5, 62, 31 # error (size)
dinsu $4, $5, 62, 32 # error (size)
dinsu $4, $5, 63, 1
dinsu $4, $5, 63, 2 # error (size)
dinsu $4, $5, 63, 31 # error (size)
dinsu $4, $5, 63, 32 # error (size)
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.space 8