Lines Matching defs:pos
59 unsigned* next_block, unsigned pos)
61 while (*next_block < program->blocks.size() && pos == program->blocks[*next_block].offset) {
70 unsigned pos)
75 fprintf(output, " %.8x", binary[pos + i]);
159 unsigned pos;
160 if (sscanf(*line_start, ".L%d_0", &pos) != 1)
162 pos /= 4;
166 if (referenced_blocks[block.index] && block.offset == pos) {
217 unsigned pos;
218 if (sscanf(line_start, "/*%x*/", &pos) != 1)
220 pos /= 4u; /* get the dword position */
233 if (pos != prev_pos) {
235 print_instr(output, binary, prev_instr, pos - prev_pos, prev_pos);
236 prev_pos = pos;
239 print_block_markers(output, program, referenced_blocks, &next_block, pos);
272 unsigned exec_size, size_t pos, char* outline, unsigned outline_size)
275 LLVMDisasmInstruction(disasm, (uint8_t*)&binary[pos], (exec_size - pos) * sizeof(uint32_t),
276 pos * 4, outline, outline_size);
278 if (gfx_level >= GFX10 && l == 8 && ((binary[pos] & 0xffff0000) == 0xd7610000) &&
279 ((binary[pos + 1] & 0x1ff) == 0xff)) {
288 (binary[pos] & 0xffff8000) == 0xd1348000) || /* v_add_u32_e64 + clamp */
290 (binary[pos] & 0xffff8000) == 0xd7038000) || /* v_add_u16_e64 + clamp */
292 (binary[pos] & 0xffff8000) == 0xd1268000) || /* v_add_u16_e64 + clamp */
293 (gfx_level >= GFX10 && (binary[pos] & 0xffff8000) == 0xd76d8000) || /* v_add3_u32 + clamp */
294 (gfx_level == GFX9 && (binary[pos] & 0xffff8000) == 0xd1ff8000)) /* v_add3_u32 + clamp */) {
296 bool has_literal = gfx_level >= GFX10 && (((binary[pos + 1] & 0x1ff) == 0xff) ||
297 (((binary[pos + 1] >> 9) & 0x1ff) == 0xff));
299 } else if (gfx_level >= GFX10 && l == 4 && ((binary[pos] & 0xfe0001ff) == 0x020000f9)) {
317 } else if (gfx_level == GFX9 && (binary[pos] & 0xfc024000) == 0xc0024000) {
325 snprintf(outline + len, outline_size - len, " s%u offset:%s", binary[pos + 1] >> 25, imm);
326 } else if (gfx_level >= GFX10 && (binary[pos] & 0xfc000000) == 0xf4000000 &&
327 (binary[pos + 1] & 0xfe000000) != 0xfa000000) {
329 uint32_t offset = binary[pos + 1] & 0x1fffff;
367 size_t pos = 0;
374 while (pos < exec_size) {
376 next_block < program->blocks.size() && pos == program->blocks[next_block].offset;
377 if (pos + prev_size <= exec_size && prev_pos != pos && !new_block &&
378 memcmp(&binary[prev_pos], &binary[pos], prev_size * 4) == 0) {
380 pos += prev_size;
388 print_block_markers(output, program, referenced_blocks, &next_block, pos);
392 exec_size, pos, outline, sizeof(outline));
395 print_instr(output, binary, outline, res.second, pos);
398 prev_pos = pos;
399 pos += res.second;