# Source file used to test microMIPS instruction size overrides (#1).

	.text
foo:
# Smoke-test a trivial case.
	nop
	nop16
	nop32

# Test ALU operations.
	addu	$2, $4
	addu16	$2, $4
	addu32	$2, $4
	addu	$12, $14
	addu32	$12, $14
	add.ps	$f2, $f4
	add32.ps $f2, $f4
	addiusp	256
	addiusp16 256

# Test jumps and branches.
	jalr	$4
	jalr16	$4
	jalr32	$4
	jalr	$24
	jalr16	$24
	jalr32	$24
	jalr	$31,$5
	jalr16	$31,$5
	jalr32	$31,$5
	jalr	$31,$25
	jalr16	$31,$25
	jalr32	$31,$25
	jalr	$30,$26
	jalr32	$30,$26
	b	bar
	b16	bar
	b32	bar
	beqz	$7, bar
	beqz16	$7, bar
	beqz32	$7, bar
	beqz	$27, bar
	beqz32	$27, bar

# Test branch delay slots.
	.set	noreorder
	bltzal	$2, bar
	 addu	$16, $17
	bltzal	$2, bar
	 addu16	$16, $17
	bltzal	$2, bar
	 addu32	$16, $17
	bltzals	$2, bar
	 addu	$16, $17
	bltzals	$2, bar
	 addu16	$16, $17
	bltzals	$2, bar
	 addu32	$16, $17
	bltzal	$2, bar
	 add.ps	$f2, $f4
	bltzal	$2, bar
	 add32.ps $f2, $f4
	bltzals	$2, bar
	 add.ps	$f2, $f4
	bltzals	$2, bar
	 add32.ps $f2, $f4
	bltzal	$2, bar
	 addiusp 256
	bltzal	$2, bar
	 addiusp16 256
	bltzals	$2, bar
	 addiusp 256
	bltzals	$2, bar
	 addiusp16 256
	.set	reorder

# Test macro delay slots.
	.set	noreorder
	bltzall	$2, bar
	 addu	$16, $17
	bltzall	$2, bar
	 addu16	$16, $17
	bltzall	$2, bar
	 addu32	$16, $17
	bltzall	$2, bar
	 add.ps	$f2, $f4
	bltzall	$2, bar
	 add32.ps $f2, $f4
	bltzall	$2, bar
	 addiusp 256
	bltzall	$2, bar
	 addiusp16 256
	.set	reorder

# Test shift instructions to complement 64-bit tests.
	sll	$2, $3, 5
	sll16	$2, $3, 5
	sll32	$2, $3, 5
	sll	$2, $3, 13
	sll32	$2, $3, 13
	sll	$10, $11, 5
	sll32	$10, $11, 5

# Test 64-bit instructions.
	dsll	$2, $3, 5
	dsll32	$2, $3, 5			# No way to force 32-bit DSLL.
	dsll3232 $2, $3, 5
	dsll	$2, $3, 13
	dsll32	$2, $3, 13			# No way to force 32-bit DSLL.
	dsll3232 $2, $3, 13
	dsll	$10, $11, 5
	dsll32	$10, $11, 5			# No way to force 32-bit DSLL.
	dsll3232 $10, $11, 5

# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
	.align	2
	.space	8
