Mercurial > hg > CbC > CbC_gcc
comparison libgcc/gen-fixed.sh @ 0:a06113de4d67
first commit
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 17 Jul 2009 14:47:48 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:a06113de4d67 |
---|---|
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 | |
14 fixed_sfract_modes="QQ HQ SQ DQ TQ HA SA DA TA" | |
15 fixed_ufract_modes="UQQ UHQ USQ UDQ UTQ UHA USA UDA UTA" | |
16 fixed_fract_modes="$fixed_sfract_modes $fixed_ufract_modes" | |
17 | |
18 fixed_signed_modes="QI HI SI DI TI SF DF" | |
19 fixed_unsigned_modes="UQI UHI USI UDI UTI" | |
20 | |
21 fixed_func_names="_add _sub _neg _mul _mulhelper _divhelper _ashl _ashlhelper _cmp _saturate1 _saturate2" | |
22 fixed_sfunc_names="_ssadd _sssub _ssneg _ssmul _ssdiv _div _ssashl _ashr" | |
23 fixed_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 | |
30 emit () | |
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 | |
46 case "$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 | |
105 esac |