summaryrefslogtreecommitdiff
path: root/volk/gen
diff options
context:
space:
mode:
authorJosh Blum2012-04-15 19:11:52 -0700
committerJosh Blum2012-04-19 18:12:55 -0700
commit37f9a62fd45ece1e6a92769fbb1798403c86ba9b (patch)
tree5593d79e550e30ff8fce9a5c39d49238bd196979 /volk/gen
parent95e91b44d2ef3535129c0a402c51bc56cfd74d06 (diff)
downloadgnuradio-37f9a62fd45ece1e6a92769fbb1798403c86ba9b.tar.gz
gnuradio-37f9a62fd45ece1e6a92769fbb1798403c86ba9b.tar.bz2
gnuradio-37f9a62fd45ece1e6a92769fbb1798403c86ba9b.zip
volk: working build w/ cmakelists
Diffstat (limited to 'volk/gen')
-rw-r--r--volk/gen/volk_arch_defs.py2
-rw-r--r--volk/gen/volk_kernel_defs.py14
-rw-r--r--volk/gen/volk_tmpl_utils.py3
-rw-r--r--volk/gen/volk_xml_utils.py103
4 files changed, 15 insertions, 107 deletions
diff --git a/volk/gen/volk_arch_defs.py b/volk/gen/volk_arch_defs.py
index c6115d64e..d29a951eb 100644
--- a/volk/gen/volk_arch_defs.py
+++ b/volk/gen/volk_arch_defs.py
@@ -29,7 +29,7 @@ class arch_class:
('no_test', bool, False),
('val', int, None),
('op', eval, None),
- ('reg', int, None),
+ ('reg', str, None),
('shift', int, None),
('flag', str, None),
('environment', str, None),
diff --git a/volk/gen/volk_kernel_defs.py b/volk/gen/volk_kernel_defs.py
index a5c7cb710..52cdb684c 100644
--- a/volk/gen/volk_kernel_defs.py
+++ b/volk/gen/volk_kernel_defs.py
@@ -202,8 +202,18 @@ class kernel_class:
self.arglist_defs = my_argtypelist[index]
self.arglist_namedefs = arched_arglist[index]
self.arglist_names = my_arglist[index]
- self.tagdeps = fcountlist[index]
- self.taglist = taglist[index]
+ self._tagdeps = fcountlist[index]
+ self._taglist = taglist[index]
+
+ def get_tags(self, archs):
+ def is_in(x): return x.lower() in archs
+ taglist = list()
+ tagdeps = list()
+ for i in range(len(self._tagdeps)):
+ if all(map(is_in, self._tagdeps[i])):
+ taglist.append(self._taglist[i])
+ tagdeps.append(self._tagdeps[i])
+ return taglist, tagdeps
def __repr__(self):
return self.name
diff --git a/volk/gen/volk_tmpl_utils.py b/volk/gen/volk_tmpl_utils.py
index 92b7fb1a4..9d7a0d0e5 100644
--- a/volk/gen/volk_tmpl_utils.py
+++ b/volk/gen/volk_tmpl_utils.py
@@ -63,7 +63,8 @@ def __parse_tmpl(_tmpl, **kwargs):
if __name__ == '__main__':
input_file = sys.argv[1]
output_file = sys.argv[2]
- which = sys.argv[3]
+ try: which = sys.argv[3]
+ except: which = ''
output = __parse_tmpl(open(input_file).read(), which=which)
if output_file: open(output_file, 'w').write(output)
else: print output
diff --git a/volk/gen/volk_xml_utils.py b/volk/gen/volk_xml_utils.py
deleted file mode 100644
index 05c0e1193..000000000
--- a/volk/gen/volk_xml_utils.py
+++ /dev/null
@@ -1,103 +0,0 @@
-#
-# Copyright 2012 Free Software Foundation, Inc.
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-
-#this would not be necessary if we just skipped the xml part and stored the data in python
-
-import os
-from xml.dom import minidom
-import copy
-
-gendir = os.path.dirname(__file__)
-archs_xml = minidom.parse(os.path.join(gendir, 'archs.xml')).getElementsByTagName('arch')
-machines_xml = minidom.parse(os.path.join(gendir, 'machines.xml')).getElementsByTagName('machine')
-compilers_xml = minidom.parse(os.path.join(gendir, 'compilers.xml')).getElementsByTagName('compiler')
-
-class arch_class:
- def __init__(self, arch_xml):
- self.name = arch_xml.attributes['name'].value
- self.type = arch_xml.attributes['type'].value
- for key in ('val', 'op', 'reg', 'shift', 'flag', 'environment', 'include', 'alignment'):
- try: setattr(self, key, arch_xml.getElementsByTagName(key)[0].firstChild.data)
- except: setattr(self, key, None)
- if self.alignment is None: self.alignment = 1
-
- def __repr__(self): return self.name
-
-def get_archs():
- adict = dict([(a.name, a) for a in map(arch_class, archs_xml)])
- udict = dict()
- for name, arch in adict.iteritems():
- if arch.alignment == 1: continue
- uarch = copy.deepcopy(arch)
- uarch.name = arch.name + '_u'
- uarch.alignment = 1
- udict[uarch.name] = uarch
- adict.update(udict)
- return adict
-
-volk_archs = get_archs()
-
-class machine_class:
- def __init__(self, name, archlist):
- self.name = name
- self.archs = list()
- for arch_name in archlist:
- if not arch_name: continue
- self.archs.append(volk_archs[arch_name])
- if volk_archs.has_key(arch_name + '_u'):
- self.archs.append(volk_archs[arch_name + '_u'])
-
- def __repr__(self): return self.name
-
-def yield_machines(name, archlist):
- for i, arch_name in enumerate(archlist):
- if '|' in arch_name:
- for arch_sub in arch_name.split('|'):
- for m in yield_machines(name, archlist[:i] + [arch_sub] + archlist[i+1:]):
- yield m
- return
- yield machine_class(name, archlist)
-
-def get_machines():
- mdict = dict()
- for machine_xml in machines_xml:
- name = machine_xml.attributes['name'].value
- archlist = machine_xml.getElementsByTagName('archs')[0].firstChild.data.split()
- for machine in yield_machines(name, archlist):
- mdict[machine.name] = machine
- return mdict
-
-volk_machines = get_machines()
-
-class compiler_class:
- def __init__(self, compiler_xml):
- self.name = compiler_xml.attributes['name'].value
- self.prefix = compiler_xml.getElementsByTagName('prefix')[0].firstChild.data
- self._remap = dict()
- for remap_xml in compiler_xml.getElementsByTagName('remap'):
- self._remap[remap_xml.attributes['name'].value] = remap_xml.firstChild.data
-
- def remap(self, option):
- if not self._remap.has_key(option): return option
- return self._remap[option]
-
- def __repr__(self): return self.name
-
-def get_compilers():
- return dict([(c.name, c) for c in map(compiler_class, compilers_xml)])
-
-volk_compilers = get_compilers()