amdgpu/dc: inline some of the fixed 32_32 fns
Subsystems (3)
PATCH 1/2 amdgpu/dc: inline some of the fixed 32_32 fns
From: Dave Airlie <[email protected]>
This drops ~400 bytes here.
--- 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(-)
drivers/gpu/drm/amd/display/dc/basics/fixpt32_32.c +0 -60
@@ -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; -}
drivers/gpu/drm/amd/display/include/fixed32_32.h +61 -15
89 lines not on this page · raw message
Signature · 6 lines
2.9.4 _______________________________________________ amd-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/amd-gfx
A message that is not in the archive (sent off-list or not yet received): 20170929054508.24225-1-airlied-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
PATCH 2/2 amdgpu/dc: inline a bunch of the fixed 31_32 helpers.
From: Dave Airlie <[email protected]>
This decreases code size by a few hundred bytes.
--- 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(-)
drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c +0 -122
@@ -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) {
drivers/gpu/drm/amd/display/include/fixed31_32.h +93 -39
219 lines not on this page · raw message
Signature · 6 lines
2.9.4 _______________________________________________ amd-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/amd-gfx
A message that is not in the archive (sent off-list or not yet received): 20170929054508.24225-2-airlied-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
Harry Wentland
Reviewed-byRe: [PATCH 2/2] amdgpu/dc: inline a bunch of the fixed 31_32 helpers.
Quoted 5 lines · Dave Airlie
From: Dave Airlie <[email protected]>
This decreases code size by a few hundred bytes.
Signed-off-by Dave Airlie <[email protected]>
Series is
Harry
Quoted 387 lines
--- 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(-)drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c +0
-122@@ -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) {drivers/gpu/drm/amd/display/include/fixed31_32.h +87
-38@@ -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,
drivers/gpu/drm/amd/display/include/fixed31_32.h struct fixed31_32 dal_fixed31_32_div_int( · line 316
Quoted 10 lines
drivers/gpu/drm/amd/display/include/fixed31_32.h +6
-1- 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
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx