freedreno/afuc: Handle xmov modifiers
[mesa.git] / src / freedreno / afuc / afuc.h
index 4f9e9d2181591110a71164fd8bca2bf62f713751..6ec268e3dcc3c43ed1d8e7c85a7eb824776babc8 100644 (file)
@@ -109,6 +109,7 @@ typedef enum {
        OPC_CALL   = 0x35,  /* "function" call */
        OPC_WIN    = 0x36,  /* wait for input (ie. wait for WPTR to advance) */
        OPC_PREEMPTLEAVE6 = 0x38,  /* try to leave preemption */
+       OPC_SETSECURE = 0x3b, /* switch secure mode on/off */
 } afuc_opc;
 
 
@@ -128,7 +129,8 @@ typedef union PACKED {
        } movi;
        struct PACKED {
                uint32_t alu     : 5;
-               uint32_t pad     : 6;
+               uint32_t pad     : 4;
+               uint32_t xmov    : 2; /* execute eXtra mov's based on $rem */
                uint32_t dst     : 5;
                uint32_t src2    : 5;
                uint32_t src1    : 5;
@@ -151,6 +153,11 @@ typedef union PACKED {
                uint32_t uoff    : 26;    /* absolute (unsigned) offset */
                uint32_t hdr     : 6;
        } call;
+       struct PACKED {
+               uint32_t pad       : 25;
+               uint32_t interrupt : 1; /* return from ctxt-switch interrupt handler */
+               uint32_t hdr       : 6;
+       } ret;
        struct PACKED {
                uint32_t pad     : 26;
                uint32_t hdr     : 6;