Home | History | Annotate | Download | only in mips
      1 # Source file used to test microMIPS instruction size overrides (#1).
      2 
      3 	.text
      4 foo:
      5 # Smoke-test a trivial case.
      6 	nop
      7 	nop16
      8 	nop32
      9 
     10 # Test ALU operations.
     11 	addu	$2, $4
     12 	addu16	$2, $4
     13 	addu32	$2, $4
     14 	addu	$12, $14
     15 	addu32	$12, $14
     16 	add.ps	$f2, $f4
     17 	add32.ps $f2, $f4
     18 	addiusp	256
     19 	addiusp16 256
     20 
     21 # Test jumps and branches.
     22 	jalr	$4
     23 	jalr16	$4
     24 	jalr32	$4
     25 	jalr	$24
     26 	jalr16	$24
     27 	jalr32	$24
     28 	jalr	$31,$5
     29 	jalr16	$31,$5
     30 	jalr32	$31,$5
     31 	jalr	$31,$25
     32 	jalr16	$31,$25
     33 	jalr32	$31,$25
     34 	jalr	$30,$26
     35 	jalr32	$30,$26
     36 	b	bar
     37 	b16	bar
     38 	b32	bar
     39 	beqz	$7, bar
     40 	beqz16	$7, bar
     41 	beqz32	$7, bar
     42 	beqz	$27, bar
     43 	beqz32	$27, bar
     44 
     45 # Test branch delay slots.
     46 	.set	noreorder
     47 	bltzal	$2, bar
     48 	 addu	$16, $17
     49 	bltzal	$2, bar
     50 	 addu16	$16, $17
     51 	bltzal	$2, bar
     52 	 addu32	$16, $17
     53 	bltzals	$2, bar
     54 	 addu	$16, $17
     55 	bltzals	$2, bar
     56 	 addu16	$16, $17
     57 	bltzals	$2, bar
     58 	 addu32	$16, $17
     59 	bltzal	$2, bar
     60 	 add.ps	$f2, $f4
     61 	bltzal	$2, bar
     62 	 add32.ps $f2, $f4
     63 	bltzals	$2, bar
     64 	 add.ps	$f2, $f4
     65 	bltzals	$2, bar
     66 	 add32.ps $f2, $f4
     67 	bltzal	$2, bar
     68 	 addiusp 256
     69 	bltzal	$2, bar
     70 	 addiusp16 256
     71 	bltzals	$2, bar
     72 	 addiusp 256
     73 	bltzals	$2, bar
     74 	 addiusp16 256
     75 	.set	reorder
     76 
     77 # Test macro delay slots.
     78 	.set	noreorder
     79 	bltzall	$2, bar
     80 	 addu	$16, $17
     81 	bltzall	$2, bar
     82 	 addu16	$16, $17
     83 	bltzall	$2, bar
     84 	 addu32	$16, $17
     85 	bltzall	$2, bar
     86 	 add.ps	$f2, $f4
     87 	bltzall	$2, bar
     88 	 add32.ps $f2, $f4
     89 	bltzall	$2, bar
     90 	 addiusp 256
     91 	bltzall	$2, bar
     92 	 addiusp16 256
     93 	.set	reorder
     94 
     95 # Test shift instructions to complement 64-bit tests.
     96 	sll	$2, $3, 5
     97 	sll16	$2, $3, 5
     98 	sll32	$2, $3, 5
     99 	sll	$2, $3, 13
    100 	sll32	$2, $3, 13
    101 	sll	$10, $11, 5
    102 	sll32	$10, $11, 5
    103 
    104 # Test 64-bit instructions.
    105 	dsll	$2, $3, 5
    106 	dsll32	$2, $3, 5			# No way to force 32-bit DSLL.
    107 	dsll3232 $2, $3, 5
    108 	dsll	$2, $3, 13
    109 	dsll32	$2, $3, 13			# No way to force 32-bit DSLL.
    110 	dsll3232 $2, $3, 13
    111 	dsll	$10, $11, 5
    112 	dsll32	$10, $11, 5			# No way to force 32-bit DSLL.
    113 	dsll3232 $10, $11, 5
    114 
    115 # Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
    116 	.align	2
    117 	.space	8
    118