Lines Matching defs:out
76 emit_instruction(asm_context& ctx, std::vector<uint32_t>& out, Instruction* instr)
80 ctx.constaddrs[instr->operands[0].constantValue()].getpc_end = out.size() + 1;
85 ctx.constaddrs[instr->operands[2].constantValue()].add_literal = out.size() + 1;
119 out.push_back(encoding);
128 ctx.subvector_begin_pos = out.size();
133 out[ctx.subvector_begin_pos] |= (out.size() - ctx.subvector_begin_pos);
135 sopk.imm = (uint16_t)(ctx.subvector_begin_pos - (int)out.size());
147 out.push_back(encoding);
155 out.push_back(encoding);
163 out.push_back(encoding);
173 ctx.branches.emplace_back(out.size(), &sopp);
175 out.push_back(encoding);
199 out.push_back(encoding);
203 out.push_back(instr->operands[1].constantValue() >> 2);
236 out.push_back(encoding);
270 out.push_back(encoding);
279 out.push_back(encoding);
289 out.push_back(encoding);
297 out.push_back(encoding);
318 out.push_back(encoding);
329 out.push_back(encoding);
346 out.push_back(encoding);
362 out.push_back(encoding);
375 out.push_back(encoding);
396 out.push_back(encoding);
408 out.push_back(encoding);
431 out.push_back(encoding);
447 out.push_back(encoding);
476 out.push_back(encoding);
494 out.push_back(encoding);
497 out.resize(out.size() + nsa_dwords);
498 std::vector<uint32_t>::iterator nsa = std::prev(out.end(), nsa_dwords);
538 out.push_back(encoding);
560 out.push_back(encoding);
577 out.push_back(encoding);
582 out.push_back(encoding);
629 out.push_back(encoding);
644 out.push_back(encoding);
665 out.push_back(encoding);
672 out.push_back(encoding);
682 emit_instruction(ctx, out, instr);
694 out.push_back(encoding);
704 emit_instruction(ctx, out, instr);
708 out.push_back(encoding);
718 emit_instruction(ctx, out, instr);
754 out.push_back(encoding);
764 out.push_back(op.constantValue());
771 emit_block(asm_context& ctx, std::vector<uint32_t>& out, Block& block)
775 int start_idx = out.size();
780 emit_instruction(ctx, out, instr.get());
782 for (int i = start_idx; i < out.size(); i++)
783 std::cerr << "encoding: " << "0x" << std::setfill('0') << std::setw(8) << std::hex << out[i] << std::endl;
789 fix_exports(asm_context& ctx, std::vector<uint32_t>& out, Program* program)
837 insert_code(asm_context& ctx, std::vector<uint32_t>& out, unsigned insert_before,
840 out.insert(out.begin() + insert_before, insert_data, insert_data + insert_count);
868 fix_branches_gfx10(asm_context& ctx, std::vector<uint32_t>& out)
888 insert_code(ctx, out, buggy_branch_it->first + 1, 1, &s_nop_0);
895 std::vector<uint32_t>& out)
919 emit_instruction(ctx, out, instr.get());
924 emit_instruction(ctx, out, instr.get());
928 emit_instruction(ctx, out, instr.get());
929 branch->pass_flags = out.size();
935 emit_instruction(ctx, out, instr.get());
937 emit_instruction(ctx, out, instr.get());
942 emit_instruction(ctx, out, instr.get());
946 fix_branches(asm_context& ctx, std::vector<uint32_t>& out)
953 fix_branches_gfx10(ctx, out);
963 out[branch.first] = long_jump[0];
964 insert_code(ctx, out, branch.first + 1, long_jump.size() - 1, long_jump.data() + 1);
973 out[branch.first + branch.second->pass_flags - 1] = offset * 4;
975 out[branch.first] &= 0xffff0000u;
976 out[branch.first] |= (uint16_t)offset;
983 fix_constaddrs(asm_context& ctx, std::vector<uint32_t>& out)
987 out[info.add_literal] += (out.size() - info.getpc_end) * 4u;