[Mesa-dev] [PATCH 3/6] intel: aubinator: add support for memory register load decoding

Lionel Landwerlin llandwerlin at gmail.com
Wed Oct 12 22:28:01 UTC 2016


Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
---
 src/intel/tools/aubinator.c | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/src/intel/tools/aubinator.c b/src/intel/tools/aubinator.c
index 0313d5a..b6820f4 100644
--- a/src/intel/tools/aubinator.c
+++ b/src/intel/tools/aubinator.c
@@ -632,6 +632,24 @@ handle_load_register_imm(struct gen_spec *spec, uint32_t *p)
    }
 }
 
+static void
+handle_load_register_mem(struct gen_spec *spec, uint32_t *p)
+{
+   struct gen_group *reg = gen_spec_find_register(spec, p[1]);
+   uint64_t offset;
+
+   if (gen_spec_get_gen(spec) >= gen_make_gen(8,0))
+      offset = get_qword(&p[2]);
+   else
+      offset = p[2];
+
+   if (reg != NULL) {
+      printf("register %s (0x%x): 0x%lx\n",
+             reg->name, reg->register_offset, offset);
+      decode_structure(spec, reg, gtt + offset);
+   }
+}
+
 #define ARRAY_LENGTH(a) (sizeof (a) / sizeof (a)[0])
 
 #define STATE_BASE_ADDRESS                  0x61010000
@@ -671,6 +689,7 @@ handle_load_register_imm(struct gen_spec *spec, uint32_t *p)
 #define _3DSTATE_SCISSOR_STATE_POINTERS     0x780f0000
 
 #define _MI_LOAD_REGISTER_IMM               0x11000000
+#define _MI_LOAD_REGISTER_MEM               0x14800000
 
 struct custom_handler {
    uint32_t opcode;
@@ -706,7 +725,8 @@ struct custom_handler {
    { _3DSTATE_BLEND_STATE_POINTERS, handle_3dstate_blend_state_pointers },
    { _3DSTATE_CC_STATE_POINTERS, handle_3dstate_cc_state_pointers },
    { _3DSTATE_SCISSOR_STATE_POINTERS, handle_3dstate_scissor_state_pointers },
-   { _MI_LOAD_REGISTER_IMM, handle_load_register_imm }
+   { _MI_LOAD_REGISTER_IMM, handle_load_register_imm },
+   { _MI_LOAD_REGISTER_MEM, handle_load_register_mem }
 };
 
 static void
-- 
2.9.3



More information about the mesa-dev mailing list