Home | History | Annotate | Download | only in mips
      1 	.text
      2 
      3 stuff:
      4 	.ent stuff
      5 	/* Integer instructions.  */
      6 
      7 	mul	$4,$5,$6
      8 	mulu	$4,$5,$6
      9 	mulhi	$4,$5,$6
     10 	mulhiu	$4,$5,$6
     11 	muls	$4,$5,$6
     12 	mulsu	$4,$5,$6
     13 	mulshi	$4,$5,$6
     14 	mulshiu	$4,$5,$6
     15 	macc	$4,$5,$6
     16 	maccu	$4,$5,$6
     17 	macchi	$4,$5,$6
     18 	macchiu	$4,$5,$6
     19 	msac	$4,$5,$6
     20 	msacu	$4,$5,$6
     21 	msachi	$4,$5,$6
     22 	msachiu	$4,$5,$6
     23 
     24 	ror	$4,$5,25
     25 	rorv	$4,$5,$6
     26 	dror	$4,$5,25
     27 	dror	$4,$5,57	/* Should expand to dror32 $4,$5,25.  */
     28 	dror32	$4,$5,25
     29 	drorv	$4,$5,$6
     30 
     31 	/* Debug instructions.  */
     32 
     33 	dbreak
     34 	dret
     35 	mfdr	$3,$3
     36 	mtdr	$3,$3
     37 
     38 	/* Coprocessor 0 instructions, minus standard ISA 3 ones.
     39 	   That leaves just the performance monitoring registers.  */
     40 
     41 	mfpc	$4,1
     42 	mfps	$4,1
     43 	mtpc	$4,1
     44 	mtps	$4,1
     45 
     46 	/* Multimedia instructions.  */
     47 
     48 	.macro	nsel2 op
     49 	/* Test each form of each vector opcode.  */
     50 	\op	$f0,$f2
     51 	\op	$f4,$f6[2]
     52 	\op	$f6,15
     53 	.if 0	/* Which is right?? */
     54 	/* Test negative numbers in immediate-value slot.  */
     55 	\op	$f4,-3
     56 	.else
     57 	/* Test that it's recognized as an unsigned field.  */
     58 	\op	$f4,31
     59 	.endif
     60 	.endm
     61 
     62 	.macro	nsel3 op
     63 	/* Test each form of each vector opcode.  */
     64 	\op	$f0,$f2,$f4
     65 	\op	$f2,$f4,$f6[2]
     66 	\op	$f6,$f4,15
     67 	.if 0	/* Which is right?? */
     68 	/* Test negative numbers in immediate-value slot.  */
     69 	\op	$f4,$f6,-3
     70 	.else
     71 	/* Test that it's recognized as an unsigned field.  */
     72 	\op	$f4,$f6,31
     73 	.endif
     74 	.endm
     75 
     76 	nsel3	add.ob
     77 	nsel3	and.ob
     78 	nsel2	c.eq.ob
     79 	nsel2	c.le.ob
     80 	nsel2	c.lt.ob
     81 	nsel3	max.ob
     82 	nsel3	min.ob
     83 	nsel3	mul.ob
     84 	nsel2	mula.ob
     85 	nsel2	mull.ob
     86 	nsel2	muls.ob
     87 	nsel2	mulsl.ob
     88 	nsel3	nor.ob
     89 	nsel3	or.ob
     90 	nsel3	pickf.ob
     91 	nsel3	pickt.ob
     92 	nsel3	sub.ob
     93 	nsel3	xor.ob
     94 
     95 	/* ALNI, SHFL: Vector only.  */
     96 	alni.ob		$f0,$f2,$f4,5
     97 	shfl.mixh.ob	$f0,$f2,$f4
     98 	shfl.mixl.ob	$f0,$f2,$f4
     99 	shfl.pach.ob	$f0,$f2,$f4
    100 	shfl.pacl.ob	$f0,$f2,$f4
    101 
    102 	/* SLL,SRL: Scalar or immediate.  */
    103 	sll.ob	$f2,$f4,$f6[3]
    104 	sll.ob	$f4,$f6,14
    105 	srl.ob	$f2,$f4,$f6[3]
    106 	srl.ob	$f4,$f6,14
    107 
    108 	/* RZU: Immediate, must be 0, 8, or 16.  */
    109 	rzu.ob	$f2,13
    110 
    111 	/* No selector.  */
    112 	rach.ob	$f2
    113 	racl.ob	$f2
    114 	racm.ob	$f2
    115 	wach.ob	$f2
    116 	wacl.ob	$f2,$f4
    117 
    118 	ror	$4,$5,$6
    119 	rol	$4,$5,15
    120 	dror	$4,$5,$6
    121 	drol	$4,$5,31
    122 	drol	$4,$5,62
    123 
    124 	.space	8
    125 	.end stuff
    126