]> git.ipfire.org Git - thirdparty/gcc.git/blame - libgcc/gen-fixed.sh
asan: Don't instrument .ABNORMAL_DISPATCHER [PR114743]
[thirdparty/gcc.git] / libgcc / gen-fixed.sh
CommitLineData
8d2a9e0e
CF
1#!/bin/sh
2
3# Worker script for libgcc/Makefile.in
4# Generate lists of fixed-point labels, funcs, modes, from, to.
5# Usage:
6# gen-fixed.sh arith labels
7# gen-fixed.sh arith funcs
8# gen-fixed.sh arith modes
9# gen-fixed.sh conv labels
10# gen-fixed.sh conv funcs
11# gen-fixed.sh conv from
12# gen-fixed.sh conv to
13
14fixed_sfract_modes="QQ HQ SQ DQ TQ HA SA DA TA"
15fixed_ufract_modes="UQQ UHQ USQ UDQ UTQ UHA USA UDA UTA"
16fixed_fract_modes="$fixed_sfract_modes $fixed_ufract_modes"
17
18fixed_signed_modes="QI HI SI DI TI SF DF"
19fixed_unsigned_modes="UQI UHI USI UDI UTI"
20
21fixed_func_names="_add _sub _neg _mul _mulhelper _divhelper _ashl _ashlhelper _cmp _saturate1 _saturate2"
22fixed_sfunc_names="_ssadd _sssub _ssneg _ssmul _ssdiv _div _ssashl _ashr"
23fixed_ufunc_names="_usadd _ussub _usneg _usmul _usdiv _udiv _usashl _lshr"
24
25# emit the function information
26# $1 = output type selector
27# $2 = base function name
28# $3 = from mode
29# $4 = to mode
30emit ()
31{
32 if [ "$3" != "$4" ]; then
33 case "$1" in
34 labels)
35 echo $2 ;;
36 from | modes)
37 echo $3 ;;
38 to)
39 echo $4 ;;
40 funcs)
41 echo $2$3$4 ;;
42 esac
43 fi
44}
45
46case "$1" in
47 arith)
48 for n in $fixed_func_names; do
49 for m in $fixed_fract_modes; do
50 emit $2 $n $m
51 done
52 done
53
54 for n in $fixed_sfunc_names; do
55 for m in $fixed_sfract_modes; do
56 emit $2 $n $m
57 done
58 done
59
60 for n in $fixed_ufunc_names; do
61 for m in $fixed_ufract_modes; do
62 emit $2 $n $m
63 done
64 done
65 ;;
66
67 conv)
68 for f in $fixed_fract_modes; do
69 for t in $fixed_fract_modes $fixed_signed_modes; do
70 emit $2 _fract $f $t
71 done
72 done
73
74 for f in $fixed_signed_modes; do
75 for t in $fixed_fract_modes; do
76 emit $2 _fract $f $t
77 done
78 done
79
80 for f in $fixed_fract_modes $fixed_signed_modes; do
81 for t in $fixed_fract_modes; do
82 emit $2 _satfract $f $t
83 done
84 done
85
86 for f in $fixed_fract_modes; do
87 for t in $fixed_unsigned_modes; do
88 emit $2 _fractuns $f $t
89 done
90 done
91
92 for f in $fixed_unsigned_modes; do
93 for t in $fixed_fract_modes; do
94 emit $2 _fractuns $f $t
95 done
96 done
97
98 for f in $fixed_unsigned_modes; do
99 for t in $fixed_fract_modes; do
100 emit $2 _satfractuns $f $t
101 done
102 done
103 ;;
104
105esac