Lines Matching full:t2

33    srliw t2, xINST, 8    // t2 := B|A
36 and t2, t2, 0xF // t2 := A
38 SET_VREG_WIDE t1, t2, z0=t0
70 // instr must not clobber t2.
71 // Clobbers: t0, t1, t2
74 srliw t2, xINST, 8 // t2 := B|A
77 and t2, t2, 0xF // t2 := A
80 // do not clobber t2!
81 % set_vreg("t1", "t2", z0="t0", is_wide=is_wide)
95 % generic_binop(instr="addw t1, t1, t2")
100 % generic_binop(instr="subw t1, t1, t2")
105 % generic_binop(instr="mulw t1, t1, t2")
112 % generic_binop(instr="divw t1, t1, t2", divz_throw=True)
120 % generic_binop(instr="remw t1, t1, t2", divz_throw=True)
125 % generic_binop(instr="and t1, t1, t2")
130 % generic_binop(instr="or t1, t1, t2")
135 % generic_binop(instr="xor t1, t1, t2")
139 // Note: SLLW uses t2[4:0] for the shift amount.
141 % generic_binop(instr="sllw t1, t1, t2")
145 // Note: SRAW uses t2[4:0] for the shift amount.
147 % generic_binop(instr="sraw t1, t1, t2")
151 // Note: SRLW uses t2[4:0] for the shift amount.
153 % generic_binop(instr="srlw t1, t1, t2")
158 % generic_binop(instr="add t1, t1, t2", is_wide=True)
163 % generic_binop(instr="sub t1, t1, t2", is_wide=True)
168 % generic_binop(instr="mul t1, t1, t2", is_wide=True)
175 % generic_binop(instr="div t1, t1, t2", divz_throw=True, is_wide=True)
183 % generic_binop(instr="rem t1, t1, t2", divz_throw=True, is_wide=True)
188 % generic_binop(instr="and t1, t1, t2", is_wide=True)
193 % generic_binop(instr="or t1, t1, t2", is_wide=True)
198 % generic_binop(instr="xor t1, t1, t2", is_wide=True)
202 // Note: SLL uses t2[5:0] for the shift amount.
204 % generic_shift_wide(instr="sll t1, t1, t2")
208 // Note: SRA uses t2[5:0] for the shift amount.
210 % generic_shift_wide(instr="sra t1, t1, t2")
214 // Note: SRL uses t2[5:0] for the shift amount.
216 % generic_shift_wide(instr="srl t1, t1, t2")
219 // instr: operands held in t1 and t2, result written to t1.
225 // Clobbers: t0, t1, t2, t3
229 srliw t2, t1, 8 // t2 := CC
231 % get_vreg("t2", "t2", is_wide=is_wide) # t2 := fp[CC]
234 beqz t2, 1f // Must throw before FETCH_ADVANCE_INST.
237 $instr // read t1 and t2, write result to t1.
239 GET_INST_OPCODE t2 // t2 holds next opcode
242 GOTO_OPCODE t2 // continue to next
249 // instr: operands held in t1 (64-bit) and t2 (32-bit), result written to t1.
251 // Clobbers: t0, t1, t2, t3
260 srliw t2, t1, 8 // t2 := CC
262 % get_vreg("t2", "t2") # t2 := fp[CC]
265 $instr // read t1 and t2, write result to t1.
267 GET_INST_OPCODE t2 // t2 holds next opcode
270 GOTO_OPCODE t2 // continue to next
281 % generic_binop_2addr(instr="addw t1, t1, t2")
286 % generic_binop_2addr(instr="subw t1, t1, t2")
291 % generic_binop_2addr(instr="mulw t1, t1, t2")
298 % generic_binop_2addr(instr="divw t1, t1, t2", divz_throw=True)
306 % generic_binop_2addr(instr="remw t1, t1, t2", divz_throw=True)
311 % generic_binop_2addr(instr="and t1, t1, t2")
316 % generic_binop_2addr(instr="or t1, t1, t2")
321 % generic_binop_2addr(instr="xor t1, t1, t2")
326 % generic_binop_2addr(instr="sllw t1, t1, t2")
331 % generic_binop_2addr(instr="sraw t1, t1, t2")
336 % generic_binop_2addr(instr="srlw t1, t1, t2")
341 % generic_binop_2addr(instr="add t1, t1, t2", is_wide=True)
346 % generic_binop_2addr(instr="sub t1, t1, t2", is_wide=True)
351 % generic_binop_2addr(instr="mul t1, t1, t2", is_wide=True)
356 % generic_binop_2addr(instr="div t1, t1, t2", divz_throw=True, is_wide=True)
361 % generic_binop_2addr(instr="rem t1, t1, t2", divz_throw=True, is_wide=True)
366 % generic_binop_2addr(instr="and t1, t1, t2", is_wide=True)
371 % generic_binop_2addr(instr="or t1, t1, t2", is_wide=True)
376 % generic_binop_2addr(instr="xor t1, t1, t2", is_wide=True)
380 // Note: SLL uses t2[5:0] for the shift amount.
382 % generic_shift_wide_2addr(instr="sll t1, t1, t2")
386 // Note: SRA uses t2[5:0] for the shift amount.
388 % generic_shift_wide_2addr(instr="sra t1, t1, t2")
392 // Note: SRL uses t2[5:0] for the shift amount.
394 % generic_shift_wide_2addr(instr="srl t1, t1, t2")
397 // instr: operands held in t1 and t2, result written to t1.
403 // Clobbers: t0, t1, t2, t3, t4
405 srliw t2, xINST, 12 // t2 := B
407 % get_vreg("t2", "t2", is_wide=is_wide)
408 // t2 := fp[B]
414 beqz t2, 1f // Must throw before FETCH_ADVANCE_INST.
417 $instr // read t1 and t2, write result to t1.
419 GET_INST_OPCODE t2 // t2 holds next opcode
422 GOTO_OPCODE t2 // continue to next
429 // instr: operands held in t1 (64-bit) and t2 (32-bit), result written to t1.
431 // Clobbers: t0, t1, t2, t3, t4
438 srliw t2, xINST, 12 // t2 := B
440 % get_vreg("t2", "t2") # t2 := fp[B]
445 $instr // read t1 and t2, write result to t1.
447 GET_INST_OPCODE t2 // t2 holds next opcode
450 GOTO_OPCODE t2 // continue to next
460 % generic_binop_lit16(instr="addw t1, t1, t2")
467 % generic_binop_lit16(instr="subw t1, t2, t1")
472 % generic_binop_lit16(instr="mulw t1, t1, t2")
479 % generic_binop_lit16(instr="divw t1, t1, t2", divz_throw=True)
487 % generic_binop_lit16(instr="remw t1, t1, t2", divz_throw=True)
492 % generic_binop_lit16(instr="and t1, t1, t2")
497 % generic_binop_lit16(instr="or t1, t1, t2")
502 % generic_binop_lit16(instr="xor t1, t1, t2")
505 // instr: operands held in t1 and t2, result written to t1.
510 // Clobbers: t0, t1, t2, t3
512 FETCH t2, count=1, signed=1 // t2 := ssssCCCC
516 beqz t2, 1f // Must throw before FETCH_ADVANCE_INST.
521 $instr // read t1 and t2, write result to t1.
523 GET_INST_OPCODE t2 // t2 holds next opcode
525 GOTO_OPCODE t2 // continue to next
539 % generic_binop_lit8(instr="addw t1, t1, t2")
545 % generic_binop_lit8(instr="subw t1, t2, t1")
550 % generic_binop_lit8(instr="mulw t1, t1, t2")
557 % generic_binop_lit8(instr="divw t1, t1, t2", divz_throw=True)
565 % generic_binop_lit8(instr="remw t1, t1, t2", divz_throw=True)
570 % generic_binop_lit8(instr="and t1, t1, t2")
575 % generic_binop_lit8(instr="or t1, t1, t2")
580 % generic_binop_lit8(instr="xor t1, t1, t2")
584 // Note: SLLW uses t2[4:0] for the shift amount.
586 % generic_binop_lit8(instr="sllw t1, t1, t2")
590 // Note: SRAW uses t2[4:0] for the shift amount.
592 % generic_binop_lit8(instr="sraw t1, t1, t2")
596 // Note: SRLW uses t2[4:0] for the shift amount.
598 % generic_binop_lit8(instr="srlw t1, t1, t2")
601 // instr: operands held in t1 and t2, result written to t1.
606 // Clobbers: t0, t1, t2, t3
610 sraiw t2, t1, 8 // t2 := ssssssCC
613 beqz t2, 1f // Must throw before FETCH_ADVANCE_INST.
617 $instr // read t1 and t2, write result to t1.
619 GET_INST_OPCODE t2 // t2 holds next opcode
621 GOTO_OPCODE t2 // continue to next