aboutsummaryrefslogtreecommitdiff
path: root/libgcc/fixed-obj.mk
diff options
context:
space:
mode:
authorChao-ying Fu <fu@mips.com>2007-09-17 22:18:13 +0000
committerChao-ying Fu <chaoyingfu@gcc.gnu.org>2007-09-17 22:18:13 +0000
commit8d2a9e0ee289edadb94f6894c677fbb3463b8332 (patch)
treeb78141d7b773b125dccacd9b26b68b4b0ab15643 /libgcc/fixed-obj.mk
parent154e4a0a8d367972b61eb3fd96cc8e4bb7572ea9 (diff)
downloadgcc-8d2a9e0ee289edadb94f6894c677fbb3463b8332.zip
gcc-8d2a9e0ee289edadb94f6894c677fbb3463b8332.tar.gz
gcc-8d2a9e0ee289edadb94f6894c677fbb3463b8332.tar.bz2
fixed-obj.mk: New file to support fine-grain fixed-point functions.
* fixed-obj.mk: New file to support fine-grain fixed-point functions. * Makefile.in (fixed_point): Define. Check if fixed_point is yes to build support functions. * configure.ac: Check for fixed_point support. * configure: Regenerated. * gen-fixed.sh: New file to generate lists of fixed-point labels, funcs, modes, from, to. Co-Authored-By: Nigel Stephens <nigel@mips.com> From-SVN: r128557
Diffstat (limited to 'libgcc/fixed-obj.mk')
-rw-r--r--libgcc/fixed-obj.mk31
1 files changed, 31 insertions, 0 deletions
diff --git a/libgcc/fixed-obj.mk b/libgcc/fixed-obj.mk
new file mode 100644
index 0000000..3c7c2f3
--- /dev/null
+++ b/libgcc/fixed-obj.mk
@@ -0,0 +1,31 @@
+# This file is included several times in a row, once for each element of
+# $(iter-items). On each inclusion, we advance $o to the next element.
+# $(iter-labels) and $(iter-from) and $(iter-to) are also advanced.
+
+o := $(firstword $(iter-items))
+iter-items := $(filter-out $o,$(iter-items))
+
+$o-label := $(firstword $(iter-labels))
+iter-labels := $(wordlist 2,$(words $(iter-labels)),$(iter-labels))
+
+$o-from := $(firstword $(iter-from))
+iter-from := $(wordlist 2,$(words $(iter-from)),$(iter-from))
+
+$o-to := $(firstword $(iter-to))
+iter-to := $(wordlist 2,$(words $(iter-to)),$(iter-to))
+
+ifeq ($($o-from),$($o-to))
+$o-opt := -D$($o-from)_MODE
+else
+$o-opt := -DFROM_$($o-from) -DTO_$($o-to)
+endif
+
+#$(info $o$(objext): -DL$($o-label) $($o-opt))
+
+$o$(objext): %$(objext): $(gcc_srcdir)/config/fixed-bit.c
+ $(gcc_compile) -DL$($*-label) $($*-opt) -c $(gcc_srcdir)/config/fixed-bit.c $(vis_hide)
+
+ifeq ($(enable_shared),yes)
+$(o)_s$(objext): %_s$(objext): $(gcc_srcdir)/config/fixed-bit.c
+ $(gcc_s_compile) -DL$($*-label) $($*-opt) -c $(gcc_srcdir)/config/fixed-bit.c
+endif