1 .text 2 3stuff: 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