* [PATCH 1/2] amdgpu/dc: inline some of the fixed 32_32 fns
@ 2017-09-29 5:45 Dave Airlie
[not found] ` <20170929054508.24225-1-airlied-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
0 siblings, 1 reply; 3+ messages in thread
From: Dave Airlie @ 2017-09-29 5:45 UTC (permalink / raw)
To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
From: Dave Airlie <airlied@redhat.com>
This drops ~400 bytes here.
Signed-off-by: Dave Airlie <airlied@redhat.com>
---
drivers/gpu/drm/amd/display/dc/basics/fixpt32_32.c | 60 -----------------
drivers/gpu/drm/amd/display/include/fixed32_32.h | 76 +++++++++++++++++-----
2 files changed, 61 insertions(+), 75 deletions(-)
diff --git a/drivers/gpu/drm/amd/display/dc/basics/fixpt32_32.c b/drivers/gpu/drm/amd/display/dc/basics/fixpt32_32.c
index 911e90b..4d3aaa8 100644
--- a/drivers/gpu/drm/amd/display/dc/basics/fixpt32_32.c
+++ b/drivers/gpu/drm/amd/display/dc/basics/fixpt32_32.c
@@ -57,14 +57,6 @@ struct fixed32_32 dal_fixed32_32_from_fraction(uint32_t n, uint32_t d)
return fx;
}
-struct fixed32_32 dal_fixed32_32_from_int(uint32_t value)
-{
- struct fixed32_32 fx;
-
- fx.value = (uint64_t)value<<32;
- return fx;
-}
-
struct fixed32_32 dal_fixed32_32_add(
struct fixed32_32 lhs,
struct fixed32_32 rhs)
@@ -155,67 +147,15 @@ struct fixed32_32 dal_fixed32_32_div_int(struct fixed32_32 lhs, uint32_t rhs)
return fx;
}
-struct fixed32_32 dal_fixed32_32_min(
- struct fixed32_32 lhs,
- struct fixed32_32 rhs)
-{
- return (lhs.value < rhs.value) ? lhs : rhs;
-}
-
-struct fixed32_32 dal_fixed32_32_max(
- struct fixed32_32 lhs,
- struct fixed32_32 rhs)
-{
- return (lhs.value > rhs.value) ? lhs : rhs;
-}
-
-bool dal_fixed32_32_gt(struct fixed32_32 lhs, struct fixed32_32 rhs)
-{
- return lhs.value > rhs.value;
-}
-bool dal_fixed32_32_gt_int(struct fixed32_32 lhs, uint32_t rhs)
-{
- return lhs.value > ((uint64_t)rhs<<32);
-}
-
-bool dal_fixed32_32_lt(struct fixed32_32 lhs, struct fixed32_32 rhs)
-{
- return lhs.value < rhs.value;
-}
-
-bool dal_fixed32_32_le(struct fixed32_32 lhs, struct fixed32_32 rhs)
-{
- return lhs.value <= rhs.value;
-}
-
-bool dal_fixed32_32_lt_int(struct fixed32_32 lhs, uint32_t rhs)
-{
- return lhs.value < ((uint64_t)rhs<<32);
-}
-
-bool dal_fixed32_32_le_int(struct fixed32_32 lhs, uint32_t rhs)
-{
- return lhs.value <= ((uint64_t)rhs<<32);
-}
-
uint32_t dal_fixed32_32_ceil(struct fixed32_32 v)
{
ASSERT((uint32_t)v.value ? (v.value >> 32) + 1 >= 1 : true);
return (v.value>>32) + ((uint32_t)v.value ? 1 : 0);
}
-uint32_t dal_fixed32_32_floor(struct fixed32_32 v)
-{
- return v.value>>32;
-}
-
uint32_t dal_fixed32_32_round(struct fixed32_32 v)
{
ASSERT(v.value + (1ULL<<31) >= (1ULL<<31));
return (v.value + (1ULL<<31))>>32;
}
-bool dal_fixed32_32_eq(struct fixed32_32 lhs, struct fixed32_32 rhs)
-{
- return lhs.value == rhs.value;
-}
diff --git a/drivers/gpu/drm/amd/display/include/fixed32_32.h b/drivers/gpu/drm/amd/display/include/fixed32_32.h
index c7ddd0e..9c70341 100644
--- a/drivers/gpu/drm/amd/display/include/fixed32_32.h
+++ b/drivers/gpu/drm/amd/display/include/fixed32_32.h
@@ -38,7 +38,14 @@ static const struct fixed32_32 dal_fixed32_32_one = { 0x100000000LL };
static const struct fixed32_32 dal_fixed32_32_half = { 0x80000000LL };
struct fixed32_32 dal_fixed32_32_from_fraction(uint32_t n, uint32_t d);
-struct fixed32_32 dal_fixed32_32_from_int(uint32_t value);
+static inline struct fixed32_32 dal_fixed32_32_from_int(uint32_t value)
+{
+ struct fixed32_32 fx;
+
+ fx.value = (uint64_t)value<<32;
+ return fx;
+}
+
struct fixed32_32 dal_fixed32_32_add(
struct fixed32_32 lhs,
struct fixed32_32 rhs);
@@ -63,21 +70,60 @@ struct fixed32_32 dal_fixed32_32_div(
struct fixed32_32 dal_fixed32_32_div_int(
struct fixed32_32 lhs,
uint32_t rhs);
-struct fixed32_32 dal_fixed32_32_min(
- struct fixed32_32 lhs,
- struct fixed32_32 rhs);
-struct fixed32_32 dal_fixed32_32_max(
- struct fixed32_32 lhs,
- struct fixed32_32 rhs);
-bool dal_fixed32_32_gt(struct fixed32_32 lhs, struct fixed32_32 rhs);
-bool dal_fixed32_32_gt_int(struct fixed32_32 lhs, uint32_t rhs);
-bool dal_fixed32_32_lt(struct fixed32_32 lhs, struct fixed32_32 rhs);
-bool dal_fixed32_32_lt_int(struct fixed32_32 lhs, uint32_t rhs);
-bool dal_fixed32_32_le(struct fixed32_32 lhs, struct fixed32_32 rhs);
-bool dal_fixed32_32_le_int(struct fixed32_32 lhs, uint32_t rhs);
-bool dal_fixed32_32_eq(struct fixed32_32 lhs, struct fixed32_32 rhs);
+
+static inline struct fixed32_32 dal_fixed32_32_min(struct fixed32_32 lhs,
+ struct fixed32_32 rhs)
+{
+ return (lhs.value < rhs.value) ? lhs : rhs;
+}
+
+static inline struct fixed32_32 dal_fixed32_32_max(struct fixed32_32 lhs,
+ struct fixed32_32 rhs)
+{
+ return (lhs.value > rhs.value) ? lhs : rhs;
+}
+
+static inline bool dal_fixed32_32_gt(struct fixed32_32 lhs, struct fixed32_32 rhs)
+{
+ return lhs.value > rhs.value;
+}
+
+static inline bool dal_fixed32_32_gt_int(struct fixed32_32 lhs, uint32_t rhs)
+{
+ return lhs.value > ((uint64_t)rhs<<32);
+}
+
+static inline bool dal_fixed32_32_lt(struct fixed32_32 lhs, struct fixed32_32 rhs)
+{
+ return lhs.value < rhs.value;
+}
+
+static inline bool dal_fixed32_32_lt_int(struct fixed32_32 lhs, uint32_t rhs)
+{
+ return lhs.value < ((uint64_t)rhs<<32);
+}
+
+static inline bool dal_fixed32_32_le(struct fixed32_32 lhs, struct fixed32_32 rhs)
+{
+ return lhs.value <= rhs.value;
+}
+
+static inline bool dal_fixed32_32_le_int(struct fixed32_32 lhs, uint32_t rhs)
+{
+ return lhs.value <= ((uint64_t)rhs<<32);
+}
+
+static inline bool dal_fixed32_32_eq(struct fixed32_32 lhs, struct fixed32_32 rhs)
+{
+ return lhs.value == rhs.value;
+}
+
uint32_t dal_fixed32_32_ceil(struct fixed32_32 value);
-uint32_t dal_fixed32_32_floor(struct fixed32_32 value);
+static inline uint32_t dal_fixed32_32_floor(struct fixed32_32 value)
+{
+ return value.value>>32;
+}
+
uint32_t dal_fixed32_32_round(struct fixed32_32 value);
#endif
--
2.9.4
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply related [flat|nested] 3+ messages in thread[parent not found: <20170929054508.24225-1-airlied-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* [PATCH 2/2] amdgpu/dc: inline a bunch of the fixed 31_32 helpers. [not found] ` <20170929054508.24225-1-airlied-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2017-09-29 5:45 ` Dave Airlie [not found] ` <20170929054508.24225-2-airlied-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 3+ messages in thread From: Dave Airlie @ 2017-09-29 5:45 UTC (permalink / raw) To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW From: Dave Airlie <airlied@redhat.com> This decreases code size by a few hundred bytes. Signed-off-by: Dave Airlie <airlied@redhat.com> --- drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c | 122 ------------------- drivers/gpu/drm/amd/display/include/fixed31_32.h | 132 +++++++++++++++------ 2 files changed, 93 insertions(+), 161 deletions(-) diff --git a/drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c b/drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c index 546ed67..578691c 100644 --- a/drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c +++ b/drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c @@ -132,79 +132,6 @@ struct fixed31_32 dal_fixed31_32_from_int( return res; } -struct fixed31_32 dal_fixed31_32_neg( - struct fixed31_32 arg) -{ - struct fixed31_32 res; - - res.value = -arg.value; - - return res; -} - -struct fixed31_32 dal_fixed31_32_abs( - struct fixed31_32 arg) -{ - if (arg.value < 0) - return dal_fixed31_32_neg(arg); - else - return arg; -} - -bool dal_fixed31_32_lt( - struct fixed31_32 arg1, - struct fixed31_32 arg2) -{ - return arg1.value < arg2.value; -} - -bool dal_fixed31_32_le( - struct fixed31_32 arg1, - struct fixed31_32 arg2) -{ - return arg1.value <= arg2.value; -} - -bool dal_fixed31_32_eq( - struct fixed31_32 arg1, - struct fixed31_32 arg2) -{ - return arg1.value == arg2.value; -} - -struct fixed31_32 dal_fixed31_32_min( - struct fixed31_32 arg1, - struct fixed31_32 arg2) -{ - if (arg1.value <= arg2.value) - return arg1; - else - return arg2; -} - -struct fixed31_32 dal_fixed31_32_max( - struct fixed31_32 arg1, - struct fixed31_32 arg2) -{ - if (arg1.value <= arg2.value) - return arg2; - else - return arg1; -} - -struct fixed31_32 dal_fixed31_32_clamp( - struct fixed31_32 arg, - struct fixed31_32 min_value, - struct fixed31_32 max_value) -{ - if (dal_fixed31_32_le(arg, min_value)) - return min_value; - else if (dal_fixed31_32_le(max_value, arg)) - return max_value; - else - return arg; -} - struct fixed31_32 dal_fixed31_32_shl( struct fixed31_32 arg, uint8_t shift) @@ -219,19 +146,6 @@ struct fixed31_32 dal_fixed31_32_shl( return res; } -struct fixed31_32 dal_fixed31_32_shr( - struct fixed31_32 arg, - uint8_t shift) -{ - struct fixed31_32 res; - - ASSERT(shift < 64); - - res.value = arg.value >> shift; - - return res; -} - struct fixed31_32 dal_fixed31_32_add( struct fixed31_32 arg1, struct fixed31_32 arg2) @@ -246,24 +160,6 @@ struct fixed31_32 dal_fixed31_32_add( return res; } -struct fixed31_32 dal_fixed31_32_add_int( - struct fixed31_32 arg1, - int32_t arg2) -{ - return dal_fixed31_32_add( - arg1, - dal_fixed31_32_from_int(arg2)); -} - -struct fixed31_32 dal_fixed31_32_sub_int( - struct fixed31_32 arg1, - int32_t arg2) -{ - return dal_fixed31_32_sub( - arg1, - dal_fixed31_32_from_int(arg2)); -} - struct fixed31_32 dal_fixed31_32_sub( struct fixed31_32 arg1, struct fixed31_32 arg2) @@ -278,15 +174,6 @@ struct fixed31_32 dal_fixed31_32_sub( return res; } -struct fixed31_32 dal_fixed31_32_mul_int( - struct fixed31_32 arg1, - int32_t arg2) -{ - return dal_fixed31_32_mul( - arg1, - dal_fixed31_32_from_int(arg2)); -} - struct fixed31_32 dal_fixed31_32_mul( struct fixed31_32 arg1, struct fixed31_32 arg2) @@ -390,15 +277,6 @@ struct fixed31_32 dal_fixed31_32_div_int( dal_fixed31_32_from_int(arg2).value); } -struct fixed31_32 dal_fixed31_32_div( - struct fixed31_32 arg1, - struct fixed31_32 arg2) -{ - return dal_fixed31_32_from_fraction( - arg1.value, - arg2.value); -} - struct fixed31_32 dal_fixed31_32_recip( struct fixed31_32 arg) { diff --git a/drivers/gpu/drm/amd/display/include/fixed31_32.h b/drivers/gpu/drm/amd/display/include/fixed31_32.h index 5a4364d..f0bc3c4 100644 --- a/drivers/gpu/drm/amd/display/include/fixed31_32.h +++ b/drivers/gpu/drm/amd/display/include/fixed31_32.h @@ -90,15 +90,26 @@ struct fixed31_32 dal_fixed31_32_from_int( * @brief * result = -arg */ -struct fixed31_32 dal_fixed31_32_neg( - struct fixed31_32 arg); +static inline struct fixed31_32 dal_fixed31_32_neg(struct fixed31_32 arg) +{ + struct fixed31_32 res; + + res.value = -arg.value; + + return res; +} /* * @brief * result = abs(arg) := (arg >= 0) ? arg : -arg */ -struct fixed31_32 dal_fixed31_32_abs( - struct fixed31_32 arg); +static inline struct fixed31_32 dal_fixed31_32_abs(struct fixed31_32 arg) +{ + if (arg.value < 0) + return dal_fixed31_32_neg(arg); + else + return arg; +} /* * @brief @@ -109,41 +120,57 @@ struct fixed31_32 dal_fixed31_32_abs( * @brief * result = arg1 < arg2 */ -bool dal_fixed31_32_lt( - struct fixed31_32 arg1, - struct fixed31_32 arg2); +static inline bool dal_fixed31_32_lt(struct fixed31_32 arg1, + struct fixed31_32 arg2) +{ + return arg1.value < arg2.value; +} /* * @brief * result = arg1 <= arg2 */ -bool dal_fixed31_32_le( - struct fixed31_32 arg1, - struct fixed31_32 arg2); +static inline bool dal_fixed31_32_le(struct fixed31_32 arg1, + struct fixed31_32 arg2) +{ + return arg1.value <= arg2.value; +} /* * @brief * result = arg1 == arg2 */ -bool dal_fixed31_32_eq( - struct fixed31_32 arg1, - struct fixed31_32 arg2); +static inline bool dal_fixed31_32_eq(struct fixed31_32 arg1, + struct fixed31_32 arg2) +{ + return arg1.value == arg2.value; +} /* * @brief * result = min(arg1, arg2) := (arg1 <= arg2) ? arg1 : arg2 */ -struct fixed31_32 dal_fixed31_32_min( - struct fixed31_32 arg1, - struct fixed31_32 arg2); +static inline struct fixed31_32 dal_fixed31_32_min(struct fixed31_32 arg1, + struct fixed31_32 arg2) +{ + if (arg1.value <= arg2.value) + return arg1; + else + return arg2; +} /* * @brief * result = max(arg1, arg2) := (arg1 <= arg2) ? arg2 : arg1 */ -struct fixed31_32 dal_fixed31_32_max( - struct fixed31_32 arg1, - struct fixed31_32 arg2); +static inline struct fixed31_32 dal_fixed31_32_max(struct fixed31_32 arg1, + struct fixed31_32 arg2) +{ + if (arg1.value <= arg2.value) + return arg2; + else + return arg1; +} /* * @brief @@ -151,10 +178,18 @@ struct fixed31_32 dal_fixed31_32_max( * result = | arg, when min_value < arg < max_value * | max_value, when arg >= max_value */ -struct fixed31_32 dal_fixed31_32_clamp( +static inline struct fixed31_32 dal_fixed31_32_clamp( struct fixed31_32 arg, struct fixed31_32 min_value, - struct fixed31_32 max_value); + struct fixed31_32 max_value) +{ + if (dal_fixed31_32_le(arg, min_value)) + return min_value; + else if (dal_fixed31_32_le(max_value, arg)) + return max_value; + else + return arg; +} /* * @brief @@ -173,9 +208,14 @@ struct fixed31_32 dal_fixed31_32_shl( * @brief * result = arg >> shift */ -struct fixed31_32 dal_fixed31_32_shr( +static inline struct fixed31_32 dal_fixed31_32_shr( struct fixed31_32 arg, - uint8_t shift); + uint8_t shift) +{ + struct fixed31_32 res; + res.value = arg.value >> shift; + return res; +} /* * @brief @@ -194,25 +234,32 @@ struct fixed31_32 dal_fixed31_32_add( * @brief * result = arg1 + arg2 */ -struct fixed31_32 dal_fixed31_32_add_int( - struct fixed31_32 arg1, - int32_t arg2); +static inline struct fixed31_32 dal_fixed31_32_add_int(struct fixed31_32 arg1, + int32_t arg2) +{ + return dal_fixed31_32_add(arg1, + dal_fixed31_32_from_int(arg2)); +} /* * @brief * result = arg1 - arg2 */ -struct fixed31_32 dal_fixed31_32_sub_int( +struct fixed31_32 dal_fixed31_32_sub( struct fixed31_32 arg1, - int32_t arg2); + struct fixed31_32 arg2); /* * @brief * result = arg1 - arg2 */ -struct fixed31_32 dal_fixed31_32_sub( - struct fixed31_32 arg1, - struct fixed31_32 arg2); +static inline struct fixed31_32 dal_fixed31_32_sub_int(struct fixed31_32 arg1, + int32_t arg2) +{ + return dal_fixed31_32_sub(arg1, + dal_fixed31_32_from_int(arg2)); +} + /* * @brief @@ -223,17 +270,21 @@ struct fixed31_32 dal_fixed31_32_sub( * @brief * result = arg1 * arg2 */ -struct fixed31_32 dal_fixed31_32_mul_int( +struct fixed31_32 dal_fixed31_32_mul( struct fixed31_32 arg1, - int32_t arg2); + struct fixed31_32 arg2); + /* * @brief * result = arg1 * arg2 */ -struct fixed31_32 dal_fixed31_32_mul( - struct fixed31_32 arg1, - struct fixed31_32 arg2); +static inline struct fixed31_32 dal_fixed31_32_mul_int(struct fixed31_32 arg1, + int32_t arg2) +{ + return dal_fixed31_32_mul(arg1, + dal_fixed31_32_from_int(arg2)); +} /* * @brief @@ -254,9 +305,12 @@ struct fixed31_32 dal_fixed31_32_div_int( * @brief * result = arg1 / arg2 */ -struct fixed31_32 dal_fixed31_32_div( - struct fixed31_32 arg1, - struct fixed31_32 arg2); +static inline struct fixed31_32 dal_fixed31_32_div(struct fixed31_32 arg1, + struct fixed31_32 arg2) +{ + return dal_fixed31_32_from_fraction(arg1.value, + arg2.value); +} /* * @brief -- 2.9.4 _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply related [flat|nested] 3+ messages in thread
[parent not found: <20170929054508.24225-2-airlied-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH 2/2] amdgpu/dc: inline a bunch of the fixed 31_32 helpers. [not found] ` <20170929054508.24225-2-airlied-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2017-09-29 14:55 ` Harry Wentland 0 siblings, 0 replies; 3+ messages in thread From: Harry Wentland @ 2017-09-29 14:55 UTC (permalink / raw) To: Dave Airlie, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW On 2017-09-29 01:45 AM, Dave Airlie wrote: > From: Dave Airlie <airlied@redhat.com> > > This decreases code size by a few hundred bytes. > > Signed-off-by: Dave Airlie <airlied@redhat.com> Series is Reviewed-by: Harry Wentland <harry.wentland@amd.com> Harry > --- > drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c | 122 ------------------- > drivers/gpu/drm/amd/display/include/fixed31_32.h | 132 +++++++++++++++------ > 2 files changed, 93 insertions(+), 161 deletions(-) > > diff --git a/drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c b/drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c > index 546ed67..578691c 100644 > --- a/drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c > +++ b/drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c > @@ -132,79 +132,6 @@ struct fixed31_32 dal_fixed31_32_from_int( > return res; > } > > -struct fixed31_32 dal_fixed31_32_neg( > - struct fixed31_32 arg) > -{ > - struct fixed31_32 res; > - > - res.value = -arg.value; > - > - return res; > -} > - > -struct fixed31_32 dal_fixed31_32_abs( > - struct fixed31_32 arg) > -{ > - if (arg.value < 0) > - return dal_fixed31_32_neg(arg); > - else > - return arg; > -} > - > -bool dal_fixed31_32_lt( > - struct fixed31_32 arg1, > - struct fixed31_32 arg2) > -{ > - return arg1.value < arg2.value; > -} > - > -bool dal_fixed31_32_le( > - struct fixed31_32 arg1, > - struct fixed31_32 arg2) > -{ > - return arg1.value <= arg2.value; > -} > - > -bool dal_fixed31_32_eq( > - struct fixed31_32 arg1, > - struct fixed31_32 arg2) > -{ > - return arg1.value == arg2.value; > -} > - > -struct fixed31_32 dal_fixed31_32_min( > - struct fixed31_32 arg1, > - struct fixed31_32 arg2) > -{ > - if (arg1.value <= arg2.value) > - return arg1; > - else > - return arg2; > -} > - > -struct fixed31_32 dal_fixed31_32_max( > - struct fixed31_32 arg1, > - struct fixed31_32 arg2) > -{ > - if (arg1.value <= arg2.value) > - return arg2; > - else > - return arg1; > -} > - > -struct fixed31_32 dal_fixed31_32_clamp( > - struct fixed31_32 arg, > - struct fixed31_32 min_value, > - struct fixed31_32 max_value) > -{ > - if (dal_fixed31_32_le(arg, min_value)) > - return min_value; > - else if (dal_fixed31_32_le(max_value, arg)) > - return max_value; > - else > - return arg; > -} > - > struct fixed31_32 dal_fixed31_32_shl( > struct fixed31_32 arg, > uint8_t shift) > @@ -219,19 +146,6 @@ struct fixed31_32 dal_fixed31_32_shl( > return res; > } > > -struct fixed31_32 dal_fixed31_32_shr( > - struct fixed31_32 arg, > - uint8_t shift) > -{ > - struct fixed31_32 res; > - > - ASSERT(shift < 64); > - > - res.value = arg.value >> shift; > - > - return res; > -} > - > struct fixed31_32 dal_fixed31_32_add( > struct fixed31_32 arg1, > struct fixed31_32 arg2) > @@ -246,24 +160,6 @@ struct fixed31_32 dal_fixed31_32_add( > return res; > } > > -struct fixed31_32 dal_fixed31_32_add_int( > - struct fixed31_32 arg1, > - int32_t arg2) > -{ > - return dal_fixed31_32_add( > - arg1, > - dal_fixed31_32_from_int(arg2)); > -} > - > -struct fixed31_32 dal_fixed31_32_sub_int( > - struct fixed31_32 arg1, > - int32_t arg2) > -{ > - return dal_fixed31_32_sub( > - arg1, > - dal_fixed31_32_from_int(arg2)); > -} > - > struct fixed31_32 dal_fixed31_32_sub( > struct fixed31_32 arg1, > struct fixed31_32 arg2) > @@ -278,15 +174,6 @@ struct fixed31_32 dal_fixed31_32_sub( > return res; > } > > -struct fixed31_32 dal_fixed31_32_mul_int( > - struct fixed31_32 arg1, > - int32_t arg2) > -{ > - return dal_fixed31_32_mul( > - arg1, > - dal_fixed31_32_from_int(arg2)); > -} > - > struct fixed31_32 dal_fixed31_32_mul( > struct fixed31_32 arg1, > struct fixed31_32 arg2) > @@ -390,15 +277,6 @@ struct fixed31_32 dal_fixed31_32_div_int( > dal_fixed31_32_from_int(arg2).value); > } > > -struct fixed31_32 dal_fixed31_32_div( > - struct fixed31_32 arg1, > - struct fixed31_32 arg2) > -{ > - return dal_fixed31_32_from_fraction( > - arg1.value, > - arg2.value); > -} > - > struct fixed31_32 dal_fixed31_32_recip( > struct fixed31_32 arg) > { > diff --git a/drivers/gpu/drm/amd/display/include/fixed31_32.h b/drivers/gpu/drm/amd/display/include/fixed31_32.h > index 5a4364d..f0bc3c4 100644 > --- a/drivers/gpu/drm/amd/display/include/fixed31_32.h > +++ b/drivers/gpu/drm/amd/display/include/fixed31_32.h > @@ -90,15 +90,26 @@ struct fixed31_32 dal_fixed31_32_from_int( > * @brief > * result = -arg > */ > -struct fixed31_32 dal_fixed31_32_neg( > - struct fixed31_32 arg); > +static inline struct fixed31_32 dal_fixed31_32_neg(struct fixed31_32 arg) > +{ > + struct fixed31_32 res; > + > + res.value = -arg.value; > + > + return res; > +} > > /* > * @brief > * result = abs(arg) := (arg >= 0) ? arg : -arg > */ > -struct fixed31_32 dal_fixed31_32_abs( > - struct fixed31_32 arg); > +static inline struct fixed31_32 dal_fixed31_32_abs(struct fixed31_32 arg) > +{ > + if (arg.value < 0) > + return dal_fixed31_32_neg(arg); > + else > + return arg; > +} > > /* > * @brief > @@ -109,41 +120,57 @@ struct fixed31_32 dal_fixed31_32_abs( > * @brief > * result = arg1 < arg2 > */ > -bool dal_fixed31_32_lt( > - struct fixed31_32 arg1, > - struct fixed31_32 arg2); > +static inline bool dal_fixed31_32_lt(struct fixed31_32 arg1, > + struct fixed31_32 arg2) > +{ > + return arg1.value < arg2.value; > +} > > /* > * @brief > * result = arg1 <= arg2 > */ > -bool dal_fixed31_32_le( > - struct fixed31_32 arg1, > - struct fixed31_32 arg2); > +static inline bool dal_fixed31_32_le(struct fixed31_32 arg1, > + struct fixed31_32 arg2) > +{ > + return arg1.value <= arg2.value; > +} > > /* > * @brief > * result = arg1 == arg2 > */ > -bool dal_fixed31_32_eq( > - struct fixed31_32 arg1, > - struct fixed31_32 arg2); > +static inline bool dal_fixed31_32_eq(struct fixed31_32 arg1, > + struct fixed31_32 arg2) > +{ > + return arg1.value == arg2.value; > +} > > /* > * @brief > * result = min(arg1, arg2) := (arg1 <= arg2) ? arg1 : arg2 > */ > -struct fixed31_32 dal_fixed31_32_min( > - struct fixed31_32 arg1, > - struct fixed31_32 arg2); > +static inline struct fixed31_32 dal_fixed31_32_min(struct fixed31_32 arg1, > + struct fixed31_32 arg2) > +{ > + if (arg1.value <= arg2.value) > + return arg1; > + else > + return arg2; > +} > > /* > * @brief > * result = max(arg1, arg2) := (arg1 <= arg2) ? arg2 : arg1 > */ > -struct fixed31_32 dal_fixed31_32_max( > - struct fixed31_32 arg1, > - struct fixed31_32 arg2); > +static inline struct fixed31_32 dal_fixed31_32_max(struct fixed31_32 arg1, > + struct fixed31_32 arg2) > +{ > + if (arg1.value <= arg2.value) > + return arg2; > + else > + return arg1; > +} > > /* > * @brief > @@ -151,10 +178,18 @@ struct fixed31_32 dal_fixed31_32_max( > * result = | arg, when min_value < arg < max_value > * | max_value, when arg >= max_value > */ > -struct fixed31_32 dal_fixed31_32_clamp( > +static inline struct fixed31_32 dal_fixed31_32_clamp( > struct fixed31_32 arg, > struct fixed31_32 min_value, > - struct fixed31_32 max_value); > + struct fixed31_32 max_value) > +{ > + if (dal_fixed31_32_le(arg, min_value)) > + return min_value; > + else if (dal_fixed31_32_le(max_value, arg)) > + return max_value; > + else > + return arg; > +} > > /* > * @brief > @@ -173,9 +208,14 @@ struct fixed31_32 dal_fixed31_32_shl( > * @brief > * result = arg >> shift > */ > -struct fixed31_32 dal_fixed31_32_shr( > +static inline struct fixed31_32 dal_fixed31_32_shr( > struct fixed31_32 arg, > - uint8_t shift); > + uint8_t shift) > +{ > + struct fixed31_32 res; > + res.value = arg.value >> shift; > + return res; > +} > > /* > * @brief > @@ -194,25 +234,32 @@ struct fixed31_32 dal_fixed31_32_add( > * @brief > * result = arg1 + arg2 > */ > -struct fixed31_32 dal_fixed31_32_add_int( > - struct fixed31_32 arg1, > - int32_t arg2); > +static inline struct fixed31_32 dal_fixed31_32_add_int(struct fixed31_32 arg1, > + int32_t arg2) > +{ > + return dal_fixed31_32_add(arg1, > + dal_fixed31_32_from_int(arg2)); > +} > > /* > * @brief > * result = arg1 - arg2 > */ > -struct fixed31_32 dal_fixed31_32_sub_int( > +struct fixed31_32 dal_fixed31_32_sub( > struct fixed31_32 arg1, > - int32_t arg2); > + struct fixed31_32 arg2); > > /* > * @brief > * result = arg1 - arg2 > */ > -struct fixed31_32 dal_fixed31_32_sub( > - struct fixed31_32 arg1, > - struct fixed31_32 arg2); > +static inline struct fixed31_32 dal_fixed31_32_sub_int(struct fixed31_32 arg1, > + int32_t arg2) > +{ > + return dal_fixed31_32_sub(arg1, > + dal_fixed31_32_from_int(arg2)); > +} > + > > /* > * @brief > @@ -223,17 +270,21 @@ struct fixed31_32 dal_fixed31_32_sub( > * @brief > * result = arg1 * arg2 > */ > -struct fixed31_32 dal_fixed31_32_mul_int( > +struct fixed31_32 dal_fixed31_32_mul( > struct fixed31_32 arg1, > - int32_t arg2); > + struct fixed31_32 arg2); > + > > /* > * @brief > * result = arg1 * arg2 > */ > -struct fixed31_32 dal_fixed31_32_mul( > - struct fixed31_32 arg1, > - struct fixed31_32 arg2); > +static inline struct fixed31_32 dal_fixed31_32_mul_int(struct fixed31_32 arg1, > + int32_t arg2) > +{ > + return dal_fixed31_32_mul(arg1, > + dal_fixed31_32_from_int(arg2)); > +} > > /* > * @brief > @@ -254,9 +305,12 @@ struct fixed31_32 dal_fixed31_32_div_int( > * @brief > * result = arg1 / arg2 > */ > -struct fixed31_32 dal_fixed31_32_div( > - struct fixed31_32 arg1, > - struct fixed31_32 arg2); > +static inline struct fixed31_32 dal_fixed31_32_div(struct fixed31_32 arg1, > + struct fixed31_32 arg2) > +{ > + return dal_fixed31_32_from_fraction(arg1.value, > + arg2.value); > +} > > /* > * @brief > _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-09-29 14:55 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-29 5:45 [PATCH 1/2] amdgpu/dc: inline some of the fixed 32_32 fns Dave Airlie
[not found] ` <20170929054508.24225-1-airlied-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-09-29 5:45 ` [PATCH 2/2] amdgpu/dc: inline a bunch of the fixed 31_32 helpers Dave Airlie
[not found] ` <20170929054508.24225-2-airlied-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-09-29 14:55 ` Harry Wentland
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.