Lines Matching refs:bundle
69 tilegx_bundle_bits bundle; member
77 static bool is_bundle_x0_nop(tilegx_bundle_bits bundle) in is_bundle_x0_nop() argument
79 return (((get_UnaryOpcodeExtension_X0(bundle) == in is_bundle_x0_nop()
81 (get_RRROpcodeExtension_X0(bundle) == in is_bundle_x0_nop()
83 (get_Opcode_X0(bundle) == in is_bundle_x0_nop()
85 ((get_UnaryOpcodeExtension_X0(bundle) == in is_bundle_x0_nop()
87 (get_RRROpcodeExtension_X0(bundle) == in is_bundle_x0_nop()
89 (get_Opcode_X0(bundle) == in is_bundle_x0_nop()
97 static bool is_bundle_x1_nop(tilegx_bundle_bits bundle) in is_bundle_x1_nop() argument
99 return (((get_UnaryOpcodeExtension_X1(bundle) == in is_bundle_x1_nop()
101 (get_RRROpcodeExtension_X1(bundle) == in is_bundle_x1_nop()
103 (get_Opcode_X1(bundle) == in is_bundle_x1_nop()
105 ((get_UnaryOpcodeExtension_X1(bundle) == in is_bundle_x1_nop()
107 (get_RRROpcodeExtension_X1(bundle) == in is_bundle_x1_nop()
109 (get_Opcode_X1(bundle) == in is_bundle_x1_nop()
117 static bool is_bundle_y0_nop(tilegx_bundle_bits bundle) in is_bundle_y0_nop() argument
119 return (((get_UnaryOpcodeExtension_Y0(bundle) == in is_bundle_y0_nop()
121 (get_RRROpcodeExtension_Y0(bundle) == in is_bundle_y0_nop()
123 (get_Opcode_Y0(bundle) == in is_bundle_y0_nop()
125 ((get_UnaryOpcodeExtension_Y0(bundle) == in is_bundle_y0_nop()
127 (get_RRROpcodeExtension_Y0(bundle) == in is_bundle_y0_nop()
129 (get_Opcode_Y0(bundle) == in is_bundle_y0_nop()
137 static bool is_bundle_y1_nop(tilegx_bundle_bits bundle) in is_bundle_y1_nop() argument
139 return (((get_UnaryOpcodeExtension_Y1(bundle) == in is_bundle_y1_nop()
141 (get_RRROpcodeExtension_Y1(bundle) == in is_bundle_y1_nop()
143 (get_Opcode_Y1(bundle) == in is_bundle_y1_nop()
145 ((get_UnaryOpcodeExtension_Y1(bundle) == in is_bundle_y1_nop()
147 (get_RRROpcodeExtension_Y1(bundle) == in is_bundle_y1_nop()
149 (get_Opcode_Y1(bundle) == in is_bundle_y1_nop()
157 static bool is_y0_y1_nop(tilegx_bundle_bits bundle) in is_y0_y1_nop() argument
159 return is_bundle_y0_nop(bundle) && is_bundle_y1_nop(bundle); in is_y0_y1_nop()
166 static bool is_x0_x1_nop(tilegx_bundle_bits bundle) in is_x0_x1_nop() argument
168 return is_bundle_x0_nop(bundle) && is_bundle_x1_nop(bundle); in is_x0_x1_nop()
179 static void find_regs(tilegx_bundle_bits bundle, uint64_t *rd, uint64_t *ra, in find_regs() argument
194 if (bundle & TILEGX_BUNDLE_MODE_MASK) { /* Y Mode Bundle. */ in find_regs()
196 reg = get_SrcA_Y2(bundle); in find_regs()
199 reg = get_SrcBDest_Y2(bundle); in find_regs()
212 if (!is_bundle_y1_nop(bundle)) { in find_regs()
213 reg = get_SrcA_Y1(bundle); in find_regs()
217 reg = get_SrcB_Y1(bundle); in find_regs()
221 reg = get_Dest_Y1(bundle); in find_regs()
229 if (!is_bundle_y0_nop(bundle)) { in find_regs()
230 reg = get_SrcA_Y0(bundle); in find_regs()
234 reg = get_SrcB_Y0(bundle); in find_regs()
238 reg = get_Dest_Y0(bundle); in find_regs()
247 reg = get_SrcA_X1(bundle); in find_regs()
252 reg = get_Dest_X1(bundle); in find_regs()
258 reg = get_SrcB_X1(bundle); in find_regs()
264 if (!is_bundle_x0_nop(bundle)) { in find_regs()
265 reg = get_SrcA_X0(bundle); in find_regs()
269 reg = get_SrcB_X0(bundle); in find_regs()
273 reg = get_Dest_X0(bundle); in find_regs()
553 void jit_bundle_gen(struct pt_regs *regs, tilegx_bundle_bits bundle, in jit_bundle_gen() argument
588 if (bundle & TILEGX_BUNDLE_MODE_MASK) { in jit_bundle_gen()
591 if (get_Opcode_Y1(bundle) == RRR_1_OPCODE_Y1 && in jit_bundle_gen()
592 get_RRROpcodeExtension_Y1(bundle) == in jit_bundle_gen()
595 opcode = get_UnaryOpcodeExtension_Y1(bundle); in jit_bundle_gen()
610 y1_br_reg = get_SrcA_Y1(bundle); in jit_bundle_gen()
615 y1_lr_reg = get_Dest_Y1(bundle); in jit_bundle_gen()
620 opcode = get_Opcode_Y2(bundle); in jit_bundle_gen()
621 mod = get_Mode(bundle); in jit_bundle_gen()
627 bundle_2 = (bundle & (~GX_INSN_Y2_MASK)) | jit_y2_dummy(); in jit_bundle_gen()
643 find_regs(bundle, 0, &ra, &rb, &clob1, &clob2, in jit_bundle_gen()
678 find_regs(bundle, &rd, &ra, &rb, &clob1, &clob2, in jit_bundle_gen()
685 bundle_2 = (bundle & (~GX_INSN_X1_MASK)) | jit_x1_fnop(); in jit_bundle_gen()
690 if (get_Opcode_X1(bundle) == RRR_0_OPCODE_X1) { in jit_bundle_gen()
691 opcode = get_UnaryOpcodeExtension_X1(bundle); in jit_bundle_gen()
693 if (get_RRROpcodeExtension_X1(bundle) == in jit_bundle_gen()
696 find_regs(bundle, &rd, &ra, &rb, &clob1, in jit_bundle_gen()
723 find_regs(bundle, 0, &ra, &rb, in jit_bundle_gen()
727 opcode = get_RRROpcodeExtension_X1(bundle); in jit_bundle_gen()
742 } else if (get_Opcode_X1(bundle) == IMM8_OPCODE_X1) { in jit_bundle_gen()
744 opcode = get_Imm8OpcodeExtension_X1(bundle); in jit_bundle_gen()
783 x1_add_imm8 = get_Imm8_X1(bundle); in jit_bundle_gen()
785 x1_add_imm8 = get_Dest_Imm8_X1(bundle); in jit_bundle_gen()
788 find_regs(bundle, load_n_store ? (&rd) : NULL, in jit_bundle_gen()
828 if (bundle & TILEGX_BUNDLE_MODE_MASK) { in jit_bundle_gen()
836 if ((get_Opcode_Y1(bundle) == ADDI_OPCODE_Y1) in jit_bundle_gen()
837 && (get_SrcA_Y1(bundle) == TREG_ZERO) && in jit_bundle_gen()
838 (get_Imm8_Y1(bundle) == 0) && in jit_bundle_gen()
839 is_bundle_y0_nop(bundle)) { in jit_bundle_gen()
840 rx = get_Dest_Y1(bundle); in jit_bundle_gen()
841 } else if ((get_Opcode_Y0(bundle) == in jit_bundle_gen()
843 (get_SrcA_Y0(bundle) == TREG_ZERO) && in jit_bundle_gen()
844 (get_Imm8_Y0(bundle) == 0) && in jit_bundle_gen()
845 is_bundle_y1_nop(bundle)) { in jit_bundle_gen()
846 rx = get_Dest_Y0(bundle); in jit_bundle_gen()
857 if ((get_Opcode_X0(bundle) == IMM8_OPCODE_X0) in jit_bundle_gen()
858 && (get_Imm8OpcodeExtension_X0(bundle) == in jit_bundle_gen()
860 (get_SrcA_X0(bundle) == TREG_ZERO) && in jit_bundle_gen()
861 (get_Imm8_X0(bundle) == 0)) { in jit_bundle_gen()
862 rx = get_Dest_X0(bundle); in jit_bundle_gen()
990 (unsigned long long)bundle); in jit_bundle_gen()
1370 frag.bundle = bundle; in jit_bundle_gen()
1376 (unsigned long)frag.bundle, in jit_bundle_gen()
1389 frag.bundle = GX_INSN_BSWAP(frag.bundle); in jit_bundle_gen()
1454 tilegx_bundle_bits bundle; in do_unaligned() local
1502 bundle = GX_INSN_BSWAP( in do_unaligned()
1504 jit_bundle_gen(regs, bundle, align_ctl); in do_unaligned()
1536 if (get_user(bundle, pc) != 0) { in do_unaligned()
1594 jit_bundle_gen(regs, GX_INSN_BSWAP(bundle), align_ctl); in do_unaligned()