diff options
author | Eric Anholt <[email protected]> | 2015-07-10 14:46:42 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2015-07-14 11:31:57 -0700 |
commit | a0d3915663fb7cbd3c1a5561450e256e00ecf11b (patch) | |
tree | 547186d4059f86df6a86b7387151b987ed1e3127 /src/gallium/drivers/vc4/vc4_cl.h | |
parent | 748bf459b46b44e184ee1d425ce612da61a0800e (diff) |
vc4: Make a helper function for getting the current offset in the CL.
I needed to rewrite this a bit for safety checking in the next commit.
Despite being a static inline of the same thing that was being done, we
lose 36 bytes of code for some reason.
Diffstat (limited to 'src/gallium/drivers/vc4/vc4_cl.h')
-rw-r--r-- | src/gallium/drivers/vc4/vc4_cl.h | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/gallium/drivers/vc4/vc4_cl.h b/src/gallium/drivers/vc4/vc4_cl.h index 3aa4721a414..b914745ed4f 100644 --- a/src/gallium/drivers/vc4/vc4_cl.h +++ b/src/gallium/drivers/vc4/vc4_cl.h @@ -49,6 +49,11 @@ uint32_t vc4_gem_hindex(struct vc4_context *vc4, struct vc4_bo *bo); struct PACKED unaligned_16 { uint16_t x; }; struct PACKED unaligned_32 { uint32_t x; }; +static inline uint32_t cl_offset(struct vc4_cl *cl) +{ + return (char *)cl->next - (char *)cl->base; +} + static inline void put_unaligned_32(void *ptr, uint32_t val) { @@ -66,7 +71,7 @@ put_unaligned_16(void *ptr, uint16_t val) static inline void cl_u8(struct vc4_cl *cl, uint8_t n) { - assert((cl->next - cl->base) + 1 <= cl->size); + assert(cl_offset(cl) + 1 <= cl->size); *(uint8_t *)cl->next = n; cl->next++; @@ -75,7 +80,7 @@ cl_u8(struct vc4_cl *cl, uint8_t n) static inline void cl_u16(struct vc4_cl *cl, uint16_t n) { - assert((cl->next - cl->base) + 2 <= cl->size); + assert(cl_offset(cl) + 2 <= cl->size); put_unaligned_16(cl->next, n); cl->next += 2; @@ -84,7 +89,7 @@ cl_u16(struct vc4_cl *cl, uint16_t n) static inline void cl_u32(struct vc4_cl *cl, uint32_t n) { - assert((cl->next - cl->base) + 4 <= cl->size); + assert(cl_offset(cl) + 4 <= cl->size); put_unaligned_32(cl->next, n); cl->next += 4; @@ -93,7 +98,7 @@ cl_u32(struct vc4_cl *cl, uint32_t n) static inline void cl_aligned_u32(struct vc4_cl *cl, uint32_t n) { - assert((cl->next - cl->base) + 4 <= cl->size); + assert(cl_offset(cl) + 4 <= cl->size); *(uint32_t *)cl->next = n; cl->next += 4; @@ -102,7 +107,7 @@ cl_aligned_u32(struct vc4_cl *cl, uint32_t n) static inline void cl_ptr(struct vc4_cl *cl, void *ptr) { - assert((cl->next - cl->base) + sizeof(void *) <= cl->size); + assert(cl_offset(cl) + sizeof(void *) <= cl->size); *(void **)cl->next = ptr; cl->next += sizeof(void *); |